We made a video game!
Within the last week, a group of friends and I spontaneously decided to compete in the 2025 Global Game Jam, a yearly competition where teams of any size have 48 hours to create a video game based on a specific theme.
Being cybersecurity students with absolutely zero game design experience, we thought this would be a tremendously fun weekend project and challenge, so we decided to participate!
This year’s theme was bubbles, so we needed to brainstorm a bit.
Creative decisions
Right off the bat, for efficiency and ease of development, we knew we wanted a top-down 2D game, similar to that of Vampire Survivors and Bubble Tanks. In that same vein, we opted for a pixel-art style and theme.
Since a top-down shooter seemed like the most fun for us to build, we needed a way to tie it into the bubble theme. We eventually settled on the idea of a robot that kills germs using a bubble blaster and soap bombs!
Lastly, we wanted at least three levels for the player to navigate, but to make the sequence feel cohesive and logical, we needed some lore. That’s when we came up with the following backstory:
A house-cleaning robot, named Rubeus, was built solely to clean homes and kill germs. However, after a software update, he became self-aware. Determined to fulfill his true purpose, he set out to eliminate all germs and save the world from disease! Equipped with soap and his trusty bubble blaster, Rubeus ventures to the most unexpected places.
Just for fun, we wanted to give Rubeus a clear objective while making some fun references to cybersecurity topics:
- Rubeus: Named after the tool for abusing Kerberos in Active Directory
- Cerberus: The three-headed dog that guards the gates of hell, also referenced in Kerberos, the authentication protocol in Active Directory.
So, Rubeus kills germs and ultimately travels to hell to defeat Cerberus!
Now that we had a little world to build around, we focused on the following four levels:
- Home: Where Rubeus originates!
- Outside: Rubeus’ initial breakout after cleaning house (literally).
- Cave: Rubeus finds a hole that leads into a cave!
- Hell: Rubeus finds a hole that leads into Hell!
Implementation
Rubeus
Continuing with the idea of keeping the design simple while aligning with our robot’s backstory, I explored a few concepts. I initially started with a humanoid-style design, heavily inspired by an image I found online. I essentially copied the following to get familiar with creating pixel art, and in doing so, I was able to determine the color scheme I actually wanted for Rubeus:
However, to ensure the sprite could be easily manipulated and animated, I opted for a much simpler design, which took significant inspiration from the following image:
While it still heavily resembles the original design, I preferred this ‘Roomba with legs’ approach, as it better suits the household cleaning bot theme. Here’s a look at the final sprites I created for Rubeus! In order, they showcase his idle, heavy blast, death, and hurt animations:
Maps
For the maps, we initially planned to have four levels, as previously mentioned. However, given our time constraints and workflow, we were only able to implement Outside, Cave, and Hell.
Of the ones that were implemented, we developed sprite tilesets with the goal of automatically generating structures, walls, and specific shapes that would dynamically change as the player transitioned between maps. However, due to time limitations, we ended up creating a few templates and applying them to each region, which still kept things fairly dynamic.
Other sprites
The mobs, projectiles, health packs, and final boss were quickly created by whoever in the group had some downtime. For enemies, we had a germ mob, an angry bubble mob, and Cerberus as the final boss. For projectiles, we included the bubble blaster and a soap bomb. Lastly, we implemented health packs that were placed in various locations.
The final result
The game isn’t perfect, and we never planned for it to be! We all saw this as a learning opportunity and a fun challenge, and I think we did incredibly well, especially considering our lack of experience and the fact that we built everything completely from scratch in just two days.
What I’ve learned
This two-day project was a huge learning experience for me, mostly when it came to creating and animating sprites for Rubeus. I picked up pixel art techniques in Photoshop, learned how to generate map tilesets, and figured out how to properly upscale pixel art for the game assets. Furthermore, I learned how to adapt and compromise in regards to creating art with a tight deadline.
One of the bigger challenges, despite how efficiently we started, was dealing with the map sprites. It took me multiple hours to figure out how GameMaker interprets tilesets, and I ended up having to redesign a lot of the fantastic map terrain that another teammate had already created. While it’s not perfect or polished, we still got something out there!
Going back to the fun cybersecurity themes, we originally wanted to name the game Rubeus.exe, after the Kerberos tool. However, we found out that Windows Defender would flag and remove the executable, even though the file hash was completely different. We thought that was pretty funny.
With that, I’d say the biggest takeaway is to try new things, you might surprise yourself! Even if you don’t know much about something, just moving forward and figuring things out as you go is a great learning experience, especially if you enjoy the process. I had a ton of fun working on the Rubeus sprites, and I’m really proud of what we were able to create in such a short time. :)
If you’re curious about seeing our submission, here’s what we uploaded to the Global Game Jam website.