Game development diary #1

One of the main reasons I started this blog was to document my own personal journey on trying to learn game development. It is an area that has always fascinated me because I never truly understood the inner workings of how games are made. I’ve had vague ideas, listened to some talks, and I knew games usually ran on some kind of “main loop”, but beyond that, I was blissfully unaware.

One thing I have learned about myself is that I do not like to stare at black boxes, instead preferring to break them open and piece them back together until I understand how they function. This was true as far back as my childhood, where my mom would often scold me for taking apart vacuum cleaners and other thing so I could understand how they worked. It isn’t surprising then that game development would also pique my interest, and I’m impressed I’ve managed to go this long without having dived in to learn more sooner. Change does not happen overnight, though, so I want to talk a bit about the spark that led me here.

The past year brought a great number of changes for me, personally and professionally. I was moved to a manager role at my job, which meant a lot of new challenges, and a lot of new stress. Stress that needed to be managed. On top of that, a quick hop on the scale at the start of the year showed me just how far I had let myself go during the pandemic. I was not thrilled about this combination of truths. I realized I needed to make a change, and quick, before I spiraled out of control. I started exercising again, cleaned up my diet, and used the free time I was afforded to manage my stress and focus on myself. The end result of these changes is that I am now at the lowest weight I’ve been at in a long time, and feeling much more in control of my mental health. Tasks and challenges which once seemed out of reach suddenly weren’t so far, and the extra free time I had could be spent on new hobbies. New hobbies for me sometimes meant new games to play.

A close friend of mine who shares a lot of my gaming tastes would often stream the newest game he was enjoying at the time on discord. While our tastes were similar, our style of trying games could not be further apart. He was very much the kind of person to buy 20 games and play all of them, wanting to experience many new things. The opposite could be said for me: I tend to entrench myself in a small handful of games and stick to them for years and years, only rarely buying something new to try. A classic example being Path of Exile, an action RPG which many consider to be the spiritual successor to Diablo 2, another game I loved. I’ve played Path of Exile religiously since 2011, from closed beta to present. It has many elements of game play I love, such as skill based battles, interesting and variable progression systems, and thousands of unique builds to create. The only problem with it is that it requires a significant time investment from the player to really feel rewarded.

An image from steam showing my played hours for Path of exile. A whopping eight thousand plus.
I am not proud of how many hours there are here. Just know a lot of that is time spent AFK in town.

So back to my friend: In the past year, he had opened my eyes to a genre of game he enjoyed known as the Roguelike. There is some debate in the community about the true definition of that term, but to me it encompasses two things. Firstly, when you start a new game or run, there is an expectation that you can finish that game in a short time frame. Secondly, when you die, the run ends and any progress you accumulated during it is also lost. This is a stark difference from some modern RPG games, where you can save your progress at any time and pick it back up, or even die but continue back from some predefined checkpoint.

There are many examples of this genre, but my friend introduced me to a few games from a sub-genre known as the Roguelite. The key difference with the lite variant is that there are systems outside of the game which track progress or achievements and allow you to purchase benefits or upgrades that apply to future runs. One of the very first games my friend introduced me to of this type was Vampire Survivors, a now-beloved entry in the genre. I loved watching my friend play this game so much, and it was so cheap on the steam store, I could not resist giving it a shot.

An image of Vampire Survivors gameplay
Some Vampire Survivors gameplay. Mortaccio was one of the earlier characters, and a personal favorite of mine

I was instantly hooked. The next several days and weeks were a blur as I ignored all other games I owned and spent all my free time exploring everything that Vampire Survivors had to offer. There were so many quests and goals I wanted to accomplish and so many new builds to try. The best part however is that unlike Path of exile, I could reasonably attempt a new build or goal in a 30 minute time span, instead of requiring multiple weeks of active investment. The game was so beautifully designed too, from the simplicity of the systems to the catchy songs and satisfying ability sounds and effects. I continued to play Vampire Survivors for a long time, until I unlocked every achievement. It was then that I realized I wanted more, something new to try in the genre. I learned about a little game called Tiny Rogues thanks to reddit. I told my friend about it as well, and he was the first one to pick it up and play it. I caught him streaming it one night, and I knew this was the next one I needed.

