Video Game Development


Video games have always been one of my passions, and so I thought I would try my hand at making one. I downloaded Unity, and after working my way through one of their tutorials, I will admit I was hooked. Something about building something that you could then play seemed to scratch an itch. I had plenty of ideas for games that I wanted to make and game mechanics I wanted to explore, so I thought I would give it a shot, and try building out some of them. It was also a chance for me to do some programming in a different field. During this time, I was coming off of a binge of Machine Learning, and I felt like I wanted to try something different.

The one-month challenge was something that I saw on YouTube, where a game developer and reviewer challenged themselves to create a new game every month. It seemed like a good solution to a common problem I faced whenever I tried working on side project. Whenever I worked on a side project, I would always have this burst of enthusiasm, as I learned new things and began putting together a prototype. However, after a while, I would hit what I call the "Wall of Apathy". I would lose most if not all of my motivation for this project, and working on anything related to it felt like a chore. And then because of this, everything else all of a sudden looked more interesting. The end result being a lot of unfinished side projects, all in various half-built states. The one-month challenge idea seemed like it would help mitigate this. By holding myself to a shorter schedule, I would be constantly exposed to new ideas, constantly resetting when the Wall would hit. In addition, it would also force me to prioritize which key features I would need to build out, rather than get lost in feature creep as I thought up new distractions and ideas. With all that in mind, I embarked on my journey into video game development.


Dev Diary, Game 1, Chimera

My main goal for the first game was to explore the idea of procedural generation. I played a lot of looter type games, such as Diablo, Path of Exile, and Borderlands, and I became fascinated with the variety that procedural generation could provide to the player. I wanted to play with that myself, and hence the idea for my first game was born.

The game I created was a top-down multi-directional shooter, similar in vein to something like Geometry Wars with the player character trying to survive procedurally generated waves of enemies. Each destroyed enemy would give coins, which could then be used to purchase weapon upgrades, like double shot, piercing shot, etc, and new abilities. Procedural generation would allow each run to feel different, generating lots of replay value without me having to manually program everything. The enemies featured had different abilities, and there were what I called Chimera enemies that took it step further. These were generated using a hard point system, with a central "core" and randomly selected "parts". Depending on what parts they spawned with, they would have different abilities, such as more speed, spawning child enemies once they died, etc. You can see one of those "Chimera" enemies in the below pic, with its central section, and its four parts that determined its traits.

Looking back, I think the chimera system had a lot of promise, but was limited by the limitations of my skill at the time. I was just starting to learn C#, and basic game design, so I had to stick with relatively basic behaviors and hardpoints. If I had more time, I would have loved to incorporate many more enemies, and incorporate them into the chimera system. I would have also wanted to work more on the player side of things, particularly in the weapons. Just like the chimera system, I had to keep it pretty simple since I was just starting out. Even simple things, like a "piercing bullet", that could keep going through enemies after it hit, took quite a bit of effort to figure out. Ability wise, I only really incorporated a dash mechanic, since that was simple to program. I would have liked to incorporate more complexity here as well, and maybe incorporate some of the procedural generation here as well. One idea I had was that rather than having everything available, the abilities and weapon powerups would randomly show up in the shop as well. This would force the player to adapt and play differently every time based on what the shop gave them. Overall, I am proud of what I was able to create as my first game. You can find the game files here.


Dev Diary, Game 2

The next game idea I had game to me after seeing the motif of flowers, particularly, the imagery of a field of white flowers. Something about that image was intensely striking to me and stuck with me. This idea then mutated into flowers in general, and how their bloom is often associated with life and renewal. I decided I wanted to turn that on its head, and instead make a game around the flower bloom bringing death. From a game mechanics standpoint, I was in the mood to create something with more puzzle elements in it. I am a big fan of brain teasers and puzzles, and I was eager to try my hand from the other side.

Unlike the first game, where I could get away with using geometric shapes for art, I had to create actual art assets for this one. The player character, the environments, and most importantly, the flowers. On one hand, I was reasonably impressed with what I pulled off, particularly with the flowers. I am terribly artistically, which is why I resorted to using a pixel art style versus anything with actual textures. I also got to play with the animation functions in Unity, which resulted in the flower bloom/wilt animations that you can see around here. The other assets, such as the ground tiles I also posted here, so you can see what I was going for. I honestly didn't expect anything remotely good looking, so the fact they looked like flowers and they looked like they were actually blooming/wilting was like a slam dunk for me. Unfortunately, it was here that the "Wall of Apathy" returned, and hard. Just getting the assets seen here was an exhausting endeavor for me, eating up close to a week and a half of time. During this, there was no coding, no planning of game mechanics, nothing but opening up Inkscape to work on art assets. And that grind is what I think ultimately triggered the wall, and a lot of frustration. I felt like I was wasting time, since I had to put in a ton of work just to get started. All this culminated into me deciding to take a break from this. The frustration had basically boiled over into burn-out. I didn't get very far with this game, but you can see some of the assets and initial animation I worked on for it.


Looking back

I think overall I enjoyed my time trying to make video games, even if I managed to burn myself out in seemingly record time. Looking back, the artificial one-month schedule I tried to hold myself to didn't really help either. I never really got a break, and the original intent of "resetting" my attention by switching to different games didn't quite work out like I intended. The Wall of Apathy still arrived, and combined with a task that I didn't enjoy doing, the entire effort ground to a halt.

In terms of what I would do differently, I think the biggest change would be to just bite the bullet and use some pre-made asset packs. I was aware these existed, but I had stubbornly clung to the idea that I could do everything myself. But as my cousin who worked in game design pointed out, the amount of time that I spent on trying to create artistic content would have been better served actually working on things I enjoyed, such as game mechanics or writing the story. I think that would have helped stymie the wall of apathy, since I would have been working on things I enjoyed rather than slogging my way through art design. The other change I would have made was to lengthen the time period I gave myself. 1 month was far too ambitious, especially since I was just starting out and getting a feel of the basics. Something longer, like say 3 months, would have allowed me to go more in depth with each game, apply way more polish, and have a better, finished product overall.