Home
Logs

Learning game development

I love games, especially video games, and want to bring my own ideas to life, so I'm learning to do just that!

Below are my learning logs - mostly to keep me accountable but maybe it'll be helpful for other people learning game development.

Nov 24, 2024 – Nov 30, 2024

044 - This week

Time-based Gator Rain prototype

PlanResult
Add powerup system
Implement time-based prototype
Work on title song

Nov 17, 2024 – Nov 23, 2024

043 - Gator Rain prototype

Built more core systems for Gator Rain

PlanResult
Implement sound and audio managers
Add additional enemy type
Add powerup system

Solid progress on the prototype including adding an audio and sfx manager. I also added a small and large alligator variant.

Nov 10, 2024 – Nov 16, 2024

042 - Gator Rain prototype

Prototyping a Playdate arcade game!

Started prototyping ‘Gator Rain’, a side-scrolling Playdate game where you have to get home safely during a storm where it’s raining gators!

This week I implemented the following:

  • Player movement and projectile firing
  • Basic level with parallax background
  • Side-scrolling using draw offset
  • Enemy spawner
  • Basic UI
  • Scene manager with title, game, and game over/won scenes

It’s just using placeholder art, so next week I’ll have some more screenshots to share!

Here’s a screenshot from the first day of development: Playdate simulator with a rectangle character and falling alligators

Nov 03, 2024 – Nov 09, 2024

041 - Learning the Playdate

Exploring the Playdate SDK and LUa

I really love the Playdate and should write a more detailed post about that, but suffice it to say, I really want to ship a game for it. Given the constraints of the platform, that feels much more achievable than say shipping something meaningful to Steam.

With that goal in mind, I spent this week on a timeboxed exploration of the Playdate SDK. I started with Squid God’s excellent video series on the Playdate. I then read the offical ‘Designing for the Playdate’ and Playdate docs. Rather than just read, I built a few projects including:

  1. A Pong clone
  2. A simple metroidvania with obstacles and multiple player abilities
  3. An infinite breakout simulation
  4. A 4x4 version of the infinite breakout. This was the most fun and reinforced how to work with sprites, collisions, and other basic Playdate SDK features.

a 4x4 breakout game where balls bounce back and forth on a grid converting tiles from the other 'teams' to their color

Oct 27, 2024 – Nov 02, 2024

040 - What's next?

A year of game learning complete

Over the last year, I’ve had a ton of fun learning game development. I’ve focused on:

  • 2D games with Godot
  • 2D games for the Playdate with Lua
  • Game music with Ableton
  • 3D games and experiences for the web with Three.js

I’ve finished 7 course projects and 4 of my own games:

  1. Salmon Cannon - Angry-birds clone prototype
  2. Out of the Woods - grid-based adventure game for a game jam. Horrible and boring, but I learned a lot!
  3. Color Mixer - a game to learn what colors make when mixed using the Mixbox algorithm
  4. Parasite Party - a survivors-like clone for a game jam. Actually fun to play!

Even though I’ve learned a lot, I over prioritized courses and should have worked on more projects. Parasite Party was a solid project, but I wish I had something more substantial to share.

My intent for this next year is to spend a lot more time on projects and exploration rather than courses. Courses are fun, but they often give the illusion of learning. I will most likely work on a simple, 2D game with Godot or a Playdate game.

Oct 20, 2024 – Oct 26, 2024

039 - Music and game design

Learning Ableton and sound design

PlanResult
Finish Ableton 11 course
Regular piano and guitar practice
Practice sound design with Vital Synth

The last month or so I’ve been focused on writing music and practicing guitar and piano.

I’d been playing with Ableton lite and after finding a heavily discounted Ableton license from Thomann music (at first I was skeptical since it was way cheaper, but turns out its a legit music store and license), I decided to switch from Garageband to Ableton. I find the workflow much more intuitive and enjoy using Ableton Note on my ipad.

I’ve also been using Vital synth a lot to learn about sound design. I’ve mainly been writing ambient game music and lofi.

Sep 15, 2024 – Sep 21, 2024

038 - Three.js

Learning Three.js

PlanResult
Finish videos 49 - 50 Three.js journey
Read ‘Decoupling Patterns’ section of Programming Patterns

