Research-QuestManager

This is a Research Project about a Quest Manager developed by Guillem Turmo.


Project maintained by Turmo11 Hosted on GitHub Pages — Theme by mattgraham

Welcome

Hi! My name is Guillem Turmo Gonzalez and this is a Research Project about a Quest Manager I did as a student of the Bachelor’s Degree in Video Games by UPC at CITM. This content is generated for the second year’s subject Project 2, under supervision of lecturer Ramon Santamaria.

What I’ll be talking about

My Research Project consists on how to implement a proper Quest Manager into a videogame using the SDL & STL libraries. In order to do so, we firstly need to understand what is a quest and what involves managing them. Therfore we will be taking a quick look at:

Quests Variation

Event System

Data Driven quests

How do we implement our own Quest Manager

Introduction

Why do we need a Quest Manager?

You might have been thinking about that project you’ve had in mind for a while and all of the cool things you want to implement, but you might have overlooked that making a mix of a sandbox RTS and a fighting game was a bit too much for your scope. Therefore you realize your game needs some simple mechanics that keep the player engaged and entertained. There’s where the quests come in, which might sound a bit simple to you but actually they are one of the most important core elements of the most iconic videogames of history.

Many people might not agree, they may tell you that lots of huge games came out without any kind of quest system, and even though there’s always exceptions, they would be surprised of how far from reality they are. And that’s because the beauty of quests is that they can appear in many different forms. Some designers lean towards a more visible quest system where you literally own a Mission book that shows thousands of different quests to unlock.

However, others tend to implement a more subtle system where you won’t even feel like you are following a set of quests. And that is because Quests are such a key element in video game design and development that is really hard to avoid them. Instead of doing that, you should try to take the most benefit out of a well designed Quest Manager. Here are a few things you should take into account while brainstorming about how you want your Quest System to be like:

Implementing a Quest System

After that short introduction, I’m sure you must be expecting the Quest Manager to be a real challenge, however the core basic Quest manager it would actually look something similar to this, which is basically manages an xml file from where we will get our quest data, and three lists to store and organize quests as they get loaded, activated or done.

Quest Sytem Structure

We then also have a simple object Quest with some of the info you might need when interacting with other systems

Quests Structure

One last thing to comment before getting with the TODO’s, I’ve mentioned many times that the Quest System interacts with many different systems, that’s why we will also usually create an Event System that is able to track the different events that happen in the game and is in charge of transferring all of that information to the quest system. However, you won’t find a structured Event System in this project since I opted for a more simple and visual way of understanding a quest system. Once said that, let’s head over the TODO’s

TODO

The environment I chose for the project is a simple but yet very visual game that consists of a player (blue square) that can move using WASD or the arrows. Its mission is to collect different fruits from the board (5 different types of fruits, Cherries, Bananas, Oranges, Watermelons and Mangoes). The main goal of the game is to earn five achievements completing quests

We’ll be working mainly on the QuestManager module and header but we will also use the App and the Scene modules, therefore you can ignore the rest since their only purpose is to support the game context and not the research itself

TODO 0

TODO 1

TODO 2

TODO 3

TODO 4

TODO 5

TODO 6

TODO 7

Thanks!!