As part of the Directed Focus Study I course at The Guildhall at SMU, we were asked to do a solo project in the Gears of War engine that really pushed its boundaries. Since I've always been a lifelong fan of adventure games like Monkey Island, The Longest Journey and Grim Fandango, I decided to make an adventure level into the engine that played like one of those classics.
This was a very challenging project, since Gears of War is a third person shooter, and that meant that none of its core mechanics, like cover or shooting, would be useful for my purposes. This meant that I had to design and implement all the gameplay systems from scratch, only using Kismet, Unreal's visual scripting language (Gears of War does not grant access to the source code).
After 300 hours of work, which include documentation, prototyping, building, testing, re-building, re-testing... (you get the idea), I can finally say that I'm proud of turning a third person shooter into an adventure game. I learned a LOT from the development, and these lessons are what I'm sharing with you in this feature.
What Went Right
1. Scripting Pipeline Figured Out Early: The first big challenge of this project was figuring out how would I be able to implement an inventory system that allowed for item combinations and was scalable, so if I wanted to add more items, or more hotspots, I could do it easily. For this, I approached the problem by dividing it in two: inventory items and hotspots, and creating a dedicated, though similar, pipeline for each of them. This also meant that any item that could be picked up had to be treated in two different ways, depending if the player had picked it up or not. The nuts and bolts of the pipeline are on the project's page (http://www.joseabalos.com/solo-projects/reggie/), but sufficient to say, I managed to implement all the major systems of the game, including most of the level's scripting, by our Whitebox milestone.
2. Design Given Technical Constraints: One of the first constraints I found was the communication between Gears' UIScene editor (Scaleform before Scaleform) and the level. The idea was to make it so whenever I opened the inventory, the inventory scene could read what items I had and display them, That was not the case: basically, the inventory scene could not read anything from the level. This meant that I had to make one inventory scene for any possible item combination, selected by a binary search tree. This tree can quickly grow out of control: if the player could have 3 items at the same time, that was 8 scenes (2^3). 4 items, 16 scenes. 5 items, 32 scenes. And so on...
Since adventure games usually allow the player to pick up several items, this meant that there could possible be thousands of different scenes, and I wanted to keep my sanity. Instead, I designed the stage in five "stages" that represented important story beats and had items that could only be picked up and used in that individual stage (with a few exceptions, to keep things interesting). This decision influenced everything from level streaming structure to package convention and naming conventions of files. Thankfully, I was able to figure this out quickly and design the level around this problem instead of charging head-on and possible become insane.
3. Atmosphere: One of the core tenets of adventure games is a strong sense of atmosphere, which invites players to explore the world around them instead of plowing through it. To achieve this goal, I used music from games like Grim Fandango and the Telltale Sam & Max games, with a smooth, jazzy vibe, which reinforced the idea that this was a relaxed, lighthearted level. Other ways in which I tried to add atmosphere to the level are the story and the dialogue with characters: the story is about a Stranded who looks for the titular Reggie in the hopes of getting free booze (or a unicorn that poops rainbows, if the player chooses the appropriate response). On the dialogue side, many of the dialogue trees have a non sequitur answer, in the spirit of The Secret of Monkey Island (when asked who they are, the player can respond "I'm a banana", along with the more straightforward answers). This all reinforced the idea that this was a Gears of War level unlike any other.
4. Environmental Storytelling: Another way in which I tried to add atmosphere into the world was making every area visually distinctive, where just looking at the space could tell the story and personality of its inhabitants. This implied making lots of custom posters and models like microwaves or lighters.
5. Communication: Since I was teaching new mechanics not featured in Gears of War, communicating them to the player was crucial. Using tutorial messages at the beginning of the level, using custom exclamation marks to denote the hotspots in the level, and forcing the player to take, use and combine items before proceeding with the rest of the level, testers understood how to play the level and proceed without any difficulties.