Art

The Perfect Gem was my second entry into an Adventuron Game Jam. This time, the brief was to create a game where everything was just two words. Every room, every object, every description must be made of just two words. Similarly, every command should be just two words.

To get the best effect run it with JAM COMPLIANCE: NO. With the Jam Compliance off, you get the full intro sequence, which has a little clue about what you need to do.

Play The Game

To add some spice, Chris Ainsley, the creator of Adventuron had added the "Treasure" type to the game, which decorates the text in a nice rainbow, and wanted people to use it. So, a two-word treasure hunt was born.

Plot

You're locked in the freezer, and you need to escape. You appear to be some kind of artificial lifeform with a directive to protect the humans in your care. It seems, however, that something's happened to them while doing an important research mission, and you've ended up being knocked out and thrown in the freezer.

Complexities

Making a game with just two words proved to be quite a challenge. To make compelling descriptions, and generate interesting puzzles when you have just two words is quite the task. You can't, for example, create puzzles with "use x on y" as that's four words. Or "drop x on y" for the same reason. As all the objects must be made of two words, with two-word descriptions, it's hard to create puzzles with "thingumajigs" that need lengthy explanation; everything needs to be easy to understand.

Concept

I've recently been playing a very cool indie game called Volcanoids, and I was playing around with some graphics to put on their Discord channel, mainly to raise a smile. They'd been asking for people to use the in-game camera mode to set up some cool images, so I had lots of images lying around.

I was looking at one of the images and thought it would be an interesting thing to get around the two word limit by making the player a robot. In the 1990's I did an Artificial Intelligence degree, and we'd been studying how robotics could use vision and natural language to create "scene maps", the so-called "Blocksworld" setup. They used very terse, simple descriptions of objects. "ON C", "UNDER A", when teaching us. I thought that might work nicely.

So I created a game where you, as a robot, have to figure out what's going on, find treasure, and solve a puzzle.

Building the Game

Create a starting area to set the scene

The starting area of the Freezer is actually one of the early plots of MacGuyver. He has to escape a freezer, and uses some ice and a bulb to do it. So I recreated the puzzle using two-word descriptions as best I could. I had by wife try to play it, and she was completely lost, didn't have a scooby, so I knew it was a bit too opaque. I changed the puzzle around a little, and telegraphed things a little bit and got a friend on Twitter to play it. This time, it worked, they got out of the room in about 10 minutes. Still a little long for me, so I curtailed the puzzle a little further, and made some things a bit more obvious.

Then I decided to set the freezer on a ship. Oriented North-South, as most ships and submarines are in Text Adventures, it's a kind of a trope that the bridge is "North". I had the galley and freezer off the central corridor, and created a smallish ship. With only two-words to play with, I didn't want to have a large ship with "another corridor" as the only description for half of it.

The ship is "sealed" from the rest of the game, and contains a number of (relatively easy) puzzles, like an engine to restart when you find the keys, and a safe to open when you have the code, that kind of thing. I also seeded one of the treasure items on the ship, so the player will find one and know what Treasure looks like before they start the main puzzle.

Create the Logic

The main aim of the game is to collect lots of treasure. But, I thought it was a little obvious to have the ship as the treasure room, so I created a twist: The treasure is needed by someone (or something) else. You have to collect it all, and then hand it over in order to win.

To do that needed the treasure logic changed from the default. Adventuron's treasure logic is elegantly simple: If you mark an object as Treasure, you return it to the treasure room for points. However, I needed the player to give away the treasure and retain the points, so created some nice end-game logic to handle that.

After that, I just had to work out the logic for keeping the ship isolated until the player had done a few 'training tasks' to learn the layout of the game, which was easily done by having the ship 'at sea' until the player starts the engine of the boat, which then 'lowers the gangplank' after a brief travelling message is displayed.

Fleshing out the map

I wanted the ship to be on a secret mission, so I had it arrive "at an island". I created boolean flags for each "step" the player took in the game, and used them in an inbuilt help function to keep the player moving.

Then I created a small grassy island, a few huts, a helipad and a small cave system. I drew it all out on standard squared-paper and put little barriers in a few places to keep the player from advancing until they solved a puzzle.

Then I put some treasure down in a few places (usually well telegraphed as the game's supposed to be a little fun diversion), and then set about creating the locations.

It only took an hour or so to create the whole island, but then took a lot longer to fine-tune the descriptions. Having only two words means you need to have a primary description on the room, and then a backup description when they look around.

In some areas it was REALLY hard to create a puzzle with just two words, so I created a series of "unfolding objects". So, for example there's a BOX, you look at the box and it says "LID LOCKED", but in so doing, it creates a LOCK. "UNLOCK BOX" will produce the words "LID OPENS", the box changes to "UNLOCKED BOX". Examine BOX will then spill out the contents onto the floor which can then be examined, and they will then change as you interact with them. In this way, I could create a few trickier puzzles, still using two words.

The puzzles

Because time was short, the two-word limit restrictive and the game's a treasure hunt, rather than a murder mystery, I made most of the puzzles simple "key and lock" puzzles, where sometimes the key might be "DIESEL" and the lock might be "GENERATOR", but it still opens the path up or down in a lift.

The opening graphics

When I put the game together, I played it through, and it took about 10 minutes once you know what to do, it's not a huge game. The minimal descriptions, small map and limited verb noun form of interaction really streamlinmed the search space for figuring things out. But the game wasn't impressive. I needed to do something to make it fun and interesting.

One of the days I was working on it, I turned on my PC, which goes through a laborious boot-up routine and thought how cool it would be if the game did that. So I tried to create an animated computer "switch-on" graphic and hit a brick wall.

Adventuron is browser-based, and it's immensely clever, but ultimately relies on the browser to render its text. Adventuron sends the DIVs full of text to the browser, which shows them. To create animated text didn't seem possible. I spoke to Chris and he confirmed that it wasn't possible. Dejected, I gave up.

Then I hit upon an idea: "What if the screen was redrawn each time?". Chris had said something about how the buffer was flushed when the text had finished writing. I drew some text, put in a pause, then blanked the screen, and drew the same text again, with a few more words, then paused, blanked, and repeated about 4 times. The result was a gorgeous flickerbook like animation of the text drawing on the screen!

So long as there wasn't too much graphically intensive, Adventuron's text routines were fast enough to fool the eye like a film strip. So I created some subroutines that built up some text row by row with pauses and screen-clears. I then created a spinning-cursor animation by (basically) redrawing the entire screen, but changing one character each time. Massively overkill, but necessary.

The result: It really does look like a PC booting! And the best bit: each row only has two words on it, which adheres to the game jam (sort of).

Reception

The game was generally well recieved. The opening graphical animation did it's job of drawing people into the game, and the easy puzzles made it a fun short game to play through. I think this one tied for first place in the game jam, which made be amazingly happy. Some of the other entries were just amazing, though. I think almost all of the games should really have won, if I'm honest. It was a tough brief, but fun to play with the constrictions.