Inspiration

I built Galaxy of Monsters because I wanted to free the core logic from games I had already created in C++ and bring them into a dynamic format people could actually play outside of a text-only development terminal.

Before this project, I spent hours building systems that tracked genetic traits, inheritance, mutation, fitness, and resource collection. While the logic worked beautifully, it lived entirely inside sterile, command-line compiler environments. I wanted to see what would happen if I took those exact same structural and algorithmic systems and gave them a visual canvas, transforming command-line logs into an interactive game with characters, player choices, and real progression.

Instead of keeping this project hidden as code running in a local terminal, the hackathon gave me the perfect opportunity to turn it into an interactive Reddit game where players can actively experience, breed, and watch evolution unfold.

How I built it

To bridge the gap between backend mathematical logic and a visual front-end, we designed a client-server architecture built on top of Reddit's Devvit platform and Phaser.

Front-end canvas: I utilized Phaser to handle the rendering of our active scenes, including the Main Game Hub, the Match Mini-game, and breeding interfaces.

State Management: The genetic engine, inventory tracking, and monster states are maintained via structured TypeScript state managers that mirror the object-oriented design of my original C++ structures.

Genetic Inheritance Algorithm: The breeding system uses probability models to determine offspring traits. To calculate the base fitness of a new offspring, we implement a weighted inheritance formula.

Challenges I Faced

The journey from a local terminal to a functional web game came with distinct engineering hurdles:

State Conservation During Evolution: One of our biggest challenges was managing state persistence across scene transitions. During early development, transferring a monster into a new generation or triggering an evolution would cause parent variables to reset to zero or lose their accumulated fitness values. I had to carefully decouple the rendering lifecycle from the underlying game state, ensuring data persisted correctly through our state machine.

UI/UX Aesthetic Alignment: Translating a system of abstract numbers into visual assets was tricky. I had to experiment heavily with sprite variations to make sure the evolution and breeding candidates looked cohesive, friendly, and visually rewarding, discarding designs that looked too armored or aggressive to maintain a softer "cosmic pet" aesthetic.

Synchronizing Mini-Game Rewards: Ensuring that actions completed inside independent scenes, like the Match mini-game, flawlessly fed back into the main GameScene state required building robust, bulletproof event listeners and callback registries.

What I Learned

This project was an incredible learning experience that pushed me beyond raw terminal logic.

The Power of Frontend Architecture: I learned how to successfully translate backend-heavy data structures, like C++ arrays and structs, into reactive, visual UI elements using Phaser.

State Separation Patterns: I gained deep experience in separating the model, the genetic data, from the view, the rendering scenes, which is essential for scaling complex games.

Iterative Debugging: Working against the hackathon clock taught me how to systematically isolate bugs, especially compiler and reference errors during scene registration, without breaking the core gameplay loops that were already fully functional.

What's next for Galaxy of Monsters

The next phase of Galaxy of Monsters will expand customization, genetic exploration, evolution, and long-term collecting.

Players will be able to customize more visual traits, including eyes, wings, tails, horns, halos, colors, textures, crystal growths, and cosmic effects. These traits will influence appearance, genetics, abilities, careers, and breeding outcomes.

Mutation exploration will become a larger part of the game. Players will experiment with parent combinations, rare collected parts, hidden traits, multi-generation breeding, and alternate evolution conditions to discover outcomes that are not guaranteed or immediately visible.

Evolution will also expand into full multi-stage paths. Monsters with the same starter form may develop differently based on genetics, mutation history, collected items, fitness, and player choices.

The active-monster system will grow into a permanent collection where players can keep parents and offspring, track family lines, compare generations, record mutations, and save rare discoveries.

The long-term vision is to let players explore genetics, uncover hidden mutation paths, and create and collect some of the rarest monsters ever seen.

Built With

Share this project:

Updates

Submission history