top of page

Tiger's Nest - an Uncharted Homage

What follows is a breakdown of the process for the 30m playable blockout demo made during the Into Games Level Design Course taught by Peter Field. A project which I afterwards polished up for submission during Blocktober 2023.

I initially joined the course as a kick in the butt to create some personal work, but I was pleasantly surprised to find there were lessons to learn for more experienced designers along with those new to Level Design.

I won't repeat all the lessons taught by Peter, but instead, how my own process worked, as well as the specific tips that stood out to me.

Process

Since the project was not meant to be taken into release like a real game dev environment, I modified my development gates slightly:

  • Prep / High Level Goals

  • 2D Pitch

  • 3D Concept

  • Critical Path

  • Fully Playable

  • Polish
     

 

Prep / High Level Goals

Heading into the course, I knew I wanted to play around with the excellent character controller made by Jakub W (Interaction with ALS). I'd also been toying around for years with an Uncharted inspired level, and every time one came by on Twitter the itch resurfaced, so I resolved to check it off the bucket list.

As for my setting, I was reminded of my very first level design project ever in university.
At the time we were asked to make a small PvP map for UDK Unreal Tournament.
I chose the Tiger's Nest, a beautiful monastery in Bhutan.

I don't feel like I did the location justice at that time, so I really wanted to take another swing at it with the combined weight of the 10 years of experience since.

So with that, I had my Engine (UE5), I had my 3Cs controller (IWALS), my setting (Monastery in the mountains). As for story, I kept it loose and vague since I didn't plan to invest time in dialogue cards, set pieces or cinematics. We're a Nathan Drake esque character making his way to a monastery with some baddies getting in our way.

tigers-nest-taktsang-goemba-paro-valley-bhutan-E648XY.jpg

2D Pitch

Making a 2D map to illustrate your high level goals, and then finding reference images to support those plans, that's how I've always thought of the 2D Pitch. Over the years, I've found that I really appreciate the ability to see my 2D sketch in 3D to scale so I can iterate back and forth between the two levels of detail. It also helps my metrics addled brain stop worrying about going off scale.

I also tend to worry about scale in a realism sense. Knowing the dimensions of a real mountain path and monastery makes it easier to create a convincing one inspired by it in 3D.

For that reason I have a specific workflow I use whenever my setting is based on or heavily inspired by the real world:

  • Look up a good reference for your planned content in google maps, which in my case would be the real Tiger's Nest in Bhutan.

  • Change the layer to satellite view and right click on the map to select "Measure Distance"

  • Put down 2 - 5 points, each a set amount of meters away from one another, preferably forming a perfect square, but any line could work, I usually go for 50mx50m or 100mx100m squares.

  • Take a screenshot (win+shift+s) of the area at the zoom level you want, I usually go for about 1kmx1km or less.

  • Open Photoshop or your pixel based image editor of choice and import the screenshot.

  • Now adjust the canvas size of the editor to a power of two square image (1024x1024 / 4096x4096 etc) based on how big you expect your level to be. 102.4 meters in google maps will turn into 1024px which will turn into 10240 Unreal Units (centimeters) or a 1m cube scaled to 102.4x default size.

  • Scale your image so that 50x50px on the canvas lines up roughly with the square you drew in google maps.

  • Later on you'll import your 2D map into unreal as a power of two and map it to a cube scaled to that same length to perfectly replicate the scale of your map and the real world.

This method can give a helpful foundation, knowing what size certain buildings, geographical features or objects are, and being able to cut copy and paste them around in your 2D map while keeping them handy as a 2D floorplan when you start work in 3D. It speeds up a lot of the early iteration where you're eyeballing scale and trying to get a sense for how your shapes relate to one another.
If you look at my google maps screenshot and compare it to my 2D map, you'll notice that I'm only loosely using the mountain trail as a reference, because reality often makes for boring gameplay. I'm only using it to infuse my layouts with a realistic scale baseline. You'll also notice that I haven't detailed all of the playable space at this stage, I've essentially drawn a simplified critical path that I think player's will follow. That's because I've yet to plan out my gameplay beats at this stage, so I'm not sure how much more room I want to carve out for those beats at which points along the mountain trail.

