Project Sulphur

Project Details

Type Student project
Time span 32 weeks (2017-2018)
Team size 15
Main role Physics Programmer
Notable tech Custom engine, PS4, Doxygen, Bullet

Project Summary

Project Sulphur is a general purpose game engine, built from the ground up by students from NHTV Breda for both Windows and PS4. It comes with an editor built in .Net WPF and a unique feature named "Sulphur Rewinder", which allows the developer to rewind the game in real-time. Other core features include a data driven entity component system, multiple graphics APIs (DX11, DX12, GLM), Lua scripting, networking, and support for multiple physics libraries.

My contributions

In the preproduction phase of the project, I contributed to the research and design for the physics interface. As we opted to support both PhysX and Bullet, we required a layer of abstraction suitable for both implementations, without needing additional effort to switch between them. Research included determining a common denominator between the physics libraries, and analysing common features and approaches used in existing engines.

In the production phase I implemented this design with my peer and was initially responsible for the PhysX implementation. Later in the project, I took over responsibility for Bullet. During this time I communicated closely with my peers to ensure their required features were prioritised, and that the physics simulation was stable and bug-free.

In some cases, certain features we aimed to implement in our engine had limited support by the physics library, in which case I created custom implementations for them. At the end of the project, our physics system supported the following: Various colliders (primitives, convex/concave meshes, compounds), physics materials, callbacks, collision filtering, raycasting, and constraints.
Due to the licensing for PhysX 3.4, only the Bullet implementation is available on Github.

Project Sulphur demo by Hilze Vonck