The CARRR engine was made over the course of 16 weeks by a small team, of first 5 then 7 programmers. The engine is written in C++ for both Windows and PS5.
The demo we build using the engine is inspired by arcade rally classics like Sega Rally, but with more modern rally sim car physics
My main focus throughout the project was physics.
I first integrated PhysX into our engine, but we found out that there was no PhysX build for Prospero yet, and we decided that porting the PhysX source ourselves was too much work.
So, I implemented Bullet3D instead and built my custom car physics on top of that.
The car physics uses raycasts for the wheel collision. On top of that, I implemented a bunch of features:
* Suspension system
* Gear shifting with a simulated clutch
* Simulated engine with RPM-based torque curve and engine drag
* Body drag / lift model based on car orientation
All of the values that these systems use are tweakable during runtime, using the in-game debug menu. And the changes can be serialized.
I also spent a lot of time working together with our other engineers on architecting the engine and setting up the project structure in Visual Studio.
Our goal was to ensure it works cross-platform without duplicate code while being easily usable in a game project.
This project was the first time I worked with many people on what, at the start, was a very small project. So there were a lot of branches that changed the same files, which was very time-consuming to merge, review, and test. For me, this highlighted the benefit of starting with as few people as possible when building the foundational tech for a project and only bringing more people on when work can be more easily isolated. I also learned a lot about the importance of planning your engine structure and update order. But most of all I learned a ton about cars and how they work under the hood. :)
Click the email address to send a message. I look forward to hearing from you.