Category Archives: Development

Clover’s Toy Box 2017-2018

Clover’s Toy Box development posts for 2017 and 2018. I originally shared these privately but now I’ve collected them all to publish.

Clover’s Toy Box (as in Pandora’s box) is a project to develop a game engine for the successor to Turtle Arena and another game. The engine, named after Lycoris radiata subject to change to a common name, is expected to expand on ideas and goals from my Spearmint engine (albeit without Quake 3 compatibility). Clover’s Toy Box is currently being developed in private as proprietary software.

Continue reading Clover’s Toy Box 2017-2018

10 Years of Quake 3

Lycoris radiata
Red spider lily, licensed as CC-BY-SA 4.0 by Kakidai.

October 10th 2018 is the 10 year anniversary of when I started modding ioquake3. It was my third attempt at creating a Ninja Turtle fangame within a three year time period. I intend to release Spearmint 1.0 as the end result of 10 years of working on the Quake 3 engine.

On October 10th I’m planning to cease development on my projects based on the Quake 3 engine (Spearmint, Turtle Arena, Lilium Voyager, flexible HUD mod for ioq3, …) and resign from being a ioquake3 maintainer (since 2011). I’ll no longer be following ioquake3 development or providing support on the ioquake3 forum.

Continue reading 10 Years of Quake 3

Coming this October

“There should be a new Turtle Arena 0.7 release in the near-future, hopefully next month.”
“hahahahaha. By ‘next month’ I obviously meant 2017.”
—November 3, 2015

I am planning to release Spearmint 0.5 and Turtle Arena 0.7 on Friday the 13th of October 2017.

Turtle Arena 0.7 is does not fix any issues with the melee attacking or overall design. It restores a few aspects of the game to earlier versions (before 0.5.x started changing the game for EBX), fixes some issues, and inherits many improvements from Spearmint including better compatibility with recent operating systems. It also unintentionally makes all the levels brighter because I fixed the external lightmap support… I don’t expect serious development to resume but new releases will probably be more frequent than every 5 years after this.

EBX was originally a continuation of Turtle Arena without Ninja Turtles (or any other playable characters due to lack of 3D models…). The small differences of the existing EBX code/data are being reintegrated into Turtle Arena. The EBX code/content repositories will be deleted. This will make Turtle Arena development easier as currently I work on EBX then merge the changes into Turtle Arena.

Whether EBX will be a separate game based on Spearmint or uses a new engine is unknown. Though there is a high probability EBX will never be created at all. At this point EBX is little more than a title for a game with Sonic style single player / co-op, Quake 3 like first person shooter multiplayer, hot pink blood, electronic dance music / hardcore techno, and a human character named Clover.

End of Year 11

I am nearing the end of my 11th year of game development. I’ve spent about a 2 years working with Sonic Robo Blast 2 (Doom Engine), about 3 months with SDL 1.2 / OpenGL 1.x, about 8 years with Quake 3, and whatever the last year was.

I’m currently working toward making a new Spearmint release and hopefully a new Turtle Arena release in the next few months.

To clarify my post from last month; My plan to rewrite/overhaul Spearmint was replaced with making a new engine. I don’t have concrete future plans for Spearmint or Turtle Arena. However that does not mean I am abandoning them.

My Toy Box engine project is planned to rewrite the engine core, add and expand upon features I’ve added to Spearmint, and add new features I’ve wanted in Spearmint for years. This is essentially my plan to “rewrite/overhaul Spearmint” but starting from scratch and dropping Quake 3 data compatibility. Though, technically it’s just a game engine aiming to have a similar feature set.

New things I develop in my Toy Box engine project may be merged into Spearmint. For example, Toy Box currently runs the unfinished Alternate UI I made for Spearmint. It’s inflexible and kind of a mess. If I made a new UI it will most likely go into both Toy Box and Spearmint.

I don’t know what’s going to happen with Toy Box and Spearmint in future. What I do know is that spending another 8 years fixing small issues in Quake 3 sounds pretty uninteresting.

Engine dev: yes; Game dev: no, yet planning more games

Spearmint engine development is still happening, development on Turtle Arena and Extraordinary Beat X is on hold. Plus I’m probably going to port the game code for RTCW and ET to Spearmint before focusing on Turtle Arena or EBX.

