-
Notifications
You must be signed in to change notification settings - Fork 3
Building
This guide explains how to build projects under any version of Serious Engine 1 on modern Windows systems.
You may have been linked to this page from various projects that are based on this SDK to some extent.
This guide focuses primarily on building Serious Sam mods under the old versions of Serious Engine 1 (mainly TFE 1.05 and TSE 1.07) but it is also useful for building mods under other optional configurations, such as TSE 1.10 or Serious Sam Classics: Revolution.
Before building, make sure to update all submodules in the repository:
git submodule update --init --recursive
This SDK is designed to be built under the most relevant versions of Serious Engine 1, more specifically 1.05 (TFE, TSE) and 1.07 (TSE).
In order to make the code compatible with these versions, you have to use MSVC 6.0 compiler. Since this SDK is designed for modern IDEs, you cannot use an old compiler out of the box.
- Install Microsoft Visual C++ 6.0 with Service Pack 6. See guide with details.
- Install Visual Studio 2010. See guide with details.
- Install Daffodil, which contains build configurations for old compilers for Visual Studio 2010. Source.
- (Optional) Install a Visual Studio of your choice (if it's newer than 2010).
Important
Before building, make sure that the platform toolset for the relevant projects is set to v60 (Project properties -> Configuration Properties -> General -> Platform Toolset).
Visual Studio after 2010 cannot use program database files (.pdb) that are generated with MSVC 6.0, making traditional debugging impossible.
There are two ways around this:
- Attach to the running process using Visual Studio 2010 (recommended) or Microsoft Visual C++ 6.0.
- Build under Serious Engine 1.10 using the same IDE that was used for the engine sources and debug using it (see below).
Any project derived from this SDK can be built under Serious Engine 1.10, including its forks.
This SDK includes headers and libraries of the open-source release of Serious Engine 1:
See contents
- Headers from the latest commit:
Includes/Engine110/Engine
- Static libraries built using Visual Studio 2013:
Includes/Engine110/Engine.libIncludes/Engine110/EngineD.libIncludes/Engine110/EngineGUI.libIncludes/Engine110/EngineGUID.lib
Additionally, it includes headers and libraries for Serious Sam Classics: Revolution:
See contents
- Recreated headers based on 1.10:
Includes/EngineRev/Engine
- Static libraries based on the latest Steam build:
Includes/EngineRev/Engine.libIncludes/EngineRev/EngineGUI.libIncludes/EngineRev/EntitiesV.libIncludes/EngineRev/GameGUIV.libIncludes/EngineRev/GameV.lib
Tip
Example build configurations for 1.10 engines that you may encounter:
-
Debug_TSE110- Debug build for Serious Engine 1.10. -
Release_TSE110- Release build for Serious Engine 1.10. -
Debug_SSR110- Debug build for Serious Sam: Revolution. -
Release_SSR110- Release build for Serious Sam: Revolution.
If you wish to build this SDK under clean 1.10 sources, you must use 2013's compiler for proper linking with the included libraries.
Otherwise you need to manually rebuild them using your preferred compiler and replace existing static libraries under Includes/Engine110.
If you wish to build this SDK under another version/fork of 1.10, follow these steps:
- Copy all header files from
Enginefolder intoIncludes/Engine110/Engine. - Copy built static libraries and replace existing ones under
Includes/Engine110.
If you wish to build this SDK under Revolution, you'll have to find a way to inject new code into the game.
- The simplest way to do this is to build the "mod" part, which consists of
EntitiesandGameprojects, the libraries of which will have to replace the game'sEntities.dllandGame.dllfiles, respectively. - Alternatively, you can use the Serious Engine 1 Injector for making the game run your code at specific points, allowing you to hook your library to the engine and execute new code (such as register new console commands in the shell).
Warning
This SDK does not contain vanilla logic of Serious Sam: Revolution and will result in missing content (such as new weapons and gamemodes) and inability to play in multiplayer on vanilla servers or with clients running the vanilla version of the game.