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

yoomp

5 participants

Aller en bas

yoomp Empty yoomp

Message par 65c02 Jeu 26 Mai 2011 - 9:34

Je suis hyper admiratif du boulot fait sur atari 800 avec le jeu Yoomp et je me demandais comment les gars avait bien pu faire.
Vous avez une idée des algos et astuces utilisés ?
avatar
65c02
Docteur *
Docteur *

Masculin Nombre de messages : 2238
Age : 53
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par maxoojc Jeu 26 Mai 2011 - 10:40

Ah sympa ce jeu !

L'astuce c'est une bête table de mappage en fait.
Tu crées une table de la taille de l'écran que tu veux afficher, on va prendre du 160x100
et dedans tu mets les coordonnées X et Y des textures que tu veux afficher.
Pour le précalcule tu peux mettre n'importe quelle forme, pour une tunnel tu precalc en faisant du raycasting vers un cylindre infini.

En gros tu parcours chaque pixel de ton ecran et tu l'envoit vers le fond de l'écran avec la perspective, c'est les memes formules que pour la projection mais inversée du coup
A = X+coef*X/Z un truc comme ça de memoire pour la projection.
Tu vas obtenir 3 composantes X, Y, Z et tu calcules les coordonnées du pixel correspondant de la texture que tu devrais afficher U,V

Pour l'affichage, t'as juste à parcourir ta table, recuperer les valeurs U et V, et 'd'aller chercher la couleur dans la texture ^^

Pour les diférence de texture, tu fais une autre table en gardant la coordonnée Z épurée.
Tu utilise un timer genre compteur
Tu ajoutes le compteur à la coordonnée Z du pixel que t'es en train d'afficher et tu te décalles dans ta table de niveau d'autant.

Pour le niveau, on va dire que sur une périphérie on mets 8 textures, donc tu fais une table
de 8 x taille

Si j'ai des texture de type 1 2 3 et 0 pas de texture j'pourrai avoir une truc comme ça

1 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1
1 1 2 1 1 1 1 1
1 1 1 1 1 3 1 1
...

Donc en gros t'imagines une feuille de papier que tu enroule pour faire un tube, et tu regardes dans un bout, ça sera la vision de ta table sur le tunnel ^^

Je sais pas si ça a été clair mais tout est basé sur une table de précalcul sur 3 coordonnées en gros Very Happy
maxoojc
maxoojc
Infirmier

Masculin Nombre de messages : 4472
Age : 48
Localisation : Green hill
Date d'inscription : 15/08/2010

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par 65c02 Jeu 26 Mai 2011 - 13:00

Si si, tu es très clair. :)
Ça doit quand même sacrement bourriner un Atari 800
Ça fait un baille que j'ai rien codé sur CPC et j'ai jamais été le meilleur du monde en opti mais j'imaginais pas autant d'accès ram mémoire à cette vitesse.
Il n'aurait pas des sprites en hardware sur atari ? pour la boule ?
avatar
65c02
Docteur *
Docteur *

Masculin Nombre de messages : 2238
Age : 53
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par maxoojc Jeu 26 Mai 2011 - 16:28

Je suis surpris de voir la capacité du 800 à afficher une image complete avec cette résolution.
Certes c'est de l'adressage mais fuat quand même afficher le tout ^^

Je connais pas bien les 800 mais si les proc étaient couplés avec un dma chez atari ocmme chez commodore c'était bien dans ce but, balancer un max de donnée graphique pendant qu'on peut faire tourner les proc sur autre chose.

Donc pour la boule je pense que c'est un sprite gérer par une puce comme ça, en tout cas le jeu rends bien pour la bécane
maxoojc
maxoojc
Infirmier

Masculin Nombre de messages : 4472
Age : 48
Localisation : Green hill
Date d'inscription : 15/08/2010

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par 65c02 Ven 27 Mai 2011 - 8:03

C'est sur qu'avec un DMA la copie irait plus vite mais si on doit avoir un table de remappage des adresses, j'ai du mal à voir comment un DMA peut afficher le tube.

Je me demande si c'est juste possible de faire ça sur CPC.

A première vue je me dit :

- en mettant l'écran en mode 0
- en divisant la résolution par deux pour que chaque accès mémoire écran n'ai qu'une couleur
- en faisant du fliping d'écran

peut être qu'on aurait un fps potable sur CPC

Mais ça me semble quand même balaise.
Vue de mon petit niveau je veux dire.
Parce que la demonde batman par exemple, me met dans le vents de 10 siècles :)
avatar
65c02
Docteur *
Docteur *

Masculin Nombre de messages : 2238
Age : 53
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par maxoojc Ven 27 Mai 2011 - 9:17

La ou ca pourrait être encore plus impressionnant c'est si ça tourne sur un atari 800 !
voir 400 xD

