Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/01/2011, à 01:16

Snake046

(MMO)RPG Easy-To-Use Engine

Chers camarades bonsoir,

Je me suis décidé à vous présenter mon projet personnel du moment.
Ayant décidé pour mon autre projet, Shinigami'n'Co, d'utiliser un vrai moteur physique (Box2D), j'ai du le mettre en pause en attendant le tutorial SFML+Box2D du SiteduZero - la dernière version de Box2D est assez mal documentée sur le web, on ne trouve aucun cas pratique, et n'ayant jamais travaillé avec des moteurs physiques je ne veux pas faire n'importe quoi.

Donc, après avoir découvert Fallout Online, je me suis lancé sur un autre projet. Mes motivations : Fallout Online est un excellent projet, et FOnline 2238 est un excellent exemple des jeux qu'on peu obtenir grâce à cet engine. Malheureusement il n'est pas open-source.
Du côté des moteurs de jeu en 2D isométrique, on ne trouve pas grand chose non plus. FIFE est en cours de développement depuis assez longtemps déjà, mais est encore loin d'être fini, et ne me satisfait pas vraiment.

Mon but est de créer un moteur de jeu simple à utiliser et permettant très facilement de développer un RPG ou un MMORPG en faisant plus de choses que FIFE.
J'ai commencé la semaine dernière et je n'ai pas vraiment eu beaucoup de temps libre pour coder, mais j'ai déjà une bonne idée de ce à quoi ça va ressembler, et j'ai commencé certaines parties.

Un projet en 3 parties
- Un client,
Codé en C++ avec la lib SFML.
Essentiellement un code de base qui se veut facilement extensible : le développeur devra pouvoir faire abstraction de tout ce qui est technique, et se contenter de décrire son interfaces et les mécanismes du jeu via un système de gestion d'événement similaire à celui de Qt.
Je ne parle pas des connect, mais d'une série de classes de bases que l'utilisateur pourra réimplanter en y décrivant les actions à réaliser pour certains événements.
Le développeur pourra se contenter d'appeler la boucle de jeu, qui s'occupera d'appeler les méthodes correspondantes au bon moment et ainsi d'appliquer les instructions du développeur.

Tout ce qui est de l'ordre du rendu graphique et gestion clavier/souris sera invisible à l'œil du développeur qui ne souhaite pas s'en mêler (ceci dit, le code qui se charge de ça est relativement simple, court et flexible, améliorer ou ajouter des fonctionnalité ne devrait pas être un problème pour un bon développeur C++, et un vrai jeu d'enfant pour qui connait SFML).

- Un serveur,
Il sera optionnel, et aura pas mal de code partagé avec le client, puisque dans le cas ou il est utilisé, c'est lui qui se chargera d'exécuter les IA, les cartes, etc...
J'hésite encore pas mal sur son fonctionnement... je me demande comment me débrouiller pour rester le plus performant possible tout en permettant de supporter une charge de joueurs considérable.

- Un éditeur de map, objets, arbres de dialogues, quêtes...
En C++, utilisant SFML et Qt.
Simple au possible, devra permettre de créer des cartes, des personnages, de les sauver, de les charger...

Ce qui est fait :
Pas grand chose pour le moment. Mais quand même

J'ai un peu entamé le client au niveau de l'interface : j'ai voulu faire un système de widget semblable à celui de Qt, ou tout hérite d'un widget unique, et ou chaque widget à un parent (que ce soit un autre widget ou l'écran lui-même). Ainsi leur position est relative à celle de leur parent, si leur parent est déplacé, ils se déplacent aussi, et tout cela au niveau du widget en lui-même est totalement transparent.
Pour le moment, il n'y a donc que deux widgets : Screen et Container :
- Screen sera le lieu de rendu du jeu en lui-même (on peut aussi l'utiliser pour afficher un menu, ceci dit : il suffit d'utiliser un Container non-déplaçable de la taille de l'écran, et le tour est joué).
- Container est juste un widget conteneur d'autre widgets, sa particularité étant de pouvoir être déplacé (un simple bool à modifier). Il est déjà prêt d'ailleurs smile !

Et au niveau de l'éditeur de map, j'en ai terminé avec le dessin de la tilemap, j'ai commencé le placement de murs.
On peut également sauver la tilemap... théoriquement la charger aussi, mais ça, c'est bogué pour le moment et ça marche pas à tout les coups smile !
Enfin : une capture d'écran parlera mieux qu'un long discours :

http://imagebin.ca/view/Op-7eK.html

Faut pardonner les textures, c'est du vite-fait mal-fait à coup de Gimp et de textures piquées de Fallout.
Les diverses textures s'ajoutent par simple drag'n'drop (un gestionnaire de palettes permettra ensuite d'importer les tuiles correctement avec leur map dans le jeu en lui-même).

Le mot de la fin
C'est un projet assez énorme, aussi énorme que si je codais un RPG entier à moi tout seul.
Je m'attend à avoir fini d'ici le mois prochain le rendu de la carte en jeu, le système d'interface en entier, et la création de quelques objets (idéalement les portes et les placards tongue).
Je vous tiens au jus !

Si vous voulez des détails, si vous avez des idées, si le projet vous intéresse, je vous suis tout ouïe !


Aucun message n'est caché dans cette signature.

Hors ligne