bnor.me

My 2022 in Gamedev

December 25, 2022

One of my New Year's Resolutions this year was to learn game development (again) and try actually publishing some games. This post is a look back at how that went.

Dear Diary

Back in December 2021, I randomly stumbled across Yahtzee's Dev Diary on Youtube, and that playlist really struck a cord with me for whatever reason. When coming up with my plan for 2022, I wrote what would go down as an overly ambitious north-star goal:

"I want to spend 365 hours doing gamedev this year"

Lofty!

My desire to learn game development goes way back, playing a large part in why I learned to code in the first place. Obsessed with video games since I was old enough to use a mouse and keyboard, I always thought it would be cool to actually make my own experiences. I expressed this interest to my friend Wesley who introduced me to two people (Cole and Sunny) who were also moderately interested in programming/gamedev, and we hit it off! This was back in 2014, and that group would eventually become Cobresun.

Eight years later and we hadn't really published any games yet, so I figured I'd better take the opportunity now that I was done with school to get my feet wet and learn.

Inspired by Yahtzee, I really wanted to have my own "dev diary" retro on the year of gamedev, which is what you're reading right now. It didn't go as planned, and I released 5 of the 12 games Yahtzee did in a year, but he's made games before, and I'm a noob, so I'm still pretty happy with how it turned out!

How It Went

If you're curious, I actually only spent ~135 hours this year working on games, but all in all, I'm extremely thrilled with that!

Time Tracking Gamedev 2022

Obviously the first half of the year was much better for me than the latter half (as New Year's Resolutions tend to be), but I'm still proud of the games I made this year!

I learned a new game engine Godot for these games, which was a decision mostly made arbitarily around the idea that an open source engine sounded like a good idea. I'm grateful I chose Godot, the community is really cool, the engine is a delight to use, and appeals to a beginner like myself.

Revisiting a Classic: Sweet Tooth

Dec 26, 2021 -> Dec 29, 2021

It all started with Sweet Tooth.

Sweet Tooth Screenshot

Back in 2015 Cobresun decided to host our own Game Jam (a hackathon for video games), where we'd each made a game in a week (this was during winter break in highschool), and we'd get each of our younger siblings to review the games on some criteria, score them, and then determine a winner. I made the original Sweet Tooth in Python and Pygame, which at the time was probably the most ambitious coding project I had ever attempted.

I didn't win !! Sunny won for his game Llama Run. His colourful art appealed to the kids judging the games 😜.

I decided for my first stab at learning gamedev, I'd take the project I was still most proud of (Sweet Tooth is a genuinely fun game with a core gameplay loop I've yet to surpass), and update it in Godot. I had done the Godot tutorial before this, but really wanted to learn the engine by avoiding Tutorial Hell and instead getting my hands dirty with my own projects, so that I could feel attached and proud of the work. This turned out to be a great idea.

