It’s 2.1-ception! When will it end?!?! We know you love us more than Smash Bros., so have a shiny new release on our backs!
Major impact changes:
New default controls: We revised our default controls so that our new players may play more effectively. They default to first-person style movement controls using the W-A-S-D keys, while the camera is controlled using the mouse or arrow keys. Read How to Play for a short explanation of these controls.
If you are upgrading from an existing SRB2 installation, you will keep your old controls.
Improved Gamepad Support: It is now entirely possible to operate SRB2 on a gamepad alone. Analog sticks are now active on the menu. We improved their sensitivity to be less slippery in-game. We also allow you to map any button to pop up the system menu, take a screenshot, or make a GIF. Just don’t forget to set your button controls in the Options.
PK3 addons: SRB2 now supports PK3-format addons! PK3 is a compressed format that allows addon authors to use a folder structure that organizes graphics, Lua, SOCs, maps, and everything else into one package. Now addons can be smaller, more organized, and more future-proof for later requirements.
First 64-bit release: We are now releasing SRB2 in both 32-bit and 64-bit formats. For the most demanding content, you may enjoy up to a 64% performance boost! Netgaming is compatible between 32-bit and 64-bit players. Most, if not all addons will work with the two versions.
If you have a computer built after 2004, you can most likely run the 64-bit release.
Linux and macOS releases: Cross-platform is back in style! We have an APT repository link for Ubuntu and Debian users, while macOS users can download a DMG install package. Again, these versions are netgame-compatible and 99% of addons should work as intended.
OpenGL performance: OpenGL has been made more performant and has received a few visual fixes. Large maps (such as Aerial Garden) now render more reliably. Screenshots and wipes now work correctly on non-native resolutions.
Lua additions: Lua now has support for slopes, including P_GetZAt() to get the Z position of a sloped point. You can use searchBlockmap to look for objects within proximity. For HUD, hud.enabled() and v.getLocalTransFlag() are added. There is now a PlayerQuit hook, as well as a variable to check for Ultimate Mode.
No more SRB2DD: As of this release, we are dumping the old srb2dd.exe. We have kept it for compatibility reasons in the past, but we did not support it. A significant bug has now prevented us from releasing it further. Please use srb2win.exe from now on — it is more stable and it has the newest fixes.
This release has a large collection of individual bug fixes, so go after the jump to read them!
Over the past couple years there has been a major mod in the works by a number of community members, called SRB2 Kart. It is a fantastic mod that is worth trying out.
It is primarily a multiplayer mod, but there is a 1P mode that has time attack ghosts. The mod is just as customizable as SRB2 itself, so anyone interested in trying to make levels, characters, or anything else for it is welcome to do so. I highly encourage trying out this mod.
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.
Belated happy new year, and thank you for your patience. There wasn’t going to be another of these, but then Windows decided to update and break all our 2.1.19 executables, so guess we’re just going to have to deal.
* Changes with major impact:
* IMPORTANT: SRB2 now detects mouse movement in a much better way. If you’ve been having issues since Windows 10 last updated, this is for you.
* Fixed downloads from servers being dropped whenever someone new attempted to join.
* Fixed several minor compounding issues with resynchronisation in netgames, which may have significant effect.
* Fixed a crash when removing thinkers (mobjects and the like) whilst running thinkers.iterate() in Lua.
* Fixed a crash caused by Lua scripts calling CV_RegisterVar on existing console variable names.
* Modified Lua’s “PlayerSpawn” hook to call its associated functions even if the player spawned at a checkpoint instead of a player start.
* Fixed Linedef type 414 crashing the game if an invalid sound number was supplied somehow.
* Linedef type 8 (Special Sector Properties)’s ability to trigger sector specials by touching sector edges (turned on by the “Peg Midtexture” flag) now works as intended.
* A restartaudio function is now available. If you change audio output device mid-game, run this command in the console and things should be taken care of.
* This isn’t really a code-side thing, but the person you should contact to get a Mod ID in future should be Rob.
* Changes with minor impact:
* Once AGAIN we have tamed the silly springs so they no longer try to jump with the player. They are now only solid to anything they can’t launch.
* Fixed Record Attack demos not recording changes to the player’s scale/size properly, which resulted in ghosts disappearing sometimes if they attempted to grow bigger.
* You can no longer kick or ban players outside of netgames. This means you can’t kick Tails out in Sonic & Tails mode in Single Player, sorry. =) Likewise with Player 2 in splitscreen mode.
* Fixed the Lua function P_FloorzAtPos not considering slopes for normal floors.
* Fixed save games for a custom mod not saving to custom home folder.
* Fixed Linedef types 305-307 (the Character Ability trigger linedef specials) being completely broken.
* Fixed FOFs causing Each Time effects on the ground below to fire.
* Fixed air-bobbing platforms’ undersides performing bizarre, undesired movements.
* Fixed sloped Quicksand and space countdown FOFs. Quicksand now also supports reverse gravity.
* Fixed a bug with being able to go under lava FOFs with slopes, due to the solid lava code not supporting slopes properly. The Lua functions P_CheckSolidLava and P_CanRunOnWater now also support slopes as a result.
* Fixed the TIME/SCORE part of the Single Player/Coop HUD moving position when the tally screen starts if you are using a non-green resolution. Also, the time display at the tally screen no longer limits the minute number to between 0 and 59.
* Fixed OpenGL screenshots appearing greyscale and distorted when taken in the 1366×768 resolution.
* Fixed a Software renderer-only glitch where PolyObject walls could sometimes be seen through level boundaries in other areas, turning anything above and below into HOM or skybox.
* Fixed some OpenGL-only glitches involving sloped FOFs with lighting.
* Fixed MD2 interpolation not working under certain circumstances (particularly if an object’s state has a finite duration normally, but the object has made it infinite instead).
So you have all been poking us for another status update for a while now, but several cool things just aren’t quite ready to show off yet. Instead, we’re going to try something different this time.
2.2 contains a lot of interface improvements over 2.1, with changes to everything from the menu UI to the way the game displays your character. Many of these changes are intended to help newer players learn how to play our game, which has a notoriously bad learning curve because parts of SRB2’s design conflict directly with the way modern Sonic behaves. We want the challenges in SRB2 to be intentional, not the unintended consequences of designing for an audience we know too well. However, there are also plenty of quality of life improvements for experienced players. While we know you may not find this as cool as new levels, we hope something here sparks your interest.
We’ll start with the biggest change: this is not analog mode. With 2.2, your character will face whatever direction you press by default. You finally get to see all the other sprites for the characters instead of constantly staring at Sonic’s butt the whole game. This change is purely visual, and moves like the thok and glide still go in the direction your camera is facing, not your character. In ringslinger modes this feature is disabled, and it’s also possible to disable it in the options should you prefer the old behavior, but we highly recommend giving it a shot.
To go along with that change, the control settings have also been changed significantly. You’ll notice the words “strafe” and “look” are gone entirely, replaced by the words “move” and “camera”. We’ve discovered a lot of new players try to play the game without using all of the movement controls, and therefore have a frustrating experience. We hope that by renaming the controls it makes the necessity of all the controls more obvious. Also, this menu is now a scrolling, categorized list, which puts all of the important controls at the top for easy readability.
Our attempts to teach new players the controls don’t stop there. This is a screenshot of a record attack replay being viewed, which shows the controls being used in a new HUD element in the bottom-left corner, as well as an icon for a new feature: automatic braking. One of the parts of SRB2 that new players generally don’t understand is the requirement to press the direction opposite of your momentum to skid to a stop, like the classic games. Automatic braking, which is on by default, behaves like the opposite direction is automatically “pressed” when the movement controls are released. While most veteran players will want to turn this off, this allows new players to more immediately have fun as they aren’t flying off into the wild blue yonder the instant they thok.
Another issue a lot of new players have had over the years is questions involving how to use addons in SRB2, as currently it requires the use of the console or command line. 2.2 features a brand new in-game addon browser, allowing you to simply select what addons you want to run and enable them. It also features a search field to allow you to type the partial name of what you’re looking for in the folder to find stuff quickly in a cluttered directory. Obviously, the console and command line methods still work, but if nothing else this should help for that situation when you’ve forgotten the filename of that one file with too many underscores.
We’ve also implemented some accessibility features to try to aid those who have trouble with our heavy use of color and audio cues. We’ve implemented a closed-captioning system for the hearing-impaired, which can also be useful for providing “sound” in silent GIF recordings. We’ve also developed an in-game tool to adjust the base palette at runtime to help add contrast for colorblind players. This screenshot has the palette tweaked for red-green colorblindness and has the captioning enabled.
Finally, all the menus were given a check for ease of understanding, rearranging and improving them across the entire game. Here are the current versions of the save select, level select, and multiplayer player setup menus. We’ve tried to improve the visuals for each menu as well as use scrolling and categories where applicable to make the menus as readable and easy to use as we can.
So today we’re excited to be introducing something new. We’ve created a Discord server and added it directly to the main page. You can also check it out here.
The reason we’re doing this is because there’s been a noticeably downward trend in IRC activity, and Discord has been increasingly popular as a chat program. Many people coming here don’t readily have an IRC client available, and Discord also has a built-in web application. This should make it much easier for new members to work with and navigate easily. We’re hoping that this will help new players and modders easily engage and have a good time
As we are trying to expand community access, we are also actively looking for staff. We do understand that there have been lots of small sub-communities that have been formed lately (Kart Krew, just as an example), and we’re hoping to get people from those groups to be staff members. We want a wide variety of input from various people who are active in different groups. The diversity of opinions will help ensure that the staff caters to as many peoples’ interests as possible. So if you’re part of a group and can think of someone who would be a good staff member, please, PM either me or one of the other admins either here or on Discord, and let us know who you think should be added to staff. Please also be sure to give good reasons for the recommendation. We will, of course, have the final say (We need to be sure that the people we are giving moderation titles to can actually be good moderators), but again, we are actively seeking out people who themselves have been active in smaller circles.
I hope to see you all there. Happy chatting everyone!
Hi again. Yes, we know – the previous release did not fix the netgame exploit properly. We’ve been working hard, though, and that (along with a few other potential exploits waiting to happen) is now fixed. We’ll be bringing the Master Server back up to allow people to advertise servers online again. As always though, if there are further netplay issues, please report them to us on the Message Board here. We can’t fix what we don’t know about!
* Netgame fixes:
* Patched a few more crash-causing exploits enabled by malformed packets, as discussed above.
* Fixed cooperative intermission bonuses such as extra lives not being awarded server-side on dedicated servers, leading to desynchronisation.
* Fixed an issue where you could join a netgame despite having too many files loaded to be able to match the server’s file list, leading to desynchronisation.
* Fixed an issue where you stayed connected to a netgame when you have too many files loaded to apply one the host added, leading to desynchronisation.
* Inform the adminplayer when they send an addfile request that can’t be completed because the host has too many files added.
* Fixed a bizzare issue where, if you quit a server the moment you create it, you will be instantly kicked if you make a new one.
* Minor, unrelated fixes:
* Fixed an issue where missiles were able to effortlessly glide up slopes without exploding.
* Corrected a log message informing the player that they had extra colormaps on game startup when none were actually available.
* Removed a typo resulting in the NiGHTS capsule having the red ring’s skincolor applied on spawn.
We weren’t really planning on doing this, but an exploit has been discovered and, unfortunately, been used to crash peoples’ servers and we need to plug the hole. So we’re releasing version 2.1.18. We’re still hard at work on 2.2, and we’re hoping to have stuff for you soon on that front.
Patch notes:
* Netgame fixes:
* Fixed an exploit where malformed packets with invalid node identifiers caused the server to crash.
* Made the server recognise verified admin players’ bans, as opposed to only treating them as unenforced kicks.
* Fixed the fact that the allowteamchange console variable was completely broken, having previously caused both desynchronisations and crashes when switched off.
* Console fixes:
* Fixed an issue where the addfile command was incapable of locating files in subdirectories whilst in netgames.
* Fixed character selection from the command line (and therefore via launchers and level editors) being disabled.
* Fixed the dedicated server console window not handling key combinations involving the Ctrl, Alt or Shift modifier keys.
* Software rendering fixes:
* The game no longer crashes whlst attempting to render certain types of FOF off the top or bottom of the screen.
* Precipitation being off the top or bottom of the screen no longer causes visual artifacting (or, in rare cases, crashes).
* Fixed various issues with the v.DrawFill function. This includes its shoddy handling of V_SNAPTO flags, amongst other quality of life improvements.
* Minor, unrelated fixes:
* Fixed an issue where falling rock hazards could linger in perpetuity after colliding with slopes.
* Fixed a crash caused by Jet Jaw badniks attempting to attack players who had had the “MF_SHOOTABLE” object flag removed through add-ons.
* Fixed a crash caused by attempting to execute the “Call Lua Function” linedef executor with blank fields.
* Fixed an issue where attempting to have more than 10,000 screenshots in your screenshots directory was erroneously allowed.
(In case it wasn’t obvious by the date this was posted, this is an April Fools’ Day post, and the following is not true. On the other hand, the levels shown are indeed legitimate 2.2 content.)
It’s been a while since we had a proper update, but we have something special for you today. Over the years, we’ve received a lot of community feedback. Of all the things the community has suggested over the years, extra characters is by far the most popular. Today, I’m happy to announce that along with slopes, 2.2 will feature a fourth character: Big the Cat!
We have a very important announcement for you all:
Netgames are stable once again. (Thanks to Mr. Mystery for taking these screenshots of almost 32 players in a single netgame!)
Now now, before you go too crazy, keep in mind that things still aren’t perfect. There may be unexpected issues stemming solely from the fact that some parts of our game hasn’t had proper testing in years, due to the instability of netgames. But it’s safe to say that things are back to a level of stability around that of version 2.0, if not a little better than that. Special shoutouts go to LJSonik, who was the one to discover and fix the majority of these problems that had been difficult to find.
Though the stability of netgames is a huge part of this update, it’s not the only thing featured in it. See below for the full patch notes…