This month, Sonic Robo Blast 2 celebrates its 20th anniversary. Sitting down to write this post I don’t even know what to talk about. It’s been so long and I’ve spent so much of my life playing or being involved with SRB2. To start, though, we’re celebrating with a preview trailer for 2.2, and I’m sure you want to see that way more than any nostalgic ramblings I can come up with, so let’s get right to it:

We’ll let that sink in for a bit. It’s hard to overstate how much the scope of the project has expanded over the years. When I joined Sonic Team Jr. seventeen years ago, SRB2 had already been in the works for three years, and every single clip of that trailer would have been considered impossible. It’s truly hard to overstate just how much the project has expanded from the original scope, due to advances in the code base and just a stubborn desire to prove everyone wrong.

Originally, SRB2’s intention was to have only Sonic running and jumping through small stages. Maybe we’d even get him rolling! The stages were so small that it’s really hard to describe. The first version of GFZ1 had the end sign where the first Star Post currently is. GFZ2 was from there to the tunnel entrance. Yes, really. This is why very early in the project there were suggested final releases in 2000 or 2001. The game’s scope and size has become absolutely enormous compared to the early days, through a long series of advances that have utterly changed what the game is capable of. While I originally thought of going through a history of the game itself, you can find out more than I could ever cover here on the versions page of the wiki. Instead, I’m going to talk about just a few of the expansions of scope and features that have changed SRB2 from that original intention to what we have today.

One of the first significant scope increases was added as the game’s basic coding was still being made. Originally, SRB2 was planned to include only Sonic. SRB1 included only Sonic with the exception of a couple of stages where you played as Knuckles, and their gameplay was identical. XMas 0.93 introduced Tails, and also introduced his ability to fly. Tails was introduced with mostly garbage sprites, and Knuckles was introduced later with even more nonsensical sprites until the affectionately known “Ugly Knux” model-based sprites were made. The sheer introduction of multiple characters was a huge change that still continues to add variety (and work to do) to this day. Even ignoring the popularity of custom characters, SRB2 would be a very different game if it featured only Sonic.

While early versions of the game supported multiplayer, it wasn’t truly featured heavily until Demos 2 and 3. Introducing match, tag, and race mode, these versions kickstarted a much larger community than the game had previously. Back then you had to use the command line or a launcher to even play multiplayer, but a lot of people still gave it a shot thanks to the introduction of IRC chat rooms and other methods of finding people to play with. The specifics of all three modes were also incredibly different. Match and tag modes had no weapons, only basic red rings, and tag had a “No Tag” zone in the stage where you could be immune to being tagged, like a safe spot in real life tag. Race mode wasn’t a straight race, either, it was what we currently call competitive mode, the 2P mode from Sonic 2. Multiplayer has expanded in scope a lot on its own since, but even just coop requires a lot of mapping support to make sure players don’t get stuck. While in the final demo cycle we ended up spending way too much time on minor multiplayer features, there’s definitely something to be said for helping your friend through a particularly hard section.

Modding was a thing from the very start, but one thing SRB2 didn’t handle originally was map settings. In order to make a custom MAP01 not display “Greenflower Zone Act 1” at startup, you had to make a custom graphic with the name of your map in the font. Skies and music similarly had to be overwritten. Final Demo finally introduced level headers, fixing this problem. The format would be horrifying to modern level designers, though. Instead of using variables, the header had a fixed line structure with 8 lines. In order: zone name, act number, force skin, music number, next level, gametype (as a number, of course), weather, sky number. This was then inserted as a text lump named “MAPxxN”, where xx was the map. That was it. There was no way to change the fields, and yes you had to type 255 to disable force skin every time. Even with these limitations, the introduction of level headers dramatically increased the amount of custom levels being made, as it made some previously very tedious stuff quite easy. It also finally made custom level packs practical to create.

Another dramatic engine improvement in the final demo cycle we barely talk about is the blockmap generator. One of the first map size limitations a level designer will come across in Doom’s map format is the blockmap, which is created by the nodesbuilder and has a limit of 128K. To give you an idea how strongly this limits map size, THZ1 in 2.1 is just shy of 90K. Instead of requiring the blockmap to be generated by the nodesbuilder, SRB2 could now build one on its own at runtime, and in a new format that didn’t have the same filesize limitations. Without this feature, our stages couldn’t possibly approach the size they do now. Even RVZ1, one of the older and smaller maps in the game, breaks this limitation.

Version 2.0 brought a ton of things to the game overall, but probably the most dramatic is the introduction of proper zone gimmicks. Most maps made for 1.X were pretty basic, and a lot of stages would work just as fine if all the textures were swapped from one theme to another. 2.0 featured waterslides, moving ropes to grab onto, and gravity reversals. Each zone finally started to be fleshed out as a concept beyond just “factory level, water level”, and gameplay finally started to feel significantly different from map to map. This change is even more obvious when going back and trying out older mods, and noticing that basically all that changes between the zones is what texture hurts to land on. This has dramatically increased as we’ve continued work, with 2.1 expanding on it especially in improving THZ and CEZ’s gimmicks, and 2.2 will continue this even more, introducing more gimmicks, large and small.

Finally, even a retrospective would be incomplete without mentioning slopes, which are already changing the game in modding. The warnings of old that “introducing slopes would force us to rework the entire game” certainly came true. 2.2’s release was likely delayed by at least two years by the introduction of slopes. That doesn’t mean it won’t likely be worth it in the long run, but we apologize to all those that were looking forward to just a simple ACZ2+3 release back in 2015. The trailer above doesn’t even come close to touching how much slopes have completely changed SRB2, but if we get to a 30th anniversary I’m sure we’ll look back at all this work and laugh.

I’d like to leave you with another YouTube link, but in this case it’s not a video. It’s an audio preview of another expansion of scope: the GFZ1 theme from our updated soundtrack. Give it a listen and I hope you’ll join us for many more years to come.