GAMOPAT
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

[6502] ébauche sidescroller

5 participants

Aller en bas

[6502] ébauche sidescroller  Empty [6502] ébauche sidescroller

Message par vincent2105 Sam 27 Juil 2019 - 10:29

Salut les gamopats,

Après une longue période d'abstinence, je me remets à la prog. love console

Cette fois, j'ébauche un sidescroller... Je ne me fais pas un devoir d'arriver au bout, c'est surtout pour me confronter à des problèmes qui peuvent m'intéresser.
Pour démarrer, faut que je me remette dans le bain des metatiles, attribute table, buffers, et autres joyeusetés.

Je m'accorderai 40 ko (32 pour le code, 8 pour les tiles).

Comme certains le savent, j'aime les mondes très vastes... Ici, rebelote.
Je pense avoir trouvé mon fil d'Ariane.
Pour créer les niveaux, je compte utiliser des "colonnes de metatiles".  Avec 128 "colonnes de metatiles" différentes, je pense pouvoir obtenir des niveaux variés.. Si ca ne suffisait pas, je pourrais même créer d'autres sets de "colonnes de metatiles", pour différencier l'overworld de l'underworld par exemple (à 12 octets / colonne car il y aura certainement un hud).

Chaque niveau fera 16 écrans de large soit 256 colonnes... autrement dit 256 octets (sans compter le set de colonnes)  Cool

Je parlais de buffer plus haut car en affichant des colonnes de 9 metatiles seulement, j'étais déjà hors vblank... j'avais rien calculé, mais vu que j'utilise pointeurs sur pointeurs, ca chiffre vite. Et encore je ne mettais pas à jour l'attribute table (pour le choix de la palette de couleur).

Bref, je vais repartir de 0.
vincent2105
vincent2105
Patient incurable

Masculin Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

[6502] ébauche sidescroller  Empty Re: [6502] ébauche sidescroller

Message par vincent2105 Ven 2 Aoû 2019 - 8:50

Plop,

J'ai un scrolling qui fonctionne, avec mise à jour des attributs cette fois. Razz
Quelques changements par rapport au post précédent : je suis passé de metatiles de 2x2 tiles à  4x4 tiles (32x32 px), mes colonnes ne comportent plus que 6 metatiles (soit 96 tiles à écrire contre 48 précédemment). Chaque écran ne me coûte plus que 8 octets (1 octet par colonne).
Malgré avoir bufferisé ce qui pouvait l'être, l'affichage d'une colonne passe en PAL mais pas en  NTSC. Je pense diluer sur 3 frames.
Maintenant, je vais créer mes sets de metatiles et de colonnes de metatiles. Je vais prendre mon temps. Pouvoir se balader dans un joli environnement sera un facteur de motivation pour la suite.
vincent2105
vincent2105
Patient incurable

Masculin Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

[6502] ébauche sidescroller  Empty Re: [6502] ébauche sidescroller

Message par vincent2105 Ven 9 Aoû 2019 - 8:48

Plus ça va, plus le problème des collisions avec le background pointe le bout de son nez.
En passant de metatiles 2x2 à 4x4, ce que je gagne du coté attribute table, je vais surement le perdre côté gestion des collisions. A moins que je lise directement en VRAM.
Pour l'instant, j'ai l'impression d'être en face d'un sac de noeuds. Razz
vincent2105
vincent2105
Patient incurable

Masculin Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

[6502] ébauche sidescroller  Empty Re: [6502] ébauche sidescroller

Message par vincent2105 Mer 14 Aoû 2019 - 8:44

Concernant le scrolling, j'ai dilué l'écriture de chaque colonne de metatiles sur 2 frames, maintenant ca passe aussi en NTSC. Pour rappel, mes colonnes sont composées de 6 metatiles (de 4x4 tiles). Dans l'absolu, il faut que je dilue sur 6 frames pour épargner le vblank autant que possible.

Je vais rester comme ça pour l'instant, j'ai suffisamment de marge  pour afficher quelques sprites.
En parlant d'avancer, jusque là, je scrolle d'1 pixel / frame. Faut que j'adapte ma routine pour switcher de nametable au bon moment dans tous les cas. (par exemple si scrolle de 3 pixels / frame ca va pas) et surtout faut que j'utilise un "nombre à virgule" pour gérer les accélérations et tout le toutim par la suite.
vincent2105
vincent2105
Patient incurable

