Journal : Men Are Ants : Réflexion sur un passage 2D à 3D
Posté par Romain Bignon (Jabber id, page perso, ) le 05 octobre 2006Une dépeche est parue il y a une semaine ou deux au sujet du jeu Men Are Ants dont je suis le développeur.
Il a été unanimement remarqué que le jeu était d'une beauté discutable.
Je réflechissais depuis quelques temps à un éventuel passage à un jeu en 3d, et en fait j'ai du mal à construire ma réflexion, dans le sens où je n'ai jamais pratiqué l'opengl.
C'est pourquoi je fais cet article dans l'unique but d'obtenir des avis sur cette question.
Je suis mitigé sur plusieurs points. Le jeu utilise actuellement SDL, j'ai vu la présence d'un flag SDL_OPENGLBLIT qui, sur le coup m'a donné espoirs, mais lorsque je vis qu'il était complètement déconseillé je fut fort déçu. Alors la solution serait d'utiliser SDL_OPENGL en devant réécrire les fonctions des classes images et sprite, en espérant que ça ne ralentisse pas. Ceci bien sur pour ce qui est des menus etc.
Ce qui est bien c'est que j'ai conçu le jeu de telle façon que l'interface graphique est indépendante de la gestion réelle du jeu (dialogue entre client et serveur qui parle de cases, le serveur qui se fout royalement de la façon dont c'est affiché, etc).
En tous cas malgrès ça ça demande quand même une grosse part de réécriture du client, ce qui peut être fastidieux, bien que pour mon propre développement je pense qu'il peut être intéressant de connaître OpenGL et de faire le jeu avec.
Bon j'attends, si vous le voulez bien, des opinions sur ce sujet, des avis objectifs et constructifs, qui pourraient m'aider à prendre la bonne décision, car pour le moment ne pouvant me replier que sur moi même je ne sais pas quel est le bon choix.
Bien sur si la conclusion est d'utiliser OpenGL et que quelqu'un souhaite m'aider, ça serait avec le plus grand plaisir:).
> Lire le journal (26 commentaires, moyenne: 3,7).
Le lien
Pour ceux ne sachant pas de quel jeu il s'agit, voici son site : http://menareants.coderz.info
l'opengl a rendez-vous avec la rage mobility m1, mais la M1 n'est pas là
Je vais te donner une réponse extrêmement égoïste : ne pouvant faire
tourner correctement OpenGL à cause d'une carte graphique pour le
moins faiblarde sur ce point (rage mobility M1 8mo), je te dirais :
«non, n'utilise pas OpenGL !»
Mais bon, comme interface et moteur de jeu sont séparés, c'est pas
vraiment un problème ;)
http://linuxette.blogspot.com/
http://enarkeenologos.blogspot.com/
http://www.actu-philosophia.com
-
[^]Re: l'opengl a rendez-vous avec la rage mobility m1, mais la M1 n'est pa
Posté par Romain Bignon (Jabber id, page perso, ) le 05/10/2006 à 09:35. (lien). Évalué à 1.Ben il est également possible que je fasse un fork du client actuel avec OpenGL, en continuant à maintenir la version SDL.
-
[^]Re: l'opengl a rendez-vous avec la rage mobility m1, mais la M1 n'est pa
Posté par Jehan (page perso, ) le 05/10/2006 à 11:32. (lien). Évalué à 1.Je dirais même plus:
à ce que j'ai cru comprendre, c'est un jeu réseau, donc comme t'as bien séparé interface et client réel, ce qui peut être cool, c'est que les 2 versions du client soient toujours compatibles en réseau. C'est à dire que c'est à chacun de choisir la version (2D ou 3D) qu'il veut utiliser, mais que ça n'empêche pas un client 3D et un client 2D de jouer ensemble (évidemment cela implique que le fait d'être en 3D n'apporte pas de fonctionnalités supplémentaires). Etant donné que ta partie client est en fait générique et que seul l'affichage changera, ça ne devrait pas poser de problème.
Voilà pour mon opinion.
Ce que ça implique pour ta question, c'est que le fait de te mettre à la 3D n'enterrera absolument pas la version 2D. Tu pourras développer les 2 en parallèle. Mieux même, si tu fais une lib client bien documentée, tu devrais pouvoir passer sans grosses difficulté le flambeau à quelqu'un pour une des parties. Par ex, tu peux dév la partie 2D et trouver qqun pour la 3D. Ou l'inverse, te mettre au client 3D et trouver des gens pour continuer à maintenir le client 2D.
Et ainsi tu touches en même tps les acharnés de la 3D et les petites configs.
Plouche.-
[^]Re: l'opengl a rendez-vous avec la rage mobility m1, mais la M1 n'est pa
Posté par Victor STINNER (page perso, ) le 05/10/2006 à 11:44. (lien). Évalué à 6.Mouais, enfin vouloir faire évoluer parallèlement deux clients graphiques (2D et 3D), c'est un peu une perte de temps, surtout quand on a une équipe de 1 personne pour faire tout ça.
Haypo-
[^]Re: l'opengl a rendez-vous avec la rage mobility m1, mais la M1 n'est pa
Posté par Romain Bignon (Jabber id, page perso, ) le 05/10/2006 à 12:29. (lien). Évalué à 3.Alors effectivement, c'est ce que je disais dans mon commentaire précédent, le developpement des deux en même temps. Effectivement, l'API du protocole ne change pas, et je ne pense pas qu'il soit impossible de faire une grosse feature 3d impossible de porter sur le client 2d.
Pour Victor, continuer sur la version 2D en parallèle ne me serait aucunement difficile, si la façon d'afficher les choses est différente est indépendante du corps, il ne me resterait que peu de choses à faire concernant l'affichage en 2D.
Par contre je pense que dans ce cas là, comme une partie concerne du client concerne tout de même autre chose que l'affichage et serait commune aux deux parties, je vois deux choix devant moi :
- Soit je fais en effet une lib utilisée par les deux clients, ce qui faciliterait effectivement la création externe d'autres clients.
- Soit je fais un gros define USE_OPENGL qui, activé utilise l'affichage 3d, desactivé utilise l'affichage 2d. C'est plus simple d'un coté pour moi mais ne servirait pas à la création d'autres clients. Alors après, entre un client 2d et un client 3d, je ne vois pas trop ce qu'il y a comme autre type de client à faire (un console ? vous pouvez utiliser telnet :p le protocole est textuel (voir le fichier API)). Pour ce qui concerne les menus je pense que ça ne change pas, c'est juste les fonctions des classe de sprite/image qui utiliseraient SDL ou OpenGL, et après ce qui est affiché pendant le jeu là serait la chose qui varierait complètement.
En tous cas, le soucis aussi c'est que si j'ai à faire tout ce boulot, il faudrait que le jeu ait des utilisateurs. Or pour le moment, il ne réunit qu'une dizaine d'habitués. Je n'ai pas envie de me compliquer la tache pour rien. Si c'est uniquement dans le but d'apprendre, je passe à une version OpenGL sans me soucier de la version SDL et une fois fini basta. Mais ce n'est pas ce que je veux, je pense vraiment qu'on peut faire quelque chose de ce jeu, mais après faut avoir des joueurs...
-
-
-
des graphistes
Avant de chercher des solutions techniques, il faut que tu trouve une espece rare dans le domaine du jeu libre. Un bon graphiste.
Tu aurra beau passer ton code en 3D. Si tes modeles sont moches, le jeu serra toujours aussi moche.
On peut faire des tres beaux graphisme avec un jeu en 2D pure, tile based comme le tien.
Je est un autre.
-
[^]Re: des graphistes
Posté par Romain Bignon (Jabber id, page perso, ) le 05/10/2006 à 09:42. (lien). Évalué à 4.Le problème actuel est que le rendu est assez étrange : les cases étant carrés, pour une bonne perpective il faudrait faire une vue de dessus, or ce n'est pas le cas.
En outre je connais quelqu'un actuellement qui a la maitrise de blender et qui fait un jeu plus ou moins beau (même si très mal programmé) intitulé Gnu Total War, et qui m'a proposé sa contribution.
Après bien sur il faut voir si ça vaut la peine d'effectuer un travail considérable pour avoir au final un jeu pas forcément spécialement plus beau.
Alors c'est bien pour ça que je demande un avis :).-
[^]Re: des graphistes
Posté par gyhelle () le 05/10/2006 à 09:56. (lien). Évalué à 4.Si ton pote maitrise blender, il peut te faire les graphisme en 3D, en faire une image vue en perspective et tu t'en sert comme sprite, non ?
-
[^]Re: des graphistes
Posté par Romain Bignon (Jabber id, page perso, ) le 05/10/2006 à 09:57. (lien). Évalué à 2.Oui c'est ce qu'il a commencé à faire effectivement.
-
[^]Re: des graphistes
Posté par baud123 (Jabber id, page perso, ) le 05/10/2006 à 11:26. (lien). Évalué à 3.Il a accepté une licence libre genre GPL ou Art Libre pour la création graphique ? Les fichiers blender pourront servir d'exemple à d'autres (ou tout simplement pour recadrer la caméra si nécessaire).
Tu peux regarder du côté de http://faq.tuxfamily.org/wakka.php?wiki=LinuxGraphics pour trouver quelques artistes en plus (il y a aussi quelques jeux).-
[^]Re: des graphistes
Posté par Romain Bignon (Jabber id, page perso, ) le 05/10/2006 à 12:30. (lien). Évalué à 5.Oui ce qu'il fait est en GPL.
-
-
-
-
Raz le bol de l'OpenGL
Si l'intérêt d'un jeu est conditionné par le fait qu'il est en 3D, j'ai bien peur que ça ne vole pas haut. Si seuls les graphiques en 3D sont beaux, ça n'a pas de sens.
Ce qu'il manque, à mon avis, à ce jeu, c'est un graphiste qui retravaille les images pour en faire un tout cohérent. On peut aussi faire des choses très moches en 3D. Le fait que le rendu final soit sous la forme d'une image en 2D n'empèche pas le graphiste de travailler les modèles en 3D.
Les jeux commerciaux comme Civilisation, Sim-City 2000, Settlers et pleins d'autres ont fonctionnés en 2D sans vraiment de critique du graphisme.
Pratiquement tous les jeux qui sortent en ce moment sous Linux sont des jeux en 3D qui posent beaucoup de problèmes à énormément de personnes. Personnellement, je n'installe jamais les jeux qui sont en 3D parce que le support est beaucoup trop variable; d'une machine à une autre, d'une révision de X à une autre, d'une configuration ou d'une distribution à une autre.
-
[^]Re: Raz le bol de l'OpenGL
Posté par Romain Bignon (Jabber id, page perso, ) le 05/10/2006 à 09:54. (lien). Évalué à 3.Ben ma réflexion s'est posée là dessus pour deux raisons :
D'une part, lorsque quelqu'un fit une dépeche sur ce jeu il y a deux semaines, la principale critique fut ses graphismes. Certes je n'ai pas fais de recherche de contributeurs graphistes, mais je me demandais si le fait de passer en 3d arrangerait les choses. Tu mets un bemol là dessus, et sur le fond je suis entièrement d'accord. J'ai été attristé que beaucoup de personnes étaient rebutés à jouer sous prétexte que c'était pas spécialement beau. Celles qui ont pris la peine d'y jouer ont en revanche pris du plaisir (d'après elle), je prends moi même beaucoup de plaisir à le developper et à y jouer. Je regrette qu'un jeu soit d'abord jugé sur ses graphismes avant d'être jugé sur ses fonctionnalités.
D'autre part, je pense que si jamais je suis amené à le rendre en 3d, ça peut être interessant pour mes compétences de savoir utiliser OpenGL. Bien sur il ne faut pas que ça se conditionne à ça.
Je me réjouie dans un sens de cette critique, en me disant qu'il reste des gens qui se foutent des graphismes du moment que le jeu est fun.-
[^]Re: Raz le bol de l'OpenGL
Posté par Nicolas Boulay () le 06/10/2006 à 07:54. (lien). Évalué à 6.Je pense que pour faire un truc jolie en 3D tu va te faire bien plus chier qu'avec de la 2D. La différence, c'est le graphiste.
En plus, la 3D sous linux est peu développé. Je te conseillerais comme les autres de rester en 2D ce qui permet d'utiliser le jeu avec des machines moins puissantes et de bien utiliser ton graphiste.
Si tu veux absolument passer en 3D, ne part pas d'opengl, utilise plus un des zillions moteurs de jeu 3D (comme ogre ou autre).
-
-
[^]Re: Raz le bol de l'OpenGL
Posté par alice_liddell () le 05/10/2006 à 10:00. (lien). Évalué à 8.Les jeux vidéos c'était mieux avant.
-
[^]Re: Raz le bol de l'OpenGL
Posté par Jarod_Summers () le 06/10/2006 à 09:45. (lien). Évalué à 3.Y'a qu'a voir Broodwar qui est toujours vendu, supporté par Blizzard, et dont les serveurs sont toujours plein de gens de tous pays.
Pas besoin de 3d pure pour faire un jeu beau, la 2d ou 3d iso suffit avec un gameplay excellent ^^.
3D ?
He bien, je ne pense pas que passer en 3D améliore les choses.
Il n'est pas plus facile de concevoir des graphismes en 3D qu'en 2D non? D'autant plus que si on les conçoit en 3D, on peut en faire un image 2D sans problèmes.
-
[^]Re: 3D ?
Posté par Romain Bignon (Jabber id, page perso, ) le 05/10/2006 à 09:56. (lien). Évalué à 4.Ainsi que dit précédement, un autre soucis réside dans le fait que les cases sont orthogonales, et que la perspective voudrait que ça soit une vue de dessus. Or ce n'est actuellement pas le cas. Pourquoi pas ? Ben on voit rien vue de dessus :)
-
[^]Re: 3D ?
Posté par Geoffroy Carrier (Jabber id, page perso, ) le 05/10/2006 à 13:38. (lien). Évalué à 3.Alors pourquoi pas une apparence de 3D isometrique avec des tiles en parallelogramme ? Tu l'as toi-meme suggere sur ton site ! C'est en tout cas ce qui me parait le mieux, si tu veux changer quelque chose.
-
[^]Re: 3D ?
Posté par Romain Bignon (Jabber id, page perso, ) le 05/10/2006 à 15:15. (lien). Évalué à 2.Hum c'est vrai que je pourrais concentrer mes efforts là dedans, ce qui constrituerait une modification moins importante. J'y ai déjà pensé mais ça pose un problème :
Actuellement, les cases sont des carrés, donc le nomre de cases par lignes est constant. Or avec la 3d isométrique, cela ne sera plus vrai, et je fais des tests à nombreux endroits pour vérifier si un objet ne sort pas de la map, à la fois coté client que serveur. Donc là ça m'obligerait à un autre type de réécriture.
Note: tiens je viens de voir que sur l'onglet opera avec le site linuxfr que j'avais rédigé ce commentaire mais que j'avais oublié de le poster, étant passé à autre chose. Oui je trouve ça drole, et je dois bien être le seul.-
[^]Re: 3D ?
Posté par Geoffroy Carrier (Jabber id, page perso, ) le 05/10/2006 à 19:21. (lien). Évalué à 1.Et en 3D, le probleme ne se pose pas ?
-
[^]Re: 3D ?
Posté par Romain Bignon (Jabber id, page perso, ) le 05/10/2006 à 20:01. (lien). Évalué à 2.Non car en 3d on garderait une carte rectangulaire, avec le nombre constant de cases par ligne.
-
-
[^]Re: 3D ?
Posté par Fabien Soulier () le 06/10/2006 à 14:55. (lien). Évalué à 1.
[...] je fais des tests à nombreux endroits pour vérifier si un objet ne sort pas de la map [...] Donc là ça m'obligerait à un autre type de réécriture.
Je n'ai pas regardé ton code, mais est-ce qu'il ne suffirait pas de tester le signe d'un produit vectoriel ?
-
-
-
Verdict
Bonjour,
Après les elements que j'ai entrevue ici, je vais garder la version SDL du jeu, mais en faisant subir néanmoins une "légère" transformation: utiliser des parallelogrammes pour faire de la 3D isométrique.
Merci de vos conseils.
Les journaux sont destinés à des informations qui ne sont pas suffisamment intéressantes
pour être validées en dépêche (sinon n'hésitez pas à proposer votre information en
dépêche), qui sont sans rapport avec Linux ou le libre, ou simplement pour donner votre
avis. Si vous désirez poser une question, merci d'utiliser 

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.