Sujet :

Asteroides

Atil
   Posté le 25-05-2006 à 10:26:46   

Un jeu que j'ai réalisé en flash ...



Aparemment le bouton "rejouer" refuse de recharger le jeu quand on le joue à partir du forum.
Ca marche mieux à partir de sa page d'origine :
http://perso.wanadoo.fr/atil/alain/asteroides.html
Zig
   Posté le 28-08-2006 à 13:49:12   

Un bon p'tit avoider!
Pas terrible les tests de collisions. Quelle méthode utilises-tu?
Atil
   Posté le 28-08-2006 à 14:15:46   

En fait ce sont des zones carrées contenant les astéroïdes qui servent pour les tests de collision. Ce serait plus précis avec des astéroides carrés.
PizzaMan
   Posté le 28-08-2006 à 14:58:23   

Tu aurais pu faire des zones elliptiques pour la précision, je crois.

C'est mortel en tout cas. Il faudrait bien que j'apprenne à faire des RPG en flash...
Zig
   Posté le 28-08-2006 à 16:59:51   

"En fait ce sont des zones carrées contenant les astéroïdes qui servent pour les tests de collision. Ce serait plus précis avec des astéroides carrés."
Tu peux utiliser le hitTest de flash, même si il est gourmand et pas toujours très fiable.


"C'est mortel en tout cas. Il faudrait bien que j'apprenne à faire des RPG en flash..."
Retourne ce site de fond en comble : http://www.tonypa.pri.ee/tbw/start.html
Un excellent site qui m'a bien aidé au début et qui m'aide encore maintenant.
Mon jeu en flash a bien avancé, et je le dois en grande partie à ce site qui explique de façon clair, synthétique et efficace des algo récurrents pour tout types de jeu. C'est d'ailleurs en bidouillant les codes de ce site que j'ai appris la programmation (je n'y connaissais rien quand mon projet m'a traversé l'esprit).
Et ne fait pas comme certains qui disent "nan je veux pas repomper! je veux tous faire moi-même!", parce que c'est con de se casser le cul à réinventer des trucs qui existent déjà depuis longtemps et qui ont nécessité des années de recherche à être mis au point. Si tous les étudiants en médecine réinventaient la médecine, on serait bien dans la merde! L'essentiel est de bien comprendre les codes que tu utilises. D'ailleurs même en repompant ceux du site de Tonypa, il y a pas mal de travail perso pour faire un jeu correct, parole d'un mec qui passe par là!
PizzaMan
   Posté le 28-08-2006 à 17:22:03   

Je vais voir pour le lien dès que le temps me le permettra.

L'originalité d'un jeu est sans doute la chose la plus difficile à atteindre. Je me suis tourné vers la console Nintendo pour l'originalité des jeux, et surtout avec la Wii qui s'annonce et qui révolutionnera le gameplay, ce sera vachement balaise d'inter-agir directement avec l'écran. C'est comme si on y était.

Le facteur immersif d'un jeu est aussi important pour moi, et je vais peut-être voir ce que je peux faire en flash pour un RPG. De toute façon je n'ai pas le temps pour pomper du neuf. J'aimerais mieux faire un truc simple, avec un design plus ou moins original.
Zig
   Posté le 28-08-2006 à 17:32:05   

Heureusement qu'il y a Nintendo pour innover!
En dehors d'eux, on reste enfermés dans le carcant RPG RTS doom-like et jeu de baston. C'est pas que j'aime pas, m'enfin c'est un peu trop facile.

En tout cas si tu as besoin d'aide pour un jeu en flash, tu peux m'en demander. Dans la limite de mes propres capacités bien sûr.
De mon côté aussi le temps va bientôt se limiter avec la reprise des cours en septembre. Le rythme d'avancement de mon jeu va donc de nouveau diminuer, et ça fait un peu chier.
PizzaMan
   Posté le 28-08-2006 à 20:50:24   

Et encore, avec Nintendo on est servi : First person shooter, RPG, Toon shading, puzzles, sport, erotisme, horreur, action, humour. Il y en a pour tous les goûts. Je suis sur Les Simpsons, Hit and Run, en ce moment. C'est très immersif. Prochain weekend je me procure Mario kart Double dash, en attendant avec impatience le prochain Zelda !!!

Pour demander de l'aide pour Flash, aucun problème. Je ne me gênerais pas. C'est juste le temps que j'espère avoir pour faire tout ceci
Atil
   Posté le 29-08-2006 à 09:13:08   

J'ai utilisé des hits_tests, mais ils s'effectuent sur des images carrées contennat les astéroIdes.
Les astéroides sont en bitmap, non en vectorisé.
Zig
   Posté le 29-08-2006 à 10:15:55   

