The information below describes the steps that the default build script (build.ps1) performs.
The client uses different APIs to render itself, called Engine. Engine defines the technology used and the platform where the client can be launched:
Any platform (Windows, Linux, macOS):
- UniversalGL
Only Windows:
- WindowsDX
- WindowsGL
- WindowsXNA
For each Engine configuration one or more TargetFrameworks will be build:
UniversalGL:
- net8.0
WindowsDX, WindowsGL & WindowsXNA:
- net4.8
Overview of the Engine configurations differences:
| Configuration | OS Support | Default Platform | Technology |
|---|---|---|---|
| UniversalGL | Any | AnyCPU | MonoGame DesktopGL |
| WindowsDX | Windows | AnyCPU | MonoGame WindowsDX + WinForms |
| WindowsGL | Windows | AnyCPU | MonoGame DesktopGL + WinForms |
| WindowsXNA | Windows | x86 | Microsoft XNA + WinForms |
The build output when using the dotnet publish command is created in \Compiled.
Launching the client is done by running e.g.: dotnet clientogl.dll
To build the client without Visual Studio you should install the .NET 8.0 SDK, PowerShell 7.0 and run Script\Build.bat. Compiled result will be placed to Compiled folder in the root of the repository.
Important
IDEs can build Release configurations, but they are forbidden to run due to compile-time optimizations on binaries.
You can select the desired configuration directly from the solution configurations:
Note that the XNA configurations can only be built/debugged with x86.
Warning
After changing the solution configuration in Visual Studio you have to manually execute dotnet restore through cmd/powershell in the project's root directory to load packages and also reboot Visual Studio to exclude NETSDK1004 and NETSDK1005 errors.
Select desired configuration from list in the top panel:


