Medival RPG

You are a knight in a world full of evil.. so be catrefull

Development and my role

During my minor at the HdM (Hochschule der Medien) Stuttgart we had to take a look at existing games, analyze them and pick one system/mechanic from a game and develop it. For this we took a deeper look at the quest and dialogue/conversation system of the Witcher 3 Wild Hunt from CD Projekt Red and Horizon Zero Dawn from Guerillia Games.
In the end we designed our own dialogue and non linear quest system based on those games.

Tools used:
Unreal Engine 4
Still going strong
Team Size:
Game designer & Gameplay programmer


One of the many challanges

Design challenge

The biggest design challenge I had was comming up with a quest system that would support non linear quests.
We wanted to build a non-linear quest system because a lot of the games we see these days contain linear quests, there is always a fixed pathway for the player to solve a problem, only in very rare occasions the player can really choose his own path, his own way of doing things.

The solution

I came up with a design by looking at games like The Wicther 3 Wild hunt and Horizon Zero Dawn. Looking at how they implemented their quests and changing it to my own needs.
These games do implement some form on non linrearity.

Technical challenge

One of the challenges I had with developing this quest prototype was the following:
How am I going to make a dialog system in which different actions could be carried out/ different events could be fired from different parts of the dialog.

We needed this for the prototype because we wanted the system to be flexible and not hard coded.
I wanted to give myself, as a designer, the possibility to specify for each line in the conversation if there was an event that had to fire or and action that had to be carried out.

The solution

I came up with the solution of giving each line in the dialog an Enumeration.
This Enum had different values like:

  • Accept quest
  • Open shop
  • End conversation

More values could easily be added to this enum.
I also made a structure which contained all the information for the answer the player could give:

  • Answer text
  • Possible Event to fire
  • Possible quest to start

With this solution it was possible for me as a designer to highly customize the the dialog experience with an NPC in the game.

I came up with this solution by doing research on dialog systems, looking at how other games implemented and used them and iterating on prototypes of the system.

Since this whole project has been made with Unreal blueprints, I want to show some of the blueprint events/ functions I made.

The design

Check out the Game Design Document!