Lamb to the Slaughter

Fear the monsters who fear no men.

Lamb to the Slaughter (LTTS) is an unpublished highly-refined prototype of a video game that was developed as the collaborative major project of my Certificate of Digital Media & Technology at the Academy of Interactive Entertainment, under the name of my game dev studio, Icebox Games.

LTTS is a roguelike first-person shooting game where players are required to escape a procedurally generated asylum that is crawling with monsters and demons.

As players explore the abandoned rooms of the asylum, large parasites seal the entryways behind them until the player has survived the dangers that lurk within. Some rooms are also rewarding for the players as they can find chests full of medical packs to heal any damage they may have sustained, and gather tools that aid them in navigation and combat.

The first is a Medical Pack that heals the player. Over-consumption leads to a helpful overdose. The second is an Explosive device that greatly harms all nearby monsters when thrown towards them. The third is a Teleport device, which allows the player to teleport back to where they would've planted the device. The fourth is a Gas device, which releases a poisonous gas that causes consistent harm over a period of time. The fifth is a Gravity device that pulls all nearby monsters toward it for a period of time. Players can use these individually or simultaneously when engaging in combat.

Meet the Monsters

Below is a gallery of portraits made for the several monsters that roam the asylum, the final being the boss that is found at the very end of the game.

In order the exterminate these monsters, the player's primary mode of attach is with their gun, the Exorcist, as seen below. It requires to be reloaded after 10 shots.

Furthermore, another interesting touch to the experience are the messages left on the wall by the seemingly killed patients that used to inhabit the asylum. These thrilling texts drive the game's narrative.

Main Menu

The main menu of the game is designed to look like a padded cell, with polaroids containing the different menu options that are navigated in a dynamic manner around the eerie noose in the centre.

Gameplay Video

The gameplay video with developer's commentary can be viewed here.

Designer's Notes

Procedural Generation

The layout of the asylum was the most crucial part of Lamb to the Slaughter, as it was the only thing that differed between each playthrough. Therefore, the procedurally generative algorithm was developed in order to create a new asylum every time. This was developed in collaboration with Icebox Games technical lead, Dhanveer Ramnauth, who handled the programming.

The following text briefly explains the method by which the asylum is randomly generated:

  1. A large collection of prerequisite rooms is modelled, each with only one entry, and potential for x amount of exits. As well as a spawn room, which is the first room of all play-throughs, which has 4 exits.

  1. For each exit of the first room, another room is attached at the entryway, provided that it does not collide with any surrounding rooms.

  1. Once the second room is attached to the first, of all its potential exits, one or more may become true, and therefore another room is attached following the same principles.

  1. This loop is repeated until the desired amount of rooms is reached, and there are no exits left unaccounted for, making a complete boundary.

  1. At the very end, one last exit is searched for that is furthest from the spawn room to attach the boss room and its leading hallway.

Other Programming Highlights

Using C# programming language, the AI for all of the monsters were programmed in Unity. This includes all the movement, navigation, states and attacks of the regular monsters, as well as the complex AI of the boss fight, whose attack pattern changes throughout the length of the fight. All are effectively manipulated in 3D space and efficient code to optimise performance.

Another issue when developing the game was the consistent dropping framerate. The reason for this was that so many assets were active at once because the entire asylum was procedurally generated. Therefore, a culling system was programmed in which anything that is not in line with the view of the player is not rendered at all. This significantly increased the framerate.

3D Asset Creation

As for the asylum, due to it being entirely generated and having repeated rooms and structures, modular assets of walls, doorways and more were created. These fit together like puzzle pieces when crafting a room, which was seamlessly integrated into the generational algorithm.

All the monsters and weapons were modelled, textured and animated in Blender, along with the rooms, and exported into Unity to be programmed.

Documentation

Last but not least, throughout the creation of this project, detailed documentation regarding the game design and technical design was kept in order to maintain records of development and stay true to the desired product.

Posted on Nov 11, 2023

More by Ansaar

View profile