Name:Konrad KUCHARSKI
Position:Senior Game Programmer
Company:Techland



I’m a Senior Game Programmer at Techland, working there for the last 10 years. I’ve started as a tools programmer during the development of Dead Island. With Dying Light 1, I moved to one of the gameplay teams which was responsible, among others, for our quest system. Somehow, I sticked to that topic for the next 7 years. Since the beginning of production of Dying Light 2, I was mainly involved in the design and creation of our new system of quests. Right now, I’m not only responsible for that one, but also for two other systems revolving around narration: dialogs and movies.


This presentation shows our process of developing a completely new quest system for Dying Light 2. It discusses how we solved key problems. I will emphasize the importance of proper research and design preceding the implementation phase. Practice showed that this was time well spent and has propelled our work further.

We had to switch from quests in the form of trees to the form of graphs. I will explain the reasons behind this decision and describe the details of the new quest structure. I’ll present how the flow of the quests can be steered with both connections and the usage of variables.

Our approach was an evolutionary one, based on problems faced during the development of Dying Light 1. I will show examples of these problems and describe how we solved them by the creation of a unique mechanism recording a complete history of all actions made by the player. The best analogy is a massive undo stack, which you can go through in both directions. The biggest advantage is that it single-handedly supports quest execution, gamesaves, and replication of quests in the co-op portion of the game. I’ll present how it allows for the runtime debugging of quests with the use of an editor.

During development, we had to overcome difficulties introduced by the streaming of world objects. I will show how we created “Persistent Storage”, our mechanism responsible for storing all crucial information, which must be available even if certain parts of the world are missing at the time. I will describe how the communication between quests and objects in the world is handled.

The system we’ve prepared has definitely a lot of novelty. Aside from certain limitations, it allows for the creation of a AAA co-op game with a nonlinear story.


View