Tag Archives: programming

How I made my first game: Part Deux

Ludum Dare #38 Post Mortem – Part Two

Click here to read Part One!

Ludum Dare is split into two parts: The Jam and the Compo. The Jam lasts 72 hours and is fairly open and flexible. The Compo is a bit more challenging, only 48 hours and you must share your source code at the end of the competition.

I had 2 reasons for choosing an easy-to-create game:

  1. I had an optometrist appointment Saturday morning so although I got up at 8am to eat a good breakfast, I dashed out to learn how to jab contacts into my eyeballs and didn’t get home until noon.
  2. I had a commitment after work on Monday which meant I would have to submit on Sunday (48 hours), although I would submit for the Jam because my source code would mostly come from the aid of tutorials!
A little PDL never hurt anyone

I’m not really into cowboys, so I did a bit of planning before I started coding. Admittedly my game development knowledge is lacking, so I attacked it like any other coding problem and detailed what I thought the game loop might look like.

First things first – I hate DnD

Dungeons & Dragons is great, Drag is great, Death Drops are great – Drag n Drop… mmm not so great. This is something I avoid when making mobile apps in Android Studio. The idea of drag-and-drop is to add ease and simplicity to a process, however I find the underlying code can be messy and often it’s more frustrating and encumbering than quick and easy. I felt confident enough in my junior programming skills to avoid the DnD feature of GameMaker as much as possible. Learning GML (Game Maker Language) would be a great way to cross “Learning something new” off my goal list.

After searching for a few “matching game” tutorials, I stumbled across this one that met my needs perfectly. I coded along while watching the video, altering things as I went and making tons of comments. I did not pause the video and test the code… this was my first mistake – got all the way to the end of the video and pressed “Run”… it didn’t run? 🚷

I get knocked down…

Well I was stuck for quite a while! This was quite the dilemma, I had been on a roll but now? Stuck! Of course it was bound to happen, but I couldn’t help but feel a bit hopeless with time running out.

I considered the pivot! Should I scrap everything before I make any art and use Twine to create a story based game? Should I start from scratch with the tutorial again? I needed a break.

But I get up again!

I hopped on the bus to my friend’s place for moral support & discovered the GameMaker debugger! Bless. 🙏

My while loop was the culprit. Control flow wasn’t flowin’. Also, my brain does not compute x & y coordinates very well. In fact my wild guesses as to where to put things and how many to put where were close but wow I really should have taken a moment to draw a grid and figure it out. Lesson learned!

Speaking of lessons learned – I learned a LOT during this process! For example, I got the chance to implement a 2-dimensional array, which previously I had only experienced in a final exam: coding with pencil and paper. Really fun to see it work its magic. I’ll dive into this more in the next post.

It’s alive!!!

With the game running I was back in action and stayed in a groove until around 9pm. In that time I whipped up some sprites and a nifty “animated” background in GIMP. I tweaked the logic so the game was definitely playable as-is, which meant I could spend the rest of the time with assets. I stuck with my first iteration of in-game art: aka WYSIWG or whatever happens, happens art. 😉

I took the rest of the night off for a hearty meal and video games, of course. Slept in the next morning, and got back to work around 10 on Sunday. Throughout the afternoon I alternated from designing the start and winning screen, to recording audio sound effects with Audacity.

Match the Fleas Ludum Dare

👏 The game was finished & submitted, with time to spare! 🎉

Tune in to the third post of this 3-Part retrospective, where I share the finished game and reflect on what went wrong, what went right and what the future holds!

How I made my first game in under 48 hours!

Ludum Dare #38 Post Mortem – Part One

Check out Part Two here!

I did it! I made my first game and participated in my first Ludum Dare all in one weekend.

Ludum what?

If you’re not familiar with Ludum Dare, it is a themed game jam where people all over the world create a game from scratch in 48 (or 72) hours. A new jam/compo happens every 4 months, and I have a few friends who take part almost every time. I’ve wanted to try my hand at it since I started learning to program. Thankfully the stars aligned and I was finally able to participate in Ludum Dare #38!



Why am I doing this?

My main goal was simply to complete a game by the deadline. I imagined this would require some planning, so I started preparing for the jam on Friday after work, before the theme would be announced at 9pm.  Oh – also I was hoping to:

  • Have an awesome fun experience!
  • Learn something new
  • Gain some estimation skills
  • Know when to pivot (or push though) if something isn’t working
  • Finally start and finish a project O:
How am I going to actually finish this by Sunday night?

I figured I would set some boundaries and basically remind myself not to let my head get too far in the clouds. It’s great to have fun and creative ideas for a game, but I have never really made a game before so I jotted down a few notes:

  • KISS (Keep it Simple, Stupid)
  • Know your limits
  • Use your toolbox (put my programming basics into practice!)


What is going to go wrong at the worst moment?

I was definitely excited, but also feeling nervous, so I thought of some challenges I may come up against:

  • Not being able to finish in time by:
    • Getting stuck on a bug
    • Being too unfamiliar with the software
    • Scope too big


Anxiously awaiting the Theme announcement…

Lastly, while I counted down the minutes to 9pm, I channeled my inner project manager to (hopefully) set myself up for success:

I made a list of simple types of games that would be easy for a beginner. Some that came to mind were: Pong, Space Invaders, point-and-click, avoid/collect and perhaps a soundboard. Before I knew it, the clock struck 21:00!



Ludum Dare #38 Theme Announced: A Small World

I actually did vote +1 for this theme because I knew I could work with “A Small World” with any of the beginner game tutorials I had researched. However, all of the themes in the last round of voting seemed definitely doable.

With my initial brainstorm time-box being a humble half hour, I started sketching and making notes immediately. To be honest, I love a good creative brainstorm where the only rule is: nothing is off limits. I followed advice from a Ludum Dare alumni: “Write down the first thing that comes to mind – it’s likely the idea everyone else will be doing, so keep thinking!” By 9:20 I had come up with a few ideas that seemed fun!

Initial Ideas


    1. A Space Invaders-style (ish) game!

      An animal-like alien stands atop a planet. He holds a leaf over his head and protects the small world from acid rain droplets. Inspired by old Neopets flash games where you basically just move side-to-side catching items as they fall to the ground.


  • A twist on Pong!

    The ball is a large planet that shrinks and speeds up every time it bounces off a paddle. 2 paddles, one AI player. The large planet becomes (wait for it…) a literal small world. 😀



  • Asteroid-style!

    The player controls a small planet-turned-spaceship, flying through space to gather needed resources and avoiding black holes. Subconsciously inspired by those episodes of Invader Zim where Mars is a spaceship (Battle of the Planets).



  • A matching game!

    An extreme close-up on a dog’s fur reveals a small world of fleas. They love their environment and thrive on finding a mate to reproduce. The dog doesn’t seem to mind.


Flea Game

I was feeling really good about the matching game, it seemed fun and hopefully simple enough to complete within the 48 hours. I used the drag-and-drop system in GameMaker: Studio Pro to make a quick “mock up” of how sprites and objects might work together, then went to bed to prepare for an early morning!

Head on over to Part Two, where the real coding begins and I almost give up before I ever really got started!