Serious Engine - MacSourcePorts/MSPBuildSystem GitHub Wiki

Information

Source Port Serious-Engine
Game(s) Serious Sam: The First Encounter, Serious Sam: The Second Encounter
Homepage https://github.com/ptitSeb/Serious-Engine
Source Code https://github.com/ptitSeb/Serious-Engine
Build Type: Mac Source Ports Fork
MSP Fork https://github.com/MacSourcePorts/Serious-Engine
Port Type Original Source Code
Project Build Strategy Project doesn’t do Mac builds
Source Code Strategy Source available
Projct Release Strategy No releases
Mac Support Status No official Mac support
Build System CMake
Programming Language(s) C/C++
Data Situation Needs data to be in ~/Library/Application Support/Serious-Engine/serioussamfe for First Encounter, and ~/Library/Application Support/Serious-Engine/serioussamse for Second Encounter. Also has different builds for the different games.
Homebrew Requirements brew install sdl2 libogg libvorbis

Notes

After noticing someone posting working builds, albeit unsigned loose executables, I finally figured out the deal. Those loose executables worked as long as they were in the Bin subfolder of the game data.

To get the game to bundle I had to figure out how to have it load the dylibs it needs (libEntites.dylib, libGame.dylib and libShaders.dylib) from the app bundle but load all the other files elsewhere.

Also, like wrathplaces, it loads in the ogg/vorbis libraries but does not link to it so you have to have them there, lipo'd and signed, but since they're not linked in dylibbundler doesn't grab them for you.

These libraries are, for right now, in the Resources folder which is what the SDL method SDL_GetBasePath() returns but that's not best practice. But for now I'm using it since I suck with strings in C/C++.

MSP Fork Differences

Sources/Engine/Base/Unix/UnixDynamicLoader.cpp
Sources/Engine/Engine.cpp
Sources/Engine/Entities/EntityClass.cpp
Sources/SeriousSam/SeriousSam.cpp