This is the source code for Serious Engine

Serious Sam Classic

This is the source code for Serious Engine v.1.10, including the following projects:

  • DedicatedServer
  • Ecc The Entity Class Compiler, a custom build tool used to compile *.es files
  • Engine Serious Engine 1.10
  • EngineGUI Common GUI things for game tools
  • EntitiesMP All the entity logic
  • GameGUIMP Common GUI things for game tools
  • GameMP All the game logic
  • Modeler Serious Modeler
  • RCon Used to connect to servers using an admin password
  • SeriousSam The main game executable
  • SeriousSkaStudio Serious Ska Studio
  • WorldEditor Serious Editor
  • DecodeReport Used to decode crash *.rpt files
  • Depend Used to build a list of dependency files based on a list of root files
  • LWSkaExporter Exporter for use in LightWave
  • MakeFONT Used for generating *.fnt files
  • Shaders Compiled shaders
  • GameAgent The serverlist masterserver written in Python
  • libogg, libvorbis Third party libraries used for playing OGG-encoded ingame music (see http://www.vorbis.com/ for more information)

Building

There are still many asserts in the engine. Most of them are irrelevant and should be removed, but while it's not done, the asserts will effectively kill the engine when triggered in the Debug build. Use Release or RelWithDebInfo build if you intend to play (automatically set as RelWithDebInfo in the build scripts).

Linux

Setting up the repository

Type this in your terminal:

git clone https://gitflic.ru/project/tx00100xt/serioussamclassic.git SeriousSamClassic

Copy official game data (optional)

If you have access to a copy of the game (either by CD or through Steam), you can copy the *.gro files from the game directory to the repository. (SeriousSamClassic/SamTFE is the directory of the game Serious Sam Classic The First Encounter, SeriousSamClassic/SamTSE is the directory of the game Serious Sam Classic The Second Encounter)

Building (only for SS:TFE)

Type this in your terminal:

cd SeriousSamClassic/SamTFE/Sources
./build-linux64.sh -DTFE=TRUE	# use build-linux32.sh for 32-bits

Building (only for SS:TSE)

Type this in your terminal:

cd SeriousSamClassic/SamTSE/Sources
./build-linux64.sh        	# use build-linux32.sh for 32-bits

FreeBSD

Setting up the repository

Type this in your terminal:

git clone https://gitflic.ru/project/tx00100xt/serioussamclassic.git SeriousSamClassic

Copy official game data (optional)

If you have access to a copy of the game (either by CD or through Steam), you can copy the *.gro files from the game directory to the repository. (SeriousSamClassic/SamTFE is the directory of the game Serious Sam Classic The First Encounter, SeriousSamClassic/SamTSE is the directory of the game Serious Sam Classic The Second Encounter)

Building (only for SS:TFE)

Type this in your terminal:

cd SeriousSamClassic/SamTFE/Sources
cp -vfr Entities/PlayerWeapons_old.es Entities/PlayerWeapons.es
mkdir cmake-build
cd cmake-build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DTFE=TRUE ..
make -j4
cp -v SeriousSam DedicatedServer MakeFONT ecc ../../Bin
cp -v Debug/*.so ../../Bin

Building (only for SS:TSE)

Type this in your terminal:

cd SeriousSamClassic/SamTSE/Sources
cp -vfr EntitiesMP/PlayerWeapons_old.es EntitiesMP/PlayerWeapons.es
mkdir cmake-build
cd cmake-build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
make -j4
cp -v SeriousSam DedicatedServer MakeFONT ecc ../../Bin
cp -v Debug/*.so ../../Bin

Note that the CD version of SS:TSE used MP3 for music. You will need to build / get libamp11lib.so and copy it inside Bin with the other libs to have music. Steam version uses ogg and doesn't need this library.

Running

This version of the engine comes with a set of resources (\SE1_10b.GRO) that allow you to freely use the engine without any additional resources required. You can buy the original games on Steam, as a part of a bundle with Serious Sam Revolution ( http://store.steampowered.com/app/227780 )

Serious Sam Classic The First Encounter

Running the game

  1. Locate the game directory for "Serious Sam Classic The First Encounter" (steam)
  2. Build game from source code or Download latest release and copy the latest files from the game directory to SamTFE/Bin
  3. Copy all *.gro files, Help folder and Levels folder from the game directory to SamTFE directory. At the current time the files are:
    • Help (folder)
    • Levels (folder)
    • 1_00_ExtraTools.gro
    • 1_00_music.gro
    • 1_00c.gro
    • 1_00c_Logo.gro
    • 1_00c_scripts.gro
    • 1_04_patch.gro
  4. Start the game
    • ./run_game.sh or ./run_game_hud.sh (for start game with MangoHUD)

Serious Sam Classic The Second Encounter

Running the game

  1. Locate the game directory for "Serious Sam Classic The Second Encounter" (steam)
  2. Build game from source code or Download latest release and copy the latest files from the game directory to SamTFE/Bin
  3. Copy all *.gro files and Help folder from the game directory to SamTSE directory. At the current time the files are:
    • Help (folder)
    • SE1_00.gro
    • SE1_00_Extra.gro
    • SE1_00_ExtraTools.gro
    • SE1_00_Levels.gro
    • SE1_00_Logo.gro
    • SE1_00_Music.gro
    • 1_04_patch.gro
    • 1_07_tools.gro
  4. Start the game
    • ./run_game.sh or ./run_game_hud.sh (for start game with MangoHUD)

Serious Sam Classic XPLUS

What is XPLUS? XPLUS is a global modification that changes effects, models, weapons, textures to high definition. XPLUS was created by fans of the game Serious Sam and is distributed for free. Remark: -JD- and VITEK is author this mod for windows.

XPLUS Oasis

XPLUS Dunes

XPLUS Sacred Yards

Linux

Building XPLUS (only for SS:TFE)

Type this in your terminal:

cd SeriousSamClassic/SamTFE/Sources
./build-linux64xplus.sh -DTFE=TRUE	# use build-linux32xplus.sh for 32-bits

FreeBSD

Building XPLUS (only for SS:TFE)

Type this in your terminal:

cd SeriousSamClassic/SamTFE/Sources
cp -vfr Entities/PlayerWeaponsHD.es Entities/PlayerWeapons.es
mkdir cmake-build
cd cmake-build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DTFE=TRUE ..
make -j4
cp -v Debug/*.so ../../Mods/XPLUS/Bin

Download XplusTFE and unpack to SeriousSamClassic/SamTFE/Mods directory. To start the modification, use the game menu - item Modification.

Linux

Building XPLUS (only for SS:TSE)

Type this in your terminal:

cd SeriousSamClassic/SamTSE/Sources
./build-linux64xplus.sh        	    # use build-linux32xplus.sh for 32-bits

FreeBSD

Building XPLUS (only for SS:TSE)

Type this in your terminal:

cd SeriousSamClassic/SamTSE/Sources
cp -vfr EntitiesMP/PlayerWeaponsHD.es EntitiesMP/PlayerWeapons.es
mkdir cmake-build
cd cmake-build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
make -j4
cp -v Debug/*.so ../../Mods/XPLUS/Bin

Download XplusTSE and unpack to SeriousSamClassic/SamTSE/Mods directory. To start the modification, use the game menu - item Modification.

Suported OS

  • Linux
  • FreeBSD (no longer)

Other OS

  • Not supported

License

  • Serious Engine is licensed under the GNU GPL v2 (see LICENSE file).
  • amp11lib is licensed under the GNU GPL v2 (see amp11lib/COPYING file).

Some of the code included with the engine sources is not licensed under the GNU GPL v2:

  • zlib (located in Sources/Engine/zlib) by Jean-loup Gailly and Mark Adler
  • LightWave SDK (located in Sources/LWSkaExporter/SDK) by NewTek Inc.
  • libogg/libvorbis (located in Sources/libogg and Sources/libvorbis) by Xiph.Org Foundation
Comments
  • hud icons do not scale with their boxes properly.

    hud icons do not scale with their boxes properly.

    As the title suggests. As a side note. is it possible to allow for leaderboard hud removal? Im talking about weapon icons specificly, which are cut off.

  • Problems with RPi4

    Problems with RPi4

    The Raspberry Pi 4 build seems to have some problems... I'm on official RPiOS x64, the newest version.

    First one if with the compiling itself - a line 'cat /proc/cpuinfo |grep vendor_id |wc -l' returns 0 which throws the project out of the window after compiling ECC. This can be however easily fixed by changing the number there manually to '4', still, maybe worth of changing for RPI itself?

    Second problem is when launching the compiled project, after execution of the compiled binary, terminal shows two lines and program ends: STUBBED: load window icon in /home/dragon99919/git/SeriousSamClassic/SamTSE/Sources/SeriousSam/MainWindow.cpp, line 167. STUBBED: Need SDL invisible window or something in /home/dragon99919/git/SeriousSamClassic/SamTSE/Sources/SeriousSam/MainWindow.cpp, line 328.

    Any idea how to fix it by any chance?

  • cross-multiplayer not work

    cross-multiplayer not work

    I can`t cross-connecting with a Linux system and FreeBSD it a not possible !

    response from my server

    Server: Sent initialization info to '192.168.0.3' (2k) Sending statedelta response Server: Sent connection data to '192.168.0.3' (2406k->758k->95k) Server: Sent initialization info to '192.168.0.3' (2k) Sending statedelta response Server: Sent connection data to '192.168.0.3' (2406k->758k->95k)

    response from my client

    joining session at '192.168.0.8' sending statestate delta request Cannot join game: CRC error in DIFF!

  • unable to adjust gamma brightness and contrast

    unable to adjust gamma brightness and contrast

    First of all let me say thanks for this project, it's running great and everything seems to work fine so far. The only issue I've run across is that I'm unable to adjust gamma brightness and contrast in the settings. It happens both on the OpenGL as Vulkan binaries. So I'm not sure if it's unimplemented as of yet or bugged.

    Running on Arch with GOG SS TFE. If you need additional information let me know.

  • Fails to build on Pi4

    Fails to build on Pi4

    i follow the commands that are on your readme Im running debian Buster 10

    cd SeriousSamClassic/SamTFE/Sources
    ./build-linux64.sh -DTFE=TRUE -DRPI4=TRUE	# use build-linux32.sh for 32-bits
    

    and i get this

    Will build with 'make -j4' ... please edit this script if incorrect.
    + rm -rf cmake-build
    + mkdir cmake-build
    + cd cmake-build
    + cp -vfr ../Entities/PlayerWeapons_old.es ../Entities/PlayerWeapons.es
    '../Entities/PlayerWeapons_old.es' -> '../Entities/PlayerWeapons.es'
    + cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_FLAGS=-mmmx -DCMAKE_CXX_FLAGS=-mmmx -DUSE_I386_NASM_ASM=TRUE .. -DTFE=TRUE -DRPI4=TRUE
    -- The C compiler identification is GNU 8.3.0
    -- The CXX compiler identification is GNU 8.3.0
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- broken
    CMake Error at /usr/share/cmake-3.16/Modules/CMakeTestCCompiler.cmake:60 (message):
      The C compiler
    
        "/usr/bin/cc"
    
      is not able to compile a simple test program.
    
      It fails with the following output:
    
        Change Dir: /home/pi/SeriousSamClassic/SamTFE/Sources/cmake-build/CMakeFiles/CMakeTmp
    
        Run Build Command(s):/usr/bin/make cmTC_90c3e/fast && /usr/bin/make -f CMakeFiles/cmTC_90c3e.dir/build.make CMakeFiles/cmTC_90c3e.dir/build
        make[1]: Entering directory '/home/pi/SeriousSamClassic/SamTFE/Sources/cmake-build/CMakeFiles/CMakeTmp'
        Building C object CMakeFiles/cmTC_90c3e.dir/testCCompiler.c.o
        /usr/bin/cc   -mmmx    -o CMakeFiles/cmTC_90c3e.dir/testCCompiler.c.o   -c /home/pi/SeriousSamClassic/SamTFE/Sources/cmake-build/CMakeFiles/CMakeTmp/testCCompiler.c
        cc: error: unrecognized command line option ‘-mmmx’
        make[1]: *** [CMakeFiles/cmTC_90c3e.dir/build.make:66: CMakeFiles/cmTC_90c3e.dir/testCCompiler.c.o] Error 1
        make[1]: Leaving directory '/home/pi/SeriousSamClassic/SamTFE/Sources/cmake-build/CMakeFiles/CMakeTmp'
        make: *** [Makefile:121: cmTC_90c3e/fast] Error 2
    
    
    
    
    
      CMake will not be able to correctly generate this project.
    Call Stack (most recent call first):
      CMakeLists.txt:2 (project)
    
    
    -- Configuring incomplete, errors occurred!
    See also "/home/pi/SeriousSamClassic/SamTFE/Sources/cmake-build/CMakeFiles/CMakeOutput.log".
    See also "/home/pi/SeriousSamClassic/SamTFE/Sources/cmake-build/CMakeFiles/CMakeError.log".
    

    here is the CMakeError.log

    Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
    Compiler: /usr/bin/cc 
    Build flags: -mmmx
    Id flags:  
    
    The output was:
    1
    cc: error: unrecognized command line option ‘-mmmx’
    
    
    Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
    Compiler: /usr/bin/cc 
    Build flags: -mmmx
    Id flags: -c 
    
    The output was:
    1
    cc: error: unrecognized command line option ‘-mmmx’
    
    
    Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
    Compiler: /usr/bin/cc 
    Build flags: -mmmx
    Id flags: -Aa 
    
    The output was:
    1
    cc: error: unrecognized command line option ‘-mmmx’
    
    
    Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
    Compiler: /usr/bin/cc 
    Build flags: -mmmx
    Id flags: -D__CLASSIC_C__ 
    
    The output was:
    1
    cc: error: unrecognized command line option ‘-mmmx’
    
    
    Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
    Compiler: /usr/bin/cc 
    Build flags: -mmmx
    Id flags: --target=arm-arm-none-eabi;-mcpu=cortex-m3 
    
    The output was:
    1
    cc: error: unrecognized command line option ‘-mmmx’
    cc: error: unrecognized command line option ‘--target=arm-arm-none-eabi’
    
    
    Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
    Compiler: /usr/bin/c++ 
    Build flags: -mmmx
    Id flags:  
    
    The output was:
    1
    c++: error: unrecognized command line option ‘-mmmx’
    
    
    Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
    Compiler: /usr/bin/c++ 
    Build flags: -mmmx
    Id flags: -c 
    
    The output was:
    1
    c++: error: unrecognized command line option ‘-mmmx’
    
    
    Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
    Compiler: /usr/bin/c++ 
    Build flags: -mmmx
    Id flags: --c++ 
    
    The output was:
    1
    c++: error: unrecognized command line option ‘-mmmx’
    c++: error: unrecognized command line option ‘--c++’
    
    
    Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
    Compiler: /usr/bin/c++ 
    Build flags: -mmmx
    Id flags: --ec++ 
    
    The output was:
    1
    c++: error: unrecognized command line option ‘-mmmx’
    c++: error: unrecognized command line option ‘--ec++’; did you mean ‘-Weffc++’?
    
    
    Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed.
    Compiler: /usr/bin/c++ 
    Build flags: -mmmx
    Id flags: --target=arm-arm-none-eabi;-mcpu=cortex-m3 
    
    The output was:
    1
    c++: error: unrecognized command line option ‘-mmmx’
    c++: error: unrecognized command line option ‘--target=arm-arm-none-eabi’
    
    
    Determining if the C compiler works failed with the following output:
    Change Dir: /home/pi/RetroPie-Setup/tmp/build/samtfe/SamTFE/Sources/cmake-build/CMakeFiles/CMakeTmp
    
    Run Build Command(s):/usr/bin/make cmTC_69832/fast && /usr/bin/make -f CMakeFiles/cmTC_69832.dir/build.make CMakeFiles/cmTC_69832.dir/build
    make[1]: Entering directory '/home/pi/RetroPie-Setup/tmp/build/samtfe/SamTFE/Sources/cmake-build/CMakeFiles/CMakeTmp'
    Building C object CMakeFiles/cmTC_69832.dir/testCCompiler.c.o
    /usr/bin/cc   -mmmx    -o CMakeFiles/cmTC_69832.dir/testCCompiler.c.o   -c /home/pi/RetroPie-Setup/tmp/build/samtfe/SamTFE/Sources/cmake-build/CMakeFiles/CMakeTmp/testCCompiler.c
    cc: error: unrecognized command line option ‘-mmmx’
    make[1]: *** [CMakeFiles/cmTC_69832.dir/build.make:66: CMakeFiles/cmTC_69832.dir/testCCompiler.c.o] Error 1
    make[1]: Leaving directory '/home/pi/RetroPie-Setup/tmp/build/samtfe/SamTFE/Sources/cmake-build/CMakeFiles/CMakeTmp'
    make: *** [Makefile:121: cmTC_69832/fast] Error 2
    
  • Windows builds, please!

    Windows builds, please!

    Could it be possible to provide and Windows builds of SeriousSamClassic either, 32 and 64 bits, please! It could get much more popularity to the game!

MAZE (My AmaZing Engine) - 🎮 Personal open-source cross-platform game engine
MAZE (My AmaZing Engine)  - 🎮 Personal open-source cross-platform game engine

MAZE (My AmaZing Engine) is the self-written open-source cross-platform game engine in the active development stage. At the moment it is my main pet project, developed for the purpose of learning and preserving different game dev technologies.

Jan 9, 2022
My 3D game engine source code.

Rogy-Engine Development My 3D game engine source code. (NOT THE FINAL VERSION) Features: PBR shading and reflection probes with parallax correction. S

Sep 2, 2022
Full source code for WarriOrb, a Dark-Souls like action platformer - using Unreal Engine 4
Full source code for WarriOrb, a Dark-Souls like action platformer - using Unreal Engine 4

WarriOrb source code WarriOrb is a hardcore action platformer where you play as a demon who is trapped in an unlikely body. The game mixes the difficu

Sep 20, 2022
Godot Engine – Multi-platform 2D and 3D game engine
Godot Engine – Multi-platform 2D and 3D game engine

Godot Engine 2D and 3D cross-platform game engine Godot Engine is a feature-packed, cross-platform game engine to create 2D and 3D games from a unifie

Sep 24, 2022
Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World.
Improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World.

OpenXRay OpenXRay is an improved version of the X-Ray Engine, the game engine used in the world-famous S.T.A.L.K.E.R. game series by GSC Game World. S

Oct 2, 2022
Flax Engine – multi-platform 3D game engine
Flax Engine – multi-platform 3D game engine

Flax Engine – multi-platform 3D game engine

Sep 30, 2022
CLUSEK-RT is a complex game engine written in C++ and the successor of the CLUSEK game engine
CLUSEK-RT is a complex game engine written in C++ and the successor of the CLUSEK game engine

CLUSEK-RT is a complex game engine written in C++ and the successor of the CLUSEK game engine. This engine has been designed with a cross-platform design in mind. Thanks to Vulkan API it delivers a next-gen experience with ray tracing to both Linux and Windows platforms

Sep 21, 2022
Ground Engine is an easy to use Game Engine for 3D Game Development written in C++
Ground Engine is an easy to use Game Engine for 3D Game Development written in C++

Ground Engine is an easy to use Game Engine Framework for 3D Game Development written in C++. It's currently under development and its creation will b

Aug 15, 2022
The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript
The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

The Atomic Game Engine is a multi-platform 2D and 3D engine with a consistent API in C++, C#, JavaScript, and TypeScript

Oct 2, 2022
Hyperion Engine is a 3D game engine written in C++
Hyperion Engine is a 3D game engine written in C++

Hyperion Engine About Hyperion Engine is a 3D game engine written in C++. We aim to make Hyperion be easy to understand and use, while still enabling

Oct 1, 2022
Open-source, cross-platform, C++ game engine for creating 2D/3D games.

GamePlay v3.0.0 GamePlay is an open-source, cross-platform, C++ game framework/engine for creating 2D/3D mobile and desktop games. Website Wiki API De

Oct 2, 2022
KlayGE is a cross-platform open source game engine with plugin-based architecture.

KlayGE KlayGE is a cross-platform open source game engine with plugin-based architecture. It's started since 2003. The explicit goal of KlayGE is: to

Oct 2, 2022
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU

Panda3D Panda3D is a game engine, a framework for 3D rendering and game development for Python and C++ programs. Panda3D is open-source and free for a

Sep 27, 2022
MIT Licensed Open Source version of Torque 2D game engine from GarageGames
MIT Licensed Open Source version of Torque 2D game engine from GarageGames

We've moved! All torque engines have moved to a new organization, Torque Game Engines. Torque2D can be found at https://github.com/TorqueGameEngines/T

Sep 24, 2022
Free, open-source, game engine and a 3D sandbox.
Free, open-source, game engine and a 3D sandbox.

Work-in-Progress The official "early alpha" release should be available around April 2021 SGEEngine SGEEngine is an open source (MIT License), C++ cen

Sep 15, 2022
Project DELTA - An open-source trainer built on the Void Engine for Toby Fox's games and their spin-offs.

Project DELTA v3 Project DELTA - An open-source, modular mod menu for Toby Fox's games and their spin-offs. Important note to Grossley: Yes, it is out

Apr 20, 2022
Speedrun plugin for Source engine games.

Features Automatic demo recording Accurate session timing Speedrun timer with complex custom rule system Tools for segmented and tool-assisted speedru

Sep 16, 2022
Vinifera is an open-source community collaboration project extending the Tiberian Sun engine.
 Vinifera is an open-source community collaboration project extending the Tiberian Sun engine.

Vinifera is an open-source community collaboration project extending the Tiberian Sun engine. Latest Nightly Build: Download Table of Contents Intro C

Aug 17, 2022
Classic Tomb Raider open-source engine
Classic Tomb Raider open-source engine

Classic Tomb Raider open-source engine

Oct 1, 2022