Notionweb

Mon compte

Galerie

Messagerie

Recherche

Rechercher dans

Le blog

Découvrez notre blog et suivez notre aventure dans ce monde fou d'Internet.

Dinhosting

Hébergez vos sites web chez Dinhosting, hébergeur au support réactif et partenaire de Notionweb !

MMORPG 2D/3D - ... 100 non !

Rémunération: Aucune
Recrutement démarré mercredi 6 août 2008 à 17:44:14
Recruteur: Saimoun.

Bonjour à tous :D


--> Le projet : ... 100 non ! <--

Le projet est un MMORPG (pour ceux qui ne sauraient pas : Massive Multiplayer Online Role-Playing Game - Jeu de rôle massivement multi-joueurs, le jeu type World of Warcraft) 2D et 3D prévu sur un très long terme (sur au moins 5 ans). Le projet a été lancé il a un mois environ avec un ami (qui lui même l'avait lancé avec un ami à lui bien avant, sans qu'aucun code ne soit produit, mais toute la philosophie du jeu était créée). En conclusion, l'équipe du projet est réduite à moi et mon ami.
Vous noterez que l'on a pas encore trouvé de nom pour le jeu... En attendant j'ai mis ce qui me passait par la tête :p



--> Cahier des charges du projet <--

Je sais que beaucoup d'entre vous vont demander un cahier des charges : pour l'instant il n'y en a pas. Il y a plusieurs raisons qui justifient ce manque : déjà, en ce qui concerne les aspects du jeu en lui-même (le type de personnages, système d'expérience, évolution, etc...), mon ami a plus ou moins toutes les informations (non écrites cependant), j'attends qu'il les écrive et me les envoie (il ne peut pas actuellement), je les mettrai d'ici fin août je pense. Quant aux aspects techniques (2D ? 3D ? Protocole ? TCP ? UDP ?), on ne connaît tout simplement pas encore nos capacités et par conséquent le temps qu'il faudra pour faire telle ou telle chose :O . Personnellement, je viens d'apprendre la gestion du Réseau (j'ai fait un "mini-programme" de test, et rien que pour ça j'ai changé d'avis très souvent) et la gestion 2D via la SFML (là, ça a été beaucoup plus simple) en C++, et l'utilisation d'un moteur 3D : Irrlicht (disons que j'ai les bases, mais je me suis vite concentré sur le mini-programme de test moteur 2D + Réseau).
Donc, pour conclure : si on faisait un cahier des charges pour les aspects techniques il faudrait le mettre à jour quotidiennement... Bref, ça serait complètement débile et ça sortirait de l'optique du cahier des charges  ;) . Donc cette partie du cahier des charges attendra la fin de phase "test".

Pour l'instant : on ne se fixe ni sur la 2D ni sur la 3D, on est encore en phase "test" :) (enfin nous avons quand même eu une discussion à ce sujet-là, avec mon ami... Cf "le mot de la fin").



--> Ce que nous demandons <--

==> Pour les programmeurs
Il faut savoir que nous n'en sommes qu'à la phase "test" (je me répète, hein ? :D ), c'est pourquoi tout programmeur souhaitant tout simplement apprendre (le Réseau, la 2D, la 3D), tout en pouvant partager ses idées et en pouvant mettre en application dans un projet ce qu'il a appris serait le bienvenu, même s'il ne reste que pour les tests et qu'il s'en va une fois le cahier des charges fixé et le projet en lui-même commencé :)
Les technologies que nous utilisons/utiliserons (et qui sont donc à connaître ou au moins à apprendre) sont :
- Le <url="http://www.cppreference.com/">C++ et la STL</url> (pas de C, tout le code est en C++), avec donc une approche entièrement orientée objet
- La <url="http://www.sfml-dev.org/index-fr.php">SFML</url> (on utilise globalement tous les modules, même si pour l'instant aucun code de gestion du son n'a encore été fait, donc le module Audio n'est pas utilisé... Mais cela va probablement changer dans les mois qui viennent)
- Le <url="http://irrlicht.sourceforge.net/">moteur graphique 3D Irrlicht</url>
Notez que vous pouvez n'apprendre qu'une partie des technologies et ne s'occuper que de celle-là (la gestion 2D via la SFML, le Réseau via la SFML ou le moteur Irrlicht).


==> Pour les graphistes
Côté graphisme, ce qu'il nous faudrait serait des images pour les programmes de test 2D, et des modèles 3D pour les tests 3D.
Au cas où vous souhaiteriez commencer dès maintenant (on ne sait jamais xD ), pour l'instant le programme-test 2D accepte des images de 48x48 pixels, avec une vue 2D isométrique (pour le personnage, c'est comme la 2D classique, pour les décors c'est une vue de dessus), et en ce qui concerne la 3D, vous avez carte blanche : de plus Irrlicht peut ouvrir <url="http://irrlicht.sourceforge.net/features.html#supportedformats">de nombreux formats de fichiers</url>, alors vous pouvez vraiment faire ce que vous voulez, ça servira pour les tests.

J'avoue que pour l'instant, la proposition de graphiste n'est pas très alléchante (du moins tant que le MMORPG en lui-même n'a pas commencé et qu'on est toujours en phase "test"), mais sachez quand même que : d'une part il y a des chances que vos créations (images 2D, modèles 3D, etc...) servent dans le projet final, d'autre part les petits projets de tests ne seront pas mis à la poubelle une fois finis (ils resteront des programmes de tests, mais tout le monde y aura accès), et en plus vous pouvez très bien vous servir de ces programmes pour vous tester vous-même (par exemple pour voir vos modèles en action), notamment si vous débutez. Bref, votre travail sera quand même valorisé  ;)
En outre, nous avons réellement besoin de graphistes pour les tests, surtout au niveau de la 3D : en effet, imaginez faire un programme 3D sans aucun modèle sous la main, c'est complément insensé ! Bien sûr, c'est la même chose pour la 2D, mais pour l'instant je me suis débrouillé : j'ai pris des images trouvées sur le net.


==> Pour tous les autres
Vous ne connaissez rien à la programmation ? Vous n'avez aucune connaissance en graphisme ? C'est pas grave, vous pouvez quand même aider le projet, il suffit d'être équipé d'un ordinateur :D
Si vous avez lu ce qui précède, vous avez dû comprendre que le projet est en phase "test", et qui dit test dit bêta-testeurs ! En l'occurrence pour l'instant c'est presque ce qu'il nous manque le plus : j'ai fait un mini-programme de test (je sais je sais... J'aime bien me répéter :p ) et je n'ai presque aucune personne qui pourrait le tester... C'est assez contradictoire.
Notez que le travail de bêta-testeur n'est pas à prendre à la légère : vous allez tester des programmes qui seront souvent remplis de bugs, et vous devrez noter chaque bug (par "bug", j'entends "tout comportement anormal") pour le rapporter aux programmeurs. Bref, il ne s'agit pas simplement de tester un petit jeu et de jouer avec : il faut essayer de faire planter le programme par tous les moyens possibles, essayer d'aller là où on a pas le droite, essayer de fermer brutalement le programme, essayer d'ouvrir 5 programmes à la fois... :D
Je donne cette précision car en général, la plupart des personnes qui ne programment pas et qui testent un programme font ça : elles ouvrent le programme, appuient sur 2-3 touches du clavier pour faire bouger le personnage, puis quittent et disent "ça marche, je ne vois pas ce qu'il faut tester" (ce qui est tout à fait compréhensible en soit : le programmeur connaît son code, il sait là où il faut tester et là où il peut planter... D'où l'intérêt de ces précisions) !



