How “randomizers” are breathing new life into old games
arstechnica.com
arstechnica.com
For most popular speedrunning games, randomizers reward a completely different skillset than standard speedrunning. Typically, world record speedruns are a result of a community collaboration between theorizers, glitch finders, and routers, who devise the optimal "route" through the game -- what are the minimum objectives necessary to beat the game? What is the fastest order through the objectives? Then, running the game itself can require technical skill to move the character at speed with precision (particularly relevant in platforming games like Super Mario, etc) and execute tricky, timing-dependent glitches (notorious are 1-frame tricks, which require a certain input at a specific frame in a game running at 30 or even 60 frames per second).
Route optimization is somewhat equivalent to solving a traveling salesman problem, and is usually performed over the course of days or weeks in online chatting groups. In randomizer speedruns, however, the speedrunner must come up with a good route on the fly, since the particular randomization is essentially guaranteed to never have been seen before, as well as actually run the game. Needless to say, this demands, and shows off, a huge amount of expertise from the runner, and is a big treat to appreciate.
Personally, though, I think bingo speedrunning competitions are even better. Here, the goal is to win bingo on a randomly generated 5x5 grid of in-game objectives - but any square completed by you or your opponent becomes inaccessible for the other player! This retains the difficulty of routing on the fly while adding direct head-to-head competition between speedrunners. In some of the best cases, mindgames can ensue when speedrunners are aware of their relative skillsets which give them a comparative advantage at completing certain in-game objectives. Sniping squares becomes a fascinating strategy.
[0] True any% stands for beating the game with any percent completion. Communities for certain game sometimes rally around other categories that restrict or ban certain un-fun glitches (any% with certain limitations) since speedrunners ultimately want to have fun.
We created a problem for ourselves that was fun -- games -- but once we'd beaten "games", the reward function kept running and now we're adversarially inventing new ways to "optimally" beat harder and harder versions of "games", ie new objectives, new limitations, new allowable orderings of elements within the games, etc.
I wonder what 50 years of this will yield!
I think the greatest form of it may be the act of saying "fuck you!" to every bell curve imaginable. Fuck bell curves, I'm going to do something else.
I really want to start a cult of bell curve hate.
> I was thinking of it like a mating display.
What is "life", if not a paperclip-optimising AI applied to our own DNA?
In other words, whether you choose paper clips, Bibles or human DNA as your optimization goal, over very long timescales (like a billion years) the optimal algorithms for all of them converge. If you want to make a solar mass of paper clips, you need a lot of infrastructure in common with a solar mass of any other goal.
I'm reminded of Schmidhuber's PowerPlay (https://arxiv.org/abs/1112.5309), too. It just trains on increasingly difficult problems with no direct objective function beyond solving the current problem and devising a harder one.
So this isn't necessarily what you'd call a randomiser — often the mods aren't randomly generated at all, but carefully curated by the event organisers. But it's à propos in terms of 'new experience every time'.
One neat aspect of this approach is how unexpected the mods can get; e.g. your player character could be swapped out for a character from a different game. Then there's the extreme variant of mystery races, where the runners don't even know which games they're going to play.
1) There's lots of different categories to compete in. As new possibilities are discovered in the game, the community congrats around goals of speedrunning any given seed. In these scenarios, its generally about building the skills to be proficient at a particular goal in record time regardless of the seed.
2) most of the modern roguelites I play include a "Daily Seed," where every player gets to play the game exactly once each day and be ranked on a leaderboard. You compete on a given seed. If you want a global ranking system, you might consider it by track-record. Something like, "of the last 50 games this player played, what is their aggregate ranking vs other players' last 50 games played", or do that same comparison, but only in the cases where those players shared a seed for the RNG.
It's true that there's no absolute "best game", but there is "best game ever on this particularly interesting seed."
This leads me to believe that this approach can both make speedrunning continue to be new and interesting to participants as well as result in a scenario where the record can mean something. Yes, there are ways to cheat the system if you really want to cheat, in all but a live in-person audited game. It shifts the focus slightly from reverse-engineering of the game and towards being a better all-round player. And it's more interesting for machine solving, too: how can I build an AI that will take the optimal route regardless of seed? How can I know that the optimal route was achieved?
An interesting different type of randomizer would be one which preserves everything like that, but adds better randomness (i.e., randomness independent of the emulator) to the game's own RNG. Currently, tool-assisted speedrunners and sometimes even live human speedrunners exploit the fact that a game's RNG is deterministic and predictable. Breaking that would lead to additional speed running research on the "original", "canonical" game.
As far as making a tool-assisted run goes, a much better but deterministic randomizer wouldn't affect the process very much, and a non-deterministic one would make it basically impossible to play at all.
You'd prevent real-time RNG manipulation, but that's pretty uncommon to start with.
And you could just say "no RNG manipulation", you don't need to edit the game code.
He ran Head-to-head bingo at ESA recently: https://www.youtube.com/watch?v=nMPSoThpXt8
As it is a marathon run, it features a little bit less risk-taking than non-marathon runs (I don't recall if this was a moderated seed or completely random).
Decades ago, I had more or less topped out playing Othello against my Apple ][e. A game could be completed in under ninety seconds, with my moves being as fast as that of the computer. I took photos (with actual film) of beating the machine long before the board could be filled, but I was getting stale, essentially training myself to fight against this deterministic opponent who couldn't have been all that bright, given the time. I began to make deliberately bad choices in the early game to see if I could recover, but even that wore out.
I eventually settled on POKEing parts of the memory where the game was held. Typically, this resulted in an un-runnable program, or the program would place pieces on the lines rather than between them, all sorts of oddball behavior. Every so often, though, I would get a working game that would play against me using the usual rules, but differently enough that it would throw me off.
It was primitive but amusing.
And thus the idea of the Game Genie is discovered again.
Regarding Othello (Reversi), I actually wrote a Reversi game for the Roku and released it on their store. It was a fun little one-off that I was playing around with when a friend and I were exploring the Roku, which I eventually just packaged up and released as a free version and paid version. It allowed you to set board width and height and choose if the white/black players were CPU controlled or human controlled, so you could actually have the Roku play itself if you wanted. I believe I had three different skill levels for the CPU, which really just corresponded to how deep the minmax AI would go (how many turns in the future it would look), and I think it was fairly hard at the hard level IIRC (but if you chose a large board, like 16x16, it might take 20 seconds or more for it to make a move).
I actually had plans to extend the paid version with some new features, and had a dev build that included things such as random non-color blocks on the board, "bomb" pieces that when flipped flipped the 8 surrounding pieces, angle blocks to change the line by 90 degrees, etc. I never actually bothered to get that out though.
I haven't looked in a long time, but at the time I don't think there was anything out on iOS/Android that had something like that, but it seemed like a fun take on the game. If someone hasn't gotten around to releasing something like that, they should...
It's also surprisingly all written in Pascal(or Free Pascal) which is actually a pretty pleasant language(even if not very popular anymore), if anyone's ever curious: https://github.com/cheat-engine/cheat-engine
Sounds like me as a teenager.
You can still get the wrong items in the temple of course, it just means it's outside the temple. Sometimes you even have to go into a temple you can't beat, get an item from a chest, which allows you to get the required item outside, which then finally allows you to beat it.
So within each subarea the candidate items can be distributed.
Now, if they could randomize dungeon maps in the original zelda...
They do, and have for some time.
One interesting thing to note is that some of them have difficulty settings. Certain item dependency chains are more difficult than others, and the locations can be done such that it will always give you easy seeds or always give you hard seeds. Some of them are designed such that you'll always be required to do speedrun tech which are borderline exploits.
It was a very simple game but something about it was just ridiculously engaging and addictive. v3 has a lot of user generated maps (5K+) as well as automatically generated ones and I've been playing this for close to a thousand hours according to Steam since it was released years ago. Judging from the forums and the continuous additions to the user generated maps, I'm not alone. V4 is close to completion and looks like another winner.
Using glitches can help you "sequence break", to a certain extent - if you use a glitch called "fake flippers", you can reach certain areas of LttP that would normally require the flippers without having them. You'll never be required to do so to beat a seed in default mode, but doing so can save a ton of time if there's a required item blocked by the flippers and the flippers are a pain to get.
The LttP randomizer also includes "glitches required" modes, where varying levels of glitch execution might be required to complete the game, and the logic is relaxed accordingly.
https://www.youtube.com/watch?v=vGIDzGvsrV8
Sounds like a good opportunity to dust off those graph algorithms many of us learned in undergrad CS.
They are aware of the items that are required to progress and make sure they are available appropriately.
It's an old one-gimmick game by today's standards yet addictive. AFAIK the author intended it to be a demo for a tile-based game toolkit.
https://github.com/tewtal/itemrandomizerweb
The randomizer logic, depending on difficulty level selected, will ensure that certain items are available and the game is still playable. There are lots of different checks like this to compensate for various techniques, sequences, etc.
One common technique in Super Metroid is called "hell running", which means getting through the heated rooms of Upper Norfair without Varia Suit, an item that provides protection against heat. In "Casual" mode, the randomizer requires that you are given this protection before making you go to these areas. In "Hard" mode, the randomizer requires you have either 3 Energy Tanks or Varia Suit.
So they're holding tournaments now with randomized chess pieces. They've just completed the first FIDE-recognized Fischer Random Chess tournament.
- normal chess, except you can't move the same piece your opponent just moved. So if I move a pawn, you must move a king/queen/bishop/rook/knight.
- check and checkmate are as normal, no need to capture the king. It's checkmate if the only move that would stop check is to move the forbidden piece. Stalemate also happens - king and queen is not enough to mate unless the kings are fortunately placed.
- castling is a king move
- pawn promotion counts as a pawn move when promoting, but a move with the promoted piece when considering the next player's move
- Black's e-pawn starts on e6 (alternatively, both players start the game with one free move)
My friend invented this as a way to play against beginners, where he plays with this restriction unknown to them. We refined it into an interesting competitive variant.
In this variant, whether castling is considered a king move or a rook move or both has an effect on which moves are legal, so it needs to be spelt out.
I can see the novelty, but I'd rather spend my free time on a well-designed game than a scrambled rehash of something I've already experienced.
Anyone, should try Complex Doom mod...
It's interesting how little the English words "fun" and "funny" have to do with each other; a game like Doom is indeed fun, but it isn't funny in the slightest unless you have a very odd sense of humor. It's also interesting to see how this oddness between "fun" and "funny" translates into people trying to learn English and stumbling over it.