Cagliostro

Overview:

This was a level I started in my University's Experimental Level Design Module, the goals of that module were to use a new editor, so I challenged myself with Radiant for COD 4 using written scripts in GSC and older bsp workflows. Also wanting to explore stealth combat with the more linear nature of the Call of Duty series feeling this was as good a place as any, giving myself the added challenge of placing all this gameplay in the real world location of Kenilworth Castle.

The project itself took a total of 17 working days (8 hours a day). With design tweaks, code refactoring, rerecorded audio and additional meshing work coming after the module was over.

What I did:

  • Quickly designed, prototyped and refined on level script using Infinity Ward's C-style scripting language GSC
  • Designed around stealth gameplay through layout and scripted animations & sequences
  • Designed systems with player choice in mind (using fail states to skip stealth combat)
  • Created level geometry based on a real world location (Kenilworth Castle), adhering to real world metrics
  • Authored narrative sequences using AI behaviour as well as animations and audio systems to deliver story through gameplay

Written script:

First and foremost this project was my first proper experience learning written script for games as opposed to the visual blueprinting seen in engines like Unreal. With that in mind I felt it was worthwhile having a short video discussing some of the ways I've gone around writing some of these scripted sequences in a timestamped video below:

(The stab encounter is the real meat of the video so feel free to skip ahead to that section.)

Design Techniques

Threat demonstration

The stealth mission opens with some tension, suprising the player with a dog enemy early, showing the threat they can pose before the player faces them directly.
This moment also reinforces the level's core theme, of Price learning to put trust in the player.

Redirection

The player's desired path in the gardens being blocked with the use of a smoking guard. Using simple AI placement and geometry to show the solution, that of the hole in the fence.

Telegraphing

The enemies run past the stairs, telegraphing the next cinematic beat, adding an element of reactivity to what is otherwise a scripted sequence.
Once again Price doesn't take these targets alone, but with the help of the player.

Framing

A sniper occupies Price's future vantage point, this providing another narrative beat whilst also acting as a navigational pointer as to where Price will provide cover from for the rest of the mission.

Fail States:

After a lot of iteration and testing I ended up with various fail states for the different sequences, allowing player agency with how they tackle these cinematic beats, often having an intended experience but not completeley failing the mission if they didn't follow the desired path. Below you can see some examples for the stairway encounter of how I tackled these fail states.

Main Combat encounter:

Price having assumed the position of the sniper it's up to the player now to drop the stealth and push his way through to the documents. That same sniper spot providing the player a clear view of the encounter space before the player enters it.
Placing player and enemy cover in a way that gives the player to push forward and control space in the area, clearing a path towards the documents.
The encounter starts with the dog enemy rushing towards the player as a nod to the intro, before the rest of the guards are alerted by this and spawn in seconds later.

Preproduction

  • Always having wanted to use a real world location for a level and knowing I'd have my hands full with the scripting side. I decided to use a place that I had visited quite a few times as a pit stop on my journey to and from university, Kenilworth Castle.
  • The main gameplay sequences inspired by Lupin the Third: The Castle of Cagliostro featuring a similar 2 man infiltration which later escalates to an exfiltration.

Reflection

This was an extremely fun project to work on. Looking through developer code to figure out what was a largely undocumented engine gave me a lot of perspective on how industry writes mission script, especially compared to modern tools. Implementing the stealth mechanics from scratch also gave me a much clearer idea on how games create tension and suspense through those scripted sequence.

At this point I'm looking to challenge myself in other ways, however if I were to continue working on this project here are some things I would be looking to change:

  • Lighting, being under the cover of night would sell the mission a lot more and would allow for the use of lighting in unique ways to guide the player
  • More non interactive AI, we have the smoker guard blocking the player however the addition of more patrolling guards as blockers as opposed to random dotted trucks, cars etc. would properly sell the base as a living, breathing place and less like a scripted theme park ride
  • Finishing up the rest of the mission, currently it ends quite abruptly after grabbing the documents, I had a holdout for evac section planned and partly blocked out (see the image above), however this was cut due to time
Return Home