--> Les petits programmes de test <--

Je recenserais ici tous les petits programmes de test qui ont déjà été créés ou qui sont en cours de création. Dans la liste pour chaque programme seront indiqués les informations pour les bêta-testeurs du programme, pour les développeurs souhaitant rejoindre le projet, et pour les designers souhaitant rajouter (ou modifier) une image ou un modèle 3D au (du) projet.
Pour l'instant il n'y en a qu'un (l'autre est un faux :p ), j'espère que la liste va s'agrandir dans les mois qui viennent.


==> Programme de test 2D & Réseau
Nouveau : la Release 0.0.0.9 est sortie :D !!
- Stade du programme : bêta-test, de nombreux bugs encore présents
- But du programme : apprendre la gestion du Réseau via la SFML (et par la même occasion transformation d'un vieux moteur graphique 2D : initialement en SDL, il est maintenant en SFML)
- programmeur principal : Saimoun
- Commencé le 2 août 2008
- Programmeurs secondaires : aucun
- Graphistes : aucun
- Téléchargement (Note : il me faut une âme généreuse pour le compiler sous MacOS :O ) : [<url="http://saimoun.inzeprog.net/mmorpg/MMORPG_v0.0.0.9_Linux32_Linux64_Windows.tar.gz">MMORPG_v0.0.0.9_Linux32_Linux64_Windows.tar.gz</url>] (1,1 Mo)
[<url="http://saimoun.inzeprog.net/mmorpg/Binaires_Windows_Moteur2D_v0.2.zip">Binaires_Windows_Moteur2D_v0.2.zip</url>] (331 ko, c'est un test du moteur 2D seul, ainsi vous pourrez tester sans que le serveur soit allumé.)
Note : pour les anciennes version allez voir sur <url>http://saimoun.inzeprog.net/</url>
- Image d'exemple (2 clients) : <url="http://saimoun.inzeprog.net/mmorpg/mmorpg_v0.0.1.png">Image de deux clients du MMORPG 2D Release 0.0.1</url> (c'est beau, hein ? :D )

- Informations pour les bêta-testeurs : le jeu fonctionne avec un système serveur/client, vous n'avez que le client, pour qu'il marche il faut que le serveur soit allumé (Note du 20/08/2008 : vous pouvez maintenant tester le moteur 2D seul, où il n'y a pas besoin du serveur - par contre, vous serez tout seul sur la carte :p ). J'avais d'abord pensé à laisser le serveur allumé constamment, mais étant donné qu'il y a peu de choses à tester (pour l'instant), il vaut mieux que vous me contactiez pour faire une "période de test" où j'allumerai le serveur. Pensez à ouvrir votre port 2441 en TCP sur votre routeur et votre pare-feu si vous en avez ! Enfin essayez de lancer le programme : si vous avez l'erreur "Impossible de se connecter sur le port 2441 du serveur !", c'est soit que le serveur n'est pas allumé soit que vous n'avez pas ouvert le port 2441 (en TCP) sur votre routeur et/ou votre pare-feu. Notez qu'il y a probablement des bugs sous Windows (déjà je n'arrive pas à faire fonctionner le programme serveur et le programme client sur la même machine alors que sous Linux oui), et que sous Linux il vous faudra installer les libraries de la SFML : "sudo apt-get install libsfml-graphics1 libsfml-network1 libsfml-system1 libsfml-window1" sous Ubuntu, "apt-get install libsfml-graphics1.deb3 libsfml-network1.deb3 libsfml-system1.deb3 libsfml-window1.deb3" sous Debian (en root), et cherchez "libsfml" pour les autres distributions.

- Informations pour les graphistes : images 2D, toutes de taille 48x48 pixels, de préférence en PNG, transparent si besoin est. Pour le personnage : 4 sens (haut, bas, gauche, droite), voire 8 si vous voulez (ajout des diagonales : haut-gauche, haut-droite, bas-gauche et bas-droite), et 3 images par sens : une en train de marcher (par exemple le pied gauche levé), une autre en train de marcher (par exemple le pied droit levé), et une dernière qui sera utilisée lorsque le personnage est à l'arrêt. Pour les décors vous avez carte blanche hormis pour la taille (48x48), mais notez que vous pouvez "séparer" un élément du décor en plusieurs blocs de 48x48 si vous trouvez que c'est trop petit.

- Informations pour les programmeurs : utilisation de la <url="http://www.sfml-dev.org/tutorials/1.3/index-fr.php">SFML v1.3</url> (modules Système, Fenêtrage, Graphique et Réseau) et de la <url="http://www.cppreference.com/cppstl.html">STL C++</url> (<url="http://www.cppreference.com/cpplist/index.html">std::list</url> et <url="http://www.cppreference.com/cppvector/index.html">std::vector</url> principalement). Pour le module Réseau, les sockets TCP sont exclusivement utilisés. Deux parties à coder : le serveur et le client, sachant que le serveur n'utilise que le module Réseau de la SFML, et que dans le client la partie graphique 2D et le Réseau sont bien séparés (on peut s'occuper de l'un sans rien connaître à l'autre).


==> Programme de test 3D avec Irrlicht
- Stade du programme : aucun code, mis en attente par le premier programme
- But du programme : apprendre à utiliser Irrlicht
- programmeur principal : Saimoun
- Pas encore commencé, je pense le commencer d'ici quelques semaines, probablement vers la rentrée
- Programmeurs secondaires : aucun
- Graphistes : aucun
- Téléchargement : non disponible
- Image d'exemple : aucune

- Informations pour les bêta-testeurs : aucune pour l'instant, il n'y a rien à tester  ;)

