Old versions đź“„ posted at 09 November 2024 on new danboland

Steam recently added a few functions to their API that let games directly switch between beta branches. Link This functionality is obviously intended for betas, but there’s nothing stopping developers from using it to expose / make available older versions of a particular game, and it works really quite well. Unfortunately in BR’s case, the delta between branches is pretty much the full 1GB game exe, which has to be redownloaded on branch switch, but that’s on us and the way we distribute, hopefully improved in $NEXT_PROJECT.

STGs are very technically-oriented, singleplayer games, so it’s sort of expected that versions are important. The White Label and Black Label versions of Daioujou are considered as totally separate games in the community, yet a total layman – perhaps even an active beginner player – would easily confuse one for another. I couldn’t really tell you many differences off the top of my head besides “more hypers in BL”, though I’m not really a DOJ player. The best ports often do handily present multiple versions of a game. At the same time, the expectation is there – both from the players and the platforms – that games get updated and refined over time1. Updates are usually an opportunity for publicity, and in a genre that’s basically (through no fault of anybody) radioactive to streamers and journalists, that opportunity really can’t be overlooked.

Image: The version picker screen for the PC port of DoDonPachi Resurrection. Huh? Which version? 1.5? 1.51? The girl on the right seems more than 0.8% cuter…

This is part of why BRDA has a fairly hastily-implemented “Classic Ruleset” functionality which reverts a few of the more divisive balance tweaks. Of course, we’ve had to be clear that because of this clumsy implementation, it’s not a pure recreation of v1.11 – more like a halfway mark between the old way and the new way. Things like the new stage 5 and pattern changes are too baked into the cake, and I did assume that these changes were much less divisive. But that’s a judgement call.

Pure balance tweaks are, theoretically, fairly simple to switch on-or-off – stuff like extend schema, bomb invuln timings, flourish timings.

Purely game-logic-auxillary stuff – say, for example, our new “wallpaper mix” feature or a number of memory optimizations – it doesn’t seem like you should have to switch this stuff in and out with versioning. Hopefully everyone has access to these improvements even if they want to play an old version.

But what is interesting to me is that space in-between – under the hood changes which may affect balance without being “balance”. For example, our collision detection works differently now. Score item generation and attraction logic has been rewritten, and so would work just that little bit differently even if I didn’t tweak the numbers. It isn’t too hard to consider that even small changes to the input system could be considered as a change. Every bug fixed creates a question2 of this nature, and could mean another code path – which could even introduce more bugs, which create a question of this nature, which . . .

As an aside, this is part of why I tend to balk at the term “quality of life”. Balance can be a touchy subject – and yet everyone loves an in-place upgrade. So people want to see these lines in a changelog, these features that everyone agrees are good. But even just refactoring something can often take away a little nuance, take away some little bug/behaviour or add another one in – and if not that, the psychology/feeling around a game’s decisions and dynamics is absolutely tied to everything around it. Donating 30 humanity to the fair lady felt just that little bit more significant because I had to stand there for 10 minutes in front of her crushing tiny humanity sprites one at a time because of an awkward interface. Fair enough, to most people this is a tradeoff worth making, but ah – fuck, “most people”, turns out this was also game balance, and not just a totally-positive QoL.

Image: The Fair Lady, from Dark Souls, silent in prayer. Me praying for a time when I have to come up with an example of a worthwhile, awkward experience in a game and I don’t just immediately think of something by FromSoft.

Anyway – exposing old versions, especially with the help of this Steam API to help present the changes to users and maybe do the necessary housekeeping, is the most honest way to deal with this. (Happily, it’s also pretty much the easiest.) It’s the old version, take it or leave it. It’ll work exactly like it used to. It feels like how the old hole used to feel. I do think there is a trade-off – you can’t go sprinkling nice things into old versions, since you’re sadly not a port’s emulator switching out a romset – but if you want to take this question seriously, and it has traditionally been a pretty big sticking point in STG that’s worth taking seriously, it’s probably worth doing so in the most honest manner.

  1. Wait, and they’re supposed to go down in price too?! Huh?! 

  2. When you’re staring down a list of a hundred or so bugs, do you really want to have to make the correct judgement call on each? You would deprive the humble programmer of that sweet and rare satisfaction of a 10-bugs-slayed kind of work day?Â