Sep 15, 2024 – Sep 21, 2024

037 - Three.js Post-Processing

Learning Three.js

PlanResult
Finish videos 45-47 of Three.js journey
Read ‘Behavioral Patterns’ section of Programming Patterns

Finished the lessons on post-processing, performance, and loading screens in Three.js.

Also read some more game dev programming patterns! Ideas around using data to define behavior instead of creating additional classes were interesting since it is similar to how resources can be used in Godot.

Sep 08, 2024 – Sep 14, 2024

036 - Work trip

Learning Three.js and travel

PlanResult
Finish videos 45-47 of Three.js journey
Read ‘Behavioral Patterns’ section of Programming Patterns

Gave a lightning talk on shaders, but other than that, didn’t get much learning time in.

Sep 01, 2024 – Sep 07, 2024

035 - Three.js Shaders and a Lightning Talk

Learning Three.js and prototyping a sandbox game

PlanResult
Finish videos 39-44 Three.js journey
Daily drawing and/or music practice🟡
Read ‘Behavioral Patterns’ section of Programming Patterns🟡
Prototyping the sandbox game

Finished the shader section of Three.js journey!

Aug 25, 2024 – Aug 31, 2024

034 - Three.js Shaders

Learning Three.js and prototyping a sandbox game

PlanResult
Finish videos 39-44 Three.js journey🟡
Daily drawing and/or music practice
Read ‘Sequencing Patterns’ section of Programming Patterns
Prototyping the sandbox game

I completed lessons 39-41 of the Three.js Journey courses which focused on shaders including a cool particle animation.

You can check it out live here.

Morphing particles shader

I didn’t make much progress on the prototype unfortunately.

Aug 18, 2024 – Aug 24, 2024

033 - Three.js and Sandbox Game Design

Learning Three.js and prototyping a sandbox game

PlanResult
Finish videos 32-38 Three.js journey
Daily drawing and/or music practice🟡
Design and start prototyping the sandbox game

This week I finished a bunch more Three.js Journey videos focused on shaders which was a lot of fun. I learned how to implement ambient, directional, and point lighting in shaders.

Test 3D models with simple lighting Ocean shader with strong lighting effect

We had family in town so I didn’t do much drawing, but I did practice guitar most days.

I was able to spend more time thinking about our cozy, sandbox game and have a few good ideas I want to test out.

Aug 11, 2024 – Aug 17, 2024

032 - Three.js and game ideation

Learning Three.js and researching game ideas

PlanResult
Finish videos 27-31 Three.js journey
Daily drawing and/or music practice
Research potential game ideas

I continued working on learning shaders and made a few cool effects like a hologram that uses a fresnel.

Shader of waves

Hologram effect shader

I’ve continued sketching and practicing guitar regularly. I also spent two nights working in Garageband on some chord progressions.

I also brainstormed a lot of game ideas and thought of narrowing down on making a story-driven game like Gris or more of a sandbox/management game. After playing Minami Lane and Gourdlets this week, I had a few ideas for sandbox games and am going to start prototyping one, more to come soon!

Aug 04, 2024 – Aug 10, 2024

031 - This week

Learning Three.js, Blender, and Draw a Box

PlanResult
Finish videos 23-26 Three.js journey
Daily drawing / Draw a Box🟡

Three.js scene of a colorado flag

Jul 28, 2024 – Aug 03, 2024

030 - Three.js Journey and Drawing

Learning Three.js and Draw a Box

PlanResult
Finish videos 16-22 Three.js journey
Daily drawing / Draw a Box

Three.js scene of a galaxy

Jul 21, 2024 – Jul 27, 2024

029 - Three.js Journey and Drawing

Learning Three.js and starting Draw a Box

PlanResult
Finish videos 11-15 of Three.js journey
Daily drawing / Draw a Box🟡

With Three.js, I’ve been learning the basics and lighting/shadows.

Three.js scene with 3D text and random objects with a blueish matcap Three.js scene with basic objects, shadows, and a light camera helper

I’ve wanted to get better drawing for awhile now, so that I can sketch my ideas more clearly. I think it’ll be a valuable skill for UI design and game development.