Oui, ils s'effectuent sur le MovieClip qui contient tes bitmaps.
Par contre ce n'est pas grave que les graphismes soient vectoriels ou bitmaps.
Avec le hitTest intégré de flash, on peut soit faire des collisions simples comme tu as fais, soit des collisions plus complexes. Par example tu as peut-être déjà utilisé ça :
if(_root.asteroide.hitTest(_root._xmouse, _root._ymouse, true)) {
trace("collision !");
}

Dans ce cas là, la collision s'effectue non pas avec le MovieClip mais avec ce qu'il contient. Les endroits vides du MovieClip ne provoqueront pas de collision. En d'autres termes, seule la partie graphique en provoquera.
Bon le code que j'ai écrit s'applique avec le pointeur de la souris, mais tu peux peut-être te démerder avec le hitTest pour autre chose (je n'en suis pas sûr, je l'utilise peu).
Le mieux à mon avis serait que tu détermines une zone de collision en prenant les coordonnées et les dimensions du graphisme, du genre :
if (vaisseau._x+vaisseau._width>=asteroide._x && vaisseau._x<=asteroide._x+asteroide._width && vaisseau._y+vaisseau._height>=asteroide._y && vaisseau._y<=asteroide._y+asteroide._height) {
trace("T'es mort !");
}
Mais ça va peut-être te donner le même résultat que le hitTest actuel . Si c'est le cas, c'est quand même mieux que le gourmand et défaillant hitTest de flash qui test tout y comprit ce dont on n'a pas forcément besoin.
Atil
   Posté le 29-08-2006 à 11:40:27   

"Les endroits vides du MovieClip ne provoqueront pas de collision. "

