Introduction

About the project

This is an attempt to recreate Dungeon Master using Qt and C++, and a map editor to create content in our own format.
This will be a long term project because the game is very content rich, and I don't know if I will have the time to finish everything.
Because firstly I never finished to play the game myself, and secondly I can't predict that I will always have the time to work on it.
But I will do the much that I can and I have good hope that I will cover most of the game.

Why doing that ?

My aim is not to produce a commercial game or to make money by any way with it. I don't have the right to do that.
It is more a programming exercise.
My main goal is to show people that don't have the luck to work in video games what the development of a full game looks like.
And perhabs that someone will improve the little engine I am coding and create it's own game with it.
Or recreate another old game...

Why Dungeon Master ?

Even if it's one of the first games of this type, Dungeon Master is very content rich.
Apart from the classic D&D elements - objects, inventory, evolving characters - it has traps, secret passages, teleporters that acts on players or only on objects, potions...
Well, really a lot of mechanics. And even today's dungeon crawlers do not add so many new things.
By the way my aim is not only to replicate this game, but also to create tools that could be used for other games.
So starting with a game with so much mechanics is a good way to produce strong and flexible tools.

Why Qt ?

To create a game with so much content, we will need a powerful tool.
The map editor will take a large place in this project, and Qt allows you to create complex interfaces very easily.
In addition, it's free and it's a cross platform software that can be used on PC, Mac and even mobile devices.

Why C++ ?

In a time where every new platform brings it's new language - iOS uses Objective-C and Swift, Android uses Java, Unity uses C# -
C and C++ are still used on many platforms. Take a look at PC and consoles like PS and XBOX, most of the game engines and coding examples are in C++.
I have been working in video games for more than 15 years on nearly every computers, consoles and mobile devices, and during all these years I only used C/C++ and a little bit of Java
Even if many people say that C is dead, I can tell you that it's still alive !

What will you need ?

For Qt: I recommend you at least v5.6 be sure to check the QT Quick Controls when you download it as the map editor is a Qt Quick Controls.
A basic knowledge of how Qt and QML works is more than recommended as this a little unusual environment.
Unless tou already have a C++ environment set up - i.e. Visual Studio - you will need to install the MinGW that is included in the Qt version you choose.

For C++: A somewhat good knowledge in C programming - I code in C++ but I don't use a strict C++ style for many reasons.
Anyways, I will try to explain as much as I can the different parts of the program, and I will keep the code as simple as possible.
So porting it to your favorite language, if you know it well, should not be very difficult.

You will also need Gimp as I will sometime use xcf files to explain and visualize the positions of the graphcal elements of the original game.