level design
Uncharted 3: Drake’s Deception
Chapters 14 and 15 - “Cruisin’ for a Bruisin’” and “Sink or Swim”
- The cruise ship was one of the flagship sequences for Uncharted 3. It was extremely technically demanding as it sees Nathan Drake explore a huge, rolling cruise ship that eventually capsizes.
- Responsibilities: Designed original blockmesh. Performed all scripting tasks.
Chapter 21 - “Atlantis of the Sands”
- In my role as Lead Designer on U3, I bounced around from level to level frequently — doing a lot of initial layout and concept development. Near the end, we needed some extra hands on The Atlantis of the Sands, so I took this one to completion. In this level, Nathan Drake discovers the ancient City of Brass.
- Responsibilities: Completed existing blockmesh. Performed all scripting tasks.
Uncharted 2: Among Thieves
Chapters 11 and 12 - “Keep Moving” and “A Train to Catch”
- These levels find the player escaping from a warzone in a Kathmandu-like city in Nepal. One of the most notable sequences in this section of gameplay (shown below) requires the player to carry a wounded ally through a series of tight alleyways, dense with scripted encounters.
- Responsibilities: Designed original blockmesh. Performed approximately 65% of scripting tasks.
![]() |
![]() |
![]() |
Chapters 13 and 14 – “Locomotion” and “Tunnel Vision”
- Here, the player must navigate to the front of a train to rescue an ally as the train passes through jungle, a tunnel, and up into the Himalayas. The section below shows a mid-boss of sorts as a helicopter attacks the player.
- Responsibilities: Designed original blockmesh. Performed all scripting tasks.
![]() |
![]() |
![]() |
Chapter 21 – “Convoy”
- In Chapter 21, the player must get to their ally’s truck. To do so, they platform along a convoy driving up steep mountain roads. This was an especially challenging level to develop since it went into production only a few months before our ship date and was orders of magnitude more complex than the Train. More than 15,000 lines of script had to be written for this 3-minute sequence.
- Responsibilities: Designed original blockmesh. Performed all scripting tasks.
![]() |
![]() |
![]() |








