I recently launched a little game called "Yaaker!". It's a side project that developed over the course of several months. I had to overcome some technical challenges, and pick up new skills. Along the way, HeroMode has been very helpful:
- It helped me stay organized on the project tasks
- It helped me convert little chunks of free time into project progress that adds up
- It helped me stay motivated with points, rewards, and activity calendar
I don't think I would've been able to take this project from an idea to a finished product without HeroMode!
Phase 0: Idea
Ever since I made the little WRD PLT game in a Friday hackathon, I got bitten by the game development bug. It's a very dangerous bug. Side effects include: loss of focus on serious subjects, fantasizing about game mechanics, and the sudden (and unrealistic?) desire to learn Unity and Blender.
But there was also a practical reason I was thinking about another game. As we were working on HeroMode, a question that kept coming up was: "What's the point of points?"
We wanted HeroMode to be a motivating task management system that helps people get things done. And the points system was a way to gamify the process, and also allow users to track their progress over time. When we first rolled out the points system, it was indeed motivating. And then we introduced Activity Calendar that shows the points earned over time, which again gave me a boost of motivation.
Yet, after a while, both the HeroMode dev team and the users started to want more out of points. So I thought maybe we take the gamification up another level, and allow users to convert points into coins that they can use in a little fun game.
My thought was the following: I'd use HeroMode to track my quests, and work hard through the day and earn points as I complete my quests. Then, at the end of the day, as I finally rest, I can convert my points into coins to play a few rounds of a casual game.
Of course, we didn't eventually go with this idea. Instead, we took a great suggestion from our users and implemented the Piggy Reward System. But at the time, that's how the idea of a casual game came about.
Phase 1: Proof of Concept (Aug. 2022)
I love probability, and fictional (plus harmless) aliens. So the game I had in mind involved rolling dice against an alien, trying to beat their hand. User can use coins to reroll their dice to get a better hand, or, alternatively, use coins to reveal the alien's hand. In yet another Friday hackathon, I put together a simple proof of concept.
Phase 2: Explore the Map Problem (Aug.-Dec. 2022)
After the proof of concept though, I quickly encountered a major issue. The game will need to have stages, so that each time you beat the alien, you can progress to the next stage. That'd involve creating game maps.
However, this is a side project. We don't have any resource for it. Yet we need many maps that provide some decent user experience, as well as some variety. So off-and-on, I explored various methods to create game maps.
First I just tried to think about the game map as a grid, and place random objects as well as some "path" in the center. That was a fast nope.
Then I tried a couple of map drawing sofwares. They are pretty decent! But it'd definitely take a lot of time to create multiple maps, so I really wanted an algorithmic solution that'd create many maps on its own.
At this point, Google searches had brought me to the realization that algorithmic game map generation is in itself a fascinating field of research (procedural generation), filled with math, graph, edge calculations, and path finding. Wow. I love it! But I needed to be careful with this rabbit hole. How do I get lots of maps generated without spending too much time on it?
Game Assets: Tiles
After a brief search, I purchased an asset set. It's loaded with all kinds of game assets, including many types of tiles, as well as game characters.
With these tiles, I started to play around with algorithms that would generate random maps.
Algorithms: Mix-and-Match
As it turns out, what worked "good enough" was a combination of different algorithms. I used a brute-force search to construct layers from individual tiles, plus genetic algorithm to mutate tiles so that layers can be placed on top of each other. Objects are also randomly placed on the map.
This method is very far from perfect, but good enough for casually developing a casual game.
Phase 3: The Yaaker Adventure Began (Dec. 2022)
Now that we have a method to churn out game maps, I finally felt we had all the pieces "theoretically" in place. We can actually make it happen! So I created a HeroMode adventure for this game, called Yaaker!
Over the next few months, I worked on Yaaker on and off. As you can see from my activity calendar, I'd work on it for a few days here and there. Sometimes I didn't touch the project for weeks. But over time, I was able to put all the little pieces together, like background music, sound effects, animations, story, and characters.
Phase 4: Hello Yaaker! (Apr. 2023)
Finally, this month, we released Yaaker into the app store! It's a free game, and you can play it on iPhone or iPad.
The final product looks so different than how we started. The game map is playful, and the game play is also more polished.
With the map generation algorithm, we were able to rapidly create several maps and even for multiple towns with different themes. So much so that we added a simple "flying" transition experience when user travels between towns!
How HeroMode Helped to Launch Yaaker
Taking a side project from idea to launch is a long journey. I have so much respect for everyone who has done it. For Yaaker, it took me many months of putting in some extra hours at nights and on the weekends.
The process is challenging not just because of the technical aspects, but also the many many loose ends that need to be tied up along the way to launch. For example, app website, onboarding, app submission materials, ads or no ads (we decided to not have ads in the end), and so on.
HeroMode has been a great help in keeping me on track. I have a place to organize all these tasks, some small, some larger. So that even if I don't work on the project for a few weeks, I can easily pick up where I left off. There have been quests that I created for Yaaker that didn't get completed until almost two months later! Such is the nature of side projects. And HeroMode gives me the flexibility as well as a little dose of motivation to keep going. So that if I have an hour to spare here and there, instead of just watching TV, I can pick up a quest and make some progress. Eventually the little progress adds up and it's time to launch!
Do you have a side project? Have you been working on it for a while? Do you find it hard to keep it going and bring it to the finish line? Maybe HeroMode would be helpful for you too!