Forums Développement Multimédia

Aller au contenu

Dilemme sur changement de techno...

CODE

7 réponses à ce sujet

#1 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7012 messages

Posté 28 September 2012 - 15:52 PM

Bonjour,

Depuis un bon moment déjà je me suis lancé (pour le fun) sur un projet de remake de Might and Magic (anciennes versions), c'est un peu une arlésienne à mon niveau car j'en recause tous les 6 mois lol.

Voici où j'en suis arrivé avec un peu d'aide (merci Lilive qu'est très fort en Maths ;-) ) : http://spi4.free.fr/test/
( patientez un peu je n'ai pas mis de loading pour mes tests )
( touches : ZQSD et flèches de directions pour les déplacements - M pour le plan - E pour tirer - Espace pour sauter - SHIFT pour courir ou marcher - Interface pour les options et changer la résolution si ça rame - double clic sur la tête des persos pour interface dédiée )

Et voici un petit extrait du moteur original pour les intérieurs :



Et pour les extérieurs :



Il n'y a pas de moteur 3D à proprement parler dans ma version puisque ce n'est que du Raycasting ( pour ceux que ça amuse, voir le tuto correspondant : http://forums.mediab...e/3d/raycasting ).

Maintenant que le plus gros du boulot est fait je me heurte (encore) à des problème de conception qui me demandent de revoir pas mal de choses si je veux un rendu plus abouti (paliers, dénivelés, hauteurs, escaliers, trous, ....), j'avoue que ça me démotive un peu pour me remettre dessus et que je suis prêt à balancer tout ça à la poubelle.

Une solution serait de tout refaire avec des outils 3D comme Minko (voir la salle réservée ici : http://forums.mediab...lash-11-3d-api/ ) ou directement à l'aide de Away3D par exemple, sauf que ..... ça m'oblige à tout refaire et que je ne suis pas sur d'être au niveau pour ça ni même d'avoir la motivation pour... ou (sur les conseils de Lilive) de m'arrêter là, de finir le jeu comme ça et de passer à autre chose, faut avouer que je me traine ce projet depuis quelques années à coups de deux jours par-ci par-là. Une autre option, je trouve un codeur qui a envie de s'amuser, qui se charge de faire avancer le moteur ou en refait un à sa sauce, et je m'occupe du scénar et du gamedesign, sachant que beaucoup de choses sont déjà en place, mais je n'y crois pas trop ;-)

Au départ, j'étais parti sur un big scénario de JDR en open world (ambition quand tu nous tient...), mais du coup je suis en train de penser à quelque chose de plus simple qui mêlerai jeu de carte (Arcomage : http://spi4.free.fr/....php?article426 ) et mini JDR se passant dans quelques villes souterraines (pas d'extérieurs), histoire de ne pas non plus perdre tout le boulot déjà fait.

J'ai donc un gros dilemme, je change de techno et je refais tout, je continue sur mon idée de départ quitte à tout modifier et y passer encore des mois, ou je m'arrête là et j'adapte un peu histoire de ne pas tout balancer aux orties. Un choix tout à fait personnel certes, mais quelques avis sur le sujet me permettraient peut-être de prendre une décision. On sait jamais, si quelqu'un me sort un truc du genre "mais attend, avec Minko ou Away 3D je te refais ton moteur en deux jours sans problème, ..." ou "les dénivelés en Raycasting sans refaire ton moteur ? Tout simple j'ai une formule magique il suffit juste de ...."

Merci.

#2 tlecoz

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 3486 messages

Posté 28 September 2012 - 16:28 PM

Hello !

Voila un exemple avec Alternativa3D
La démo fonctionne avec les fleches + espace pour sauter (active le fullscreen pour contrôler avec la souris sinon ça bug)
http://wonderfl.net/c/6KxU


Evidemment ce n'est qu'une base, il y a pas mal de travail derrière, mais rien ne t'empêche (à part peut être le coté anachronique du rendu) d'utiliser Starling pour gérer les ennemis et de réutiliser exactement la même logique que dans ta version actuelle.
Mais honnêtement, je ne pense pas que ça te prenne tant de temps que ça pour obtenir un fps assez simple avec des ennemis en 3D et des effet de lumière et autres froufrous.

Le tout c'est de s'y mettre !

(cela dit, comme lilive, je te conseille de changer radicalement de jeu ; cela fait trop de temps que tu ressasses ce truc, ça te ferais du bien de passer à autre chose)

#3 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7012 messages

Posté 28 September 2012 - 16:34 PM

Yop,

Je me doutais de cette intervention Tlecoz ;-)
Je sais bien qu'en plus tu as raison, ça fait trop longtemps que je me coltine ce truc, mais j'ai passé tellement de temps dessus à apprendre que j'ai un peu de mal à ne pas aller au bout.... quand à me mettre à la vraie 3D, pffff, faut encore que je me plonge dans les tutos et les bouquins, ouinnnnnnnnn ( :mrgreen: ), j'hésite car tant qu'a faire pourquoi ne pas passer direct sur Unity ?

Merci pour l'exemple déjà, j'ai jeté un oeil au code et c'est assez simple, mais je pense que tu as raison, je vais sans doute m'arrêter là pour ce dev, et m'en servir pour faire un petit truc sympa sans prétention, et passer à autre chose, reste que ca fait mal au coeur de ne pas aller au bout, snirf....

#4 tlecoz

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 3486 messages

Posté 28 September 2012 - 17:01 PM

Citation

reste que ca fait mal au coeur de ne pas aller au bout, snirf....

Certes, mais je penses que les résultats que tu obtiendras via Minko/Away seront tellement mieux tellement vite que tu regretteras surtout de ne pas t'y être mis avant :D

(ça marche aussi from scratch, c'est moins compliqué que tu ne l'imagine ; je ne vois qu'un objet3D (la map) dans lequel on se déplace , ainsi qu'une fonction qui fait en sorte que la caméra s'arrête si elle fonce vers un triangle (trop près de lui) et c'est à peu près tout :) )
(la fonction en question, tu l'as trouve facilement sur wonderfl au travers d'exemples diverses )

#5 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7012 messages

Posté 28 September 2012 - 17:13 PM

Scrongeumlfff, le pire c'est que je sais que tu as raison .... pourquoi aller réinventer la roue alors que d'autres s'en sont chargés bien mieux que moi et ont mis à dispo des outils pour aller plus vite... et le pire dans tout ça c'est que je les ai déjà essayé ces outils (Away3D, Papervision, etc.... mais pas Minko).

La vraie question que je me pose c'est quitte à me baser sur des moteurs existants, pourquoi ne pas carrément plonger dans Unity qui est vraiment dédié à la créa de jeux et accepte à présent l'AS3 ( petit exemple pour la forme : http://docs.unity3d....hfunctions.html et plus d'infos sur le sujet : http://docs.unity3d....ingstarted.html )

Au moins je bénéficie d'un IDE dédié et de possibilités d'exports multiplateformes, mais je perds tout le côté fun du dev du moteur en lui même (ceci dit je vais pas non plus développer mon propre moteur 3D donc ....), bon par contre toutes les fonctionnalités ne sont pas encore implémentée (comme les terrains par exemple)

Bon je crois que j'ai compris, je vais lâcher l'affaire et finir un truc simple pour au moins en faire quelque chose d'abouti et pas juste un test et je passe à autre chose, lol :smile:


EDIT : quelques exemples de jeux créés sous Unity et publiés en Flash
http://forum.unity3d...-Flash-Showtime!

Quand on vois le rendu de certains projet ça fait mal : http://dl.dropbox.co...est%202012.html

#6 tlecoz

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 3486 messages

Posté 29 September 2012 - 02:03 AM

Citation

Quand on vois le rendu de certains projet ça fait mal : http://dl.dropbox.co...est%202012.html
Tu vas dire que j'exagère mais ce n'est pas si impressionnant que ça :)
Ou plutôt oui c'est impressionnant, mais moins grâce à Unity que grâce au GPU.

La grosse limite de flash jusqu'a maintenant c'était la lenteur du processus de rendu (car entierement géré par le CPU, en plus de la gestion du son & cie) ; si on part du principe qu'afficher 1000 000 de triangles 60 fois par seconde, c'est normal , et que par dessus on peut exécuter du code à l'échelle du pixel sous forme d'un Shader, également 60 fois par seconde, le tout en prenant moins de 1% de charge CPU ; ben à peu prés tout parait faisable ^^

La route de ton jeu de voiture, ce n'est qu'une forme tracé à la plume, décomposé en peut être 10 000 segments (je ne pense pas plus car on peut les voir assez facilement si on va lentement) ; si la route était toute plate et qu'on avait 10 000 segment , on aurait besoin de 20 000 triangles ; il y des sorte de piliers un peu partout, on va dire que ça représente 10 triangles par segments (ça me parait être le maximum vu la structure de la route ; on obtient un total de 100 000 triangles pour la routes.
Mais en fait, ne seront affiché sur ces 100 000 triangles que 10 000 en même temps (au grand maximum) car on ne voit jamais toute la route en même temps. Ce qui fait que ce programme est vraiment "light" en fait ^^

Le vaisseau fait sans doute plusieurs milliers de triangles à lui seul, mais le GPU ne le sent même pas et dans ton code, au final, ce n'est qu'un objet.

Les effets de lumières ne sont que des interpolations de couleurs (à l'échelle du pixel) en fonction de la position de chaque triangle par rapport à la caméra (c'est 10 lignes d'AGAL en gros). Les ombres , je ne sais pas trop mais on trouve des exemples assez facilement (et les moteurs type Away/Minko le font tout seul).

Un jeu comme ça, je considère qu'on peut le faire "from scratch" sans y passer trop de temps (< 3 mois en prenant vraiment son temps, sans aucune base de code, et encore vraiment je suis gentil, je pense qu'on peut le faire beaucoup plus vite sans forcer ; rien que le terrain (qui represente 50% du rendu), ca se fait, texture & shader compris, à partir de rien, en moins d'une semaine .

Cela dit , ça peut être intéressant de passer sur Unity, mais je ne connais pas trop, je ne peux pas en parler.

EDIT : Lis mon tuto sur drawTriangle (si ce n'est pas déjà fait :) ) , j'y explique toutes les étapes pour construire une forme complexe codable (comme la route) à partir de rien. Le tuto est fait pour flash 10, mais la logique d'ensemble est très proche de la logique de Stage3D (sauf pour la gestion des Shader qui n'existe qu'avec Stage3D et dont je ne parle, de fait, pas dans le tuto)
http://forums.mediab...e_drawtriangles

Je te rassure tout de suite, tu n'as pas besoin de gérer le z-sorting avec Stage3D (du moins pas entre les triangles d'un même objets / groupe d'objets ) ; et ça tombe bien car c'est la partie la plus complexe du tuto ! :)
(mais il faut que tu lises cette partie quand même car je fais progresser la démo de section en section, et même si techniquement Stage3D le prend en charge, c'est mieux d'avoir une idée de la logique pour structurer le projet.

#7 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7012 messages

Posté 29 September 2012 - 11:00 AM

lol j'adore tes "ce n'est que" ... :P

Bon tu m'as convaincu au moins d'une chose dans ton argumentation, c'est que faire un tour par les possibilités de drawTriangle et Stage3D ne peut être qu'une bonne chose pour envisager la suite.

Quand à Unity, ce n'est pas le côté code qui est intéressant (bien que) mais la puissance de l'outil en lui même et son IDE dédié jeux POO qui est super attractif, mais ça ne fera pas de mal de voir comment les choses sont faites en arrière boutique de toute façon. Pour l'exemple avec Unity pour créer une maison je ne me prend pas la tête, je viens poser des cubes sur la ma scène, je les étires à la taille voulue pour faire des murs et un toit, je colle (par glisser/déposer) mes textures dessus et je les adaptes à la taille, je viens coller un objet FPScontroler devant, je compile et zou j'ai mon décor en 3D avec toutes les fonctionnalités d'un FPS classique, physique comprise (pour l'exemple rapide voir la série de tutos vidéo en français ici : http://www.unity3d-f...82&preview=true ).

Je vais me coller à tes tutos sur drawTriangle et un peu sur Minko aussi (maintenant je peux puisque je suis passé de CS3 à CS6 et que j'ai quelques bases utiles), ça a l'air si simple quand tu l'explique mais je ne suis pas sur que ce soit réellement le cas, tout dépend de la manière dont je vais prendre la chose lol

Ce qu'il en ressort, c'est que cette année je me mets à la 3D.... quel que soit le soft ou le framework utilisé.... encore du temps à passer sur la machine en perspective (et sans jeu de mots).

#8 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7012 messages

Posté 29 September 2012 - 11:30 AM

Re,

Bon je m'attaque à ton tuto sur drawTriangles cet aprem, au moins ça ce sera fait.
J'ai déjà quelques remarques et questions, mais je n'ai pas trouvé de sujet réservé aux commentaires/questions/critiques sur le forum concernant précisément ton tuto (tu n'as pas mis de lien vers la salle dans le tuto), tu ouvrirai un thread pour qu'on te remonte les questions au fur et à mesure ? Ou si il existe déjà tu me dirais où il se trouve ( je l'ajouterai sur ta page sur le Wiki ) ?

Ma première question de base, serait qu'appelles-tu vertices, tu en parles dés le début mais tu ne précise pas pourquoi tu l'emploie, en fouillant un peu on trouve ( http://wiki.blender....Mesh_Structures ) ce qui nous mène à la définition de vertex ( http://fr.wikipedia....om%C3%A9trie%29 ) autrement dit un simple "sommet" en géométrie, mais ça aurait été bien d'en faire un rappel tout de suite (j'aime bien comprendre le sens des mots que je lis, surtout si ils sont employés souvent par la suite ;-) )



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)