Développement Shoot them up

Le coin des demomakers et des programmeurs en herbe.

Modérateurs : SirG, Redfield1, shubibiman, Laucops

Avatar de l’utilisateur
touko
NECromancer
Messages : 2297
Inscription : lun. 31 mars 2008 14:32

Re: Développement Shoot them up

Message par touko »

J'ai ajouté la possibilité de déplacer le sprite avec les flèches/pad gauche et droite. Je me demande si y a pas de perte de synchro, par moment ça saute légèrement. Je fais juste un vsync et je test seulement sur emul donc je peux pas voir un vrai résultat.
CAD ???
Normalement mednafen est suffisamment précis sur ce genre de chose, donc si ça saute, ça le ferra sur le vrai hard.
Pourrais tu m'expliquer l'histoire de H-sync avec une ligne, ça veut dire qu'il faut tester la synchro à chaque ligne écrite par le soft ? Quand tu auras du temps bien sûr :wink:

Non heureusement que tu testes pas la synchro ,ça bouferai bcp trop de cycles CPU, en fait c'est tout simple, le registre $6 du vdc te permet de définir une ligne raster sur laquelle lorsqu'elle est atteinte va générer une interruption,et lancer du code qui va par exemple changer le scroll sur X/Y, changer la couleur de fond, etc .. .
Bien sur tu peux générer une interruption sur chaque ligne, et pendant le vblank.

le H-sync est très utile pour les parallaxes horizontaux . :wink:

un descriptif ici : http://www.archaicpixels.com/HuC6270#.2 ... r_Register

EDIT: dans tes roms je vois pas où ça saute !!
Avatar de l’utilisateur
Hero_Tonma
Push Run Button!
Messages : 89
Inscription : lun. 20 juil. 2015 14:26

Re: Développement Shoot them up

Message par Hero_Tonma »

touko a écrit : EDIT: dans tes roms je vois pas où ça saute !!
Cool, c'est une bonne nouvelle. Si ça saute pas c'est que ça vient de ma configuration PC, peut-être mon driver vidéo. C'est très léger, mon sprite se déplace de 1 pixel et des fois j'ai l'impression qu'il bouge que de 0.5 puis il rétablit sa position à la frame suivante. J'ai vérifié et j'ai pareil avec Air Zonk, ce qui me rassure.
Merci beaucoup d'avoir jeté un coup d'œil.

Je vais regarder cette interruption pour gérer le scrolling et me renseigner sur cette ligne raster. Je vais encore avoir un tas de questions à poser.

Je vais déjà faire un mini jeu sans scrolling pour avoir les bases pour créer un format hucard et CD/SCD.
Avatar de l’utilisateur
touko
NECromancer
Messages : 2297
Inscription : lun. 31 mars 2008 14:32

Re: Développement Shoot them up

Message par touko »

Pour les questions n'hésites pas, il y aura toujours quelqu'un pour y répondre . :wink:
Avatar de l’utilisateur
Hero_Tonma
Push Run Button!
Messages : 89
Inscription : lun. 20 juil. 2015 14:26

Re: Développement Shoot them up

Message par Hero_Tonma »

touko a écrit :Pour les questions n'hésites pas, il y aura toujours quelqu'un pour y répondre .
Dans ce cas, allon-z-y :mrgreen:

J'ai réussi à faire un scrolling simple, tout le background sans parallax. Ca fonctionne mais c'est très basique. J'aimerai savoir comment ça se passe pour un tilemap plus grand que le BG map virutal size. J'ai mis une taille de 64*32.
Si j'utilise le logiciel bmp2pce avec une image de 2048, il va me créer une map de 256*32. Est-ce que le kit de dev (mkit) va gérer la taille de cette map lors du scrolling ou Est-ce qu'il va falloir reloader la colonne de droite pour ajouter la suite de l'image au scroll ?

Je sais pas si je suis clair.

Ecran + scroll en tiles d'un tilemap de 256*32
0, 1 .. 62, 63
1, 2 .. 63, 64
2, 3 .. 64, 65

ou
0, 1 .. 62, 63
1, 2 .. 63, 0
2, 3 ... 0, 1 dans ce cas on doit écrire la colonne 64 et 65 du tilemap à la place de 0 et 1


Une autre question, pour tester un jeu de plateforme avec background fixe, comme ça je pourrais prendre mon temps avec le scrolling. Quelle est la "meilleure" méthode pour tester les collisions avec les tiles qui servent de plateforme ? Un tableau, un test de position par rapport à une lecture de la valeur de la tile du brackground derrière le sprite ?
Avatar de l’utilisateur
touko
NECromancer
Messages : 2297
Inscription : lun. 31 mars 2008 14:32