>>>>Le movie clip contient une image carrée représentant un astéroide.( Je ne sais plus si le fond de l'image est noir ou transparent).
Comment faire pour que ca tienne compte de la vraie forme de l'astéroide et non pas de l'image qui est carrée ?
Le hit_test se fait avec l'image carrée et non pas avec ce qui est dessiné dessus.
Membre désinscrit
   Posté le 29-08-2006 à 12:11:01   

je connais pas flash, mais il faut faire ce qu'on appelle de la detection de collision :

http://fr.wikipedia.org/wiki/Moteur_de_jeu
http://stephaneey.developpez.com/tutoriel/flashmx2004/collision/
http://www.developpez.net/forums/forumdisplay.php?f=66
http://www-evasion.imag.fr/Membres/Francois.Faure/ascollisions/exposesBrest/kheddar.pdf
Zig
   Posté le 29-08-2006 à 12:22:24   

Je comprend mieux pourquoi tu précisais que c'est du bitmap et non pas du vectoriel : parce que quand tu importes un bitmap, il est carré quand tu le pose sur la scène! Même si tu le met pas dans un Movie Clip. J'avais zappé ça.
Bah là, je crois que c'est pas la peine d'espérer une collision complexe sans bidouiller, ça m'étonnerait qu'il soit possible que ça se fasse automatiquement.
Moi ce que je ferais c'est déterminer moi-même un masque de collision. Soit dynamiquement, comme ce que j'ai écrit dans mon post précédent mais en plus complexe; soit en dessinant dans le MovieClip contenant le graphisme un dessin vectoriel transparent (seulement des lignes avec alpha à 0, pas de fond) qui suivrait les contours de l'astéroïde; soit encore en utilisant plusieurs MovieClip vides qui serviraient de noeuds et qui seraient installés autour du graphisme aux endroits où on décide qu'il y aura collision.
Sinon, on parle beaucoup d'astéroïde, mais il ne faut pas oublier qu'ils se percutent avec la soucoupe aussi, donc faudra la revoir aussi.
Zig
   Posté le 29-08-2006 à 13:25:56   

Théories sur les collisions, qui ont été utilisées dans un jeu en flash :
http://www.harveycartel.org/metanet/tutorials/tutorialA.html
Très intéressant, mais complexe!


Une démo ici : http://www.harveycartel.org/metanet/tutorials/diagrams/tutA_demo.html

Et le code source là :
http://www.harveycartel.org/metanet/tutorials/diagrams/N_tutorialAsrc.zip
Atil
   Posté le 29-08-2006 à 14:09:07   

Pour le movie-clip de la soucoupe, j'avais fait + complexe :
le hit_test ne se fait pas sur l'image de la soucoupe mais sur 4 petits carrés situés en dessous. Chacun renvoit les astéroides dans une direction différente.
PizzaMan
   Posté le 29-08-2006 à 15:19:00   

Avec Blender 3D qui me prend déjà la tête (quand j'ai le temps d'en faire), me voici confronté à une terrible envie d'avancer mon projet de jeu en flash. Argheu !

Je vais devoir me discipliner et réserver une heure ou deux par semaine.

Avec tout ça, j'avais mis un petit jeux flash en ligne que j'avais trouvé. C'était Resident Evil Apocalypse. Ça consistait à buter des zombies. Graphiquement c'était très simple mais le gameplay était excellent avec un design assez efficace malgré tout.
PizzaMan
   Posté le 29-08-2006 à 15:21:10   

Ah oui, le voici...

Zig
   Posté le 29-08-2006 à 15:36:25   

Tu veux faire ton jeu Flash en 3D?
PizzaMan
   Posté le 29-08-2006 à 15:41:38   

Bien sûr que non.
Ça n'a aucun rapport en fait. C'est juste que je fais du 3D depuis quelques mois, mais j'avais mis sur la glace mon projet de faire un jeu Flash. Ça traîne trop, alors je vais devoir me réserver du temps.
Atil
   Posté le 29-08-2006 à 15:49:13   

Moi je voulais faire un jeu en flash dans le genre de celui du haut de page , mais ou on se déplace de gauche à droite avec la souris, en vue subjective.
J'ai déja le script pour le déplacement à la souris .. mais j'ai pas le temps d'ajouter un système de tir.
Et je ne sais pas encore comment faire pour mettre des cibles avec un mouvement réaliste.
PizzaMan
   Posté le 29-08-2006 à 15:58:38   

C'est un scroller dont tu parles, je crois. En vu subjective c'est bien ainsi ? :


Zig
   Posté le 29-08-2006 à 16:08:11   

Je crois qu'il veut plutôt parler d'un doom-like, comme là : http://www.flashkod.com/codes/RAYCASTING-STRILLE-FLASH_17741.aspx
Une démo ici : http://www.strille.net/works/raycasting_v2.html
Ou ici : http://www.fastfroots.de/

Sinon je connais des liens pour des moteurs 3D en Flash, avec des matrices ou des quaternions. Le résultat est bon, mais vaut mieux éviter la 3D en Flash (trop lent...).
PizzaMan
   Posté le 29-08-2006 à 16:13:11   

Il me semble qu'Atil fait allusion au déplacement de gauche à droite, uniquement. Dans un doom-like, on avance et on recule.

Si un jour j'ai le courage de faire du 3D, ce sera avec le moteur intégré dans Blender. Ce programme est ce qu'il y a de mieux. Il est open source, et en plus il est gratos.
Atil
   Posté le 29-08-2006 à 16:17:50   

Je veux dire qu'on tire devant soi et qu'on peut se tourner à droite et à gauche sur 360°. Comme si on était dans une tourelle.
Mais on n'avance pas.
Atil
   Posté le 29-08-2006 à 16:21:06   

J'ai déja le script puisque j'ai fait des panoramiques pour l'AFPA ou on peut tourner sur 360° dans les pièces, zoomer, régler le gamma, etc...
Il ne reste plus qu'à tirer sur des z'horribles monstres.
PizzaMan
   Posté le 29-08-2006 à 16:24:45   

C'est donc un peu comme Zig l'a suggéré, sauf que l'on pourrait uniquement tourner sur soi-même, sans se déplacer. Dans une tourelle comme tu dis. Ou précisément dans la tourelle d'un bombardier en vol, par-exemple.

Et les monstres doivent se déplacer de façon assez réaliste, quand même.
Zig
   Posté le 29-08-2006 à 16:40:23   

Avec les logiciels comme Blender tu peux que faire du graphisme en 3D. Mais pas un jeu. Cependant, rien ne t'empêche de récupérer le code généré par tes dessins pour les intégrer à un moteur 3D en Actionscript ou en un autre langage.


Au cas ou :

3D avec matrices :
- démo : http://www.adobe.com/devnet/flash/articles/flash_3d_5.0.html
- tutoriel : http://www.adobe.com/devnet/flash/articles/flash_3d.html
- source pour Windows : http://www.adobe.com/devnet/flash/articles/flash_3d/flash_3d.zip
- source pour Mac : http://www.adobe.com/devnet/flash/articles/flash_3d/flash_3d.sit

3D avec quaternions :
- démo (en bas de page) : http://www.adobe.com/devnet/flash/articles/3d_classes_05.html
- tutoriel : http://www.adobe.com/devnet/flash/articles/3d_classes.html
- source : http://download.macromedia.com/pub/developer/3d_classes.zip
Zig
   Posté le 29-08-2006 à 16:46:28   

Et je pense qu'Atil devra quand même créer une variable "z" en guise de troisième coordonnée comme pour la vraie 3D, afin de redimentionner les graphismes en fonction de leur "proximité" (_xscale et _yscale).
Par exemple, si un z'horrible monstre n'a pas été tué et s'approche de nous...
PizzaMan
   Posté le 29-08-2006 à 16:47:51   

Il y a un moteur de jeu intégré dans Blender, non ?

http://www.blender.org/cms/Features.155.0.html

Regarde en bas de page...
Zig
   Posté le 29-08-2006 à 16:56:55   

Ah putain, je ne me doutais pas qu'il était si élaboré...
Apparemment il permet de créer des animations avec les créations 3D et peut aussi tester les collisions entre elles.
Mais il faudra que je vérifie si un langage y est implémenter, comme Actionscript dans Flash. Sans quoi il ne permettrait pas de créer un vrai jeu mais une sorte de monde virtuel animé plus ou moins interactif. Ce qui est déjà génial tant ça mache le travail.
PizzaMan
   Posté le 29-08-2006 à 17:05:59   

Hé ! Hé !
Personne ne se doute à quel point Blender est un programme puissant en constante évolution. Et les ressources sont très nombreuses sur le Net.

Pour le language implémenté, on fait référence au «Python scripting API», il me semble.
PizzaMan
   Posté le 29-08-2006 à 17:12:10   



Dans le bas de l'image on peut voir dans l'interface tout ce qu'on peut assigner au niveau de l'action script. C'est vachement convivial...
Zig
   Posté le 29-08-2006 à 17:18:08   

Il est écrit que c'est le langage natif d'import et d'export. Lorsque tu créer un graphisme, le code généré est en python. C'est un langage spécial 3D si je n' m'abuse.
Natif, ça ne veut pas forcément dire que Blender n'accèpte que Python remarque.
Et puis rien n'empêche de mêler plusieurs langages, il peuvent communiquer entre eux grace au fichiers .dll
Zig
   Posté le 29-08-2006 à 17:21:50   

Mais ça reste de l'animation. Blender à lui seul ne peut permettre de créer un jeu.
Ce qui ne veut surtout pas dire qu'il faut s'en priver! D'ailleurs je vais le télécharger.
PizzaMan
   Posté le 29-08-2006 à 17:33:54   

Je ne le connais pas encore à fond, mais on peut créer des jeux avec ce programme. Tiens, voici un tutoriel pour créer un jeu simple avec Blender.

http://olivierblin.free.fr/blender/tutGB/

Et ce tuto : http://blenderman.free.fr/tut/shoot/fr/shoot.htm

Voici un lien complet sur la création de jeux avec GameBlender :

http://www.gameblender.org
Zig
   Posté le 29-08-2006 à 19:51:25   

Bon bah là oui, indiscutablement. Y'a rien à ajouter
PizzaMan
   Posté le 29-08-2006 à 20:04:30   

Sinon, quand tu en seras à l'étape de donner de jolis rendus à tes objets, il te faudra Yafray de Blender. C'est indispensable : http://www.blender.org/cms/Yafray.51.0.html
PizzaMan
   Posté le 29-08-2006 à 20:06:25   

Au fait, je ne sais plus, mais je me demande si le moteur 3D d'Unreal est toujours aussi pertinent. Il paraît que c'était l'un des meilleurs.
Verdad
   Posté le 29-08-2006 à 21:21:07   

Juste une question: nous sommes sur cerclosophie, ou sur un forum de jeux pour adolescents de 30 - 40 ans?
Zig
   Posté le 29-08-2006 à 21:28:54   

Acceptons le jeux vidéo comme un véritable art. Sachons aussi parler de tout.
En clair, soyons un minimum ouverts d'esprit et acceptons l'implacable fait que les sujets que nous ne maîtrisons pas peuvent aussi être intéressants.

PS : D'autres sujets sont disponibles sur les autres sections de ce forum... Et aussi sur d'autres forums.
Atil
   Posté le 30-08-2006 à 09:11:03   

Putain ! J'ai encore du boulot si je me lance dans la réalisation de trucs en 3d !
Dommage que la 3D n'était plus au programma de ma formation.
PizzaMan
   Posté le 30-08-2006 à 15:12:47   

Hi ! Hi !
Atil est surmené pour la première fois de sa vie !

N'empêche que les images 3D ça se vend bien, sur le Net. Avec un certain style et un public bien visé, on peut se faire de la tune.