Becoming a Video Game Scientist Part 1: Archipelago
The bulk of my hobby time for the past six months or so has been spent not playing video games, nor yet creating them, but autopsying them. Layer by layer I peel them apart, examining every cartilaginous connection and noting down how each muscle pulls on the bone structure beneath. I am building on the work of those who came before me, a great berth of knowledge at my back and many fine tools at my hands without which my task would be too overwhelming to contemplate. I give back to this world by crystallizing the knowledge I find into forms that may be re-used and built upon long into the future.
In plainer terms, I've been spending a lot of time reverse-engineering From Software games.
2023: Dipping my Toes
A couple years ago, my friends and I learned about Archipelago, a system of interconnected game mods and related tooling which supports what they call a "multiworld randomizer". You may already be familiar with the concept of randomizer mods, in which the items within a game are shuffled about at random while still tracking enough game logic to ensure that the game can be completed. They're popular as ways to bring fresh life to games one has already played many times over, and can be particularly fun to play in a racing context where the strategy around figuring out how to proceed can be more complex than even the game mechanics themselves.
A multiworld randomizer takes this concept and expands it beyond the boundaries of a single game. Archipelago is able to randomize items across many games and connect them all through the internet, so that a Hollow Knight player in Minneapolis can find bombs for a Link to the Past player in Seattle, which lets them blast through a wall and find a Super Mario World player's ability to run. The possibilities are limited only by the imaginations and hacking abilities of a community of volunteer developers.
My little group quickly decided we wanted to give this a try. Looking through the list of available games, much shorter then than it is now, the one that appealed to me most was Dark Souls III. I consider the From Software oeuvre to be largely masterpieces, and while DS3 isn't my favorite[1], it was the one that was available at the time.
The Old Mod
Unfortunately, the implementation of the game was not very good. No shade on the dev—modding with these games is difficult, as I was soon to discover. They use a totally idiosyncratic game engine that was originally built for Demon's Souls and has haphazardly accrued new features ever since; the whole thing is a mass of many different custom file formats all held together with difficult-to-decompile (and in some cases intentionally obscured) C++ code. But the player experience was not so great.
The core problem was this: because it was so difficult to figure out how to do anything at runtime in these…