Re: Développement Shoot them up

Message par touko »

J'ai réussi à faire un scrolling simple, tout le background sans parallax. Ca fonctionne mais c'est très basique. J'aimerai savoir comment ça se passe pour un tilemap plus grand que le BG map virutal size.
Il faut charger la suite de ta map de façon dynamique car quand l'écran va passer la dernière tile il va reboucler sur le début de l'écran virtuel/tilemap, c'est le wrap around .
Si j'utilise le logiciel bmp2pce avec une image de 2048, il va me créer une map de 256*32. Est-ce que le kit de dev (mkit) va gérer la taille de cette map lors du scrolling ou Est-ce qu'il va falloir reloader la colonne de droite pour ajouter la suite de l'image au scroll ?
Tu y réponds tout seul :mrgreen:
Une autre question, pour tester un jeu de plateforme avec background fixe, comme ça je pourrais prendre mon temps avec le scrolling. Quelle est la "meilleure" méthode pour tester les collisions avec les tiles qui servent de plateforme ? Un tableau, un test de position par rapport à une lecture de la valeur de la tile du brackground derrière le sprite ?
Eheh, tout dépend :D
Comme la PCE à un accès complet à la VRAM pendant le balayage tu peux tester directement les tiles en VRAM .
Sinon c'est soit directement dans le tilemap en ROM,soit avec un fichier annexe ou à chaque position de tile à l'écran le fichier contient une valeur, en fonction de la valeur la tile aura une propriété, walkable ou non, blesse le joueur ou pas, plateforme, etc ...
Tout va dépendre de la complexité recherchée dans les collisions .
Avatar de l’utilisateur
Hero_Tonma
Push Run Button!
Messages : 89
Inscription : lun. 20 juil. 2015 14:26

Re: Développement Shoot them up

Message par Hero_Tonma »

Bon, je vais me faire un tableau avec mes tiles : à la fois pour l'affichage du background et les tests de collision.
Je vais limiter en byte, 0xFF devrait suffire. Du genre tilepos: .db 00, 02, 03 ....

Tu peux me dire comment en assembleur lire rapidement une position du tableau en 2D. Par exemple, la tile en (32,12). J'imagine un truc du genre, on a un index sur le tableau, j'incrémente l'index de (32 + (12*array_size)) - 1
Avatar de l’utilisateur
touko
NECromancer
Messages : 2297
Inscription : lun. 31 mars 2008 14:32

Re: Développement Shoot them up

Message par touko »

Je vais limiter en byte, 0xFF devrait suffire. Du genre tilepos: .db 00, 02, 03
Oui, tu peux indexer ensuite la valeur de ta tile à un tableau pour savoir quoi faire,ça t'évitera de faire des tests pour chaque valeur.
Un entier sur 8 bit va te donner 256 états possible largement suffisant .
Si tu as besoins de réduire tu peux coder les état sur 4 bits (ça divise la taille /2),ça te donne 16 états, mais va consommer un peu plus de CPU .
Tu peux me dire comment en assembleur lire rapidement une position du tableau en 2D. Par exemple, la tile en (32,12). J'imagine un truc du genre, on a un index sur le tableau, j'incrémente l'index de (32 + (12*array_size)) - 1
J'ai pas d'exemples pour ce cas là, car mon seul test de collisions de tiles je l'ai fait en VRAM .
Ma démarche a été de convertir les positions des sprites qui sont en pixels , en positions de tiles .
Ensuite j'ai précalculé une partie des adresse en VRAM correspondante, et je tape dans ce tableau de valeur precalc pour retrouver mon adresse vram .

Je vais essayer de voir si j'ai une idée pour ton cas .

EDIT: bon moi je ferrai ça .
1 - un tableau ou je precalc les multiplications pour les lignes . avec les valeur LOW dans un et dans l'autre les HIGH
0x32
1x32
2x32
3x32
4x32
etc ...

en asm

Code : Tout sélectionner

stw #mon_tab_de_tile , <__temp  ; //(on copie l'adresse de ton tab de tiles dans le pointeur __temp (existe déjà dans pceas je crois)
ldx #12      ; // Ta valeur de ligne, a remplacer par une variable
dex
 ; // On ajoute le 12x32, 12 ieme ligne de 32 tiles
