Project settings are options that are configured once and affect the entire application. Most project settings can be configured from the editor, though some (currently) can only be configured by writing certain configuration files manually.
In the editor you will find the project settings under Editor > Project Settings > ….
Editor > Project Settings > Data Directories… opens a dialog to set up the data directories.
Editor > Project Settings > Engine Plugins… opens a dialog to configure the active engine plugins:
This dialog shows all available engine plugins. These are DLLs that are located in the same directory as
Editor.exe. Note that ez uses a specific name schema to differentiate which DLLs are considered engine plugins:
All DLLs named
ezEnginePluginXYZ.dllare considered to be plugins for the engine, but typically only used in conjunction with another plugin called
ezEditorPluginXYZ.dll. These are only needed by
EditorEngineProcess.exeto implement editor specific functionality such as 3D previews of assets. These plugins are not needed by the final game application and are not loaded by ezPlayer when running an exported scene.
All DLLs named
ezXYZPlugin.dllare considered to be proper plugins for the engine and implement runtime functionality. When your game uses a feature from one of these plugins, you need to make sure that the corresponding DLL is checked in this list, such that stand-alone applications will load the DLL.
In the list above a number of plugins have a checkmark. Also, most plugins are tagged with (active), even if they are not checked:
Checked plugins are the ones that are selected to be loaded by stand-alone applications such as ezPlayer or your own application (TODO). These are the plugins that you consciously decided to use in your final game. Consequently you need to ship those DLLs and you can use all the features that they provide.
Active plugins are DLLs that are currently loaded by the engine process. Their functionality is therefore available to you in the editor. As you can see, there are many active plugins, although they are not checked. This is because plugins can have dependencies on other plugins. The editor automatically loads most editor plugins (TODO), which provide most of the editing functionality, and those will automatically include the necessary engine plugins. Therefore, even though you may not want to use the Recast integration (TODO) in your game, the
ezRecastPluginis still active in the editor, because the
ezEditorPluginRecastis loaded. This allows you to use the Recast functionality (to generate navmeshes), but if you were to export your game and run it stand-alone, all Recast specific components would be ignored.
If you want to fully remove a certain integration, even in the editor, you need to edit the list of editor plugins (TODO). Then plugin specific asset types will not show up in the asset browser and its dedicated components won’t show up in the component list. However, this is a machine wide setting, that applies to all projects and should only be done when a plugin interacts badly with some other functionality.
Loading Plugins from Code
A custom application (TODO) or game state can load plugins directly from code if necessary. For example the
ezInspectorPlugin is automatically loaded for you by stock ez applications, when building the code for development.
Editor > Project Settings > Input Configuration… opens a dialog to configure input actions.
Editor > Project Settings > Tags… opens a dialog to configure which tags are available in the project.
Editor > Project Settings > Window Configuration… opens a dialog to configure the default window configuration when running a scene.
These settings allow you to configure basic window settings for Play-the-Game mode and when running an exported scene in ezPlayer. A proper game would typically implement this logic in a custom application (TODO) and should allow the user to choose settings such as the resolution. The window configuration dialog is mainly for use during development.
There are two separately stored configurations:
Project Default: This configuration will be stored in the project folder and thus should be checked into source control to be shared with others.
User Specific: This configuration is only stored locally for the active user and not in the project directory. Therefore it cannot be checked into source control. It is meant for users who want to use settings different from the project default. For instance, when you have multiple monitors, you may want the exported scene to always appear on a specific one. This configuration must be enabled to override the default one.
Apart from the window position and size, the window configuration also controls the behavior of the mouse. If Clip Mouse Cursor is enabled, the mouse won’t be able to leave the window area. This should be preferred for games that hide the mouse and only use relative mouse movement.
Editor > Project Settings > Asset Profiles… opens a dialog to edit asset profiles (TODO).
If the FMOD Integration is enabled, Editor > Project Settings > Fmod Project Settings… will be available to configure the speaker mode and which master sound bank to use.
If the PhysX Integration is enabled, Editor > Project Settings > PhysX Project Settings… will be available to configure the collision layers.