I’m using Draw a box to learn basic mark making and composition. I really like the emphasis on drawing for fun and not just grinding the technical aspects of drawing. With my 50% time I’ve been sketching random scenes and objects. It’s been fun even though I’m terrible at it 😅

Jul 14, 2024 – Jul 20, 2024

028 - Three.js Journey

Learning Three.js and creating a learning club

PlanResult
Finish videos 1-10 of Three.js journey
Create site for Three.js experiments

I completed the first section of the Three.js journey course and created a simple directory site to showcase each exercise.

I also put together a small learning club to work through the course together.

May 19, 2024 – May 25, 2024

027 - On hold

Wrapping up side projects and freelance work

I haven’t been actively working on game dev for a few months since I’ve been selling a side project and picking up some extra freelance work.

I built a PC in June, so I’ve always been playing a lot of games. It’s been interesting to see what sucks me in and why. Recently, I’ve been loving Civ 6, Witcher 3, and have been replaying Diablo 2 with my brother on hardcore.

My plan is to pick back up on a small Playdate project and launch my first commercial game later this year.

May 12, 2024 – May 18, 2024

026 - Finishing side projects

I’ve been wrapping up some other side projects, so I didn’t focus on game dev this week.

May 05, 2024 – May 11, 2024

025 - Path of Exile

Slay the Spire course and design reading

PlanResult
Finish 3 videos from the Slay the Spire course🟡
Reading ‘Designing Games’ by Tynan Sylvester🔴

My Path of Exile addiction continued and I didn’t get much done

Apr 28, 2024 – May 04, 2024

024 - Flay the Fire pt.4

Slay the Spire course and design reading

PlanResult
Finish 4 videos from the Slay the Spire course🟡
Reading ‘Designing Games’ by Tynan Sylvester🟡

I had some big work projects this week, so I spent a lot of time playing Path of Exile and Civilization this week as I wasn’t really feeling coding a bunch more.

I also played a ton more guitar and piano.

Apr 21, 2024 – Apr 27, 2024

023 - Flay the Fire pt.4

Slay the Spire course and Sid Meier memoir

PlanResult
Finish 4 videos from the Slay the Spire course
Read Sid Meier’s memoir

Pixel art slay the spire clone map

Pixel art slay the spire clone battle rewards

Apr 14, 2024 – Apr 20, 2024

022 - Vacation and light reading

Reading about game design and making games for the Playdate

PlanResult
Family vacation🎉
Reading ‘Designing Games’ by Tynan Sylvester
Reading Playdate SDK docs & Lua docs

Had a chill week in Florida visiting family. Played a ton of Slay the Spire and got to ascension 5 with the Silent. Also read a good amount of the Playdate docs and the Lua manual, but I tried not to stress too much about it.

Apr 07, 2024 – Apr 13, 2024

021 - Flay the Fire pt.3

Music production and slay the spire

PlanResult
Complete 4 more ‘Slay the Spire’ clone lessons🟡
Learn about FamiStudio and Chiptune
Learn about music effects (reverb, compression, etc.)

Spent a lot of time this week learning about music effects like reverb, compression, and delay. I was playing around with Vital, a free synth, to learn about sound design and my Boss Katana guitar amp which has built-in effects.

I completed 2 more Slay the Spire clone lessons but didn’t spend much time programming.

Mar 31, 2024 – Apr 06, 2024

020 - Flay the Fire pt.2 🔥

Slay the Spire clone and Godot Wild Jam 67 score!

PlanResult
Complete 4 more ‘Slay the Spire’ clone lessons
Learn about game writing and ink scripting language

I finished the first season of the Slay the Spire course and have the full ‘battle’ scene working including hand management, player turns, enemy turns, effects, etc.

I also spent some time learning about Ink, the scripting language by Inkle, which I was very interested in after playing ‘Overboard’.

Mar 24, 2024 – Mar 30, 2024

019 - Flay the Fire 🔥

Slay the Spire clone and Godot Wild Jam 67 score!

PlanResult
Complete 4 ‘Slay the Spire’ clone lessons
Misc learning: lighting, game design, marketing, etc.

