Gareth Williams

I Make Games

I make videogames. Serial game jammer. Unity3D, Monogame. Made One Game a Month in 2013. Currently working on Jarheads, PicaVoxel, and Lairytales


1GAM July: Hunted

July's game is another exceedingly ambitious title, but I'm pleased to say that this time it has mostly come together. Hunted is a top-down shooter that features a large procedurally-generated "open" world, day/night cycle, vehicles, plenty of guns, enemy compounds to infiltrate and nasty Generals to eliminate.

Hunted takes inspiration from a multitude of games including the Amiga games Hunter and Firepower (prequel to Return Fire), with a smattering of Far Cry thrown in for good measure. The player is a special forces dude of some kind that is tasked with the elimination of three (randomly placed) enemy Generals, within the three-day mission time limit.

To achieve that goal, the player must find and infiltrate enemy compounds by collecting maps from dead foes that reveal the nearest compounds' locations on the in-game map. Occasionally an enemy will drop a map that pinpoints a General's location.

 

There's a lot to write about the work that went into creating Hunted, not least of all the terrain generation. I've never attempted procedural generation on this scale before. I made use of Perlin noise to generate the archipelagos of islands which is a 1000x1000 tile world. Each tile is 100x100 pixels, making the total world size 100,000² pixels.

After the islands are generated, I use a second round of noise generation to create the jungle/forest that covers the islands inshore. I then use a simple iteration over the tile array to generate detail tiling, such as the seams between water and sand, and sand and grass. There's more work afterward to generate the compounds, which must be placed at least a certain distance apart from each other, and contain buildings which are also randomly generated.

Aside from world generation, there's a whole AI system in place that works a little like GTA's 5-star "aggro" system. The player's "Hunted" level rises whenever he is spotted (or heard) by an enemy, and cools down when the player leaves combat. The enemies use a "last known position" system to "find" the player, and spawns and alerting become more aggressive the higher the player's Hunted level becomes.

Vehicles make copious use of camera zooming, especially the helicopter which uses a zoom and offset shadow to give the effect of gaining height. When a player enters a compound building, the roof fades away to reveal the internals. In the day time, the ambient shadows of trees, walls and objects move according to an east-west sun position. At night, a pixel shader is used to cast torch light and shadows.

 

At the time of posting, Hunted needs another couple of weeks to make it into a polished game, but I'm releasing it early as an alpha to fulfil the One Game a Month challenge for July. I'll be spending the next couple of weeks polishing it and releasing a final version mid-late August. August's game will be the result of Ludum Dare 27, which occurs on the weekend of August 23rd-26th. 

Tools Used

  • Monogame / XNA
  • C# .NET
  • Visual Studio 2012
  • Photoshop CS6
  • Audition CS6
  • Tiled

Clockwatching

A whole month of spare time, pretty much full steam ahead. At least 100 hours.

Special Thanks

  • Paul, who once again came through with some awesome spritework.

Downloads

1GAM Alpha version

The 1GAM alpha is an unfinished but playable version of the game. The final release will hopefully be posted in a couple of weeks' time. Here's a list of missing stuff/known issues:

  • Several graphical items are temporary or missing, including: sprites for item pickups, some icons, intermediate water/sand/grass tiles
  • Loading and saving is not implemented
  • No intro/main menu screen
  • No win/lose conditions: The finished game will have a limited mission time, and will end when the time runs out or  all generals are eliminated (the player will also have to find an extraction point to complete)
  • Some missing and/or temporary sound effects
  • Pathfinding and combat needs polishing work
  • Game is unoptimised, resulting in frame hitches and slowness in places. Some of that is also due to using the Windows GL MonoGame libraries, as opposed to DirectX.
  • Joypad controls not implemented Windows. If it doesn't run, you may need to install OpenAL.

  • Hunted (alpha) - Windows .zip