Masculin Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

[6502] ébauche sidescroller  Empty Re: [6502] ébauche sidescroller

Message par vincent2105 Ven 16 Aoû 2019 - 10:08

Je compte varier les décors en ajoutant des nuages et des buissons par ci par là... Avec mon système de colonnes de metatiles, chaque variante de colonne me coute 6 octets (1 octet par metatile).
Un set de 128 colonnes différentes me coute donc 768 octets. Le problème c'est qu'en rajoutant des buissons, des nuages et autres, on diminue grandement le nombre de colonnes réellement différentes.
J'ai eu une idée. Pendant la bufferisation de la colonne, je vérifie si l'index de la metatile correspond à celui d'une metatile randomisable et zou !
Il est possible que je me serve aussi de cette bufferisation pour spawner les ennemis. Je garde ça en tête.
vincent2105
vincent2105
Patient incurable

Masculin Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

[6502] ébauche sidescroller  Empty Re: [6502] ébauche sidescroller

Message par grostonton Ven 16 Aoû 2019 - 21:42

La moitié, voire les 3/4  de ce que tu racontes me semble être du chinois, mais force et honneur comme on dit, curieux d'en voir une ébauche.
grostonton
grostonton
Patient contaminé

Masculin Nombre de messages : 948
Age : 43
Localisation : Pezenas
Date d'inscription : 15/05/2009

https://grostonton.itch.io/

Revenir en haut Aller en bas

[6502] ébauche sidescroller  Empty Re: [6502] ébauche sidescroller

Message par upsilandre Ven 16 Aoû 2019 - 22:07

Toujours debout, il n'abandonne jamais! rambo
upsilandre
upsilandre
Interne
Interne

Masculin Nombre de messages : 5138
Age : 49
Localisation : val de marne 94
Date d'inscription : 31/05/2015

Revenir en haut Aller en bas

[6502] ébauche sidescroller  Empty Re: [6502] ébauche sidescroller

Message par vincent2105 Sam 17 Aoû 2019 - 9:13

Merci pour vos encouragements les amis Very Happy

Je passerai aux screenshots / vidéos quand ça sera plus consistant. Quand j'aurai un perso maniable et interaction avec le background je pense. Cette partie là risque de soulever pas mal de problèmes.
vincent2105
vincent2105
Patient incurable

Masculin Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

[6502] ébauche sidescroller  Empty Re: [6502] ébauche sidescroller

Message par drfloyd Sam 17 Aoû 2019 - 10:49

Idem, je ne suis pas expert technique en programmation comme Vincent... mais j'adore, et j'apprends des trucs...

_______________________________________________________
[6502] ébauche sidescroller  Americ10




drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

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

http://www.gamopat.com

Revenir en haut Aller en bas

[6502] ébauche sidescroller  Empty Re: [6502] ébauche sidescroller

Message par drfloyd Sam 17 Aoû 2019 - 10:53

upsilandre a écrit:Toujours debout, il n'abandonne jamais! rambo



Toujours codeur,, rassurez vous
Toujours la banane toujours debout
Des scrollings je vais programmer
Droit sur mes guibolles ressuscité
Tous ceux qui codent  autour de moi
C'est l'hécatombe, surtout sur Amiga
Tous ceux qui codent, tombent à tour de bras
Et moi je suis toujours là
Ils m'ont cru disparu, on me croit oublié
Dites à ces trous du cul, j'continue d'coder

_______________________________________________________
[6502] ébauche sidescroller  Americ10




drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

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

http://www.gamopat.com

Revenir en haut Aller en bas

[6502] ébauche sidescroller  Empty Re: [6502] ébauche sidescroller

Message par vincent2105 Lun 26 Aoû 2019 - 9:44

Eh Doc, je suis certainement pas un expert en programmation, faut pas se leurrer Wink

Sinon, concernant les contrôles de Link, j'aurais aimé avoir 3 boutons d'action : sauter, accélérer, frapper. Je trouve qu'il est dommage qu'on ai ce bouton "select" qui est limite inutile. Confused J'hésite  à détourner son utilisation.
Mine de rien cette disposition des boutons du pad conditionne pas mal de choses.
vincent2105
vincent2105
Patient incurable

