top of page


Creating a fantasy RPG world


"After escaping a prison cell deep inside a dungeon you come upon a mysterious lady who gives you a quest, to stop the dark lord from corrupting the land. "

This is the start of my open world level. A third person action rpg with focus on
world design and designing unique areas.

I also focused on combat design as well as open world RPG systems such as upgrading stats and fast travel.



Developed over: 6 weeks half-time
Software: Unreal Engine 4, Blender, Gravit
Assets from: Infinity Blade Grass & Effects by Unreal, Medieval Village by AleksandrIvanov, Dreamscape Series by Polyart Studio
Inspired by: Zelda: Breath of the wild, Dark Souls, Witcher 3



For this project I wanted to quickly be able to jump into Unreal and sculpt a landscape for reference. I then drew a quick overview for the landmarks I wanted and placed them about the world to see the different angles and viewpoints i could make use of with the landscape. 

Sketches and overviews from pre-prod


When building something new I find that using references helps a whole lot. Usually I google something I have in mind for a particular area then scroll through to find something I like but sometimes I find something cool just walking down the street and take a photo or mental map of it. 


Some references I used


Rough blockout & Landscape blockout

After pre-production I got started with the rough blockout and with setting up the landscape. Since I was doing an Open-World level I thought it best to start with terraforming the landscape how I wanted and placing quick blockouts through the area just to know where those places were supposed to be.

I also wanted to try using an asset pack early to test my skills with
building with set assets, though this hindered my design choices a bit.


Refined blockout

After I was done with the landscape and quick blockouts of the larger areas I started work on the in-door areas of the level. I wanted a more detailed version of these sections early so that I could playtest them and get a feel for the metrics I wanted to use.

I made the different areas in a separate level then moved them over to the main level and placed them in their designated areas.

Before & after




After I was done with the landscape and quick blockouts of the larger areas I started work on the in-door areas of the level. I wanted a more detailed version of these sections early so that I could playtest them and get a feel for the metrics I wanted to use.

I made the different areas in a separate level then moved them over to the main level and placed them in their designated areas.





3-Act Structure

When looking for an appropriate flow structure I found that the classic 3-act structure fit well with how I wanted the level to play out. Since it's an "open" world level with a lot of content to explore I wanted to keep the general flow as simple as possible.

ACT 1 - Introduction

The first act of this level is an introduction to the world and the general game mechanics. I teach the player combat, fast travel and using consumables. It also introduces the player to the story after they've succesfully escaped the dungeon and made their way to the fort. There they meet two NPC's that help the player understand the situation they are in and what your quest is.

I start by making the players world small, the dungeon, then opening them up to the larger open world later.


ACT 2 - Confrontation

In the second act I open up the player to the world. They can now explore freely and tackle their quest at their own pace. I also give them a mount to make it easier to travel around the large open space.

Since I give the player a lot of agency here, I decided that instead of using quest markers, I would use a sort of
light beam to indicate where they should go to progress.


ACT 3 - Resolution

After disabling all the light beacons the player can now enter the city and begin act 3. They now find themselves in a completely new environment and have to use what they've learned throughout the level to find and defeat the boss.

This area presents more of a
challenge and I once again constrain the player to a smaller area compared to the open world outside the gates. This in turn acts as a point where the player can notice their progression and know they are on the right track to finish the level.




I set up specific areas, especially in the player HUB, that framed the areas of interest for the player. This helps guide the player to their destination and makes it more obvious where we want them to go. However by framing something, it is a very subtle push in the right direction and not forced upon the player.



A callback is when the player returns and looks upon the area they came from. This helps the player build their mental map of an area and gives a sort of satisfaction by knowing where they came from and where they are now. (13).gif


When designing a large level, i find that it is good to create areas that show the player a large portion of a space to let them plan and take in their surroundings. This also helps me when designing. I can take a look at an area from a macro-perspective first and when i'm happy with that i can look at it from a micro-perspective and get into the nitty gritty of an area.


A technique i like to use for "forcing" players to see the vistas are chokepoints that lead to a big reveal. By doing this you can easily make use of good composition in the scenes the player will view.



When making the AI and combat system for this project at first i wanted something simple. Get the player and enemies to attack, give the player a roll and give both health. But as with most projects i wanted to do more. 

So i ended up making a complicated combat system for the AI. This system is a series of scripts that make the AI attack in turns depending on a randomized number. It also checks if the player is facing the enemy or not, this determines the order of attack to prevent the AI from attack from behind while the player is facing an enemy in front. The system isn't perfect in any way and probably created more bugs than anything else but it was a fun experiment!


Normal melee enemy, sword variant.

Normal melee enemy, axe variant.

Range enemy. Caster that shots fireballs.

Boss. A variant of the normal melee enemy but bigger and tankier.


When scripting i usually create a test scene where i test all my scripts, set the player metrics and do general tweaking of the scripts. I looked a lot at Dark Souls for inspiration of what scripts i wanted to add and what i wanted the player metrics to be. I also added a few scripts to make it my own.


One of the first things i added in BETA of production was an upgrade system. I wanted to give the player a reason to go back to the player HUB. This also added progression and collectibles to the game which gave the player more to do and a reason to explore.

I found that combining collectibles and NPCs would be the best option and went for that. I created two simple NPCs. One that upgrades your weapon when you talk to them and have the required upgrade parts, and one who the player gets their objective from that also upgrades your health.



Weapon upgrade NPC


Story and health upgrade NPC



Seeing how i was doing a pretty large Level i added a rideable mount to the game to let the player traverse the vast landscape a bit faster.

The biggest problem with this script-wise was how to let the player takes control of another entity that also has different health, stamina, speed and animations while also preserving the player character.

I tested around with a few things but the easiest and most effecient way i found was to let the
player character "posses" the mount character. Removing the player character, while putting their model on the mount and respawning them when dismounting.



One of the things i wanted to try my hand on throughout the project was fast travel. I didn't know if i would have the time to implement it but later in development i thought i'd give it a shot and it was much easier than i thought.

The system i decided upon was to simply let the player chose a location they already discovered, press a button on a UI popup and set their location to that area.

It required a bit of tweaking to make it look ok but i am overall happy with the results. In hindsight the game would also take a lot longer to complete without it.




What i would've done differently today

This project ended up being a lot bigger than i first envisioned. I kept adding areas and making the landscape bigger because i came up with new ideas i wanted to try during production. This made it so that some areas were more fleshed out than others when i entered alpha. This is also noticeable now with the project being finished. 

For some areas i am proud of the level design and thought i put into them while other areas, such as the town, feel very bland. I put more time into decorating the town nicely when i should've focused on making the actual design of the town better. In hindsight i think it would've been wise to take an extra week to pre-produciton and actually flesh out the areas and ideas i kept getting later in development.

I also think that the combat seems more janky and buggy than it had to be. I decided on making a more complicated combat system but I could've put that time into designing the areas better.

What i ended up with was an impressive system that didn't look good playing. I could have made a simpler system that would have worked fine for a project of this scale, that would've probably looked less janky and buggy.


bottom of page