
SuperMuzakBros
Multiplayer platformer game in the browser created with Socket.IO and Flask
Features
- Real-time multiplayer
- Simple platformer physics (gravity, jumping, collision detection)
- Username customization
- Chat, accessed by pressing
Enter
and typing a message - Containerized with Docker for easy deployment
- Automatic deployment on pushes to main, to my personal VPS via SSH and GitHub actions
Educational Use
This project has been used for the purpose of teaching Cybersecurity fundamentals at multiple GVSU Hackers Analyzing Threats meetings. Developing "hacks" for this simple game is approachable for beginners, and was very engaging due to the multiplayer aspect. Attack vectors included:
- Modifying client-side code to gain unfair advantages (e.g. flying, speed hacks)
- This was done by modifying the JavaScript in the Sources tab of Chrome DevTools
- Modifying network traffic to gain unfair advantages (e.g. teleporting, speed hacks)
- Accomplished by intercepting and modifying WebSocket messages with BurpSuite
Discussion of mitigation strategies and best practices followed, allowing for students to brainstorm how anticheat measures could be implemented.
Next Steps
I would like to add objectives and a larger map to make the game more engaging and interesting. I am also looking into embedding the game into the Discord client as an App, which would allow for players to easily join in voice calls.
Links
Open-source on GitHub here
Publicly accessible and playable here