Partie 1: Introduction

A propos du projet

C'est une tentative de recréer Dungeon Master avec Qt en C++, et un éditeur de niveaux pour créer du contenu dans notre propre format.
Ce sera un projet à long terme car le jeu a un contenu très riche, et je ne sais pas si j'aurai le temps de tout finir.
Car d'une part je n'ai jamais fini le jeu moi-même, et d'autre part je ne peux pas prédire que j'aurai toujours le temps de travailler dessus.
Mais je vais faire tout ce que je pourrai, et j'ai bon espoir de pouvoir couvrir la plupart du jeu.

Pourquoi faire ça ?

Mon but n'est pas de produire un jeu commercial ou de faire de l'argent avec. Je n'aurais pas le droit de faire ça.
C'est plutôt un exercice de programmation.
Mon objectif principal est de montrer aux gens qui n'ont pas la chance de travailler dans le jeu vidéo a quoi ressemble le développement d'un jeu complet.
Et peut-être que quelqu'un améliorera le petit moteur que j'écris et créera son propre jeu avec.
Ou recréera un autre vieux jeu...

Pourquoi Dungeon Master ?

Même si c'est l'un des premiers jeux de ce genre, Dungeon Master a un contenu très riche.
En dehors des éléments classiques d'un jeu de rôle (les objets, l'inventaire, les personnages qui évoluent), il y a des pièges, des passages secrets, des téléporteurs
qui agissent sur les héros ou seulement sur les objets, des potions...
Il y a vraiment beaucoup de mécaniques de jeu. Et même les jeux de donjons d'aujourd'hui n'ajoutent pas beaucoup de nouvelles choses.
De plus, mon but n'est pas seulement de répliquer ce jeu, mais aussi de créer des outils qui pourraient servir à créer d'autres jeux.
Alors se baser sur un jeu avec autants d'éléments est un bon moyen de produire des outils solides et flexibles.

Pourquoi Qt ?

Pour créer un jeu avec autant de contenu, nous allons avoir besoin d'un outil puissant.
L'éditeur de niveaux prendra une grande place dans ce projet, et Qt permet de créer des interfaces complexes très facilement.
De plus, il est gratuit et c'est un logiciel multi-plateformes qui peut être utilisé sur PC, Mac, et même sur les appareils mobiles.

Pourquoi le C++ ?

A une époque où chaque nouvelle plateforme apporte son propre langage (iOS utilise l'Objective-C et le Swift, Android utilise le Java, Unity utilise le C#),
le C et le C++ sont toujours utilisés sur de nombreuses machines. Regardez le PC et les consoles comme la PS et la XBOX, la plupart des moteurs de jeu et des exemples sont en C++.
Je travaille dans le jeu vidéo depuis plus de 15 ans, sur quasiment tous les ordinateurs, consoles et appareils mobiles, et pendant tout ce temps je n'ai utilisé que du C/C++ et un peu de Java
Même si beaucoup de gens disent que le C est mort, je peux vous dire qu'il est encore bien vivant !

Qu'est-ce qu'il vous faut ?

Pour Qt: Je vous recommande au moins la version 5.6. Pensez à cocher ""QT Quick Controls" quand vous l'installerez car l'éditeur de niveaux est un projet Qt Quick.
Des notions de base sur le fonctionnement de Qt et QML sont plus que recommandées car c'est un environnement un peu inhabituel.
A moins que vous ayez déja un environnement de dev C++ (par ex. Visual Studio) vous devrez installer le MinGW qui est inclus dans la version de Qt que vous choisirez.

Pour le C++: Un assez bon niveau de programmation en C (je ne code pas dans un style purement C++ pour différentes raisons).
Néanmoins, j'essayerai d'expliquer le plus possible les différentes parties du programme, et de garder le code le plus simple possible.
Donc le porter dans votre langage favori, si vous le connaissez bien, ne devrait pas être très compliqué.

Il vous faudra aussi Gimp, car j'utiliserai parfois des fichiers xcf pour expliquer et visualiser les positions des éléments graphiques du jeu d'origine.