This is a fork of Croteam's Serious Engine 1.10 that aims to provide code that is easier to maintain and build under any sort of configuration and that also includes many quality-of-life improvements over the original code without adding too much.
DedicatedServer
- Dedicated server application for hosting multiplayer gameEcc
- Entity Class Compiler for compiling entity source files (*.es
)Engine
- Serious Engine 1.10EngineGUI
- Common GUI components for game toolsEntitiesMP
- All the entity logicGameGUIMP
- Specific GUI components for game toolsGameMP
- Module for handling basic game logicSeriousSam
- The main game executableShaders
- Compiled shaders for SKA models
DecodeReport
- Tool for decoding crash report files (*.rpt
)Depend
- Tool for generating a list of dependency files based on a list of root filesMakeFONT
- Tool for generating font files for the game (*.fnt
)Modeler
- Serious Modeler application for creating and configuring models with vertex animationsRCon
- Remote console application for connecting to servers using an admin passwordSeriousSkaStudio
- Serious SKA Studio application for creating and configuring models with skeletal animationsWorldEditor
- Serious Editor application for creating in-game levels
LWSkaExporter
- Exporter of SKA models in ASCII format for use in LightWaveGameAgent
- Custom master server emulator written in Pythonlibogg
,libvorbis
- Third party libraries used for playing OGG-encoded ingame musiczlib
- Third party static library for working with ZIP archives
These have been modified to run correctly under the recent versions of Windows. (Tested: Win7 x64, Win8 x64, Win8.1 x64, Win10 x64)
To build Serious Engine 1, you will need Visual Studio 2010 or later. The engine was originally written using Visual C++ 6.0 and released to the public modified to build and run correctly using Visual Studio 2013.
Once you've installed Visual Studio and (optionally) DirectX8 SDK, you can build the engine solution (Sources/All.sln
). Press F7 or Build -> Build solution. Once the project is build, the libraries and executables will be put under the Bin
directory (or Bin/Debug
if you are using the Debug configuration).
These features are disabled by default but can be enabled if you wish to extend the capabilities of your Serious Engine build.
- DirectX: Download DirectX8 SDK (headers & libraries) ( https://www.microsoft.com/en-us/download/details.aspx?id=6812 ) and then define a
SE1_D3D
macro for all projects in the solution (you can do it by adding it to theSE1GenericPreproc
property insideSources/Properties/Common.props
). You will also need to make sure the DirectX8 headers and libraries are located in the following folders (make the folder structure if it doesn't exist):Tools.Win32/Libraries/DX8SDK/Include/
Tools.Win32/Libraries/DX8SDK/Lib/
- 3Dfx: Support for this outdated driver for outdated graphics cards is still present but is disabled in favor of modernity. To enable it, define a
SE1_3DFX
macro for all projects in the solution. - MP3 playback: Copy
amp11lib.dll
library into theBin/
directory (andBin/Debug/
in Debug mode) that used to be distributed with older versions of Serious Sam Classic: The First Encounter. - 3D Exploration: Support is disabled due to copyright issues. If you need to create new models, either use editing tools from any of the original games or write your own code for 3D object import/export.
- IFeel: Support is disabled due to copyright issues. If you need IFeel support, copy
IFC22.dll
andImmWrapper.dll
from the original games into theBin/
folder. - Truform: Its functionality is disabled by default. To enable it, you need to switch the
SE1_TRUFORM
macro to1
(or define it as such for all projects). - Simple DirectMedia Layer (SDL): It's included with the source code but its functionality is disabled by default for the Windows platform. To enable it, you need to switch the
SE1_SDL
macro to1
(or define it as such for all projects).- It is always enabled for non-Windows platforms because cross-platform code cannot function without it.
- The OpenGL Extension Wrangler Library (GLEW): It's included with the source code but its functionality is disabled by default. To enable it, you need to switch the
SE1_GLEW
macro to1
(or define it as such for all projects).
This version of the engine comes with a set of resources (SE1_10.gro
) that allow you to freely use the engine without any additional resources required. However if you want to open or modify levels from Serious Sam Classic: The First Encounter or The Second Encounter (including most user-made levels), you will have to copy the game's resources (.gro
files) into the game folder.
When running a selected project, make sure that its project settings under Debugging are setup correctly:
- Command:
$(PostBuildCopyDir)$(TargetFileName)
- Working Directory:
$(SolutionDir)..\
SeriousSkaStudio
has some issues with MFC windows that can prevent the main window from being displayed properly.- Even though Visual Studio 2010 can be used for building, its compiler seems to be introducing certain bugs that are not ironed out yet, so it's suggested that you use Visual Studio 2013 or higher. Serious Engine 1.10 was initially released for these versions.
- Projects use
$(DefaultPlatformToolset)
property for automatically selecting the toolset from the studio that you're using, which doesn't exist in Visual Studio 2010. You will have to manually change it tov100
.
- Projects use
Serious Engine is licensed under the GNU GPL v2 license (see LICENSE
file).
Some of the code included with the engine sources under Sources/ThirdParty/
is not licensed under GNU GPL v2:
- GLEW (
glew/
) from https://glew.sourceforge.net/ - libogg & libvorbis (
libogg/
,libvorbis/
) by Xiph.Org Foundation ( http://www.vorbis.com/ ) - LightWave SDK (
LWSkaExporter/SDK/
) by NewTek Inc. - SDL2 (
SDL2/
) from https://libsdl.org/ - zlib (
zlib/
) by Jean-loup Gailly and Mark Adler ( https://zlib.net/ )