Inspiration
We love speedruns: the challenge that's associated with attempting to play a game perfectly to human standards, squeezing out milliseconds with complicated movements that are painstakingly planned, optimised, and executed. And we're not alone: speedrunning is a very popular activity on the internet, both to spectate and to participate. As of recently, the most popular games to speedrun have been "retro" games. We decided to make a game that has speedrunning as a design choice, automatically uploading one's times to a leaderboard, and providing a social space to discuss speedrunning.
What it does
RUN IT BACK is a game and a speedrunning community. The game is a maze that challenges the player to move to the exit portal as quickly as possible, with timing being conducted down to the millisecond. Before the game begins, players must enter a player ID that our website provides. All of their attempts are logged to our website to allow players to compete against themselves and each other.
Our website provides a pre-built community around the game. Users make an account in order to play the game. Once they have an account, they are able to view others' times and access the speedrunning forums. These forums allow users to discuss previous times, share strategies, and develop a more intricate understanding of the game
How we built it
The website frontend is built with TypeScript using the React framework. It sends HTTP requests to the backend using axios. The backend is running JavaScript on express.js, and interfaces with a MongoDB database. Several API endpoints are provided to manage users, times, and forum posts. User authentication is handled with Auth0. When a user successfully authenticates, a JSON Web Token is created which is then used for communication with the backend.
The game itself is made in Python using pygame. It is packaged into an executable by PyInstaller and served by the backend web server.
Challenges we ran into
Packaging the game proved to be a big challenge, as it point-blank refused to compile on a Mac. We also had to ensure that all of the assets were bundled into the final executable.
We were challenged by ensuring that user state persisted across the frontend. We ended up storing a JSON Web Token in the browser's LocalStorage that functioned as a session token.
Accomplishments that we're proud of
The forums are a big part of the final product. It was a challenge learning to make these in React, but they tie the whole project together.
What we learned
We now have a more advanced understanding of React, Express, and pygame.
What's next for RUN IT BACK
We anticipate that we will polish the website more and add more levels to the game.
For instance, we look to further implement the Forum feature and the Times feature. With the forums, we hope to allow users to reply to each other's threads. This would allow for further community interaction. Additionally, with the Times feature, we hope to implement sorting (via fastest times) and a TAS (Tool-Assisted Speedrun) tool.

Log in or sign up for Devpost to join the conversation.