Skip to content
This repository has been archived by the owner on Oct 4, 2022. It is now read-only.

TwilightWingsStudio/SSE-Legacy

 
 

Repository files navigation

------------------------------------------------------------------------------------------------
|  _______  _______  _______ _________ _______           _______    _______  _______  _______  |
| (  ____ \(  ____ \(  ____ )\__   __/(  ___  )|\     /|(  ____ \  (  ____ \(  ___  )(       ) |
| | (    \/| (    \/| (    )|   ) (   | (   ) || )   ( || (    \/  | (    \/| (   ) || () () | |
| | (_____ | (__    | (____)|   | |   | |   | || |   | || (_____   | (_____ | (___) || || || | |
| (_____  )|  __)   |     __)   | |   | |   | || |   | |(_____  )  (_____  )|  ___  || |(_)| | |
|       ) || (      | (\ (      | |   | |   | || |   | |      ) |        ) || (   ) || |   | | |
| /\____) || (____/\| ) \ \_____) (___| (___) || (___) |/\____) |  /\____) || )   ( || )   ( | |
| \_______)(_______/|/   \__/\_______/(_______)(_______)\_______)  \_______)|/     \||/     \| |
|==============================================================================================|
|    _______________   ____________  .____     ____ ______________.___________    _______      |
|    \_   _____/\   \ /   /\_____  \ |    |   |    |   \__    ___/|   \_____  \   \      \     |
|     |    __)_  \   Y   /  /   |   \|    |   |    |   / |    |   |   |/   |   \  /   |   \    |
|     |        \  \     /  /    |    \    |___|    |  /  |    |   |   /    |    \/    |    \   |
|    /_______  /   \___/   \_______  /_______ \______/   |____|   |___\_______  /\____|__  /   |
|            \/                    \/        \/                               \/         \/    |
------------------------------------------------------------------------------------------------

[SSE] - Serious Sam Evolution

Don't confuse with damned Revolution!

========================

This project has been discontinued! You may ask - Why?
Following explanation may look stupid, but it is truth.
Were made critical flaws in the beginning and during the development. This problems can't be simply fixed in context of this project.

Examples of flaws:

  • Changes like files relocation should be done in beginning. Not later. Relocation causes losing of Git history for each relocated file.
  • Entire codebase (I mean EACH file in the repository) should be pure clean, commented and documented before adding anything new.
    • In this project some parts are cleaned up, some - partially, some - not. And we have unreadable mass because code have different purity.
  • The Engine and Game should be split projects and be developed parallely.
    • Here is they are not.
  • Unstable code and really unfinished concepts should NOT be in repository before they are polished.
    • Here we have a lot of features, but each has different progress of implementation.

Hey! But even negative result is a result too! And it is not the end. So... It was simplier to start a new projects and work on them CORRECTLY from the beginning.


This is the unofficial fork of Serious Engine 1. This fork will be always synchronized with the official repository - https://github.com/Croteam-official/Serious-Engine.

This fork is created for extra features which are focused on improving gameplay stability and adding more opportunities for different kinds of content creation - mapping (with set of new Entities and improved existing ones) and modding (with new functionality added to the engine).

For some reasons these features are not added into Official repository. But I wish that in some day my project will become superior than Official.

Overall changes

  • Code cleanup and refactor in many places.
  • Engine's filesystem reworked to have more organized view.
  • More than 30 new entities for building maps.
  • Improved master-server support.
    • Now engine supports DarkPlaces protocol. So dpmaster open-source master-server program can be used instead of any ugly-coded GameSpy protocol emulators.
  • New gameplay options which you can setup during server startup. (TDM, mutators, etc.)
  • Improved, but not ideal support for widescreen resolutions.
  • Discord Rich Presence integration.

========================

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

  • Commons
    • DedicatedServer
    • Ecc The Entity Class Compiler, a custom build tool used to compile *.es files
    • Engine Serious Engine 1.10
    • EntitiesMP All the entity logic
    • GameMP All the game logic
    • RCon Used to connect to servers using an admin password
    • Shaders Compiled shaders
    • SeriousSam The main game executable
  • Editors
    • GameGUIMP Common GUI things for game tools
    • EngineGUI Common GUI things for game tools
    • Modeler Serious Modeler
    • SeriousSkaStudio Serious Ska Studio
    • WorldEditor Serious Editor
  • Tools
    • 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
  • Other
    • GameAgent The serverlist masterserver written in Python (requires version 2.X).
    • libogg, libvorbis Third party libraries used for playing OGG-encoded ingame music (see http://www.vorbis.com/ for more information)

These have been modified to run correctly under the recent version of Windows. (Tested: Win7 x64, Win8 x64, Win8.1 x64, Win10 x64)

Building

Setting up workspace.

Clone the repository into folder.

Do not use spaces, non-latin letters or special symbols such as ()+/[]' in the path to the source code. If you use described symbols/letters, you will have building errors because Visual Studio can not correctly operate with these symbols/letters. But you can use dash "-" and underscore "_" symbols!

IDE and compilier.

To build Serious Engine 1, you'll need Visual Studio 2013 or 2015, Professional or Community edition ( https://www.visualstudio.com/post-download-vs?sku=community ).

WARNING: If you will use Visual Studio higher or lower than 2013 then you can encounter bugs (rotating camera, crashes etc.). Also game compiled with newer or older version of Visual Studio may be network incompatible with game compiled in VS 2013.

Building the Lua library.

Once you've installed Visual Studio and (optionally) DirectX8 SDK.

  • Open Visual Studio Developer Console (you can find it in your Start menu).
  • Command prompt directory should be /Sources/luajit/src.
    • Use cd /d <path> command to navigate there.
  • Run msvcbuild.bat (located in /Sources/luajit/src) to build luajit library.
  • Once it compiled go into /Sources/luajit/src/.
  • Copy lua51.lib into /Source/Engine/.
  • Copy lua51.dll into /Bin/ and /Bin/Debug/ directories.

We don't include project files for LuaJit because you should compile it just ONCE. Also, making project files can make everything complicated if dependency should be updated.

Building the engine.

After that you can build the engine solution (/Sources/All.sln). Press F7 or Build -> Build solution. The libraries and executables will be put into /Bin/ directory (or /Bin/Debug/ if you are using the Debug configuration).

Optional features

DirectX support is disabled by default. If you need DirectX support you'll have to download DirectX8 SDK (headers & libraries) ( http://files.seriouszone.com/download.php?fileid=759 or https://www.microsoft.com/en-us/download/details.aspx?id=6812 ) and then enable the SE1_D3D switch for all projects in the solution (Project properties -> Configuration properties -> C/C++ -> Preprocessor -> Preprocessor definitions -> Add "SE1_D3D" for both Debug and Release builds). You will also need to make sure the DirectX8 headers and libraries are located in the following folders (make the folder structure if it's not existing yet):

  • /Tools.Win32/Libraries/DX8SDK/Include/..
  • /Tools.Win32/Libraries/DX8SDK/Lib/..

MP3 playback is disabled by default. If you need this feature, you will have to copy amp11lib.dll to the /Bin/ directory (and /Bin/Debug/ for MP3 support in debug mode). The amp11lib.dll is distributed with older versions of Serious Sam: The First Encounter.

3D Exploration support is disabled in the open source version of Serious Engine 1 due to copyright issues. In case if you need to create new models you will have to either use editing tools from any of the original games, or write your own code for 3D object import/export.

IFeel support is disabled in the open source version of Serious Engine 1 due to copyright issues. In case if you need IFeel support you will have to copy IFC22.dll and ImmWrapper.dll from the original game into the /Bin/ folder.

DiscordRichPresence binaries are not included into repository. You can take compiled binaries here ( https://github.com/discordapp/discord-rpc/releases ), Just put discord-rpc.dll into the /Bin/ folder.

Running

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 engine folder (/Content/Base/). You can buy the original games on Steam, as a part of a bundle with Serious Sam Revolution ( http://store.steampowered.com/app/227780 )

WARNING: If you will try to run original The First Encounter levels or custom maps made for TFE then you need to resave them in the Serious Editor 1.07/1.10 or you will have not working scripts on levels.

When running a selected project, make sure its project settings on Debugging is set to the right command:

  • For debug: $(SolutionDir)..\Bin\Debug\$(TargetName).exe
  • For release: $(SolutionDir)..\Bin\$(TargetName).exe
  • And its working directory: $(SolutionDir)..\

Common problems

Before starting the build process, make sure you have a "Temp" folder in your development directory. If it doesn't exist, create it. SeriousSkaStudio has some issues with MFC windows that can prevent the main window from being displayed properly.

License

Serious Engine is licensed under the GNU GPL v2 (see LICENSE 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
  • LuaJIT (located in Sources/luajit) by Mike Pall

About

***Discontinued!*** We are working on a new project which will take best from this one!

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 65.4%
  • C 30.3%
  • Lua 1.7%
  • Clarion 1.1%
  • Objective-C 0.6%
  • Yacc 0.6%
  • Other 0.3%