An image showing some game play from Tiny Rogues. A boss fight with the dragon boss, who was quite tough.
Tiny Rogues game play. I hated this fight for a long time until I figured out the trick to it.

I really cannot in words describe just how good of a game Tiny Rogues is. From the moment I picked it up I was hooked even more so than Vampire Survivors. One of the key differences between the two is that in Tiny Rogues, there is a lot more player agency and skill required during the active game play. You have a dash ability which gives invulnerability, there are many different types of enemies and bosses which force you to constantly readjust your strategy. Critically, though, player power is far more capped in Tiny Rogues. The random progression elements in this game can sometimes steer far away from your favor, and that can make a run even more challenging. The beauty, though, is that the games design and impeccable balance means that even with a scuffed build, you can still progress quite far and even beat the toughest content so long as you are skilled and understand the mechanics.

For me, Tiny Rogues was like a snapshot of all the things I liked about Path of Exile, just condensed into shorter 30 minute or so runs. The more I played it, the more I found myself wanting more. Now that I had played and seen multiple games of this genre, I also found myself starting to form ideas of my own that I thought could be cool. What if I didn’t have to wait and hope for the developer to add something I want? What if I could build it myself in a way that I would enjoy more? What if *I* could be the game developer? These questions were not new to me – I had gone through a similar experience earlier this year. You may have heard of a somewhat popular game called Wordle. As it turns out, I had already dabbled in game development before thanks to it.

Wordle caught the world by surprise and quickly shot up to becoming a phenomenon, much like Pokémon GO did upon release. I too was sucked in, loving the word puzzle game so much that at one point I sent a twitter DM to Josh Wardle, the games developer, about some features I thought would be neat to add:

An embarrassing twitter direct message I sent to the Wordle developer. I never heard back, probably for the best.
Notice me, senpai!

Needless to say, I was just a raving fanboy and Josh was a successful star. I never heard back, and so I had to take matters into my own hands. Professionally, I work primarily in C# and Angular/Typescript. An area of development I struggled with for a long time though was CSS. So an idea had sprouted in my mind: What if I built my own open source Wordle clone, with the features I want, and use it as an opportunity to also brush up on some professional skills? A passion project was born, and I got to coding. A few weeks and a heaping dose of tutorials later, I had created my very first game: Letterflash. You can find the source for it on my github.

I am proud of what I built with Letterflash, and it accomplished all the goals I had set out for the project. It was a wonderful experience for me, and I benefited greatly from the help of some close friends who helped beta test the game during some of the earlier, more rough stages:

An early development image from my game. It did not look good, and was not mobile friendly.
Not very mobile friendly. Non functional keyboard with a text box. Also, purple?

Despite my efforts on the project, though, I never felt it was a real game or a game development experience. At the end of the day, it was a website made to look like a game, with no real art assets or physics or AI controlled enemies trying to thwart you. It was player against dictionary. Developer against basic web technology. And so I catalogued it away, not thinking anything more of it beyond that it was a fun little experiment.

The time spent on that project was not made in vain, though. When I was playing Tiny Rogues and starting to have those same thoughts again, where I really wanted to take this concept I loved but tweak it my own way, I was immediately reminded of that feeling I had with Letterflash.

A perfect storm was beginning to brew, where my past experiences had combined with my hunger for a new goal or challenge. I was in a much better mental and physical state, so the sky was the limit. I wanted to build a Roguelite. I wanted to become a real game developer. I wanted to open the black box up and find out just how insane it is inside. With nothing more than a rough goal in mind, I set out on my task.

In the next blog on this series, I plan to talk about some of the experiences I have had so far on this new path, including the tools I decided to use and my overall decision points and plans at this current time. I have no idea if I will end this series with a functioning prototype or not, but I do plan to learn a lot, and all I can hope for is that this new knowledge leads me somewhere interesting. Just be wary that some of the next post might get a bit more steeped in the coding, math, and technical side of things.

As always, thanks for reading. And if you have any similar experiences you would like to share, please post some comments or tweet at me!


One response to “Game development diary #1”

  1. […] my last post, I described a new interest I had developed, which was game development. Suffice to say, its been […]

    Like

Leave a comment