Faire tenir tout ça dans 8kb c'est plutôt énorme.
La résolution de l'atari en plus de 2 couleurs c'est 320x192... J'ai été scié quand j'ai vu ça ^^

yoomp Yoomp!

On voit bien que les pixels sont au moins doublés et qu'il y a plus de 4 couleurs donc la résolution la plus probable c'est 80x192 avec la puce GTIA.
Les textures sont pas énormes ni trop variées mais il doit y en avoir 4 ou 5 et la taille genre 8x8.

En vérifiant les atari serié 800 et derivés n'ont ni dma ni blitter, donc exit les transferts multitask entre les bus. C'est de l'adressage direct.

Pas mal pas mal :)

Sinon je viens de voir la démo de batman group sur cpc, c'est vrai que c'est hallucinant. Au niveau des effets rien d'extraordinaire mais c'est impressionnant ce que l'amstrad peut faire... Je ne connaissais pas ces capacités car ce genre de démo je les aies vu naitre sur amiga et ST, bien plus évolués quand même oO

Pour les tables de mappage, tu peux utiliser l'adressage direct que si tu n'as qu'une texture et pas de mouvement dans tes animations, lorsque tu adresses tu peux pas clipper sur ta texture en X et Y vu que t'as une adresse.
Le mieux c'est d'avoir X et Y dans des tables, d'utiliser la formule (X+decalageX)+ largeur * (Y+decalageY) et de précalculer toutes les valeurs pour X+decalageX et (Y+decalageY)*largeur.
Tu te retrouve à juste avoir une 3 additions à faire et 2 modulos faisable en masquage de bits car t'auras fait des textures avec une largeur en puissance de 2 :p

Pour un fps, la zone d'affichage risque d'etre trop grande pour avoir une résolution potable.
Donc tu pourras pas trop utiliser de technique la dessus.
En flippant tes tables, seulement sur l'axe vertical, si tu fais su l'axe horizontal aussi t'as des calculs en trop pour la symétrie, tu gagnes dejà la moitié des adressages, mais l'affichage restera identique.
A moins de baisser la resolution tu risque d'avoir un truc a1image/s :p ou alors en 40x40.
L'amstrad est quand meme limité par ses capacités bien que je me dise que si à l'epoque ils avaient utiliser ne serait ce que les effets de la démo la, ben ya des jeux ils auraient flasher ^^

Enfin ca reste tout à fait plausible moyennant une augmentation relative de la résolution ^^

J'te laisse méditer la dessus : http://cpcrulez.fr/GamesTest/view.php?game=wolf_3D_PREVIEW

:)

Edit: Tiens j'ai trouvé ça aussi, pas mal pour la ptite bête :)
maxoojc
maxoojc
Infirmier

Masculin Nombre de messages : 4472
Age : 48
Localisation : Green hill
Date d'inscription : 15/08/2010

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par 65c02 Ven 27 Mai 2011 - 13:25

Ça calme en effet.
C'est gars là sont mes héros :)
avatar
65c02
Docteur *
Docteur *

Masculin Nombre de messages : 2238
Age : 53
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par maxoojc Ven 27 Mai 2011 - 13:47

Tu m'étonnes, c'est malin avec tout ça, j'ai envie de reprendre le démomaking ><
J'vais jamais avoir assez d'une vie pour faire tout ce que j'veux c'est terrible Very Happy

Du coup après j'ai enchainner sur les démos amiga, nostalgie quoi ^^
maxoojc
maxoojc
Infirmier

Masculin Nombre de messages : 4472
Age : 48
Localisation : Green hill
Date d'inscription : 15/08/2010

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par 65c02 Ven 27 Mai 2011 - 13:48

c'est quoi ton pseudo de démo scène que je t’idolâtre :) ?
avatar
65c02
Docteur *
Docteur *

Masculin Nombre de messages : 2238
Age : 53
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par maxoojc Ven 27 Mai 2011 - 18:17

J'étais graphiste à mes heures perdus jusqu'en 96.
J'avais participer à la saturne96 de juillet mais bon avec un dessin pas fini et mes potes qui n'avaient pas captés du coup on a tous voté pour tenshu, il est arrivé second avec son graph ^^
Je trainais pas mal avec des mecs de syndrome, cocoon et synaps.
La bonne époque. A la saturne avec kanda on avait présenter une démo faite en amos et en 2h :p Musique faites par mes soins, j'en ai encore les oreillles qui grinces c'était ignoble mais on s'est bien marrés et on est arrivés 3ieme ... sur 4 Very Happy

