ranting about minecraft updates and burnout
i am the single maintainer of a minecraft mod called openboatutils. i am going to quickly explain what this mod is and where it came from, but im not sure it particularly matters for this post, so skip to the section "minecraft updates" if you dont care, or you already know.
openboatutils
in 1.19.4-pre1, a prerelease minecraft version, there was a bug that let boats step up blocks like mobs do. this was quite interesting for ice boat racing because it meant they could build tracks with uphills, where previously everything had to be flat. mojang quickly patched it out, but the idea had already been planted and now the ice boat racing community wanted stepping.
so there was this closed source mod called boatutils, which did some modifications to the boat physics to allow for these tracks. it had a few modes, one called RALLY where the boat would treat every surface as slippery as ice as well as doing the stepping thing, and another called BA (short for blind attack i believe, a series of racing events that used this specific mode for its tracks) which didn't do the slipperiness modification that rally does.
because using this mod on existing racetracks and other servers would be considered cheating, boatutils has a mechanism where a certain mode is only ever enabled if you have a really specific unobtainable potion effect. this meant that the racing servers could control which tracks had the mod enabled, but i saw an unfortunate downside that it also meant the mod might be possible to use in another server against their rules without the server ever knowing the mod existed.
around the time i started boat racing, boatutils had became an established thing. it had only really become widespread in the couple months before that, but i was completely unaware and assumed it to be a thing that always existed. and at the same time, the creator of the mod became really busy and stopped updating it. so i saw this thing i really liked, in a kind of bad state:
- out of date
- proprietary
- weird potion mechanism that potentially allows cheating on certain servers
- it also didn't function in singleplayer, because it required a server modification to remove some bit of anticheat which would prevent the boat from moving in certain ways.
and i decided fuck it, i have the means to fix that. so openboatutils is the flexible, updated continuation of boatutils. it has a packet api, so that servers that want to use it do so explicitly by sending packets to configure the physics modifications. it works in singleplayer, with simple commands you can type in chat to enable whatever features you want for debugging. singleplayer was, at the time, probably the BIGGEST thing that openboatutils offered. if you had wanted to make a track for the old boatutils, you would have to setup a server with the movement checks removed and the right plugins and everything, JUST to do a test drive on your track.
openboatutils is also intentionally super permissive, allowing the server to do whatever it wants with the features it implements. i think this is a point of contention with people more involved in boat racing than i am, because having all kinds of different features and having to relearn different mechanics for different tracks gets annoying and is not what they signed up for.
but my reasoning is this: i am not the curator. because this is all placed in the hands of the server, it is their job to use those features as they see fit. if i were to play that role and limit the features then it limits those for everyone, and the point is that openboatutils is not exclusively for these people.
anyways, im already ranting but i'll be doing much more of that when i start talking about updates :^)
minecraft updates
minecraft is basically a live service game, a couple times a year they drop a major version with new content. theres historically been a lot of dissatisfaction with these updates, they are certainly adding... things... to the game, but they also often change or remove existing parts of the game in subtle ways, often not noting this in the patch notes. here are a couple instances where this happened:
- 1.9 completely replaced combat with a new system. people to this day still play on 1.8.9 because thats the skill they originally learned and compete in. it's what they play minecraft for and if the new version doesn't have it then they won't play the new version.
- a recent addition to the game, the copper bulb, had a very interesting property of having a 1 gametick delay. all the existing redstone components traditionally work in 2 tick increments, so this meant nicer timings were possible in more compact circuits. this was, apparently, a bug and has been permanently removed. people are still complaining about this.
in both examples, mojang simply does not care. these communities that rely on these features are niche subsets of minecraft, and mojang doesn't care about the specifics of any small part of minecraft because it doesn't affect their ability to sell the game as a whole. they are not making a pvp combat game, or a well defined logic simulator. it is only pure chance that minecraft happens to fill those niches, but they don't do so with very much intentionality.
how they effect boat racing
as the maintainer of openboatutils, i am seeing the exact same thing happen to ice boat racing:
- a recent change to how water bubble columns push the boat breaks an unreasonable amount of old racing tracks. these bubble columns would be used to add some elevation to tracks, pushing the boat up rather than having it step up. these tracks might still be technically "playable" but the change makes these sections inconsistent - you might wait a few seconds before it janks about and eventually "works". the leaderboard and history of a racing game is an incredibly valuable thing and changes like these completely undercut that value of long lasting tracks.
- a code refactor causes boat interpolation to use the wrong value in 1.21.3+, making the other people you are racing against appear unreasonably laggy (which also affects collisions between boats in a really unpleasant way).
- mojang has, over many years, changed the stepping logic many times. 1.8 has a bug called "blip ups" which are used in parkour to make certain higher jumps possible. mojang does not care, it is removed. this was all well before boatutils so stepping didn't matter to boat racing at the time. but now that we use stepping, it affects us. sometime around 1.21 they did another whole rewrite of the stepping logic which has fun new problems. this effects not just boat stepping but every single entity in the game. i made a post on the minecraft bug tracker and i think if it is ever marked as resolved it will be because they rewrote the whole fucking thing again, and there will be some new bug.
these changes have all happened in the span of two major updates, which were completely unrelated to boat racing but of course have major impacts on it anyways, because (i will repeat this as many times as it takes) mojang does not care.
at the request of racing servers i added a fix to revert the interpolation change, however it seems to still be buggy and cause issues sometimes which are incredibly difficult to track down.
i am aware of a number of different issues in openboatutils, and i would love to be able to focus on fixing those and finally have a peice of done software. but it isnt ever going to happen if i keep adding compatibility features for new minecraft versions, which includes new bugs introduced instead of old ones fixed.
there is this idea of a minecraft mod which, for every single minecraft version, implements the boat physics of every other minecraft version. old track broke? switch to the physics version it was made for. unfortunately this is massively unreasonable (at least for me in my free time, with the amount of motivation i have). with new minecraft versions releasing with new incompatibilities, i saw the expectation growing for openboatutils to become this mod.
this idea is part of what lead to general burnout for me, not just with this project but most of everything i work on. it takes a good bit out of me just to update the mod to a new minecraft version, let alone to try to ensure im patching over all the issues mojang introduced as well. i have reasons to continue to maintain it but i don't see myself ever creating that big giant physics backwards compatibility system which would actually be required for old boat racing tracks to not break in newer versions.
i have OPINIONS!!!!!!! about this
because of all this im actually very opinionated about updating to newer minecraft versions. servers have the capability to simply not update, and so there needs to be something gained that is worth more than the old tracks that are lost to time as a result.
i personally do not see any benefit to boat racing in the newer minecraft versions and so, i find it confusing that racing servers would decide to update minecraft at all, replacing a working piece of software with something "new" that is not necessarily working in the same way it is supposed to. so i am of the opinion that boat racing needs to have a minecraft version to stay on just like the old pvp community has 1.8.9, because i otherwise see no reasonable solution.
and of course i have my own agenda in this, because not updating means less work for me maintaining openboatutils, but i am not the only one that has to deal with this every time minecraft updates. there are many mods and server plugins for boat racing that all need to deal with this every time minecraft is updated.
i'll probably in the future write a piece that is more specifically directed at why i think the boat racing community should stop moving to newer minecraft versions, but i will save it for another time.
i wrote this at https://tilde.town/~moss/ibrant.md but realized it could probably go here on bear. for all 0.1 of you out there on average