So some time ago I wrote this long post about every official re-release of Cave Story. It was fun! Telling people about the changes and all the details they add is cool, and I'm glad to bring attention to them. I also have a couple corrections to make to that post, namely, I completely forgot that the DS screen is smaller than the base resolution of freeware Cave Story and thus the game doesn’t render fully! Sorry to omit that.
But of course, that's nowhere near close to covering all the ports.
I've seen people call Cave Story "indie DOOM". If it has a screen, chances are someone has ported Cave Story to it, by the efforts of several fans across the world and in so many platforms that this list is certainly not complete. So, let's go and take a look at them!
I'd like to thank people in the Cave Story Modding community for providing me with info and fact checking for this, as well as cavestory.org for containing a pretty comprehensive list. When possible, I will provide an archive link to the different engines and projects made with them.
NXEngine
NXEngine is an open-source re-implementation of Cave Story created by Caitlin Shaw (rogueeeve) in the late 2000s. Its website credits it as early as 2010, with the earliest documented build being from 2014. It is a mostly-from-scratch rewrite of the original freeware version, with some added features such as a debug console.
This is probably the most well known unofficial remake of Cave Story. It has made its way into an absurd number of consoles (check this list from cavestory.org to get a good look at it!), and several ports are at least partially based on it. It's also bundled in RetroArch and easy to install on Linux, which made it the only way to play the game for a while in most Linux distros. It's also kinda bad! It has plenty of inaccuracies and errors compared to the original. Despite this, it stays a strong part of the casual CS experience for many.
Notable offshoots
- NXEvo: The original NXengine is largely abandoned for a lot of complicated factors. NXEvo is the currently active fork, and it is a general improvement across the board. Check it out here: https://github.com/nxengine/nxengine-evo
- NetXEngine: This one, itself a fork of NXEvo, adds online multiplayer! Yes, you read that right. No, it’s not even the only multiplayer compatible version you will find on this list. The Project seems to be inactive at the moment, but hey, it’s worth looking into anyway: https://github.com/Yackerw/NetXEngine
Cave Story Engine (CSE)
CSE is, surprisingly, not related to Cave Story Engine 2. This engine was developed by Noxid, a prominent member of the modding community, as an offshoot of his mod King: Strife and Sacrifice. It is notable for being the first Cave Story engine to support layers, allowing for much more detailed environments and backgrounds compared to the original game. It was also developed for compatibility with Booster’s Lab, one of the main modding interfaces for Cave Story (which was also made by Noxid).
Work on the engine was eventually abandoned, and most of the focus shifted to BL, which is still widely used.
You can see the mod and the engine in action today, although I’m not sure how well it will work in modern machines, considering this mod was being worked on before Cave Story got ported to WiiWare.
Geobox
Now for our first unreleased project, the Geobox engine was a made-from-scratch engine in C++ by Fluffbal in 2015. Some early betas of the engine were made available to some notable modders of the time, but there was no public release. As such, we know very little about it, but what we do know seems to indicate that the engine was mostly rewritten from scratch, had very little in common with the original, and was filled with proprietary formats and such. Funny enough, this would have made it worse for modders, which were the main target of this engine. Who wants to see CS with raycasting?
Reconstructing Cave Story
In another place, unrelated to all of this, a video (and eventual playlist) got uploaded to YouTube. This playlist, created by Christopher Hebert, serves as an introduction and lesson in the process of making a game engine… by recreating Cave Story! The playlist got up to 71 episodes, and you can find the code here: https://github.com/chebert/cavestory-screencast
I honestly didn’t know about this work before writing this post, and most in the modding community didn’t know about it either! Judging by snippets of gameplay in the youtube videos he’s made about the development process, it seems pretty well done. I’ll have to play it someday.
This specific example is here as a stand-in for all other similar remakes done as implementations for educational or hobby purposes. I found at least three different github repos that are based on this video or based on a completely separate attempt at this. Cave Story is a rather simple game, and as such it makes for an excellent tool to learn how to make a game engine. Its content and scripting language are well documented, and getting it going can be done with enough ingenuity.
Cave Story Recoded
Back to the modding community, in 2019 work got started for a recode/remake of the game. This effort, with the support of several known developers and reverse engineers, took quick shape and got pretty far into development.
However, another breakthrough would happen soon.
In 2018, a friend of Pixel released the code for the ORGanya sound engine. For those unfamiliar, this is the music engine and tracker created by Pixel in 1999 to make the music of Cave Story. It is still available today, under BSD-3 license! https://github.com/shbow/organya
While the modding community had had access to several details about the game’s source files, thanks to the official Linux port of Cave Story developed by Peter Mackay in 2007 being compiled with debugging symbols, they didn’t have enough of a reference for Pixel’s coding style and conventions to move forward with a full decompilation. The release of proper source code for a piece of code that definitely was somewhere in Cave Story was enough to kick off full time work on a reverse engineered version, landing us on the most important work yet.
Cave Story Engine 2 (CSE2)
In 2019, Cave Story Recoded’s work was abandoned, and Cave Story Engine 2 was released. Its aim (or at least the aim of the accurate branch) was to provide a 1:1 bytecode version of the original doukutsu.exe executable. Its portable branch aimed at making the game as portable as possible, and several other versions existed on top. This version would quickly gain popularity among modders, even those who preferred more traditional modding methods (such as hex editing) as having a reference for the game code made assembly hacking significantly more feasible.
I was tangentially involved with this project! In 2020, I found it as I was looking for a way to mod the experience doritos out of the game for a challenge run. Later, the ability to do more stuff with this led me to making Cave Story: Tweaked, which I won’t talk much about here. When the enhanced branch was officially discontinued, Tweaked was endorsed as its spiritual successor.
But sometimes we can't have nice things. In November 2020, Nicalis filed a DMCA takedown against all known repositories of CSE2 and all related forks on Github, officially taking the project down. This was big news, and a lot of misinformation was spread at the time. I am quoted in several articles about it! It was a scary time.
Of course, just because this happened doesn’t mean you cannot find the source code. It is very much still there, both in use for modders and enthusiasts alike. I’m still maintaining Tweaked, and as far as we know, Nicalis won’t attack unless we distribute source code again. CSE2 is a labor of love which I’m glad I have been able to work with, and in turn, it makes me happy to know I’ve allowed people to enjoy this game that means so much to me and so many others.
Ok no this ain’t wrap up time yet iku, get back to listing stuff.
doukutsu-rs
In 2022, Alula started work on a full reimplementation of Cave Story in Rust, the cool kid’s C. The project is still going! It is notable for being available on iOS and having some experimental work for Android done. Alula is also notable for having their work noticed by Pixel himself, and they would eventually help port Kero Blaster to Android!
You can check it out here https://github.com/doukutsu-rs/doukutsu-rs
I’d also be remiss to not mention Cave Story: Encore, a currently in development hi-bit remake based on d-rs. Check it out here: https://csencore.com/
Cave Story Multiplayer
In yet another multiplayer project, Clay Henson has been working on his own implementation of Cave Story with multiplayer support. Sadly, this one seems to be strictly closed source at the moment (I think it’s because it works off CSE2 and the author doesn’t want to risk it). It seems to be fairly popular tho! check it out https://cavestorymultiplayer.com/index.php
This is still an incomplete list. I avoided mentioning all the different ports that share codebases with the stuff I’ve listed here. The wonderful Mega Drive port is largely based on NXEngine-evo. A recent port for the Vita was based on CSE2 (and it helped me get Tweaked running on Vita too). There’s a PICO-8 proof of concept demake that only does First Cave but is still a notable effort. There’s a GameMaker build. CSE2 was ported to ROBLOX earlier this year. There’s a “port”/demake of sorts for the TI-83 calculator.
I literally could not make a comprehensive list of all Cave Story fan remakes and ports. I found three different ports of CSE2 alone in the last few days to platforms I didn’t even know existed. Someone could be porting Cave Story to Rivals of Aether as we speak.
Honestly, I keep feeling that people don’t love Cave Story enough, but every time I’m just proven incredibly wrong. It humbles me, as someone who works on her own little Cave Story port, to know that I’m not even close to being the only one. I often feel that as Cave Story fans we despair a bit. It’s easy to look at the current state of the game, at the shittiness of its publisher, and feel like the game is being left behind. Nothing could be further from the truth.
Cave Story will outlive us all. Its legacy is forever embedded in the soul of games, small and large, to this day. And we’ll keep putting it in new places, for as long as we keep making it so.
