Le projet a actuellement pour nom 'Olympe'
Comme vous le savez, la possibilité de créer un MORPG via RMXP, est assez délicates, la plupart des projets qui ont été fait dans cette objectif, sont peu ou pas du tout fonctionnels. Le meilleur exemple fonctionnel est pour le moment Shark Engine, cependant, il s'appuie sur des développements Netplay effectués, à la base, par Trebor777 (que j'ai en très grande estime), il y a 4 ans, et l'ajout de sur-couches rend le tout peu stable.
Après une analyse approfondie de Shark Engine, il s'avère qu'il contient beaucoup de défaut, autant sur ce client (pas de lecture threadé des trames) que sur le serveur (absence de Mutex sur les fonctions critiques partagées, pas de destruction propre des objets socket)
Mon objectif est donc de recréer un noyau RMXP, complètement refait pour être un moteur de jeu RPG online. C'est à dire, que je supprime tous les scripts par défaut, et que je reconstruit le moteur RPG à partir de rien, pour intégrer toute la notion online directement dans le noyau. Et surtout cela permettra d'avoir nativement la gestion réseau, la gestion clavier, la gestion souris, la gestion ABS, la gestion de GUI, etc...
Donc, comme vous vous en doutez, y'a beaucoup de boulot :
Objectif 1 :l'affichage de la carte sera complètement revu :
pour la ou les cartes du monde, des donjons on des environnements intérieurs, une carte mère définira un ensemble de map de même taille. Les coordonnées du joueur sera défini en pixel sur le point d'origine de la carte 1:1, si le joueur se trouve sur la carte 3:3, ces coordonnées seront pour x et y comprises entre 2560 et 3739 :
- Code:
-
.1 2 3 4
1 []
2 [][][]
3[][][][]
4[][]
5[]
[] : représente une carte de 40*40 tiles
Carte sous l'éditeur :
Carte de l'ile (taille : 20*15)
|_ 1:3 (taille : 40*40)
|_ 2:2 (taille : 40*40)
|_ 2:3 (taille : 40*40)
|_ 2:4 (taille : 40*40)
|_ 3:1 (taille : 40*40)
|_ 3:2 (taille : 40*40)
|_ 3:3 (taille : 40*40)
|_ 3:4 (taille : 40*40)
|_ 4:1 (taille : 40*40)
|_ 4:2 (taille : 40*40)
|_ 5:1 (taille : 40*40)
4 cartes sont chargées simultanéments, et lorsque les coordonnées du personnage dépassent certaines coordonnées, 2 cartes sont déchargées, les 2 autres décalées et 2 nouvelles cartes adjacentes sont chargées. Ce qui permet de ne plus avoir à gérer des téléportations entre diverses map n'utilisant pas le même tileset et aussi d'avoir des cartes immenses. Cela permet aussi d'avoir toujours le héros centré, en aucun cas, il ne pourra atteindre le bord de l'écran.
Objectif 2 :Recoder le serveur Ruby en reprenant la structure du serveur de mon projet PMO (gestion de trame et client), tout en créant une documentation technique sur les commandes et paramètres échangées entre client et serveur. Intégrer la notion réseau PMO dans le client avec lecture des trames threadé.
Objectif 3 :Ajouter une gestion de souris optimisée, déplacement des fenêtres, gestion de boutons, de menu, etc...
Objectif 4 :Redéfinir toutes les informations d'un personnage de morpg à stocker sur serveur et à afficher sur le client.
Objectif 5 :Recréer un système ABS orienté MORPG, en définissant un standard de sprite pour orienté les graphistes vers le morpg RMXP
Objectif 6 :Créer les diverses interfaces de l'ihm morpg qui seront, dans tous les cas, affichées sur la map sans blocage.
Actuellement, je suis sur la création de GUI (bouton, zone de saisie, texte, etc...)
Et pour finir petite démo technique de ce que ça donne : http://www.tonyryudev.com/dev/rmxp/client_olympe.rar