Project Sulphur

Project Sulphur is a 3rd year university project at NHTV. For this period we had 32 weeks to create an engine from scratch. The engine runs cross-platform on both Windows and PlayStation 4 and has utilities like an editor and asset processor.

During the course of the project I was both build mangler and tech lead. Aside from these main tasks I was responsible for automatically generating bindings that could be used in the scripting environment.

Build mangling
The project uses CMake for project generation. I also made a custom tool that generated a PlayStation 4 project alongside of the Windows project using CMake. This made it easy for developers to switch between the two platforms.

As most material here is under NDA, I cannot be too explicit about the build mangling that I’ve done; but it definitely improved our development cycle by a lot.

Most importantly, there are banners that can be uploaded through a web interface which are randomly shown in the tool!

Tech lead
To keep the code base coherent I’ve written both a coding style- and structure guide. These guides are adhered to by fellow team members. The coding style guide is based on the Google C++ Style Guide albeit with some modifications.

Scripting
The engine uses Lua as its scripting language. To bind C++ code to Lua, we had a bindings interface; however, these bindings were difficult to maintain manually. I’ve written a custom tool using Bas Zalmstra’s header-parser

The bindings are generated from annotated C++ code, using SCRIPT_CLASS(), SCRIPT_FUNC(), SCRIPT_ENUM() and SCRIPT_NAME() macros.

Gameplay
Lastly I made the entire game together with Joren Bolhuis, which made it possible to run around with some crocodiles over a map. It wasn’t actually much of a game, but we had fun implementing some of the silly features in there. You could eat fish, which made you grow.. And.. Grow. In the end, as the game wasn’t very succesful, we made it more into a joke where we took the popular game Fortnite and included some references to that. Like gliding into the playing field, opening chests with fish and even emotes to boot. I also animated the crocodile in 3DS Max the best I could..