Posted by on Aug 30, 2016 in Blog | Comments

In January of 2016 I challenged myself to make 1 new game every month, for a year; 12 months- 12 games. This is one of those games.

Development Stats

  • Language: GML
  • Engine: Game Marker: Studio
  • Platforms: Windows

The game I am working on professionally, Gears of War 4, ships in October, which means that August is a crazy month for development. The game needs to be out the door with enough time to go through first-party certification (possibly multiple times), printed to discs, and shipped to stores. Then of course work continues on the Day-1 patch, where we scrambled to fix any lingering issues that made it onto the disc.

Knowing all this, and how busy I was even before this point, I assumed I would have little to know time for my #1GAM project this month, and planned accordingly. On top of that, the last few months of #1GAM have been mostly failures, so I really wanted to do something that I knew for sure I could finish.

So I picked pretty much the easy game design on the planet; a simple knock-off of the NES classic, Hogan’s Alley. But not even Hogan’s Alley. Instead, just the little can shooting mini-game it included!

Hogan's Alley (1985)

Hogan’s Alley (1985)

I found a great free package of house hold item sprites from Kenny.nl, whose stuff I’ve used a number of times in the past.

Sprites by Kenny.nl

Sprites by Kenny.nl

So rather than having just the one Can sprite like Hogan’s Alley, I could have 150+ items to keep things interesting.

For development, I decided to give Game Maker: Studio a try. I used in many years ago when I was teaching game design and development, and remember being very impressed. This time around though, I was pretty unimpressed. A lot has changed since Game Maker first came on the scene. Back that in was one of the few accessible game engines, and was one of the first to allow for both drag and drop coding, as well as scripting.

But its age really shows. I found it extremely unwieldy, even for a project this small. I can’t even imagine what a project like Hyper Light Drifter must look like (actually I don’t need to wonder because I have source access to a bunch of games I bought in a Humble Bundle a while back; I’ll check those out when I get a chance).

This blog is a great summary of a lot of the issues: GameMaker is an Abombination. The parts that rang the truest for me were the criticisms of the scripting language, GML:

Language (GML)
A joke language, teeming with undocumented and inconsistent behavior, tied to a truly obstructive object model. I don’t know if it’s even fair to compare GML to a real language, but it’s there, and every serious developer uses it, and it sucks.

  • Functions cannot be defined in code, you have to use the GUI.
  • Objects cannot be defined in code.
  • No methods. All functions are global.
  • Function parameters are implicit, and automatically named, so you have to manually alias them to readable names at the top of the file, or document them via comment.
  • There is no function overloading.
  • Every object possesses an assortment of frequently irrelevant member variables, including position, texture, and horizontal speed. It’s an affront to any programmer’s better instincts.

A tad harse, but yeah… GML took a lot of getting used to, and after a month of using it, I’m still not sure of how I am supposed to structure a project’s scripts properly.

Anyway, in the end, even with this super simple game idea, I was still really rushed at the end, and didn’t have any time to add much polish. But at least it is a complete game!

2016-09-01 (5)

Moving Day: Get your stuff into the truck!

System Requirements