The Godot Wild Jam #67 ratings ended this week and we got 12th overall out of over 150 games. We ranked well for accessibility, fun, and controls. Next time we want to aim for a more original and polished game!

Parasite Party game jam results. #12 overall and #4 in fun

I’m working through this excellent Slay the Spire Godot course and finished 5 lessons. The majority was focused on creating a state machine for playing cards (drag, target, cancel, etc). It relies more heavily on resources which is great since it’s a pattern I haven’t reached for enough in my last few game jam games and want to get more practice with.

Pixel art slay the spire clone gif of a block and two attack cards being played

Mar 17, 2024 – Mar 23, 2024

018 - Chill week

Playing and rating game jam submissions

PlanResult
Play and rate 10+ submissions from the Godot Wild Jam
Learn about Godot: resources, data modeling, etc.

Mar 10, 2024 – Mar 16, 2024

017 - Parasite Party 🥳

Building a survivors-like for Godot Wild Jam 67

PlanResult
Finish jam submission
Write 1 song for the game✅✅

This jam’s theme was parasite, so I decided to make a survivor’s like game where you play as a friendly parasite just trying to help out your host have a good time! You fight against blood cells, antibodies, and medicine across the stomach, blood stream, and brain.

I think the game turned out pretty well for our 2nd jam! I did the programming, music, and UI. My wife did the art.

You can play Parasite Party on itch.io.

Mar 03, 2024 – Mar 09, 2024

016 - Procedural generation experiments

Experiments and start Godot Wild Jam 67

PlanResult
Experiment with procedural generation
Experiment with dialogue🔴
Brainstorm and design game for Godot Wild Jam 67

I built a small prototype that used procedural generation and a tilemap to create a forest region where you could search for randomly placed NPCs. I read the docs for a few dialogue managers in Godot and am more familiar with the concept, but didn’t actually implement it into the game.

Friday, I did start prototyping my entry for Godot Wild Jam 67.

Feb 25, 2024 – Mar 02, 2024

015 - Color Mixer - education game prototype

I built a mini color mixing game

PlanResult
Design and prototype a game to teach about color mixing
Finish “Theory of Fun for Game Design” by Raph Koster🟡

I built a small color mixing game with two game modes:

  1. Free play - mix 2+ colors with realistic mixing using Mixbox
  2. Quiz mode - starting from the primary colors, mix all the secondary and tertiary colors

GIF of the color mixer quiz mode showing mixing colors like blue and yellow to unlock new colors like green and teal

I read about half of Theory of Fun but found it a bit too high level for where I’m at. My time would be better spent building more prototypes.

Feb 18, 2024 – Feb 24, 2024

014 - Game jam results and Godot Components tutorial

Improving from our first jam - game design, Godot, and music!

PlanResult
Read ch. 1-4 of “Theory of Fun for Game Design” by Raph Koster
Finish 1/3 of HeartBeast’s Godot Components tutorial✅ ✅

The rating period ended for the Godot Wild Jam #66 and we finished 53rd overall out of ~170 submissions. Not bad for our first jam and first finished game!

It was rewarding to have people play our game but there’s obviously a ton to improve. We knew our core gameplay was super lacking so it wasn’t surprising we got a really low fun score, but my wife was really happy to have received a lot of positive comments on her artwork!

Out of the Woods analytics Out of the Woods rating results

I had planned to finish 1/3 of HeartBeast’s Godot Components tutorial but ended up finishing the whole thing. It really emphasized using composition over inheritance and taught me more about Godot’s node system and how to create reusable nodes out of scrips for things like movement, effects, scoring, etc.

Space shooter game with space ship and alien enemies Space shooter game over screen

Feb 11, 2024 – Feb 17, 2024

013 - Our first game 🥳

We launched "Out of the Woods" for Godot Wild Jam 66

PlanResult
Finish “Out of the Woods” - effects, music, and bug fixes
Publish “Out of the Woods” on itch.io

We shipped our first game! We participated in the Godot Wild Jam #66 and built a very simple game that could be the beginnings of a strategy or adventure game. The core gameplay is incredibly simple, but I’m proud of what we were able to build.