What I did with this reboot of Sweet Tooth was add elements like sound effects, particle effects, and generally made little quality of life improvments that really add a ton of polish to a game. Also actually playable version with a web release! Turns out, this goes a long way in making people play your game... (note, a lot of these quality of life improvements were added later in the year as prep for the GMTK 2022 Game Jam, which I'll talk about later).

Entering the Matrix: Cobresun Metaverse

Jan 17, 2022 -> Jan 28, 2022

For my next game, and first original game idea since 2015, I decide to learn some multiplayer with the Cobresun Metaverse.

Cobresun Metaverse Screenshot

Okay fine, so not exactly a game. But that would have been too much pressure! I wanted to learn multiplayer as a sort of warmup for my next game (another unoriginal idea), and also learn pixel art.

I dug around online for the best beginner tool for pixel art, and came across Aseprite. Turns out, Aseprite might as well be one of the most well-designed, delightful apps I've ever used! (I do wish there was an iPad app).

I learned this week just how hard pixel art was, which wasn't exactly a surprise, but it was still cool to peel back the curtain on that gian black box in my head. As you can see from the screenshot, I didn't do a great job with the artwork here, but the fact that it was all original art was really exciting.

Better With Friends: Fadeaway Reboot

Jan 28, 2022 -> Feb 13, 2022

Following up the tech demo that was Cobresun Metaverse, I decided to take another classic from the Cobresun troves, and give it a fresh multiplayer spin. Enter, Fadeaway Reboot.

Fadeaway Reboot Screenshot

This was a 4-player co-op zombie survival game where you try to rack up the kills, and see who the last player standing is. The catch? You can't see in the night... except for when lightning strikes!

This game is the multiplayer reboot of the original game Fadeway which Sunny made for a Cobresun Gamejam in 2017.

This game was particularly fun to develop for because I had spent some time getting acquainted with Godot at this point, and was starting to go off of muscle memory instead of revisitng tutorials to make everything.

Every week while working on these games, I'd show updates to Cobresun during our weekly calls (which we have to discuss the latest movie in our Movie Club). I'd solicit feedback and get the boys to play the games, which was a lot of fun, and definitely a habit that made me work on what mattered every week, and avoid bikeshedding. It was also a satisfying feedback loop demo-ing the game every week, pushing me to work more.

I did give up on this game before it was fully finished, because while the ideas were flowing for fun features, the multiplayer was making the game unweildy. If I were to go back in time, I'd probably make the game fully in single-player just to get a good grasp of the core gameplay loop and determine the minimum viable set of fun features. I'd also flesh out a bunch of levels, and generally just make a good single player campaign. Maybe 10 or so levels. After that I'd have hopefully gotten a solid system in place with the object oriented nature of the code, different enemies, weapons, etc. Only after that would I consider adding multiplayer.

Using Work Hours for Fun and Profit: Seat in a Seat

Mar 18, 2022 -> Mar 22, 2022

I was discouraged by Fadeaway and it's inability to progress through multiplayer issues, but when the opportunity arose to get paid working on a game, I had to take it, and thus Seat in a Seat was born!

Seat in a Seat Screenshot

A big part of the desire to learn gamedev this year was to keep me entertained but also mentally stimulated outside of work, so it is a little ironic that my favourite game of the year was a game I made for a Hackathon at work! Hyewon Kim, designer at SeatGeek (where I work), designed this game with me, and it was such a pleasure working with her on this project. Sunny and Cole also helped debug an issue I had, which resulted in much smoother gameplay.

We went all out on polish for this one, a beautiful vector UI, music, sound effects, etc. My biggest regret was not making it a web release from the get-go, which prevented most people from playing the game, and probably hindered out chances of getting a good review in the hackathon!

Still though, just working on a game with people I enjoy working with was such a pleasure, it made me realize that if I can, I should always find other people to colaborate with (assuming they're as invested in the project as I am).

untitled unmastered.

For the next couple months I worked on a game I am nowhere near releasing, but mostly writing and learning about storytelling, which was a lot of fun! Did some gamedev here, but I'd say nothing too substantial unfortunately...

Sleepless Weekend: Orc Onslaught

July 15, 2022 -> July 17, 2022

There was a drought in terms of released work since Seat in a Seat, so when the opportunity came up to work on a game for my first public game jam (GMTK 2022 Game Jam), I decided to jump at it! The result was Orc Onslaught.

Orc Onslaught Screenshot

My friend Ray has spent the pandemic learning how to code (he's a nurse), and I've been trying my best to mentor him through that. I had mentioned the game jam to him and we thought it could be fun if he joined Cole and Sunny and I on this project, so it was one of his first projects in general, which is such a cool project to cut your teeth on!

Working with these guys over the weekend on this game was one of the best experiences of my life. Nothing will quite top Cobresun collaboration vibes when we're in a high pressure experience, boucing ideas off of each other, and me in awe of the sheer talent and genius that Cole and Sunny can whip up on a moments notice.

In the final moments of this game's balancing we ended up making it too difficult, and we ended up getting a lot of players in the game jam judging period commenting this!

Orc Onslaught Comments

It was so cool for anyone to have played a game I worked on, I was too excited about that fact to even really pay attention to the criticism!

Orc Onslaught Results

Some lessons here:

  1. Release for web if you want people to play your game. Before the gamejam I practiced by converting the other games to web (Sweet Tooth and Seat in a Seat), which was a life saver.
  2. Playtest, playtest, playtest! Have other people other than the devs playtest !!!
  3. Polish is all about sound effects, music, and particles. It's kind of hilarious how much these things make a difference.
  4. Okay polishing is nice, but the core gameplay loop has to be fun. We spent a lot of time going back and forth on this for Orc Onslaught, since the basic template of a tower defence game is nice and all, but we were really complicating it with the addition of a roll of the dice and randomness.

Thats all Folks!

And that was that! I unfortunately had a very busy and distracted second half of the year, so I didn't release any more games after Orc Onslaught (admittedly a weekend of that many hours of gamedev definitely hit me hard, and I needed a break).

I really hope next year is another great year for gamedev for me, in which I'd like to return to making small proof of concept games with tiny but fun gameplay loops, and sharing them with Cobresun every week and eventually releasing them.