Devlog: solo developing my first game
My first game: at least as high quality as my art.

Devlog: solo developing my first game

Why develop games

I love games. I’ve always loved gaming and I suspect I’ll always be a gamer.

Games have played a huge role in shaping me both personally and professionally. Many of my closest friendships were built upon a shared love for games and, even with a newborn at home, my wife and I still make time to game together, sharing a controller on our couch.

I’m at a strange point in my life where I’m privileged to have the time to chase my passion, and I find myself absolutely enamored with the idea of creating games that delight my friends and family.

In my past jobs, the goal has been to turn a painful experience into a less painful experience: Mercedes-Benz makes driving less painful, Pathrise makes job searching less painful. Games are the opposite — gaming is a great experience and game devs do everything they can to make their game the best experience. Something about that mission electrifies me.

So, that’s why I’ve decided to teach myself to make games. It’s been super fun and I highly recommend it to you if you’re interested.

What game dev looked like for me

After watching several game dev tutorials on YouTube, I decided I liked GMTK’s Flappy Bird tutorial the best. He does a great job of walking through the creation of a game step-by-step and explaining what’s happening in each step.

On my first day, I simply downloaded and set up Unity. Unity is a free game engine which means it essentially serves as both the toolbox and the foundation upon which games can be made. I didn’t have a lot of time, so my intention was simply to reduce the friction future me would need to overcome to get started.

No alt text provided for this image
GMTK does a great job of breaking down the purpose of each panel in the Unity interface.

During my second day, I set up my character, pipes, and movement. My core gameplay loop was created! Since I was brand new, this largely looked like me drawing some ugly character sprites in Paint then typing exactly what GMTK typed line-by-line. I was learning a lot about how everything worked, but there were many core concepts I clearly didn’t understand, like the purpose of “classes”. I was having a blast AND I now had a simple game I could watch my wife play after each session 😊

No alt text provided for this image
Bird v1: art.

For my third evening, I dedicated myself to creating the scoring & death system plus the UI. My game now felt like an actual game! This was very similar to my second evening — I learned so much but was becoming increasingly aware that I didn’t yet understand key fundamentals.

Then GMTK’s tutorial stopped holding my hand. He suggests a few features to work on like sound, animation, and bug fixes then only briefly hints at how to get started. Though this slowed my progress significantly, working through these challenges rapidly increased the pace of my learning. I was no longer being spoon-fed answers, so I had to figure out how to learn for myself! After quickly fixing some simple gameplay bugs, I spent a frustrating but ultimately cathartic session figuring out how to make SFX work. The feeling of accomplishment when I finally got them to work plus feeling how much more polished they made my game seem was incredible.

No alt text provided for this image
“Coin” is my new favorite sound!

I discovered the Unity Asset Store and Brackeys’ YouTube channel filled with stellar Unity tutorials. Though I was still following tutorials, I now had to figure out how to apply what I was seeing to my own game. As a result, I feel confident in my ability to work through other challenges in the future!

I spent my last 2 sessions adding difficulty scaling (without following tutorials!) and adding other polish, like a title screen. Another particularly valuable exercise I did was going back through all my assets and code to clean them up and add comments. Confidently deleting assets and lines of code was proof that my tinkering had given me a much better understanding of what I’d built.

No alt text provided for this image
My title screen: 100% amateur but 100% effective.

In the end, I’m proud of what I created! I don’t feel like a game designer yet, but I’m confident I could figure out how to create a prototype for many kinds of 2D games.

You can play my game here, if you’d like. The highest score I’ve seen so far is 32:

No alt text provided for this image
Good luck beating this 🎮

What I learned

  • Many unity dev challenges can be solved by googling!
  • I understand why games can take so long to build — there are so many different pieces that need to be connected in the exact right way for everything to feel good. I’m now capable of taking on a bigger game project but I strongly suspect I’ll learn faster if I constrain my scope and focus on creating more projects.
  • How much can be learned by watching others play. Simple things that seemed so obvious to me as the designer (you can just click "Play"!) weren't obvious to people who hadn't built the game themselves.
  • Experienced developers are SO valuable, which I’ve realized in 3 separate learnings:

  1. The efficiency gains of having a large personal library would be so nice. I’ll re-use scripts I wrote from this game in future games. for example, I created a Sound class which enabled a super clean sound manager object.
  2. It can take a long time to implement a design decision if your codebase isn’t well-architected code. For example, to increase the difficulty of my game I had to pull data from 3 different scripts which was a less efficient way to use my time. Even if I didn’t have to look up every command, a more experienced engineer would’ve been able to make this game orders of magnitude faster than me just by creating cleaner architecture.
  3. The importance of math in development. Every interesting movement or difficulty increase required thinking mathematically to implement my ideas.

What I’d change

  • Difficulty: after watching my parents struggle to break 10 points (why do you press the spacebar so slow, Dad?), I’d reduce the difficulty ramp by ~25%. This is a casual game intended to be enjoyed by non-gamers so I want them to be able to get scores that “feel” high within the first 3 plays.
  • Gameplay loop: thinking about my casual gamer target persona, they’re likely not so motivated by chasing a personal high score. I think they’d want to play more times if they could upgrade their character in fun ways. I’d add a currency system based upon points earned and a shop where players could purchase fun upgrades for their character. Cosmetic upgrades could include new characters, backgrounds, or animations (could I make the bird poop?). I could also consider temporary power-ups like score multipliers or temporary invincibility, but I’d want to do this without adding additional controls.
  • Visuals: my title screen is the player’s first impression, and my first impression needs improvement! I’d update my title font to match the rest of the game fonts, then add excitement via animating the bird and making the clouds scroll across the screen.


What I plan to do next

I have an initial dream game in mind that I’d love to build which involves rhythm, cards & power ups, and narrative. That’s an ambitious project for a complete beginner so my plan is to build up to it. To do that I’ll develop a couple games that will teach me the fundamentals of each of those mechanics. Here’s a tentative roadmap:

  • Next: Top-down shooter/action game to learn on movement (for rhythm) and power-ups (for card design). I plan to keep this scope intentionally minimal and learn to create my own sprites and animations. My goal is to add in a novel feature that makes the game fun.
  • Then: Card-based RPG designed around a strong narrative theme. I plan to try my hand at sound design so I could potentially create, or at least recognize good SFX & music. My goal is to create a memorable experience, so I’ll need to be very thoughtful about how to do this with limited time.
  • Finally: Rhythm-based card game about that conveys the experience of becoming a standup comedian. My goal is for this game to be both fun and memorable to strangers.

Credits


Kenny Spradling

Treasury BI Analyst at Regions Bank

1y

Awesome! GMTK is a great watch for learning

Like
Reply

To view or add a comment, sign in

More articles by Justin McCarthy

  • Devlog: my first game jam!

    Devlog: my first game jam!

    I just finished my first game jam and I’m excited to share what I learned by participating! My goal for the jam was to…

    5 Comments

Insights from the community

Others also viewed

Explore topics