Comment bien élaborer des patterns ?

Aller en bas

Comment bien élaborer des patterns ?

Message par shingosama le Sam 13 Oct 2018 - 19:58

Bonjour tout le monde,

je souhaiterais savoir comment élaborer des patterns d'ennemis avec un peu de physique dans les mouvements.

Actuellement, j'utilise un tableau pour les actions des ennemis (10 actions par ennemis), mais je n'arrive à faire que des mouvements "rigide" basé sur la position x/y.

J'ai tenté d'ajouté de la velocity, cela donne un peu d'effet, mais c'est pas encore ce que je souhaite avoir.

Auriez-vous des exemples ou une piste à m'indiquer pour que je puisse réutiliser ou mettre au point des mes propres algo ?

Merci !
avatar
shingosama
Infirmier

Masculin Nombre de messages : 4801
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par Tryphon le Sam 13 Oct 2018 - 20:09

Est-ce que t'as un exemple de pattern à implémenter ?
avatar
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 11316
Age : 41
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par drfloyd le Sam 13 Oct 2018 - 21:21

Tu n'utilises pas de cos/sin ????? Que des mouvements horizontaux ou verticaux ?

_______________________________________________________

Mes objets en vente :
http://www.gamopat-forum.com/t98267-la-caverne-du-doc-poilu#2765310
Mon profil Gamopat Advisor :
http://www.gamopat-forum.com/t94659-dr-floyd-advisor





avatar
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 139595
Age : 49
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par shingosama le Sam 13 Oct 2018 - 23:05

@Tryphon pour le moment j'aimerais faire quelque chose comme dans Arrow Flash. Ce que j'aimerais faire, c'est par exemple faire un mouvement de vague comme un oscilator par exemple et se serait sympa de faire croiser des ennemis.

@drfloyd non pour le moment j'utilise que des mouvements horizontaux et verticaux justement...
avatar
shingosama
Infirmier

Masculin Nombre de messages : 4801
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par drfloyd le Sam 13 Oct 2018 - 23:29

commence deja par faire des mouvements en vague... en faisant varier l'angle de déplacement

x=x+vitesse*cos(angle)
y=y+vitesse*sin(angle)

_______________________________________________________

Mes objets en vente :
http://www.gamopat-forum.com/t98267-la-caverne-du-doc-poilu#2765310
Mon profil Gamopat Advisor :
http://www.gamopat-forum.com/t94659-dr-floyd-advisor





avatar
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 139595
Age : 49
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par shingosama le Dim 14 Oct 2018 - 0:18

Merci :) J'ai pu reproduire l'effet bien que ça demande un peu d'ajustement encore :)
avatar
shingosama
Infirmier

Masculin Nombre de messages : 4801
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par shingosama le Dim 14 Oct 2018 - 11:58

Bon avec la table COS et SIN de @Stef ça marche plutôt bien, je peux faire pleins de trucs sympatoche comme des vaisseaux qui se dirige légèrement vers le bas, puis sont propulsé en haut de l'écran.

Il faut que j'essaie pleins de choses pour créer des mouvements. Je trouve ça super cool, merci.
avatar
shingosama
Infirmier

Masculin Nombre de messages : 4801
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par Tryphon le Dim 14 Oct 2018 - 15:45

Essaie de faire en sorte que le "vitesse" des formules du Doc soit une puissance de 2, pour que tes multiplications soient transformées en décalages.

Sinon, tu risques vite d'avoir des problèmes de performances (une multiplication, c'est une opération très très lourde sur 16 bits).

Tu peux aussi créer tes propres tables où tu précalcules les "vitesse * (cos/sin)".
avatar
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 11316
Age : 41
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par shingosama le Dim 14 Oct 2018 - 21:22

Oui j'imagine, mais moins en ce qui concerne le tableau étant donné que je me base sur la position x/y de l'ennemi. Il faudrait que j'inscrive chaque déplacement dans ce tableau pour éviter la multiplication ?
avatar
shingosama
Infirmier

Masculin Nombre de messages : 4801
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par Tryphon le Dim 14 Oct 2018 - 22:12

oui.

Ta table contient directement les

vitesse*cos(angle)
vitesse*sin(angle)

En fait, tu peux même ne faire qu'une seule table, vu que cos(angle) = sin(angle + pi/2)
avatar
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 11316
Age : 41
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par shingosama le Dim 14 Oct 2018 - 22:24

En fait j'ai fais une table de Vect2D_f32.

J'ai effectivement fait les opérations, mais bizarrement l'effet est légèrement différent.

