Skip to content

Opera GX / Gamemaker Studio Game Jam

  • by

After some convincing from a friend, we decided to join the Opera GX / Gamemaker Studio Game Jam that ran July 31st to August 13th 2021. The theme was “UFO”. We had Gui de Souza Rocha (developer of Card Tactics) on the team for art, and Nyk Reed (programmer of our upcoming game Cheese Runner) on for programming assistance as well as sound and music.

We had built up a game plan before the jam, but the theme made us take a completely different route. We ended up going with a 2.5D endless shooter, but with the theme of an alien invasion of Earth! So hop in your UFO and blast those pesky humans, the planet is ripe for the picking!

The jam was held as a competition to find a game to include in the Opera GX web browser that will play when the browser can’t connect to the internet. To our surprise the jam specified they’d prefer a multiplayer game! Having no internet connection available, this had to be local multiplayer. Thanks to our work on Queen City Chaos, local multiplayer 2.5D combat was something we had plenty of experience wrangling.

The game came out just about as planned, with only a couple things cut due to the time pressure of the game jam. We have an endless generator of random terrain, buildings, military opponents, potential abductees, and powerups. Difficulty ramps up over time with new units being introduced over series of waves, and endlessly increasing the amount of military units that generate. We have 2nd player opt in using WASD & CVB for controls opposed to P1 controls of arrows and IOP. It’s a little hard cramming 2 player controls onto a single keyboard, especially when you have to allow for laptops and a missing numpad. We do have controller support included though, so you can grab your gamepads to play one or two player!

The one feature we did have to cut was Missions. We had originally intended to have each wave generate a new mission type. This would alter the point value of how you interacted with certain objects – giving bonus points for certain types (colourized by category) of objects. We used the colourized categories to keep things more visually interesting but didn’t include the missions, primarily due to lack of screen space to show the mission information. The low res approach we took gave very limited screenspace vertically to include mission data.

The game is run at 320px by 180 pixels, but users can zoom the screen in multiples to whatever size can fit their browser window. The low resolution is obviously a preference for a retro-focused company like ours, but was also a big strategy for dealing with one of the difficult requirements of the jam – the game had to be under 5Mb. With the game having to be about the size of an mp3 song, we knew we’d have to cut a lot of corners to keep things simple and small.

We made a strong stylistic choice right off the bat to give us the most space to work with. Everything would be 1bit graphics. Transparent or opaque, that’s it. We could use Gamemaker: Studio 2s draw_sprite_ext function to easily colourize any and all objects in the game to bring the game to life in colour. This was a common limitation on early consoles like the Atari and Intellivision. Having made a 1-bit game before (Genesis) this was also familiar territory. To add a bit more visual interest to the game a stretch goal for programming was having dynamic hot-swappable palettes, which thankfully was able to be integrated relatively easily using structs to hold the various palette categories, and then having a global variable point to the correct palette struct. With every object using the draw_sprite_ext function we simply gave each object a palette category it would draw with. Of course things like hit states or invulnerability had overrides to switch palette categories as needed.

We’re pretty happy with the results, as it turned out we were way more worried about the size than we needed to be. The final game, including art, sound FX and jingles (no full scale background music as yet), packed into a 1.5Mb zip file. Still a long way from the 384Kb limit of the NES, but still an impressive feat in our books.

If you want to try out the game you can check it out on Gamejolt:

Leave a Reply