Bonjour,
Une 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:).
# Le lien
Posté par Romain . Évalué à 10.
# l'opengl a rendez-vous avec la rage mobility m1, mais la M1 n'est pas là
Posté par Camille_B . Évalué à 3.
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 ;)
[^] # Re: l'opengl a rendez-vous avec la rage mobility m1, mais la M1 n'est pa
Posté par Romain . Évalué à 1.
[^] # Re: l'opengl a rendez-vous avec la rage mobility m1, mais la M1 n'est pa
Posté par Jehan (site web personnel, Mastodon) . Évalué à 1.
à 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.
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]
[^] # Re: l'opengl a rendez-vous avec la rage mobility m1, mais la M1 n'est pa
Posté par Victor STINNER (site web personnel) . Évalué à 6.
Haypo
[^] # Re: l'opengl a rendez-vous avec la rage mobility m1, mais la M1 n'est pa
Posté par Romain . Évalué à 3.
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
Posté par Pierre . Évalué à 10.
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.
[^] # Re: des graphistes
Posté par Romain . Évalué à 4.
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 . Évalué à 4.
[^] # Re: des graphistes
Posté par Romain . Évalué à 2.
[^] # Re: des graphistes
Posté par BAud (site web personnel) . Évalué à 3.
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 . Évalué à 5.
# Raz le bol de l'OpenGL
Posté par Sébastien Koechlin . Évalué à 8.
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 . Évalué à 3.
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 (site web personnel) . Évalué à 6.
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).
"La première sécurité est la liberté"
[^] # Re: Raz le bol de l'OpenGL
Posté par alice . Évalué à 8.
[^] # Re: Raz le bol de l'OpenGL
Posté par DLFP est mort . Évalué à -2.
DLFP >> PCInpact > Numerama >> LinuxFr.org
[^] # Re: Raz le bol de l'OpenGL
Posté par Jarod_Summers . Évalué à 3.
Pas besoin de 3d pure pour faire un jeu beau, la 2d ou 3d iso suffit avec un gameplay excellent ^^.
# 3D ?
Posté par gyhelle . Évalué à 2.
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 . Évalué à 4.
[^] # Re: 3D ?
Posté par Pierre Carrier . Évalué à 3.
[^] # Re: 3D ?
Posté par Romain . Évalué à 2.
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 Pierre Carrier . Évalué à 1.
[^] # Re: 3D ?
Posté par Romain . Évalué à 2.
[^] # Re: 3D ?
Posté par Fabien Soulier . Évalué à 1.
Je n'ai pas regardé ton code, mais est-ce qu'il ne suffirait pas de tester le signe d'un produit vectoriel ?
# Verdict
Posté par Romain . Évalué à 2.
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.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.