Inspiration
Due to the theme of the hackathon, I was thinking of ways to really bring forward the fun of tabletop games like DND in a quick and easy to approach manner. My more experienced teammates had made other games for their previous hackathons. One of the game types that was their favorite was asymmetrical games, where groups of players would gather to take down another significantly more powerful player. These two factors combined to give an idea of "what if the powers of the player who was alone extends past themselves?". With this in mind, we created the idea that one player would act as the literal dungeon master. This player would make the dungeon, spawn monsters, set traps, and act as the final boss of the game. Another 4 players would work together to conquer the dungeon, ultimately having to take on the dungeon master themselves. The goal was to ultimately simplify the DND experience into something that requires significantly less preparation, but still have the fun.
For the theme of the game, we wanted something more lighthearted. This was ultimately a game we would be making in 48 hrs and would need to be a simple game. We were spitballing ideas and joked about making all about cats. However, our teammate, Tina, had a previous asset of Puss in Boots do it with a pixel art style. This led us to ultimately decide on the cat focused theme of the game.
How I built it
- The server is a C++ server based on WebSockets. It uses a hand-rolled chain hash table to host multiple rooms for the game (theoretically up to 512)
- The client is in ES5 JavaScript & HTML5. The physics engine, tile engine, collision engine, and rendering engine are all created in-house, from scratch.
- The music is all randomly generated through Tone.js; the newer members of our team worked together with math skills & music theory to create the mini-applet which we used to generate random music
Challenges I ran into
- Coordinating a team of six (half beginner hackers, half experienced) took a lot of effort, though it was well worth it
- First time using AWS (Lightsail) to host servers
- Rendering walls, floor tiles, doors, and effects in the proper place takes a lot more caution and consideration than expected
- There's a lot to account for when creating isometric assets that can be generated together seamlessly
- JavaScript's random number generator doesn't allow for set seeds, so we had to write our own for creating our randomly generated soundtrack
Accomplishments that I'm proud of
- First isometric 2D project!
- A modular architecture which can swap from WebSockets to peer-to-peer as a fallback
- Tile engine that can handle wall and room-tiling from customized room generation
- All the assets, from tiles to sprites, work well together aesthetically. The animation is also pretty fluid
- Creating the editor for designing dungeons was incredibly fun and rewarding
What I learned
- It's difficult to coordinate a team of six, especially with such a wide variety of skill levels and talents
- Pentatonic scales pretty much sound good in any order
- While it looks good, an isometric 2D rendering engine is quite a cumbersome task to take on for a hackathon
What's next for Brave Mew World
While we are limited to 48 hours with this event, we do plan to add other things to the game. As a group of friends, this is one of the first projects where we truly all worked together. We all still love the project and plan to implement features that ultimately did not make it into the game due to time constraints. These things would include traps, unique enemies, and different bosses the DM can choose from. We also wanted to implement a few other things that we knew we would not be able to complete, such as more varied spells, more classes, varied dungeon design (different texture terrain and enemies), and to integrate some backstory behind the world and characters. It is with these goals in mind that we plan to move forward with this project.
Log in or sign up for Devpost to join the conversation.