Genre: Stealth
Engine: Unreal Engine 5
You play as a ghost that is evading ghost hunters. Phase through walls and gather your belongings so you can pass on to the next life.
Planning out realistic room layouts that create interesting emergent gameplay.
Assembling a realistic house layout with non-linear design principles.
Planning enemy patrol pathing to create memorable scenarios.
Playtesting. A lot of playtesting.
Initial pitch for house layout. Notably, composed of segmented "encounters" in each room, making it technically non-linear, but not as strong as a non-linear experience could be.
This project required me to work in a design space I was unfamiliar with.
In my initial pitch for the house layout, I bridged this gap by placing objectives in rooms with only one entrance, so each evidence room could be a linear challenge. (Keep in mind, phasing through walls was added in Beta). This is what I had experience with, and where I felt comfortable.
However, the team unanimously pushed for a non-linear experience. So, I studied stealth games, like Hitman: World of Assassination, to learn how to do this.
I've worked on spaces meant to feel open and organic before, but it was still linear game design. Ghost Mortem is inherently a non-linear experience. As such, I had to teach myself how to create a non-linear space that still has gradually increasing difficulty.
In interviews, the Hitman series developers talk about how they did non-linear design. “They’re basically spirals, or a snail house, we call it.” What this means is to create a main, orbiting track that sees all the sights, and create side trails for the player to cross. All rooms need to have a good flow, and there shouldn't be dead ends.
I applied this principle on a micro and macro scale. All spaces should have a main path with sideways to sneak around, on all scales.
There is a main path that snakes around the house, but the player should be encouraged to sneak between rooms.
There is a main path that snakes around the room, but the player should be encouraged to sneak between cover.
During preproduction, I focused on room design. This would give the artists guidance, with room for their work to shine.
I created layouts for every room in the house for two reasons.
It enables me to decide how to make each room feel like that type of room, as well as enabling interesting and unique encounters.
It enables my artists to begin doing concept art and plan props that would go into the final build.
I would then assemble these rooms into a house in Alpha.
Vague enough for artist interpretation, while giving a clear spacial layout of the room. (At this development stage, we had traps like an oven or a banana peel. This was cut in Alpha.)
Notice how it's good and not bad?
In Alpha, development moves rapidly as ideas get fleshed out.
This was my first time on a project with this team size (10 people) and this long (3 months). As team size grows, individual responsibilities shrink, but interdependencies grow. Being level designer in Alpha on a team of this scale puts you into an interesting position.
Systems needs a space to work in locked down, and Environment Art needs some freedom to experiment. How do you satisfy both?
Prototype the house in a rapid way for the systems team, then prepare the actual house for artist's convenience.
Rather than iterating on a house, meaning everyone's working on it at once, having a prototype house that resembles the final house but is meant to be discarded lets them get working immediately. Meanwhile, the artists have been doing block out versions of furniture and practice versions of the rooms on their own, so as long as I keep the same rooms, they're doing good work already.
I recently had learned about Unreal's Cube Mapping tools, which is probably one of the best tools for creating buildings. So, I built the walls, floor and ceiling as one solid mesh. Then, I threw in basic geometric forms with text labels to represent furniture.
In this phase, we moved from the prototype house to the final house.
Now, we have working enemies, beautifu
Our current filesharing and version control system was TortoiseSVN, which uses a file locking system where, if someone's working on a file, it locks everyone else out of working on it. This prevents file conflicts but can be annoying when you have a team of 2-3 environment artists, a system designer and yourself trying to work on the same level. Which is the only level in the game.
I used Unreal's Level Streaming to work around the restrictions of TortoiseSVN and enable the rest of my team.
Unreal's Level Streaming is usually used to load in and out segments of levels, like how Source uses visleafs, except manually and with intention. What this means is that I could turn rooms into sub-levels, so that artists can check those out and work on them.
Now, our team of 3 artists don't have to wait their turn to check out the level, and can instead all work simultaneously.
I hadn't learned how to properly scale stuff. My artists handled fixing the furniture proportionally to the player, but the room scale was off. This conflict is due to a failure of communication; I was under the impression we were doing a mansion or manor, so I made the rooms feel larger than life and played with ceiling height. The rest of the team wanted the house to be more grounded, so I had to fix room height. Luckily, because the original house was both a mock-up and sandbox environment, I was free to redo room scale on a second pass.
During playtesting, some people pointed out how unrealistic the bathroom was in terms of layout. I live in a very strange house, where there was a bathroom with two doors on it that I often used as a shortcut in my home. I recreated this in game, using the bathroom as a hallway. (I'm unsure why nobody called me out on it, maybe because the original version of the house was a manor so eccentricities were overlooked?) So I removed a door and turned it's function from "a hallway" to "a hiding place" which better fits genre conventions.
At this final milestone, on my 10 person team, I shifted into a playtesting role.
As level designer, I did this both to make minor, last minute refinements and to support the team. These refinements included starting the player facing the shrine, so they knew to take the items there, and making terrain easier to navigate.