Background
What originally sparked our idea for Race Condition was the typing speed test, Monkeytype. After some exciting pre-hackathon brainstorming, we realised that we could try and develop a game that combines the enjoyable competition of the mechanics from Mario Kart, with the educational value of growing skills in popular programming languages through engaging 'levels'.
What it does
Race Condition presents coding challenges while allowing players to hinder opponents with common obstacles such as low power and light mode distractions as well as changing the language out right.
It is full of fun, forcing you to shout obscene fruit names at your computer to get that edge on your opponent. But watch out, your keyboard may be a minefield full of traps!
How we built it
We crafted the frontend using the fully featured text-editor, Monaco, integrating with beautiful components created with Svelte and TailwindCSS, all culminating in a sleek interface, and wrote our backend server with Go to allow robust functionality while also providing the concurrency needed for handling many players at once. This handled the websocket communication between the current players as well as handled the testing of the submissions in a sandboxed environment.
Challenges we ran into
Adapting to the Go language posed an enduring challenge to our team due to how complex the architecture quickly became as more features were added, but nevertheless, through our perseverance, we were able to complete our goals for the challenge.
Accomplishments that we're proud of
We successfully implemented speech recognition and established seamless communication between the frontend and backend via a web interface. This was done with technologies a lot of us had not worked on before and so were learning throughout the 24 hours.
We also were able to setup fully sandboxed testing environments for 5 different languages, including C++, Rust and Python.
What we learned
We discovered the limitations of using Go for this project and gained insight into the importance of scoping projects appropriately. Taking breaks helped us prevent burnout.
What's next for Race Condition
Our next steps involve incorporating more diverse challenges and implementing a performance grading system to enhance user experience.
Log in or sign up for Devpost to join the conversation.