Building Block Heroes is not the first game I've worked on. About half a year ago I released a game called World Boxing Manager. The process of doing so, including the Greenlight process, taught me much about the game development world.
World Boxing Manager
World Boxing Manager itself was an evolution of a free game I made in university called Kickboxing Manager. Both games were developed in C++, using the Qt API for the UI. Though both tools are useful to know for both game development and otherwise, the choice of this toolset required a lot of "engine" work that probably could have been made both easier and quicker with an actual game engine. Additionally, since I made the rather bone-headed decision of coding the UI elements by hand rather than using Qt Creator, it led to a lot of difficulty building a UI, which probably made the game uglier and clunkier than it needed to be behind the scenes.
Nevertheless, the niche nature of text-based sports simulators in general, coupled with the positive reception I received for Kickboxing Manager led me to believe that there was a built-in audience for my game that would cause it to sail through Greenlight.
However, I soon found out that graphics really do matter regardless of the strength of an idea. There were plenty of people who thought the concept of World Boxing Manager was interesting, but were turned off by the minimal graphics in the game. I had made the mistake of thinking that just because some people (myself included) are capable of overlooking crap graphics in favour of fun gameplay, everyone is. As it turns out, most people aren't.
I also learned during the Greenlight process the importance of showing off a game early to get feedback. It seems like a relatively obvious step to take, but I'm the type of person who simply puts his head down and works on something that interests me. Showing off my work before it's done sort of goes against my nature. Contrary to my fears, posting about my game on boxing-related forums and subreddits not only helped provide ideas about features to put in the game, but helped garner the votes I needed to scrape through Greenlight. I got a bit lucky because there was a built-in audience for World Boxing Manager - after all, good boxing games in general are quite rare nowadays, and boxing games on PC even more so.
Releasing the game was only the first part of the journey. The first hiccup I encountered post-release was a nasty glitch in the game that caused it to simulate non-user matches and events at a crawl for some people. I was aware of this bug, but it only took about 5-8 seconds per day on my own system. I assumed that it was manageable, and by the time I realized it might bother people, I was unwilling to tear the code apart. It proved to be a terrible mistake, as many of the early negative reviews of the game specifically mentioned the issue as the reason why.
I've since fixed the issue, but many people who were looking forward to the game felt disappointed by it, which matters far more to me than any kind of financial hit the game might have taken. After all, I never expected such a niche game to be a hit, I just wanted a boxing manager game on the PC that people would enjoy.
Additionally, the complexity of the finished game turned people off of it a lot more than I expected based on the feedback I had gotten for Kickboxing Manager. Many people who tried the game bemoaned the lack of a tutorial, or the fact that many of the game's features weren't very intuitive. It's to be expected somewhat from a manager game, but I still felt I could have made a more accessible experience.
Building Block Heroes
When I decided upon a new game to work on, I deliberately set about correcting the above issues. For starters, I decided to use an actual game engine and design a game that would take advantage of its features as much as possible so as to reduce the amount of wheel re-invention I had to do. For this purpose I decided upon Godot. Its open-source nature not only made it an attractive option due to being free to use under the MIT license, it also meant that I could theoretically extend its features using C++ if I had to.
The actual inspirations and thought processes behind the design of Building Block Heroes will be detailed in a later article, but long story short I decided to take the opposite approach to game design than I had taken previously. Rather than designing an uber-complex and in-depth game that would take a long time to get into, user-friendliness be damned, I decided to explore an idea that was instead incredibly simple to get into at first glance. Building Block Heroes, after all, is essentially a block puzzle game and a platformer game mashed together.
There's obviously more going on under the hood, but ultimately most end users and gamers should be able to pick the game up easily. It also makes it easier for me as a developer - this is the first non-GUI based game I've ever made, and making a simple game allows me to learn how to deal with things like collision detection and game loops without ripping my hair out too much juggling tons of features.
Choosing a simple game also made it possible to address the criticisms over the graphics in my previous games. Had I chosen to make a more complex game, I would have had to learn how to produce graphics and audio while still coding a game that was time-consuming and draining.
Keeping the concept simple meant that I could develop the game as a programmer while still having the time and energy to develop my skills in the other aspects of game development. Not only would such a game be less of a headache to make in general, there would also be less art and music to produce due to having less in the way of, say, equipment art or sub-menus to deal with.
For Building Block Heroes, therefore, I was able to spend several weeks just practicing art using a tablet and music using MuseScore. I'm not going to pretend that I'm particularly great at either, but I'm happy with the results I've seen, and I feel comfortable showing off the work I've produced. The relative lack of assets needed compared to an RPG or something also makes the whole endeavour of producing my own assets much less daunting.
Nevertheless, I'm far from being an expert at anything, which is why I've decided to launch a devblog of Building Block Heroes before it's close to being done. I'm hoping that by doing so I'll be able to catch any issues early on, which will not only produce a better product in the end, but will hopefully prevent any game-breaking issues such as the one that hamstrung World Boxing Manager upon its release. I can't rely on a built-in audience this time around - I need to make sure that I engage observers and gamers as much as possible.
Finally, regarding the learning curve of the game, instead of forcing trial-and-error upon the players I've placed tutorial levels throughout the game, which I hope will alleviate any issues about user-friendliness this time. Even though they were a pain to script, I figure this time it's better to put as much inconvenience upon myself as possible if it means taking that burden off the end users.
Making games can be a long and arduous process some (read:most) of the time, and many of us wish we could spend all of our time developing them. However, every journey begins with a first step, and as long as each steps moves us forward from the last one, we'll all get to our destination eventually. I'm hoping the lessons I learned from my first game will truly help me with this game and every one I make afterwards.
This was a long read, but I hope you enjoyed it!