For our next game, I really want to improve on design and finding the “fun”. This week I played Paku Paku, a 1-D Pac-Man game which is incredibly simple but so much fun! It was a big eye-opener for what a game really is. My upcoming learning time will be focused more on design, prototyping simple ideas, and learning more about Godot.

Out of the Woods spider enemy Out of the Woods start screen

Feb 04, 2024 – Feb 10, 2024

012 - Joining our first game jam!

Finishing Salmon Cannon and starting Godot Wild Jam \#66

PlanResult
Polish “Salmon Cannon” - effects, music, and bug fixes🟡
Publish “Salmon Cannon” on itch.io
Join Godot Wild Jam #66
Design game idea for Godot Wild Jam

I added a bit of polish to “Salmon Cannon” like a particle effect when blocks are destroyed but didn’t really make much progress.

My wife and I teamed up to join our first game jam. She’s handling the art and I’ll handle development. On Friday, the theme for was announced - “Escape”. We came up with a bunch of ideas and landed on “Out of the Woods”, a light turn-based strategy game where you lead a party of adventurers to safety out of the dark woods.

Friday and Saturday we prototyped the core gameplay loop and learned more about Godot. We were able to create a prototype that covered scene management, tile-based movement, spawning enemies, settings, and more. Below is a quick demo of the basic gameplay. Next week we’ll add more enemies, powerups, and a ton more polish.

Jan 28, 2024 – Feb 03, 2024

011 - Prototyping "Salmon Cannon" contd.

Building the core game loop, levels, and more

PlanResult
Build core game loop and 3 levels for Salmon Cannon
Refine the art work and UI for Salmon Cannon
Spend 2 hours experimenting with a DAW

I finished the core game loop including refining the win conditions, tracking level progression, and adding a scoring system. I wasn’t able to work on better artwork for the game, so it is still using the 30 second sketches I did in Figma.

I also spent time on a personal monthly review which included recording some video of the game and recording myself playing piano and guitar. I recorded through Ableton and am trying to learn it better. I think it’s a powerful tool but am still considering whether I’d prefer using it or GarageBand then upgrading to Logic Pro.

Jan 21, 2024 – Jan 27, 2024

010 - Prototyping “Salmon Cannon”

Building an Angry Birds clone with Godot

PlanResult
Finish Salmon Cannon design
Prototype Salmon Cannon physics
Learn DAW basics

I started prototyping Salmon Cannon. My focus was building the physics for the cannon and destructable structures.

Getting used to Godot’s coordinate system was a bit tricky, but I learned more about vector math in games and Godot’s physics engine. I just used placeholder assets I created in Figma. I also scaffolded out the game menus and some internal systems.

I spent more time on the game physics than expected, so I’ll spend time learning a DAW next week.

Jan 14, 2024 – Jan 20, 2024

009 - Done with courses, now a real project!

Finishing 1-Bit course and planning "Salmon Cannon"

PlanResult
Finish the 1-Bit Godot course✅ Review below
Read Music Producer’s Guide to EQ
Design a small game🟡 Started paper prototype of “Salmon Cannon”

1 bit metroidvania Bee Boss

I enjoyed the 1-Bit Godot course by HeartBeast. Each project was interesting and I learned a lot about the engine. By the end, certain actions were becoming automatic and I feel more comfortable navigating Godot.

I’m avoiding tutorial hell by diving into a game project before I complete any more tutorials. That’ll cement what I’ve been learning and give more direction on what I need to learn next.

My first project will be building “Salmon Cannon”, an Angry Birds like game based on the Whooshh Fish Transport System which helps fish get over dams during their migration. A friend in high school saw that YouTube video and wanted to build a game around it, so it’s finally time to bring that idea to life!

Jan 07, 2024 – Jan 13, 2024

008 - Work Trip

Work trip and some progress on the 1-Bit course and design book

PlanResult
Finish the 1-Bit Godot course🟨 85%
Finish Fundamentals of Game Design (3 ch. left on Balance, Level Design, and Online games)
Pick a game jam to enter in the next few weeks

Didn’t get much done as I was traveling for a work trip, but I did finish the book I was reading and made some progress on the 1-Bit Godot game.

