Unity as the level editor
A custom engine with no editor means levels written by hand, and we had one school project to build both an engine and a game. So I made Unity the editor instead. Designers built levels in Unity with our own components: a manager, a player controller, rigidbodies and colliders that mirrored the C++ ones field for field.
A custom exporter serialized the scene, and the engine loaded it and rebuilt every object by type name. The designers kept the tool they knew, and we never had to write an editor.
A physics engine from scratch
Orb is a physics puzzle game, so the physics had to be solid. I wrote it myself: rigidbodies with gravity, drag, bounciness and friction, AABB collision with continuous collision detection so fast objects never tunnel through walls, triggers for the puzzles, and raycasts.
Serialization handles polymorphic objects and shared pointers, so the same code saves scenes and prefabs and loads what Unity exported.
The game on top
On the gameplay side I wrote the character and camera controller, the trigger logic that drives each puzzle and the orbs themselves. The designers planned every room on paper first, and those plans became Unity scenes, then levels in the engine.
Built with Leon Brands, who wrote the renderer. We went on to build Tristeon together.