A big lesson I learned from Peter, was to put Reference gathering BEFORE the 2D map, as well as to LOCALIZE your references inside your 2D map, giving each part of your map a clear visual identity. This lets your reference images inspire the 2D map, rather than you trying to come up with reference images that roughly correlate to the idea you had for your map.

It's pretty hard to come up with cool ideas for a 2D map when staring at a blank page, so I really appreciate this approach as a way to let yourself soak up inspiration and letting it guide you into coming up with cool layouts.

Screenshot 2023-09-20 032800.png
Screenshot 2023-09-20 032852.png
TigersNest.png
Screenshot 2023-10-27 034500.png

3D Concept

When making the transition to 3D, the most important thing to master is time management. It's very easy to get lost in the weeds and start noodling on either endless iteration or adding too much detail too early on. The latter will make you less willing to redo areas of your level that aren't working due to the sunk cost, while the former can drain your motivation as you spin your wheels feeling like you can't progress.

From an overal goal perspective, having clear question(s) you aim to answer during each major gate of development is a way to give yourself some focus. This allows you to pull yourself back on track when you've clearly stopped working to answer said
question(s). In my case, the questions I wanted to answer at the 3D concept stage were:
 

  • Does my mountain trail work in 3D?

    • Is the Scale convincing and are the vistas visually engaging?

    • Is the trail wide enough to comfortably traverse?

    • Can I envision myself veering off the path to engage in more complex gameplay beats?

    • Does the path curve enough horizontally and vertically to stay interesting to navigate?

  • Do I have enough room to build out more complex gameplay beats in the key areas I identified?

    • Can I create an internal cave area halfway through the Level?

    • Can players explore the Monastery Grounds near the end of the Level?

As you probably noticed, most of these relate to scale, which is what the 3D concept is about for me, testing your sense of scale and the overal Level flow from end to end.

From the workflow perspective, a widely agreed upon method to speed up your workflow and reduce disctraction, is figuring out your Metrics as early as possible. In Level Design a metric is any set distance or range of distances that distinguishes a desirable use case from an undesirable one. Read more on Metrics here.

Creating Metric Kit Pieces, is a practise where you take your metrics, and bake them into static meshes that are built on the grid, so that you can snap them together like lego pieces and quickly build out a large amount of spaces that will all comply with your character's abilties.

In the video you'll notice that I'm only using 2-3 kit pieces in this iteration so far, because I'm not looking to establish a lot of detail, I'm mostly worried about not wasting too much time as I work to answer my scale related questions. I'm not even worried about rotating my cubes so that they form a nice incline for me to traverse over, because I know my Character Controller can pull himself up onto these cubes.

My main takeaway from the scale test I did at this stage was that I wanted to return back to the Level Size I had estimated initially (4096x4096) instead of the quartered size I tested out to reduce the scope of the level (2048x2048). The reduced size felt too cramped and was starting to lose me in it's realism. I committed to cutting pathways and streamlining the level experience in other ways instead of trying to cram all of the beats I wanted to hit in a smaller space.

Metrics_Gym_WIP.png

Critical Path

Now that I was happy with my rough scale, I needed to make sure it could be traversed from beginning to end and block out my major gameplay beats, the meat of the experience. At this stage, my plan was to have 5 major beats, with minor ones stringing it together and a loose ending that allowed players to explore the final monastery grounds at their leisure. Each beat was to be enriched by the ideas I had when looking at reference that I positioned at the specific point along the mountain path.

I looked at each of my reference images for the major beats, and tried to imagine which architectural features in the image would make for cool or unique gameplay spaces.

 

For the First Beat, I really liked the little towers that felt like watchtowers to me, so I experimented with that as my focal point, giving players a single access point to the space that put them in a watch tower, with the choice to clear the combat encounter from that position or to sneak further in.

 

For the Second Beat, a stealthy combat section, I wanted to allow players to observe the bridge building from underneath, both because it looked cool, but also because it would let me foreshadow the climbing options that were hiding inside the building. This meant that I needed to resolve a lot of verticality, which led me to add a dive down into a water cave at the end of the first beat, as well as a lot of climbing gameplay leading into the second beat.

 