I’m also wary of just doing tutorials and have decided to join a game jam before doing any more courses, so on Feb 9th I’ll join the Godot Wild Jam which is a monthly 9-day jam. I’m also thinking of making a small game before then (or at least starting one).

Dec 31, 2023 – Jan 06, 2024

007 - 1-Bit Godot 75%

Continuing 1-Bit course and plans to avoid tutorial hell

PlanResult
Finish videos 26-38 out of 49 of the 1-Bit Godot course (Metroidvania section)
Read 3 chapters of Fundamentals of Game Design - UX (12), Gameplay (13), and Mechanics (14)
Guitar - finish module 13 curriculum and daily practice
Work on “Forest Cafe” (temporary name) prototype🔴

I need to spend more time making games instead of just doing tutorials and reading. The tutorials are helpful but the books are less so. As a rule, I’m going to build at least one game between reading larger books or doing larger tutorials.

With that said, I’m going to pick a game jam in the next couple of weeks to participate in! I’d rather have a large list of Godot prototypes than a long list of books I’ve read.

Dec 24, 2023 – Dec 30, 2023

006 - 1-Bit Metroidvania 50%

Working on the 1-Bit Godot course and planning a first game

What I did

  • Finished videos 13-25 out of 49 for the Metroidvania course. Starting to hit new concepts and the project is getting a bit bigger than other tutorials I’ve followed.
  • Read chapters 10-11 of Fundamentals of Game Design (Character development and Storytelling). A bit academic, but still helpful to take a more thoughtful look at game mechanics I’ve taken for granted. It’s fun to think about games I enjoy and how they approach the design challenges discussed in the book.
  • Guitar - started on module 13 (blues focused) and am learning 7th chords. Been branching out my music listening and found some interesting artists like Laufey as well as the NPR Tiny Desk concert series. We’ve been having a lot of fun watching them while cleaning up after dinner.
  • Had a game design session with my wife where we discussed several ideas for a game. We’re narrowing down on a story about running a cafe with gameplay elements from Stardew Valley and Overcooked. I’m going to start prototyping it this week!

Thoughts

  • I pushed off working on an actual game which should be my first priority. We luckily got in some time but I need to avoid the trap of just following tutorials.
  • Having clear goals pushed me to finish the course videos I wanted. I wasn’t quite done at the end of the week and pushed to finish whereas I probably wouldn’t my weekly plan.

1 bit metroidvania with plant enemies 1 bit metroidvania character climbing on a wall

Dec 17, 2023 – Dec 23, 2023

005 - 1-Bit Metroidvania and more!

Started the last section of the 1-Bit Godot course

  • Finished 25% of Metroidvania game (1-12 of 49 videos)
  • Read chapters 4-9 of Fundamentals of Game Design. It’s slightly too academic but still an interesting read. The end of chapter exercises are geared towards homework but are useful prompts.
  • Guitar - been practicing some fingerstyle and metal songs, so getting a mix. Going to start on module 13 next week which is focused on blues.
  • Forest Cafe design - didn’t really get much done here. I think finishing the 1-Bit course is really important but I can’t fall in the trap of only doing courses. I need to actually build things and get outside of my comfort zone.

1 bit metroidvania jumping character 1 bit metroidvania character shooting blaster

Dec 10, 2023 – Dec 16, 2023

004 - 1-Bit Space Shooter

Working on 1-Bit Godot and some misc. reading

Space shooter start menu Space shooter in game Space shooter game over menu

Dec 03, 2023 – Dec 09, 2023

003 - 1-Bit Godot

Started a Godot course and found more learning resources

Apple-eating pig game

Nov 26, 2023 – Dec 02, 2023

002 - Game design and reading a book?!

Read a Godot book and brainstorming game ideas

Bloxorz puzzle game

Nov 19, 2023 – Nov 25, 2023

001 - Getting started!

Built out my personal game dev syllabus and finished a Godot course

Godot editor and action rpg game running Blue slime enemy with several frames showing a jumping animation

Other thoughts

  • Scenes = Components. That comparison gels really well with my web dev brain
  • Learning game dev is reinvigorating
  • This is a long-term goal. Even after 4 years of a CS degree, I wasn’t that great of a dev so I can’t expect to become a great dev in weeks or even months. This’ll be a multi-year journey