> forums jeux > xenon-1
13 messages     2 pages     [ Aller à la page: 1 2  ]
Xanef
Oric-1 16 ko
posté le samedi 27 mai 2006 23h29

1 message
Un premier résumé du jeu Xenon-1 à consulter ! Dans ce jeu, ce ne sont pas les Jedi et les Sith qui s'affrontent ou encore le Galactica et les Cylons mais les Xenon et les Zorgon. L'empire Xenon doit éliminer l'envahisseur Zorgon.
maximus (admin)
Druide de l'oricophilie
posté le mardi 30 mai 2006 20h21

393 messages

   Super le test de Xanef ! 

cette guerre expliquerait l'autre titre culte de maitre Sinclair: Zorgon's Revenge ?




back in 1983
Symoon (admin)
Oric-wikipedia
posté le vendredi 2 juin 2006 00h06

115 messages
Vous avez tout compris ;)
Petite précision sur le niveau 2: si le vaisseau est trop près des "oursins" qui explosent en  tombant, il explose avec !
maximus (admin)
Druide de l'oricophilie
posté le dimanche 3 février 2008 20h02

393 messages
lu ds leforum defence-force: 
un passionné vient de transferer Xenon-1 vers le PC ! 
la version est sans SONS mais marche tés bien
à découvrir et à suivre !!!

http://pagesperso-orange.fr/jotd/xenon1/index.html 






back in 1983
Zarach (admin)
mineur de fond
posté le dimanche 3 février 2008 20h26

114 messages
Excellent     

J'espere que l'auteur passera par chez nous pour racconter son avancement.



les voyages dans le passé peuvent provoquer un paradoxe temporel dans le continuum espace-temps entraînant la suppression de l'univers
jotd
Oric-1 48 ko
posté le dimanche 3 février 2008 21h51
 
8 messages
Salut,

Pour le son, j'ai commencé à mettre des samples qui n'ont rien à voir avec le jeu original (sinon à quoi ça sert autant faire tourner avec Euphoric).

J'ai ajouté des backdrops et ça rend vraiment pas mal. A voir bientôt sur le site.

Bientôt le même traitement pour Zorgon.
Waskol (admin)
Demandez lui - il sait
posté le lundi 4 février 2008 09h46

249 messages
Wow !!! Génial !!!
J'ai l'impression qu'il c'est plus rapide que l'original, me trompe-je ?
Sinon, lorsque j'ai voulu, "désengager", l'application s'est terminé (la touche échap à l'air de fair double emploi.

Sinon, je vous rappelle également un remake de Cobra (vous savez, mon jeu de serpent fétiche), que j'ai réaliser lors d'un défi de programmation sur www.developpez.com :
http://delphi.ftp-developpez.com/sources/fichiers/sec_defi/sec_defi_serpent/sec_defi_serpent_waskol/waskol%20exe.zip

Comme je n'avais pas les sources, il m'a été impossible de réaliser un clone, mais promis, on s'y croirait !

Deux p'tit screenshots pour la route :

- Affichage "8-bits" (façon Oric) :


- Le même niveau, Affichage façon "Cartoon", où le serpent est prisonnier de son jardin d'Eden (selon les niveaux, il mange des pommes, des bananes, des champignons) :


Comme dans l'original, on peut y jouer à 2 et il y a un tableau des high score, le calcul des points est quasi identique à l'original, et le décompte du temps selon le niveau est identique.

Tout comme toi JODT, je me suis laissé aller sur le son

La page du défi où vous trouverez les sources en Delphi :
http://delphi.developpez.com/defi/serpent/
(vous verrez que je suis hors concours, ayant participé en tant que jury) 


« - Ah ! J’ai trouvé. Retour vers le Futur. C’est comme dans Retour vers le Futur. - Le film ? - Non. Le roman à l’eau de rose. »
Zarach (admin)
mineur de fond
posté le lundi 4 février 2008 10h48

114 messages

JODT : pourrais tu nous expliquer comment tu procèdes : je trouve cela très interresant, 

J'ambitionnais de mon côté d'essayer de refaire des jeux en flash, pour pouvoir les mettre à dispo on-line. (en 2072 quand j'aurais du temps libre....)


les voyages dans le passé peuvent provoquer un paradoxe temporel dans le continuum espace-temps entraînant la suppression de l'univers
jotd
Oric-1 48 ko
posté le mardi 19 février 2008 21h54
 
8 messages
Bon c'est assez technique, mais je veux bien expliquer.

Tout d'abord, le but n'est pas d'émuler fidèlement le jeu au pixel et au son près, les émulateurs font ça très bien. Non, l'idée est d'avoir le même "gameplay" en récupérant les algorithmes (pour Xenon 1 le code des oiseaux est vraiment pas mal, je ne sais pas si j'arriverais à faire pareil sans avoir le code)

- je me suis codé une API pour certains appels BASIC (text, hires, poke, peek). C'est tout ce qu'il faut pour Xenon.

- j'ai piqué la routine de refresh écran de MESS quasiment tel quel en adaptant à SDL

- je me suis codé une API pour les instructions assembleur et les modes d'adressage. L'API gère une zone de mémoire à la manière d'un émulateur.