Après on devait travailler sur un projet sur amiga, sorte de doom avant l'heure. Mais on s'est plus trop recroisé et l'école après quoi Sad
Du coup dans l'ombre j'ai commencé à programmer sur pc, asm et pascal, je faisais des démos dans les salles de cours et j'ai trouvé quelques adeptes mais j'ai rien sorti d'officiel, bien que certains effets étaient plutot avant gardistes... J'en ressort juste content d'avoir découvert tout ça et d'avoir appris toute la logique derrière les démos :)
Ca me manque c'était trop bon, j'étais un spécialiste des effets en 2D, la 3D avec l'avancée des cartes graphiques 3D je voyais pas l'interret d"afficher du mesh, aucun challenge Very Happy
Faire un tunnel en 2D qui bouge dans tous les sens ça c'était du vrai !!! La preuve on voit ça sur a800 et on s'emmerveille encore :p

Donc sinon j'ai trainer sous le pseudo de middle et après Jayce` et la celui là je le garde car jayce c'est trop courant et c'est plus dans l'intimité maintenant xD

Enfin voilà grosse note de nostalgie, là j'ai plus envie de faire de php du coup mais plutôt de ressortir le compilo asm Si ca tente du monde !!! Very Happy
maxoojc
maxoojc
Infirmier

Masculin Nombre de messages : 4472
Age : 48
Localisation : Green hill
Date d'inscription : 15/08/2010

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par StaxX Dim 29 Mai 2011 - 12:44

maxoojc a écrit:La ou ca pourrait être encore plus impressionnant c'est si ça tourne sur un atari 800 !
voir 400 xD

Faire tenir tout ça dans 8kb c'est plutôt énorme.
La résolution de l'atari en plus de 2 couleurs c'est 320x192... J'ai été scié quand j'ai vu ça ^^

http://atari.fandal.cz/files/images/games/y/yoomp!.png

On voit bien que les pixels sont au moins doublés et qu'il y a plus de 4 couleurs donc la résolution la plus probable c'est 80x192 avec la puce GTIA.
Les textures sont pas énormes ni trop variées mais il doit y en avoir 4 ou 5 et la taille genre 8x8.

En vérifiant les atari serié 800 et derivés n'ont ni dma ni blitter, donc exit les transferts multitask entre les bus. C'est de l'adressage direct.

Pas mal pas mal :)
Hé non... je pense que Yoomp ne fonctionne pas sur un 400/800 de base non modifié.
Il faut un minimum de 64K pour qu'il tourne!
pas sûr qu'il soit compatible...même avec une extension RAM (à vérifier)
Technical details
·
game works on a standard 64-KB Atari thanks to efficient compression - the real memory footprint is over 80 KB.
·
game engine works in 128x96 pixels resolution (Graphics 7, ANTIC mode 14) in 2 frames
·
stereo POKEY is automatically detected. If available, the game uses a pseudo-stereo effect for music, and the sound effects use a left-right panning effect.
http://yoomp.atari.pl/development.htm Wink
StaxX
StaxX
Docteur *
Docteur *

Masculin Nombre de messages : 4573
Age : 55
Localisation : 28
Date d'inscription : 05/06/2007

https://www.youtube.com/user/StaxX28

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par maxoojc Dim 29 Mai 2011 - 12:47

ah ouep exact, ca explique un peu mieux mon ressenti mais bon belle prouesse pour une becane pareil meme si faut que ce soit déjà une belle upgrade de l'origine :)
maxoojc
maxoojc
Infirmier

Masculin Nombre de messages : 4472
Age : 48
Localisation : Green hill
Date d'inscription : 15/08/2010

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par StaxX Dim 29 Mai 2011 - 22:27

oui, à noter qu'il fonctionne très bien sur 600XL(+1064), 800XL et tout les XE de base!
pas besoin d'upgrade Wink
StaxX
StaxX
Docteur *
Docteur *

Masculin Nombre de messages : 4573
Age : 55
Localisation : 28
Date d'inscription : 05/06/2007

https://www.youtube.com/user/StaxX28

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par 65c02 Lun 30 Mai 2011 - 8:27

Toujours des mots balancé comme ça sans avoir essayé quoi que ce soit mais:
Et si on découpe l'écriture en vram dans des vignettes genre 8x8 ou 16x16 on devrait avoir pas mal d'opti dans les tables de remap ou les parcours d'index.
non ?

Je serais bien tenté de faire une "image" 96x96 des index de remap pour voir les zones flippable.

...

Ah la mythique saturne 96. Je n'y étais pas mais je regrette :)
avatar
65c02
Docteur *
Docteur *

Masculin Nombre de messages : 2238
Age : 53
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par maxoojc Lun 30 Mai 2011 - 10:14

Ouep tu peux ptet gagner du temps, suivant la vitese du bus ^^
Vu la quantité de mémoire qu'il faut pour faire tourner le jeu, je penses qu'ils ne se sont pas pris la tete et juste fait une table d'adressage.
Si tu fais un double adressage pour le flip des zones, ça te fais des transfert supplémentaire, tu monopolise les cycles d'horloge je crois + transfert sur bus enfin un truc dans l'genre.