It will probably be `a few’ more months before I focus on game development instead of engine development.

Continue reading Engine dev: yes; Game dev: no, yet planning more games

EBX GDD, concept art, Turtle Arena info

I posted some EBX info: some concept art, game design document, some character info. See

EBX hasn’t been progressing much, though it is finally a separate project from Turtle Arena on github and has a few small differences. Turtle Arena is also on github now as well, following ioquake3 which moved to github in January 2013.

Interestingly the main changes made after EBX and TA were separate were to TA, which now has the pre-TA0.6 icon at loading screen (TA0.6 icon was always meant for EBX) and has katanas and sais on CTF flags similar to TA 0.2 (instead of EBX character icons). TA’s neutral CTF flag now has a shuriken on it again too. Splitting off EBX stuff will make TA a more enjoyable consistent experience.

There should be a new Turtle Arena 0.7 release in the near-future, hopefully next month. Mainly need to record some new announcer lines. After listening to the announcer lines and realizing how inconsistent they are, I’m probably going to re-record them all. I will be using a Blue Yeti USB microphone, instead of a ~15 year old Labtec AM-242 microphone as I have in the past so should be better audio quality too.

Turtle Arena now plays sounds (well, they’re missing right now) for red and blue team instead of your team and the enemy team. For example now Turtle Arena will announce when red and blue bases are under attack in the Overload game mode, instead of “your base is under attack” which was ambiguous in splitscreen with players on red and blue team. Same type of issue with team picked up the flag sounds. Announcer will now specify which local player picked up a CTF flag in splitscreen “Player [1|2|3|4] has the flag”, instead of “you have the flag” which is ambiguous. These changes were made December 14, 2012 (Turtle Arena r2022), longer ago than I thought…

Long Over Due Status Update

It’s been awhile since I’ve posted anything about the projects I’m working on, due to life happenings and well, working on the projects.


ioq3ztm, the engine project I started by porting Turtle Arena features to a new ioquake3 source, has been renamed to Spearmint. It easier to say and makes it clearer that the project isn’t limited to ioquake3 or my contributions.

The license for Spearmint has been changed to GPLv3+ (with additional terms from the Return to Castle Wolfenstein, Wolfenstein: Enemy Territory, and Doom 3 source releases). The reason is to allow code to be included from the previously mentioned games. I dislike the fact that there are additional terms (as I had mentioned before), but the terms themselves don’t bother me. Now that Doom 3 has been released with the same license, it’s less of a concern to me. (I wouldn’t avoid using the Doom 3 engine because of it’s license.)

I’ve added various new system calls to the moding APIs in Spearmint from Return to Castle Wolfenstein and Wolfenstein: Enemy Territory, from various miscellaneous file access (rename, delete) to global fog and water fog support. (I’ve spent to much time with the fog code, but still have some things left…)

In the process of porting features I’ve been look at how things are done, not just porting everything over line for line. Global fog and water fog are programmed quite different in Spearmint, though the actual fog rendering is basically the same. In RTCW and WolfET there is a system call to set the fog, trap_R_SetGlobalFog. It has an option to restore to default global fog and set a linear fade duration. In Spearmint there is four player splitscreen. I want each player to have separate global fog, so doing it the RTCW/WolfET way wasn’t appealing. Instead I added a trap_R_GetGlobalFog to get the default global fog and pass the fog values in the refdef_t (a data structure that holds info for rendering the viewport).

To make things more confusing, RTCW and WolfET have completely separate global fog methods. I’ve tried to combine them in Spearmint, though the RTCW GL_FOG method is currently broken. WolfET requires the map to be compiled with global fog, Spearmint works around this adding global fog at run time allowing global fog / water fog on any map.

I fixed a TODO from Return to Castle Wolfenstein, yay! Now “waterfog R G B 0” (where R, G, B are numbers in range 0.0 to 1.0) in a shader uses global fog density / depth for opaque as intended (noted in both the RTCW code and shader files). Spearmint doesn’t just merge the code bases, it aims to provide the same (or improved and/or expanded) features. /end-marketing-campain

I’m planning to have a released version / long term support at some point.

Turtle Arena

The license for Turtle Arena (development version) source code has been changed to match Spearmint. The Wolf:ET weather effects (present in Turtle Arena 0.4, removed in 0.6) can be readded now without worrying about licensing.

Development has slowed down in the Turtle Arena code repository as I’ve been working on Spearmint lately. I’m thinking about doing a Turtle Arena 0.7 release after I merge all (or just about all) of the Turtle Arena engine changes into Spearmint.


Progress has been made on the game design for Extraordinary Beat X (the successor to Turtle Arena). The four main playable character designs are almost considered done. Though I haven’t thought much about the design in the last few months.

Untitled FPS

I’ve been thinking about putting together data for a Q3A-like game using Spearmint. Not much to say about it currently.


I fixed various bugs, including player model field of view distortion in widescreen UI and “follow <name>” command not finding clients whose name begins with a number.


Q3Rally is a racing game based on ioquake3. I fixed loading custom license plates (so names on license plates work again) and made the mini map always be top down view (some times the car goes spinning through the air, mini map rolling so you can’t see the map is not cool). Updated it to the latest version of ioquake3 and did some other stuff as well.