Table des matières

Présentation

MOTRPG, nom temporaire comme d'habitude, est un projet de MMORPG “tactique” en C++. Les éléments fondateurs sont :

Gameplay

Chaque joueur incarne un seul personnage. Le terrain est composé de cases carrées à un seul niveau, stockée également chez le client. Le personnage occupe toujours le centre de l'écran, et seuls les objets dans le champ de vision sont visibles.

Avec la présence d'armes à feu, le jeu consiste pour beaucoup à attaquer les ennemis en surnombre et à surprendre un adversaire, bien que le jeu soit également pourvu de compétences.

Personnage

Chaque personnage dispose de points de caractéristiques, de points de compétences et d'un inventaire. Remarque : utiliser des points d'action ?

Les caractéristiques sont choisies à la création du personnage et sont fixes. Leur valeur par défaut est 10.

Remarque : charisme, chance ?

Map

Le monde est divisé en un certain nombre de maps rectangulaires. On passe d'une map à l'autre soit en employant des portails (portes, échelles, escaliers, …) soit en en atteignant le bord (qui est lié au bord de la map adjacente). Plusieurs maps peuvent donc être visibles en même temps (au maximum, 4). De plus, le système de “lien” n'impose pas que les maps soient disposées en une matrice mais il est possible de revenir à son point de départ en ayant parcouru un vecteur non-nul.

Les dispositions suivantes des liens entre les maps ne sont pas possibles :

Ici, la map atteinte en se déplaçant vers la diagonale n'est pas la même si on passe par C ou par B ; ceci n'est pas possible.

Les cas où la map A est liée avec elle-même directement ou en diagonale ne sont pas possibles non-plus.

Tous les autres cas ne devraient pas poser de problème.

La vue est isométrique : les tiles, carrées, sont donc vues comme des losanges dont les diagonales sont horizontale et verticale. Ces tiles sont affichées du haut de l'écran vers le bas de l'écran afin de permettre un recouvrement correct. Il n'y a qu'une seule “couche” de tiles, plus les entités (c'est à dire tous les autres objets positionnés).

Chaque map dispose en plus d'un tileset, qui indique les types de tiles de la map, avec pour chaque :

Sur les maps se trouvent également des entités, scriptées côté serveurs, qui sont générées par le serveur et envoyées au client lorsqu'elles sont perçues.

La classe World fournit l'abstraction des maps nécessaire au jeu. Elle s'occupe de charger les maps (et de les décharger, côté client)