Recreating “The Last of Us” Game in Unreal Engine — Part 1

Dinuka Jay
6 min readSep 30, 2018

--

Image Credits: Last Of Us (2013) by Naughty Dog

Here’s the start of a long adventure of designing and building levels similar to the ones you’d experience in ‘The Last of Us”, the game that touched the hearts of gamers and game developers all over the world. It’s pretty much the best game ever developed (Fanboying so hard here).

The objective of this challenge is to learn the basics of designing and developing a 3rd person game in Unreal Engine. I love game development and it’s a field that I’ve loved since I was a teenager playing around with the beloved FPS Creator. Since then, I’ve lost touch of game development and the endless hours of excitement and dopamine that comes with it. This (possibly) 4-to-5-month journey of recreating specific levels of (or levels similar to) “The Last of Us” is an attempt to polish the basics of Unreal Engine and dive deeper into mechanics of great games and ultimately (hopefully) land with a simple prototype that encapsulates all that I’ve gathered over the course of time. Keep in mind: I am a beginner to Unreal Engine & pretty much game development. This is a learning challenge 🤩

Note: This is not a tutorial for Unreal Engine. It’s basically a documentation blog series. I will document my progress and gather feedback and we can collectively build this!

Ultimate Frikkin Objectives:

  1. Sketch level designs that allow me to build:
  • Stealth gameplay
  • Basic Artificial Intelligence for Enemy characters
  • Basic Character animations

2. Build Gameplay that encapsulates:

  • Health systems
  • Inventory systems
  • Basic storytelling
  • Building cutscenes

3. Design levels using blocks instead of actual models*

  • I am no designer. I am basically a full-time programmer venturing into the wilderness which is game development. So with no prior knowledge in designing my own 3D models, it’s naive of me to begin this challenge with the idea of creating picture-perfect sceneries or breathtaking cliff-drops. I decided to completely take away all aspects of 3D modeling from this challenge and work with cubes. Yes, literally cubes that are freely available in the Unreal Engine editor. No modeling, no fancy shapes, no textures. This allows me to primarily focus on gameplay and dynamics instead of spending hours trying to sketch out environments. I am hoping that by the end of this challenge, I’ll have sufficient knowledge in game design that can help me out with the next phase of this challenge: Adding 3D Models 🙀 (Audience gasps. Everyone suddenly goes on full mute. A distant crunching sound of popcorn can be heard. Someone sneezes and the room echoes with it)

The Beginning

For the last 3 days, I’ve been watching a YouTube tutorial series by Virtus Learning Hub on Unreal Engine Basics. While doing so, I’ve also been playing around with the Unreal engine to familiarize myself with the basics of how the engine works and the basics of content placement, simple terrain building, etc. This definitely laid the foundation for me to get started with a simple block level for the 1st phase of this challenge. If you are planning on following me with this blog series, I highly recommend that you watch that YouTube series first and then jump in. As I said, I’m a complete biscuit beginner as well. That series helped me learn the basics 🙌

Block Level 1

It’s 6 PM on September’s last Sunday. I booted up Adobe Photoshop and created a new document of size 1400 x 1000px. This blank canvas will be filled with the 1st block level that’s on my mind. I spend 30–40 minutes browsing different level designs of the Last of Us (LOU). Google gave me the following examples:

Gameplay Screenshots from the Last of Us (2013) and the Last of Us II (Gameplay trailer)

After hours of gameplay and exploration, these are the noticeable (obvious) statements of LOU’s game design:

  1. Explorable game areas are relatively smaller compared to games like Uncharted; yet action packed.
  2. All game areas are filled with objects that can be used as a cover
  3. Enemies tend to have a predictable and hardcoded movement path
  4. Player can approach areas of the level by either running or stealth walking.
  5. A player can approach an enemy by going in with all guns blazing or silently taking them out like a sneaky lil ninja.

Obvious as some of these statements can be, these will be some of the core objectives of my 1st block level 🤞

With these in mind, I sketched out the block level as follows:

The Last Chapter — Block Level 1

Yep, I decided to call it ‘The Last Chapter’ 😆 Hey comon’ now. If I’m going to write about this challenge and tell the world about it, I might as well give my little game a nice name (that resembles my all time favorite game).

Anyway…

The block level is pretty basic. Player starts in a ‘safe zone’ that’s far away from enemy eyes. Player is given access to 4 blocks of cover to run between. 3 enemies are placed on the opposite side with their own fixed path of movement and last but not least, I added a little room/compartment on the opposite side for lols. Seriously, I dunno why I added it but I think I’ll successfully end this level when the player reaches that room. Sounds good right? 🤔 Right.

Some of the lessons I’ll learn after successfully implementing this level:

✅ 3rd person camera movement/actions
✅ Basic level design with blocks
✅ Simple enemy AI with path-based movement
✅ Stealth dynamics

Rev the Engine

Now that the choirs have been sung and the undies have been washed and dried, let’s jump in to Unreal Engine and design this out.

Milestone A — Design the Block Level

Started a new 3rd person game project. Created a terrain of size 100 x 100. Dragged in some cubes and matched the block design. Changed the starting position of the player and voila! 👇

Bird’s eye view of the Block Level in Unreal Engine
Block Level Closeup in Unreal Engine

With my block level designed, I also wanted to get LOU’s camera angle of Joel. Here’s a comparison of what the end result looked like:

Last Of Us (2013) camera angle vs Block Level camera angle

With the block level designed out in the Engine, my next approach is to setup a basic AI. I’ll write my next blog post with the progress in 1–2 days 👌 For more frequent updates, you can find me on Twitter. I post dev progress there. Hope you guys enjoyed the start of this challenge. More exciting adventures to come! 🎒

UPDATE: I’ve created a YouTube series for this! :)

Next blog post will focus on: Character Models, Animations and setting up basic AI ⚔️

Game Development Series

Creating levels inspired by “The Last of Us” in Unreal Engine.

--

--