Skip to content

timpeskett/sotl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Silence of the Lamb (sotl)

Silence of the Lamb (sotl) is a simple procedurally generated endless runner. You play as a lamb attempting to escape the tribesmen who want to sacrifice you to their gods. The game was created over 48 hours in January 2016 for submission to the 2016 Global Game Jam. It was created by myself, Jacob Chapman, and Luke Mercuri, with art provided by Glen Martin.

We set out to create a simple game, as this was our first game jam and we were not sure what 48 hours would allow us. In the end, we had created a simple, yet complete game.

My Role

Procedural Generation

I was responsible for the procedural world generation. The main task was to create an environment that was neither too difficult nor too easy to traverse.

The generated maps are placed into a world map, which has no limited size. This world map is a hash map indexed by a tuple of integers. This is a more complex approach than a simple 2d array, but it gives a better result as there is no limit to the world size in any direction (within reason).

The maps themselves are generated by first filling the map with wall tiles, and then adding in the traversable tiles. Dijkstra's algorithm is used to add traversable tiles on the paths from each exit to each other exit. Randomly generated intermediate points are also generated that the paths between doors must pass through. In this way, generating maps reduces largely to well-known path-finding algorithms and difficulty tuning can be performed by simply changing the number of intermediate points that must be visited by the algorithm. Another benefit of this is that the pathfinding algorithm can be reused for the tribesmen.

In addition to the procedurally generated levels, the original level needed to be created so that it was the same each time. I created a basic level file format and map loader for this purpose.

Collision Detection

I implemented the collision detection for the lamb. This was not too difficult to implement, but it was an important part of the game. The bounding box of the lamb is compared for intersection with surrounding non-traversable tiles on each frame.

Screenshots

Title Screen

The title screen. The Hannibal Lecter reference is not really relevant to the game, so we'll chalk that down to a marketing decision.

Starting Area

This is the starting area. The area is reminiscent of a sacrificial chamber, which ties in to the ritual theme of the 2016 Global Game Jam. There are always four exits to this starting area, as it is a map loaded from disc. This is the only level in the game that is not procedurally generated.

Grass Environment

This is a typical grass area. It is procedurally generated, and so it is unlikely that this exact level will ever be seen again. The yellow tiles are sand tiles which reduce the speed of the lamb.

Dungeon Environment

This is a typical dungeon area. Dungeon areas become more likely to spawn as you move further away from the starting area. This provides a reward for the player and some stark visual affirmation of his/her progress.

Death Screen

The death screen. This screen appears when the lamb is caught by a tribesman.

Audio and Graphics

The audio for the game is provided by the talented Luke Mercuri. He produced all of the sounds in the game using his mouth, followed by some manipulation of the waveforms in audacity.

The graphics were mostly produced by Glenn Martin. He created the tilesets used in the game and the animations used for the lamb and the tribesmen. We were very happy to have him on our team, as the game wouldn't have looked nearly as nice if the graphics had been produced by Luke's mouth too.

Build/Run

sotl is built using libGDX and requires Java 6 or above. After the cloning the repo, the code can be run using a simple

./gradlew desktop:run

Gradle will download all of the necessary libraries to build and run the game.

Known Bugs

  • The tribesmen sometimes teleport through walls. Unfortunately, there simply wasn't enough time to fix the traversal properly.

About

A game created for the 2016 Global Game Jam by Tim Peskett, Jacob Chapman, Luke Mercuri, and Glen Martin

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages