How I made a speedrun timer in D I semi-recently played through the original Deus Ex, and enjoyed my time with it so much that I felt like getting into speedrunning it, which ended up with me having to create a custom speedrun timer that “injects” itself into the game in order to implement features such as auto-splitting and load time removal. This article details the rough journey I went through. It’s not super well structured, but I was sorely lacking resources such as this when I was implementing the more complicated parts of the timer, so I wanted to share my experience. This is basically a detailing of “baby’s first game hack” as none of the techniques I’ve used here are advanced, and are more basic building blocks for injecting your own stuff into another process, but resources like this article were severely lacking/hard to find in my experience, so I imagine this will still be useful to someone. If you read this entire thing then I’m afraid to say you have a fatal case of nerdism (welcome!). Summary Linux Limitations Deus Ex speedrunners on Windows will have access to LiveSplit, which is the standard go-to speedrunning tool. LiveSplit has a lot of features, one of which includes the ability to write plugins that implement auto-splitting and load removal for particular games. To be brief: A “split” can be thought of as just a level in a game. Speedrunners often want to track how fast they perform individual levels/splits, and so will create a list of these splits to track and manage over time. Most games require the speedrunner to manually trigger the next split once they’re done with their current one. This is annoying and inaccurate, so some games will have a plugin that enables auto-splitting - automatic detection of when the current split has finished (e.g. detecting a level change). Additionally some games are very heavy on how many times the speedrunner must load levels or saves. As the time it takes for these loads to happen is very greatly dependent o...
First seen: 2025-07-12 16:51
Last seen: 2025-07-12 23:52