Je n'ai pas eu le temps de voir où ça coincait, mais je pense avoir une idée. Je regarde demain.
avatar
shingosama
Infirmier

Masculin Nombre de messages : 4801
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par drfloyd le Dim 14 Oct 2018 - 22:31

Apres je ne suis pas un expert, mon SUPA ZAZAI DA ne pousse pas tres loin le concept... ici sur ST :



Mr. Green C'est basique  MDR

_______________________________________________________

Mes objets en vente :
http://www.gamopat-forum.com/t98267-la-caverne-du-doc-poilu#2765310
Mon profil Gamopat Advisor :
http://www.gamopat-forum.com/t94659-dr-floyd-advisor





avatar
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 139595
Age : 49
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par Tryphon le Dim 14 Oct 2018 - 22:47

Il est chouette ton SupaZazai, mais tu l'as pas programmé sur 16 bits Wink

Templeton a certainement utilisé des tables précalculées.

De toutes façon je ne pense pas qu'il soit faisable sur MD (mais j'essaierai).
avatar
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 11316
Age : 41
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par drfloyd le Dim 14 Oct 2018 - 22:52

oui, désolé, j'ai pas de vidéo de la version PC... avec Beavis & Butthead.... la version la plus culte !!!

Je sais pas si il a précalculé, pas sur.... je lui demanderai.

_______________________________________________________

Mes objets en vente :
http://www.gamopat-forum.com/t98267-la-caverne-du-doc-poilu#2765310
Mon profil Gamopat Advisor :
http://www.gamopat-forum.com/t94659-dr-floyd-advisor





avatar
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 139595
Age : 49
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par drfloyd le Dim 14 Oct 2018 - 22:55

ah tiens si j'ai trouvé une vidéo de SUPA ZAZAI sur PC (mais pas le DA)



les deplacement sont hyper basiques, mais un petit coup de cos et de sin au hasard suffisent malgré tout a rendre le jeu dynamique et imprevisible.

_______________________________________________________

Mes objets en vente :
http://www.gamopat-forum.com/t98267-la-caverne-du-doc-poilu#2765310
Mon profil Gamopat Advisor :
http://www.gamopat-forum.com/t94659-dr-floyd-advisor





avatar
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 139595
Age : 49
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par Tryphon le Dim 14 Oct 2018 - 22:59

@drfloyd a écrit:oui, désolé, j'ai pas de vidéo de la version PC... avec Beavis & Butthead.... la version la plus culte !!!

Je sais pas si il a précalculé, pas sur.... je lui demanderai.

Je peux t'assurer que s'il utilise des sin/cos, il a précalculé Very Happy

Après, il est possible de se passer de sin/cos, mais c'est tordu, matheux, et ça reste plus lent qu'une table (mais ça utilise moins de RAM).
avatar
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 11316
Age : 41
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par Templeton le Lun 15 Oct 2018 - 8:19

@Tryphon a écrit:Templeton a certainement utilisé des tables précalculées.
Tu as certainement raison. Wink

@Tryphon a écrit:Je peux t'assurer que s'il utilise des sin/cos, il a précalculé  Very Happy
Oui dans la première phase du développement j'utilisais des sin/cos precalculés, mais dans la version final les sin/cos ont disparus, car les résultats du calcul des trajectoires ont été implémentés dans une grosse table. Wink
avatar
Templeton
Patient contaminé

Masculin Nombre de messages : 203
Age : 100
Localisation : France
Date d'inscription : 13/11/2016

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par shingosama le Lun 15 Oct 2018 - 19:33

Le truc que j'arrive pas à comprendre, c'est est-ce qu'il faut spécifié dans une table chaque déplacement d'un ennemi pour que cela fonctionne ? J'aimerais autant éviter pour le moment, car je me vois mal rentrer tout ça à la main pour chaque ennemi.

Pour cela, il me faudrait vraiment mettre en place mon éditeur de niveau.
avatar
shingosama
Infirmier

Masculin Nombre de messages : 4801
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par antifrog le Lun 15 Oct 2018 - 19:42

Je sais pas si tu utilises Unity sur certains projets, mais y'a ce tool de Pixel Nest qui est très bien
https://pixelnest.io/docs/bulletml-for-unity/
https://assetstore.unity.com/packages/tools/bulletml-for-unity-16206
avatar
antifrog
Interne
Interne

Masculin Nombre de messages : 12490
Age : 38
Localisation : Aix Marseille
Date d'inscription : 10/12/2005

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par shingosama le Lun 15 Oct 2018 - 20:52