L'avantage de ne faire qu'une table c'est que la plupart des instructions peuvent rester dans le pipe. Le 6502 était une vrai bête de course en fait, j'viens de me renseigner un peu plus, pendant ses cycles son accès au bus était bloqué, ce qui permet surement de lancer une insrtruction sur un proc graphique par ex du coup aucune perte... Genial en fait comparé au Z80 de l'époque.

En tout cas interressant comme proc et c'est marrant que ce soit un jeu sorti 20ans après qui nous pousse à en parler Very Happy

Bon là c'est décidé jvais me trouver une plateforme et refaire un peu d'assembleur, ça me manque d'organiser les instructions dans le pipe pour voir le prog accélerer de 50% Very Happy

Pour finir une tite note trouvé sur wiki :
"Dans terminator, le public à un moment voit une scène à travers l'œil-caméra du robot T-800 Model-101, où un fragment de programme en code assembleur du 6502 défile en bas de l'écran. Le code réel montré est la sortie écran d'un programme de checksum pour Apple II"

C'était une star ce proc :p
maxoojc
maxoojc
Infirmier

Masculin Nombre de messages : 4472
Age : 48
Localisation : Green hill
Date d'inscription : 15/08/2010

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par 65c02 Lun 30 Mai 2011 - 11:01

Heureux de te voir faire une rechute :p
avatar
65c02
Docteur *
Docteur *

Masculin Nombre de messages : 2238
Age : 53
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par StaxX Lun 30 Mai 2011 - 16:29

65c02 a écrit:Toujours des mots balancé comme ça sans avoir essayé quoi que ce soit mais:
scratch
StaxX
StaxX
Docteur *
Docteur *

Masculin Nombre de messages : 4573
Age : 55
Localisation : 28
Date d'inscription : 05/06/2007

https://www.youtube.com/user/StaxX28

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par oiseau de proie Lun 30 Mai 2011 - 16:46

Je pense que 65c02 se parlait à lui même, StaxX va respirer un bol d'air frais, tu sembles stressé; écoute les zozios, hume la nature :flower:
oiseau de proie
oiseau de proie
Guéri miraculeux

Masculin Nombre de messages : 2589
Age : 50
Date d'inscription : 25/03/2009

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par StaxX Lun 30 Mai 2011 - 17:00

oui, tu as raison... Mr. Green
journée stressante au boulot aujourd'hui, ceci explique... Rolling Eyes
StaxX
StaxX
Docteur *
Docteur *

Masculin Nombre de messages : 4573
Age : 55
Localisation : 28
Date d'inscription : 05/06/2007

https://www.youtube.com/user/StaxX28

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par 65c02 Lun 30 Mai 2011 - 17:18

pas grave bisou :)
avatar
65c02
Docteur *
Docteur *

Masculin Nombre de messages : 2238
Age : 53
Localisation : Paulhan
Date d'inscription : 23/05/2011

http://65c02.tumblr.com

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par maxoojc Lun 30 Mai 2011 - 17:24

Mdr, ouep c'est qu'on dialoguait sur des supposition, on faisait un peu la politique de yoomp, on en parle sans vraiment y etre au fond Very Happy

Heureusement que c'est une petite semaine ^^
maxoojc
maxoojc
Infirmier

Masculin Nombre de messages : 4472
Age : 48
Localisation : Green hill
Date d'inscription : 15/08/2010

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par StaxX Lun 30 Mai 2011 - 17:30

c'est clair... vivement mercredi !
toutes mes excuses 65c02 Embarassed bisou... Mr. Green
StaxX
StaxX
Docteur *
Docteur *

Masculin Nombre de messages : 4573
Age : 55
Localisation : 28
Date d'inscription : 05/06/2007

https://www.youtube.com/user/StaxX28

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par BSOD Mar 5 Juil 2011 - 11:34

La démo est impressionnante.


Ce qui m'a toujours bluffé reste l'effet de pseudo3D comme dans Space Harrier ou OutRun.

BSOD
BSOD
Patient en incubation

Masculin Nombre de messages : 21
Age : 40
Date d'inscription : 04/07/2011

Revenir en haut Aller en bas

yoomp Empty Re: yoomp

Message par BSOD Jeu 7 Juil 2011 - 17:38

D'ailleurs [Question de nioub qui n'a touché qu'au c++ et au java] C'est chaud l'asm ? [/Question de nioub etc ....]
BSOD
BSOD
Patient en incubation

Masculin Nombre de messages : 21
Age : 40
Date d'inscription : 04/07/2011

Revenir en haut Aller en bas

Revenir en haut


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