For the Third Beat, I knew I wanted to have a combat section that had you running and fighting your way up curving paths in the ruins of a forgotten civilisation in a cave.

As I started work on the 4th Beat, I started to realize I needed to make some cuts to keep the scope somewhat manageable. So I started to think about ways I could reduce the scope going forwards. But I was happy to have a working critical path that could be traversed from beginning to end.

Fully Playable

As I started blocking out the final area, which was supposed to be low stakes exploration, I started to explore a lot of cool ideas for combat or climbing gameplay, leading me to modify my plans for the level. Knowing I had some scope issues to resolve, I decided to include the Monastery Grounds as the final beat of the level, and instead get rid of the entire second mountain trail loop.

The main thing I wanted to add in this pass, was proper climbing gameplay. The Character Controller I was using (IWALS) has a lot of cool climbing moves, which I was hoping to make use of.
During this pass, I also added some more visual detail to areas of the level that I was comfortable locking down in terms of geometry and flow.

This version of the level is what I handed in at the end of the Into Games Level Design Course.

I was very happy with the progress at this stage, but also itching to add some more finishing touches such as playable combat encounters and touching up the many transitional spaces or secondary beats I had glossed over in an effort to have something cohesive done on time.

The original goal of the Course was to create a 5 minute playable during the 3 weeks, which I  never intended to commit to, but it made me feel good that I was able to deliver a 15m+ experience at this level of quality. As I mentioned at the start, the course was mostly a kick in the butt for me, my personal goal was to build a 20 - 30m fully playable experience.

Polish

Once the Course was wrapped up, I set my new deadline to be the end of the month, so that I could upload my work as part of Blocktober 2023. My goals were:

  • Add in playable enemy encounters for all combat spaces

  • Touch up all of the transitional spaces and secondary beats that were left behind for the sake of the original deadline.

  • Add in some technical touches to make it bearable for a playtesting audience such as a respawn mechanic, a checkpoint system, loading/unloading zones for the encounters and some collectables to find.

My mantra to myself at this time was "wrap it up, wrap it up, wrap it up". I was doing my best to not get caught up endlessly reinventing everything, but to put a bow on what I had so I could move on to the next thing.
This did led to some awkward decisions, such as my extensive usage of my intially "temp" rock asset instead of using terrain, but it felt less stressful and time consuming to continue on as I had instead of scrap what I had and replace it for a better approach.

I had to spend a significant amount of time tweaking the Enemy AI logic included in IWALS in order to find a balance between AIs that could support combat and stealth gameplay. The end result is a balanced a bit on the easy side, and comes across as goofily unaware at times, but I'm happy with the behaviour overall in terms of not feeling needlessly frustrating:

  • I slowed their walk / run speed to avoid them swarming the player

  • I massively reduced their damage output

  • I reduced their ability to spot the player in stealth, introducing new logic such as distance from the player, whether they were visible on the player's screen and whether the player had recently fired a bullet.

  • I also reduced their ability to propagate having spotted the player to fellow AIs as well as going on alert when finding a dead body.

  • I purposefully cut holes in the Navmesh to create zones for the AIs that they were unable to leave, so that combat encounters could be split into multiple waves that preserved the feel of the encounter I was looking for.

The final result was a 20-30m playable that I'm pretty proud of!

That's not to say I don't have any further points of improvement, I have too many to list.

But I feel like this is a good place to leave things for now.

What's Next?

If I decided to iterate further on this playable, where would I go next? These are the things at the top of my list:

  • Replace the exterior rock geometry with a mix of Terrain and specifically placed rock meshes.

  • Replace some of the beats with puzzle gameplay.

  • Add a proper ending with a fadeout.

  • Add a main menu for proper player experience.

  • Do a proper lighting pass for the entire level.

  • Polish up the combat encounter spaces further by playing with enemy weapon equipment, cover placement and bringing back some of the difficulty.

Thank you so much for reading along, the final result is viewable in the full playthrough below, but it's also playable on Itch.io!

bottom of page