Putain ! J'ai compris, ce que j'avais codé au départ était bon, mais je pense que c'était la vitesse utiliser qui ne correspondait pas :

Code:
void enemyModeInit() {
    u8 i;
    for(i=0; i < 60; i++) {
        mode[i].x = FIX32(0.001) * cosFix32(i);
        mode[i].y = FIX32(0.003) * sinFix32(i);
    }
}

Voilà, j'utilise une boucle pour définir la valeur pour chaque angle et ça marche comme je le souhaite.

avatar
shingosama
Infirmier

Masculin Nombre de messages : 4801
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par Tryphon le Lun 15 Oct 2018 - 22:04

Pour multiplier 2 fix32, faut utiliser fix32Mul. Et du coup, ta vitesse se compte certainement pas en millièmes de pixels par frame...
avatar
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 11316
Age : 41
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par shingosama le Lun 15 Oct 2018 - 22:12

Merci @Tryphon ! Je me demandais pourquoi ça merdait à ce niveau...
avatar
shingosama
Infirmier

Masculin Nombre de messages : 4801
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par shingosama le Lun 15 Oct 2018 - 22:20

Merci merci merci @Tryphon ! L'effet est super du coup, quad les vaisseaux descendent vers le bas pour remonter vers le haut, on a vraiment l'impression qu'il y a de la physique ! C'est vraiment le petit détail qui fait toute la différence !
avatar
shingosama
Infirmier

Masculin Nombre de messages : 4801
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par shingosama le Mer 17 Oct 2018 - 0:10

Je commence à me débrouiller ^^



J'ai écris mon propre programme en C# qui me génère un cercle pour les patterns que j'ai simplement à mettre dans un tableau de Vect2D_f32 et voilà le résultat.
avatar
shingosama
Infirmier

Masculin Nombre de messages : 4801
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par Stef le Mer 17 Oct 2018 - 9:29

Tu peux faire ça, mais bon ça te prendre pas mal de place si tu stockes chaque position Wink Mais c'est sûr que le résultat est sympe... tu pourrais en faire autant en définissant des petits "scripts" de déplancement. En gros des struct qui contiendrait des paramètres type "vecteur accélération ou vecteur déplacement pendant X frames", avec pourquoi pas des mouvement type wave (en utilisant la table de sinus sur un range donné). Enfin y'a de quoi faire, c'est juste un peu plus long à mettre en place et surtout de définir les mouvements qu'on souhaite Wink
avatar
Stef
Infirmier

Masculin Nombre de messages : 4399
Age : 39
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par ichigobankai le Mer 17 Oct 2018 - 10:39

Kaneda avait trouvé un éditeur de patterns :


https://twitter.com/SpritesMind/status/914858518896955393
avatar
ichigobankai
Patient incurable

Masculin Nombre de messages : 1467
Age : 39
Localisation : 49
Date d'inscription : 04/04/2011

http://www.mastersystem-france.com

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par shingosama le Mer 17 Oct 2018 - 12:45

@Stef je ne sais pas si j'utilise déjà cela, mais pour le mouvement en cercle, j'utilise un tableau Vect2D_f32 contenant chaque position ce qui donne une taille de 126. Ce tableau, je peux l'utiliser plusieurs fois, du moins dès que je veux faire un mouvement ou demi mouvement en cercle.

Pour les autres mouvements plus classique, j'utilise un tableau shem comme dans ton exemple qui dit quoi faire quand et pendant combien de temps. Par exemple :

Code:
const EnemyShem waveEnemies[20] =
{
    {
        1, FIX32(SCREEN_WIDTH), FIX32(100), FIX32(20),
        {
            {1, TRUE, 0, FIX32(0), FIX32(50), FIX32(0)},
            {7, TRUE, 0, FIX32(50), FIX32(1000), FIX32(0)},
        }
    },

};

Le 1 signifie que je demande au sprite d'avance tout droit de 0 à 50 frames puis le 7 de tourner en cercle pendant 1000 frames en utilisant le tableau contenant les positions.

Tu penses que c'est une méthode trop lourde ?

@ichigobankai cela semble être un super outil, du moins de ce que je vois dans le screen, mais le tweet date d'un an ! Est-ce que depuis il a mit à disposition cet outil ?!
avatar
shingosama
Infirmier

Masculin Nombre de messages : 4801
Age : 32
Localisation : SEGA Toulouse
Date d'inscription : 02/11/2016

https://www.genku.net

Revenir en haut Aller en bas

Re: Comment bien élaborer des patterns ?

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum