Monthly Archives: May 2017

How I made my first game: Part 3

Ludum Dare #38 Post Mortem – Part 3

Here’s a link to Part One!
And click here for Part Two!

Part 3

Goal – tending

Did I reach my goals? Let’s revisit and check them off:

  • 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: ✅

So so pumped to have completed this challenge with a finished game! It is polished? Heck no! It’s possibly not even fun to play – but it sure was fun to make, and selfishly this Ludum Dare was all for me bb.

 

Programmer’s Delight

Let’s take a look at a few nitty gritty details – the game may not be much from the outside but it has some pretty cool elements on the inside. All credit for this goes to SlasherXGAMES and his tutorial, but I will do my best to explain some concepts:

  1. 2-dimensional array – Implementing the 2-d array was a great way of randomly generating the flea pairs by ensuring there would never be a lone flea without a mate. The array keeps track of the flea index, flea sprite and flea id of the first click and the second click. A comparison is made to compare the two and decide whether a match is found (yay!) or not (boo!).
  2. Advanced matching – so I should’ve gone the easy route and just made a colour or shape matching game – but it just didn’t feel right in the flea-world. I wanted to add a little pizazz, so I referenced a more difficult matching game tutorial. The idea is to use one sprite with multiple frames, so the player is matching a similar (but different!) flea rather than the exact same one.
  3. No Drag and Drop here! – I am very excited to have used a ‘controller’ in each room to populate the visual elements. A nested for-loop is used to populate each flea-type, using counter variables to ensure there is always a mate for each flea! No flea left behind.
  4. Animation? When the user makes a correct or incorrect match, the dog reacts and the fleas make a sound! Hey, it was my first game, cut me some slack 😉

Now that all is said and done, here’s a list of the software & tools I used:

  • GameMaker: Studio Pro
  • Trello
  • GIMP
  • Audacity
  • Notebook & pencils
  • Slack
  • Windows Calculator since apparently I suck at counting fleas

                 

What did I learn?

I definitely should have paused the tutorial to test and run the game early and often! D’oh!

GML is pretty user friendly! The documentation is clear and concise and I enjoyed searching through the docs before turning to Google. The more programming languages I run into, the more I realize how similar and universal some core principles are. Variations in syntax are a learning curve for sure, but I’m definitely gaining coding confidence!

What if I kept working on it?

Well, I am probably not going to take this game any further, but my original brainstorm gives me an idea of what the grand vision of the game could be. I imagined it in old flash game meets slick mobile app style.


The game begins with a little animation zooming in on the dog’s weird face (a-la-Ren&Stimpy) and then zooming in even closer to see the fleas hanging out in their natural habitat. Ideally the fleas are animated for the whole game, wriggling around and dancing to the background music. Each level would increase in speed and difficulty and the animal would change (dog -> cat -> giraffe -> unicorn -> etc).

A timer function and score multiplier would increase urgency and reward you for matching fleas fast. Of course there would also be a high score table which may add replay value? Anyways! That’s my game in a utopic timeline.

Next Ludum Dare

I can’t wait to try again and push myself way harder. Now that I know I can complete a small game in a short amount of time, I want to challenge myself:

  • Start with the same game plan, but take the graphics through at least one more iteration to clean it up visually
  • Have a better understanding of the core basics of game development
  • Work with a team!
  • By next time I hope to have experimented with GML and learned the strengths\ limits of GameMaker: Studio
  • Communicate and network with others working on their own Ludum Dare projects

 

UPDATE: The Results are In!

Well folks, thanks for reading my 3-part post mortem! I really enjoyed by first Ludum Dare experience and look forward to playing and rating your Ludum Dare games! Comment with a link to a game you’ve made and I will give it a whirl.

Of course, click here to play Match the Fleas!

Yay! In the top 8th percentile for humour 😀 I got tons of amazing feedback from this very friendly community. I can’t wait to apply it to the next Jam at the end of July.

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!