- je prends le fichier .TAP et j'extrais le code BASIC, que je "convertis" en C. La conversion est pourrie et il faut quasiment tout reprendre, mais ça fait le + gros (ça change par exemple les mots clé REPEAT UNTIL en do while, ça met des accolades, bref sur un programme de 20 lignes ça va, sinon je vais devoir l'améliorer
L'alternative c'est de porter directement le code BASIC en C.

- à partir de ce même fichier .TAP, je retrouve l'offset de départ du code machine (planqué dans la zone basic, en $700) et je le désassemble à l'aide d'un programme sympa: ad qui permet de marquer des zones comme "data" c'est à dire de ne pas dumper n'importe quoi quand il s'agit en fait de données.

- en parallèle, avec une petite moulinette, je génère un gros fichier .h avec le contenu de la mémoire en const char *memory = { ....
 Je peux directement bidouiller ce fichier en texte pour adapter les messages, etc... Ce tableau est recopié dans la mémoire utilisé par l'API assembleur et BASIC (poke, peek).

- à partir du fichier .asm dont le code a été désassemblé (on se fout des data), je passe une moulinette en awk de ma composition qui convertit en syntaxe C:
    lda #$02
    sta $04
devient
    lda_imm(0x2);
    sta(0x4);

- ensuite, je laisse tomber le fichier .asm (je le conserve en référence au cas où je merde en modifiant le .c), et je commence à retoucher le .c

Il y a pas mal d'approximations: Je me fous des problèmes de zero page ou absolute par exemple, je ne peux pas gérer les jump indirects ni le code auto-modifié, donc il faut comprendre ces parties de code et les refaire avec un bon switch / case des familles.
Egalement, on ne peut pas gérer les JSR autrement qu'en faisant des subroutines (faites automatiquement par le script quand il rencontre RTS), et les jmp, beq, bmi, etc... sont gérés par le goto du C. Donc on est super emmerdés quand on veut faire un goto hors de la procédure courante (le C a un contexte de variables donc on ne peut pas le faire). C'est là que c'est un peu chiant et sujet à erreurs: il faut déplacer/découper/copier/coller le code qui pose problème à la main.
C'est cette opération qui est la plus manuelle. Pour Xenon 1 c'était pas trop chiant. Pour Zorgon c'était plus lourd (et j'ai introduit des bugs qu'il faut encore corriger).

- Ensuite, il faut virer toutes les boucles actives (dex dex dex bne loop) qui tournent pour rien et à fond la caisse (pas de régulation donc c'est hyper rapide et donc injouable), et remplacer par des timers. Pas trop dur. Mais ça oblige à identifier toutes les phases du jeu.

- Il faut aussi patcher le clavier pour remplacer par la lecture clavier/joystick SDL, car je ne simule pas le VIA (sauf le timer 1 pour le random).

- le son n'est pas non plus émulé. Je vire donc les routines de son et je remplace par des samples rigolos. J'ajoute parfois des sons là où il n'y en avait pas.

En fait à partir du moment où le jeu tourne, on fait ce qu'on veut question son et algorithme. On n'est pas du tout enfermé comme avec un émulateur, on a un code C pourri, mais un code C.
Par exemple, j'ai corrigé 2 bugs dans Xenon 1: le bug qui fait que quand on efface son nom du hiscore, les vieilles lettres restent si le nouveau nom est + long, et surtout le fait de ne pas pouvoir appuyer 2 touches en même temps (du coup le jeu est + facile...)

Au final, on a un jeu qui est en C "spaghetti" que l'on peut améliorer par bouts (refactoring, renommage de variables et de procédures), profiler, et laisser les parties où on comprend rien de côté sans chercher. ça marche, on est toujours à temps d'investiguer sur telle ou telle partie pour améliorer les perfos ou l'ergonomie.

En revanche, coté graphisme, c'est plus difficile. J'ai un mode "enhanced" où je ne dessine pas les pixels noirs par exemple, et j'affiche une super image 24 bits en fond avant de dessiner le contenu de l'écran Oric: résultat ça améliore pas mal les graphismes un peu vieillots en ajoutant pas mal de couleur.
Si on arrive à localiser les ennemis ou le vaisseau, on peut aussi "surimprimer" un graphisme différent en plus. Je n'ai pas fait ça sur Xenon, mais j'aurais pu. Question de temps. Et puis c'est assez beau comme ça :)
jotd
Oric-1 48 ko
posté le mardi 19 février 2008 22h08
 
8 messages
@waskol j'ai essayé ton jeu de serpent, pas mal du tout (le delphi c'est pas tant de la daube que ça). La version arcade s'appelle Nibbler. Il y avait une version Oric. Il y a aussi l'excellent Bombyx dont tu as piqué les graphismes (la pomme en fait) pour la version 8-bit.

Question qui a rien à voir: il me semble que le niveau des parachutistes de Xenon est repompé sur un jeu d'arcade des années 1980 mais j'arrive pas à retrouver lequel. Quelqu'un sait le nom de ce jeu?

(Sinon les niveaux 1 et 5 sont clairement rempompés (en moins bien) sur Phoenix bien sûr)
13 messages     2 pages     [ Aller à la page: 1 2  ]
> forums jeux > xenon-1