lda mon_tab_ligne_low , X
clc
adc <__temp
lda mon_tab_ligne_high , X
adc <__temp + 1
addw #32 , <__temp  ; // On ajoute la position x de la tile à l'adresse

lda [ __temp ]    ; // Tu récupère la valeur de ta tile dans ton tableau de tile ,en gros la valeur pointé par l'adresse contenue dans __temp
Tu peux inclure l'ajout de X dans l'addition du Y pour économiser quelques cycles .
Avatar de l’utilisateur
Hero_Tonma
Push Run Button!
Messages : 89
Inscription : lun. 20 juil. 2015 14:26

Re: Développement Shoot them up

Message par Hero_Tonma »

Salut, je suis toujours vivant. J'ai pas donné de nouvelles parce que je suis sur d'autres projets aussi mais j'ai pu avancé.

Un petit test de shoot horizontal avec scroll parallax avec vaisseau gérer par le pad. Je dois ajouter des ennemis pour tester des collisions.

Image

https://www.dropbox.com/s/39dh8jijhm0wy8l/hero01.zip
Avatar de l’utilisateur
Kaminari
Modérateur
Messages : 7049
Inscription : ven. 24 sept. 2004 19:36
Contact :

Re: Développement Shoot them up

Message par Kaminari »

Bon boulot, c'est prometteur !

Je lui trouve un fort accent teuton, genre Rainbow Arts (X-Out, Z-Out). Tu es l'auteur des graphs ?
Avatar de l’utilisateur
Hero_Tonma
Push Run Button!
Messages : 89
Inscription : lun. 20 juil. 2015 14:26

Re: Développement Shoot them up

Message par Hero_Tonma »

Merci. Et non je suis pas l'auteur des graphs. Je suis même très nul en graphismes.

Le vaisseau vient d'OpenTyrian et le décor de Cybernoid (2 version amiga) de Hewson.
Avatar de l’utilisateur
touko
NECromancer
Messages : 2297
Inscription : lun. 31 mars 2008 14:32

Re: Développement Shoot them up

Message par touko »

J'aime bien ,les grafx me rappellent les shoot amiga .. :P

Bien ton petit parallaxe :wink:

Ps : tu bosserais pas avec dub(ou alors c'est toi dub) ?? :P

Image
Avatar de l’utilisateur
franz
NECromancer
Messages : 4160
Inscription : jeu. 26 janv. 2006 09:33
Localisation : Montpellier

Re: Développement Shoot them up

Message par franz »

C'est beau!
Un p'tit côté Metal Slug des familles pour l'avion, non?

Continue! :D
Avatar de l’utilisateur
Hero_Tonma
Push Run Button!
Messages : 89
Inscription : lun. 20 juil. 2015 14:26

Re: Développement Shoot them up

Message par Hero_Tonma »

Oui, un bon gros sprite NeoGeo sans retouche de palette ... mais cette image est un test sur Megadrive, j'ai pas encore testé les big sprites sur PCE.
Et merci pour les encouragements, je continu mon développement tout doucement.

Touko, t'as des yeux partout. Tu as percé mon secret et trouvé mon jeu caché, tu gagnes un mini-kitkat :lol:
Avatar de l’utilisateur
touko
NECromancer
Messages : 2297
Inscription : lun. 31 mars 2008 14:32

Re: Développement Shoot them up

Message par touko »

Touko, t'as des yeux partout. Tu as percé mon secret et trouvé mon jeu caché, tu gagnes un mini-kitkat :lol:
:lol:

Un truc que je comprends pas, tu codes en asm sur PCE, mais tu code en C sur MD ??
Si tu es à l'aide avec l'ASM (peu importe le CPU au final), pourquoi coder en C sur MD ??

en général les gens codent en C car ils pensent que l'ASM c'est pour les mutants :mrgreen:
Avatar de l’utilisateur
Hero_Tonma
Push Run Button!
Messages : 89
Inscription : lun. 20 juil. 2015 14:26

Re: Développement Shoot them up

Message par Hero_Tonma »

Ca tombe bien j'ai 3 bras grâce à la centrale nucléaire. :mrgreen:

En fait, on m'a dit que le HUC était lent et qu'on devait faire un jeu en asm. Pour la MD, la majeur partie de du travail est fait par Stef, donc je gagne du temps avec les outils présents et une partie de son moteur. Je code depuis longtemps et j'ai appris beaucoup de langages. J'en apprend encore aujourd'hui mais maintenant je prend l'outils le mieux adapté à ce que je pense faire et j'optimise en allant.
Répondre