Ben Hallett

Game developer & web programmer

Projects

Fuel me once

Fuel Me Once is a game of triangulation*, wonky driving and oil extraction that I made in Unity in 72 hours for Ludum Dare 29, which ran from April 25th-28th 2014. It was both my first (non-tutorial) Unity project and my first Ludum Dare entry.

The aim of the game is to use detector beacons to locate oil deposits beneath the desert sands, so that you can plant a drill atop them and deliver the oil they extracts back to your central base to sell it.

* - Strictly speaking, it's trilateration, not triangulation, but fewer people have heard of that.

Controls

An Xbox 360 controller will probably improve your experience with Fuel Me Once, but it's not required.

Left Stick
Drive the truck with absolute controls (like a twin stick shooter)
WASD or Arrow keys
Drive the truck with relative controls (like the old GTAs)
Right Stick or Mouse
Position targeting reticule
A Button or Q or LMB
Launch detector ball
B Button or Spacebar
Trigger scan pulse from all detectors
X Button or E
Launch drill
Left Trigger
Brakes, or reverse if you're already stopped
Back or R
Restart
Start or Esc
Quit

Mechanics

Detectors will emit a "ping" if their scan pulse passes over an oil deposit, and the pulse will leave a green ring behind indicating the range of the deposit from the detector. By combining the information from multiple detectors, you can pinpoint exactly where to target your drill.

A drill that is dropped correctly onto an oil deposit will start to produce oil! Carry oil in your spare inventory slots back to the shop to sell it for cash. The price of oil generally increases over time, and drops slightly every time you sell some of your stocks, so pick your moment to get the best price.

You start with 3 detectors, 1 drill and $50. Detectors can be bought in packs of 3 for $5, but another drill will set you back $100. If you miss with your first drill, you'll not be able to afford another, so make sure you're certain before picking your first drill site.

Make as much cash as you can before the time runs out!

Attribution

The inventory icons (ie. the only thing in the game that's obviously not programmer art) came from game-icons.net

Most sound effects were just noise produced by the ever-useful sfxr, though the cash register chime came from freesound.org.

Thoughts / Criticism

In general, players have praised the concept of Fuel Me Once, although the process of using three or more detectors to pinpoint the location of oil deposits turned out to be much less intuitive than I expected.

The most obvious problem in Fuel Me Once was the controls. I decided early on to make the player character a vehicle, to save me having to animate any of my hastily-produced SketchUp models. I then got bogged down in the physics almost immediately, trying to find some values for Unity's Wheel collider that felt as fun to drive as the buggies in Renegade Ops. Although the final result is (mostly) fine after a little practice, I never quite found the sweet spot.

It's possible, however, that the reason people complain about the controls actually has more to do with the layout of the central platform, to which the mechanics demand that you return to shop for gear and sell your spoils. While driving up a ramp at full speed to leap into the air over the platform and sell all your oil is a genuinely satisfying interaction, navigating your vehicle with its large turning circle to the precariously-placed shop items in the corner of the platform is surprisingly fiddly and frustrating, especially when approaching the platform from the same side as the item you want.

During the jam, I did add a self-righting feature which, if you manage to flip your truck onto its back or side, should after a three second delay unceremoniously right your vehicle and fling it into the air. Even so, far too many playthroughs end with the truck stuck between the corners of the platform or bottomed-out on the lip of a ramp.

Phable

Phable is my attempt to port Kate Compton's Javascript procedural story-generation library Tracery into PHP. It takes a JSON file that specifies a "grammar" containing all the sentence fragments that are used to generate an entire story and generates random "traces" (paths) through that grammar. The result is a story (or a paragraph or a sentence) that's different every time.

I've written a few demonstrations of Phable in action:

  • Otherspace scanner [grammar] - A scanner that surveys another, uglier plane of existence congruent to our own, and reports the results. This demo uses Geolocation to set the seed used by the random story generation process, meaning that you'll always get the same results from the same location, although locally occurring events may slightly alter over time...
  • The Next Big Thing [ grammar ] - Generates humorous pitches for new freemium videogames, complete with lists of emotions that the design is expected to evoke.
  • International super-spy codephrase generator [ grammar ] - A tool for Cold-War-era spies to generate secure codephrases to authenticate their first contact with a friendly agent in hostile territory without alerting nearby civilians that anything unusual is going on. This was a tool I built for a (now-defunct) narrative game project that would require two players to "pair" their accounts in order to play through the story together. The intent was to generate one of these phrases for each player, which they could then give to their counterpart to enter on the website to pair their accounts. The grammar already provides a fairly high (55,013,376 possibilities) level of information entropy, although it might need a few more additions in order to guarantee picking a unique passphrase for every player if the game were extremely successful.
  • Carmack Tweet generator [ grammar ] - A completely accurate simulation of the Twitter posts of programming uber-genius John Carmack.
  • Lord name generator [ grammar ] - Another aborted feature, this was a prototype for a system where new players joining an online game would not initially be prompted to set a name for their character, instead being randomly assigned a unique lore-friendly name, allowing them to skip straight to the fun part of actually playing the game rather than trying to think up a cool name.
  • Macguffin generator [ grammar ] - Who needs complex writing and story structure? Certainly not MMORPG players.