Masculin Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

[6502] ébauche sidescroller  Empty Re: [6502] ébauche sidescroller

Message par vincent2105 Mer 28 Aoû 2019 - 12:27

Pour les collisions avec le background, vu que je construis mes écrans avec des metatiles de 16 tiles (4x4 tiles), je pensais qu'il serait globalement plus simple de directement lire en VRAM, en dépit du coût dans le vblank.
Cependant, vu qu'on scrolle, calculer l'adresse dans les 2 ko de VRAM nécessite aussi des opérations pour jongler entre les 2 tables.

Je vais essayer autre chose. Reconstruire une table en RAM pour les collisions me permettrait d'épargner le vblank, pour un coût en cycles et en octets peut-être pas plus élevé. Faudra quand même que je grille un octet de plus pour chaque metatile dans le set de metatiles (1 octet devrait suffire ça me laisse 2 bits par zone de 2x2 tiles).

J'espère en tout cas que j'arriverai à mettre en place une de ces 2 solutions, c'est plus corsé que je ne l'imaginais What a Face
vincent2105
vincent2105
Patient incurable

Masculin Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

[6502] ébauche sidescroller  Empty Re: [6502] ébauche sidescroller

Message par vincent2105 Sam 31 Aoû 2019 - 17:33

Franchement, c'était tout con. Ca aide pas de coder quand on n'est pas à 100% de ses moyens  Razz  
Donc pour les collisions avec le background, je vais continuer en lisant directement en VRAM. 
L'aventure continue !  dwarf
vincent2105
vincent2105
Patient incurable

Masculin Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

[6502] ébauche sidescroller  Empty Re: [6502] ébauche sidescroller

Message par Shaoth Sam 31 Aoû 2019 - 19:55

Hé ça fait plaisir de te relire, j'avais un peu laissé de coté l'informatique pendant les vacances, mais je m'y remets aussi.
Impatient de voir ce que cela donne thumleft
Shaoth
Shaoth
Guéri miraculeux

Masculin Nombre de messages : 2234
Age : 54
Localisation : 92
Date d'inscription : 05/04/2018

Revenir en haut Aller en bas

[6502] ébauche sidescroller  Empty Re: [6502] ébauche sidescroller

Message par vincent2105 Sam 31 Aoû 2019 - 22:17

Ah content de savoir que tu reprennes du service ! Wink Bon courage, j'ai vu qu'avec le Doc, vous accusiez les années. Razz

De mon côté, faut que je réorganise mon tileset.  Confused 
Pour les collisions, je vais me baser sur l'index de la tile. Si l'index est supérieur à une certaine valeur, alors elle sera infranchissable. Pour le moment toutes les tiles sont mélangées. Faut que je trie. Et c'est pas tout, je dois aussi rectifier toutes les metatiles, en corrigeant les index des tiles qui les composent.

C'est typiquement le genre de truc qui brise le peu d'élan que j'avais.  Razz
vincent2105
vincent2105
Patient incurable

Masculin Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

[6502] ébauche sidescroller  Empty Re: [6502] ébauche sidescroller

Message par Shaoth Dim 1 Sep 2019 - 18:06

Comment est créé ton tileset ?
Avec un outil graphique ou codé ?
Shaoth
Shaoth
Guéri miraculeux

Masculin Nombre de messages : 2234
Age : 54
Localisation : 92
Date d'inscription : 05/04/2018

Revenir en haut Aller en bas

[6502] ébauche sidescroller  Empty Re: [6502] ébauche sidescroller

Message par vincent2105 Dim 1 Sep 2019 - 18:27

Pour le tileset j'utilise un outil graphique : Nes Screen Tool. Pour les metatiles, et colonnes de metatiles, c'est du "code".
Mais c'est bon, j'ai fini, c'était pas la mer à boire. :) 

Maintenant, je vais me pencher sur les déplacements / tests de collision avec le background. La gravité va faire son entrée !
vincent2105
vincent2105
Patient incurable

Masculin Nombre de messages : 1381
Age : 44
Localisation : 82
Date d'inscription : 17/12/2013

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

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