Clover’s Toy Box (2017-present) is a project to develop a game engine from scratch and eventually original games. It expands on ideas and goals from my Spearmint engine (albeit without Quake 3 compatibility). Clover’s Toy Box is being developed in private as proprietary software.

Features

It supports 3D rendering, high quality text using Freetype 2, collision, server/client networking, audio mixing, and mouse/keyboard/gamepad input. (None of these are complete.) It also contains a model viewer using Qt 5 and the same renderer as the game engine.

The area with the most development is the renderer which (mostly) supports Quake 3 materials, levels, and models. Though I plan to create new formats to use in released games.

It can run in a web browser and connect to game servers. I implemented WebSocket support in the server based on the specification and validated it using the Autobahn testsuite.

There is development in many areas but the main focus is lower-level systems. It’s very incomplete from a player perspective. It’s a slow burn project that requires a lot of patience to build it up from nothing.

Platforms: Windows, Linux, macOS, Android, Web Browser, Wii (homebrew), FreeBSD.

Technologies: C programming language, Simple DirectMedia Layer (SDL), OpenGL (desktop, OpenGL ES, and WebGL), C++ and Qt 5 (for model viewer), GNU Make, Git.

See the Toy Box blog posts for progress updates.

Future Plans

I want to finalize this phase of renderer development and move my focus to networking and how to create 3D models and levels.