- Informations pour les graphistes : uniquement des modèles 3D (je vous rappelle que Irrlicht accepte les formats 3DSmax, Maya, Quake, et <url="http://irrlicht.sourceforge.net/features.html#supportedformats">plein d'autres</url>) et des "maps" 3D (je pense notamment au format *.bsp de Quake), comme par exemple une maison, un terrain, un village (pourquoi pas xD ), etc...

- Informations pour les programmeurs : utilisation de Irrlicht, le moteur est reconnu pour sa simplicité d'utilisation et ne demande pas une connaissance accrue en C++ et en 3D pour l'utiliser. Quelques liens : <url="http://irrlicht.sourceforge.net/tutorials.html">tutoriels officiels (anglais)</url>, <url="http://khayyam.developpez.com/articles/3d/irrlicht/">un court tutoriel sur Irrlicht</url>, <url="http://www.siteduzero.com/tuto-3-3403-0-petit-guide-d-irrlicht.html">un bon tutoriel sur Irrlicht</url>, <url="http://www.irrlicht.fr/forum/viewforum.php?id=19">liste des tutoriels de la communauté francophone de Irrlicht</url>. On rajoutera bien sûr (mais on n'en est pas là xD ) un module Réseau, personnellement je compte sans doute réutiliser la classe réseau du projet de test 2D (cela fera donc une partie Réseau via la SFML, au milieu d'un code de Irrlicht... Enfin ma foi, pourquoi pas ?).



--> Le mot de la fin <--

Voilà, vous savez tout ! Libre à vous maintenant de choisir votre camp votre implication dans le projet : développeur temporaire, développeur permanent, designer temporaire, designer permanent, bêta-testeur...
J'espère que la longueur de la présentation ne vous a pas effrayé : selon vos compétences, vous n'êtes pas obligés de tout lire, les répétitions sont prévues pour que vous ne lisiez que ce dont vous avez besoin (vous n'allez pas lire la partie "pour les programmeurs" si vous n'avez jamais programmé de votre vie, hein ^^ ).
Une dernière chose que je tiens à rajouter concerne le cahier des charges : bien que nous ne soyons pas réellement fixés sur le choix 2D et 3D, nous avons envisagé une possibilité : faire un unique programme serveur, mais deux programmes clients : un 2D et un 3D. Il nous faudra donc deux types de graphismes, équivalents (chaque modèle 3D aura son équivalent en images 2D). En ce qui concerne le développement d'un tel programme, ça semble possible, mais il faudra voir ça en pratique, nous ne pouvons être sûr à 100% que c'est réalisable. Le but d'un choix comme celui-ci est de toucher un large public : tout d'abord ceux qui ont de vieux ordinateurs avec des cartes graphiques qui supportent mal la 3D, mais aussi les fans de la 2D qui n'ont jamais accepté les jeux 3D. Le but étant aussi d'apprendre, ça paraît logique d'apprendre la 2D avant la 3D.


Voilà, merci à ceux qui ont osé venir sur la page ; merci à ceux qui ont lu une partie de la présentation ; merci à ceux qui ont eu le courage de tout lire ; merci à ceux qui posteront des commentaires sur le projet ("... 100 non !"), sur les petits projets, sur la présentation ; merci à ceux qui testeront, merci aux futurs programmeurs qui voudront faire avancer le projet ; merci aux futurs designers qui voudront bien utiliser leur précieux temps pour le projet (pfiouu :p ) !

Copyright Notionweb © 2009 - Nous contacter

Suivez notre aventure sur notre blog qui parle... d'un peu tout le web :)