-
Notifications
You must be signed in to change notification settings - Fork 0
Outputs
The outputs are:
- The Main SDK
- The Engine Plugins
The full SDK source repository is here. Source code licensees have access to this. They get access by putting their Github username in their Simul Account.
We create SDK installers that put the trueSKY SDK to a specified directory on the user's machine.
These will install the Simul headers, static and dynamic libraries (.lib and .dll files), and also the source code for the code samples.
The SDK installers are mostly for 30-day trials, because SDK customers will normally use a source code licence.
Platform | Automated Build | Download |
---|---|---|
x64 and Win32 | Jarvis: Releases Installers | Download |
PS4 | Jarvis: Simul PS4 | Download |
Xbox One | Jarvis: Simul Xbox One | Download |
Epic supplies UE4 both as binary installable versions, and as full source code on Github. We maintain a branch of the UE4 source code. There are two parts to the UE4 plugin. On the UE4 side, The specific code for our plugin goes in the directory Engine\Plugins\TrueSkyPlugin. This also contains data and shaders. There are actually two plugins - the game-side plugin, whose source is in TrueSkyPlugin/Source/TrueSkyPlugin, and which is always in use; and the editor plugin in TrueSkyPlugin/Source/TrueSkyEditorPlugin, which is only loaded by the Unreal Editor, never by a game. These are built as dll's for the editor exe to load, and as static libs for games to link.
This plugin code launches the trueSKY renderer dll, and the trueSKY UI dll. These are built from our own codebase (i.e. in the Simul repo). In UE4, these are deployed to Engine/Binaries/ThirdParty/Simul.
i.e. In UE4, a plugin is hosted within the engine's main source tree - contrast with Unity below.
We also have minor modifications that we made to these files:
-
Engine\Source\Runtime\Renderer\Private\DeferredShadingRenderer.cpp
-
Engine\Source\Runtime\Renderer\Public\RendererInterface.h
-
Engine\Source\Runtime\Renderer\Private\RendererPrivate.h
-
Engine\Source\Runtime\Renderer\Private\SceneRendering.cpp
-
Engine\Source\Runtime\Renderer\Private\RendererScene.cpp
-
Engine\Source\Programs\AutomationTool\PS4\PS4Platform.Automation.cs
-
Engine\Source\Programs\AutomationTool\Win\WinPlatform.Automation.cs
-
Engine\Source\Programs\AutomationTool\XboxOne\XboxOnePlatform.Automation.cs
We create plugin installers that put the plugin to a UE4 installation. This excludes the above modifications to the main UE code, which are optional, but useful.
The plugin is built here
In Unity, a plugin is just files in a project folder. So we maintain a Unity project in the main Simul repo, in Simul/Plugins/Unity/Project5. In Unity, a project keeps its content in the Assets folder. So we have the folder Project5/Assets/Simul. Here there are C# .cs files which handle the Unity engine-side behaviour, and which launch the trueSKY renderer dll, and the trueSKY UI dll. The editor-specific C# files are in Project5/Assets/Simul/Editor
The same plugin libraries are used for all different engines. The rendering library is:
- TrueSkyPluginRender_MT.dll, for Win32 and x64
- TrueSkyPluginRender_MD.dll, for Xbox One
- TrueSkyPluginRender.prx, for PS4
This dll is statically-linked, so it has no external dependencies (except that the Xbox One version is dependent on the dynamic runtime, hence the _MD suffix).
The UI library is TrueSkyUI_MD.dll, for Win32 and x64, and links dynamically with Qt5CLucene.dll, Qt5Core.dll, Qt5Designer.dll, Qt5Gui.dll, Qt5Help.dll, Qt5Network.dll, Qt5OpenGL.dll ,Qt5Sql.dll ,Qt5Widgets.dll ,Qt5Xml.dll ,SequencerQtWidgets_MD.dll ,SimulBase_MD.dll ,SimulClouds_MD.dll ,SimulCrossPlatform_MD.dll ,SimulGeometry_MD.dll ,SimulMath_MD.dll, SimulQtWidgets_MD.dll, and SimulSky_MD.dll.
The _MD suffix indicates that it uses the dynamic runtime (this may require end-users to install the Visual Studio prerequisites). The UI is linked dynamically to comply with the terms of the LGPL for Qt, so that we don't need to pay a licence fee to use Qt in our products.