Amos Beast Engine

Forum News Room Projets Amos Beast Engine

  • Ce sujet contient 29 réponses, 7 participants et a été mis à jour pour la dernière fois par Lord of ProdosLord of Prodos, le il y a 6 mois et 2 semaines.
  • Créateur
    Sujet
  • #49291
    Alain.Treesong
    • Level 4
    • Messages : 102

    Bonjour,

    Je démarre ce thread pour permettre à des Amigaphiles éventuellement interessés de suivre le développement d’un petit moteur « à la Shadow of the Beast » en AMOS pour tout Amiga en visant en particulier le A500 des années 90 (donc avec 512ko de chip et 512ko de fast sans autres extensions).

    Cela permet également de rendre un peu justice (les mots sont certes un peu fort) à Amos car beaucoup de personnes racontent n’importe quoi sur ce langage fort bien fait dédié à l’Amiga. Je ne parlerai plus de ce point d’ailleurs dans la suite de ce thread.

    Donc pour le moment cela donne cela :

    Voici le lien de l’ADF : EON500_1.ADF

    Pour résumé j’ai eu envie de faire ce truc quand j’ai vu la nouvelle sur le portage du jeu PC EON sur Amiga AGA. En gros il s’agit d’un croisement entre Castlevania et Shadow of the beast. Donc c’est super et j’espère qu’ils vont aller au bout. Cela me motive en tout cas pour faire le même genre sur A500. Je ne sais pas jusqu’où cela va mener. En tout cas comme je commencais un peu à polluer le thread de EON, je commence donc ce nouveau.

    Si on revient sur la petite démo (v2), voici ce que l’on peut en dire pour le moment:

    – 320×200 en 8 +8 couleurs pour le décor. 16 couleurs pour le sprite. Des rasters.

    – Scroll en 50 fps sur A500. Gestions des sprites et bobs (le monstre qui court est un bobs de 80×60 en 8 couleurs).

    – Il faut courir vers la droite pour faire la course avec le monstre

    – Le sprite est celui de Shadow of the Beast 1. Les plan de fond et avant plan viennent de EON (merci).

    N’hésitez pas à me dire ce que vous en penser et à le tester sur vos vraies machines.

    A+

15 réponses de 1 à 15 (sur un total de 29)

Partager sur vos réseaux sociaux préférés :
Facebooktwitterredditpinterestlinkedintumblrmail

  • Auteur
    Réponses
  • #49169
    Ancien Membre
    • Level 5
    • Messages : 204

    Sympa la demo Eon500.adf.  :good:

    Manque plus que les nuages et un dual playfied pour le sol.



    #49178
    Alain.Treesong
    • Level 4
    • Messages : 102

    @Yoz Montana

    Merci :-)

    Au passage il y a bien un dual playfield mais effectivement le sol scrolle d’un bloc par rapport aux montagnes.

    Les scrollings différentiels sont faits classiquement avec le copper. Il n’y a pas de support direct de cela dans Amos. Pour le faire, le plus simple est de désactiver la copper list comme je l’ai indiqué. Dans ce cas toutefois on perd la gestion des sprites et des écrans (qui est en fait une copper list faite par Amos).

    Le projet Eon de Amigawave est pour A1200 en gros. Et tant mieux car la ludothèque du 1200 est assez pauvre finalement. Le 1200 n’a pas eu son Turrican ni son Lotus et va enfin peut être avoir son Shadow of the beast. Et c’est super.

    Mon idée est de proposer un moteur à la beast/eon mais pour le 500. Dans ce cas je ne pense pas géner les gars qui s’occupe du projet AGA. Je pourrai ajouter des tricks basés sur le blitter ou le 68000 ou encore refaire une copper list. Mais je préfère faire un truc plus simple mais qui sera fluide (malgré Amos si si) , coloré avec un peu de monde. Je ne sais pas jusqu’où je vais aller. Je vais au moins essayer de faire une version 2 avec des bobs à l’écran.

    A+

     

    #49179
    Staff
    AladinAladin
    • Level 24
    • Messages : 9277

    Eon est un hommage à shadow of the beast et non pas un remake. Rien n’empêche de s’en inspirer aussi. Apres faut trouver des idées… Si ce n’est pas pour un but commercial, pourquoi pas réunir deux univers dans un même jeu, un crossover.

    #49271
    Staff
    ZarnalZarnal
    • Level 17
    • Messages : 3904

    Bonjour, Donc suite du petit moteur en cours. J’ai ajouté la gestion des bobs et j’en ai placé un « gros ». Les amigaphiles reconnaitront :-). Il faut aller vers l’est (à droite) pour le voir et faire la course avec lui : On a donc toujours 50 fps pour le scroll. Au niveau couleur, on est en 2*8 couleurs + 16 couleurs pour le sprite + les rasters le tout en 320×200. C’est à peu près le même moteur que celui d’asphalt sauf que c’est le premier plan qui scroll et non le second. Les sources de ce moteur sont dans le thread relatif à Asphalt. Je joins l’adf pour cette version a tester dans un Amiga 500 de préférence :-) https://ufile.io/gwt9f https://ufile.io/gwt9f Bye.

    Avec les 6 (3*2) sprites restants, on ne peut pas multiplier les méchants en 16 couleurs en multiplexant  sans tout faire plier trop rapidement ? Quitte à créer un hud pour le reste :scratch: Mais du coup, que peut on se permettre avec la logique niveau CPU ? Et niveau ram ? Questions en vrac et désordonnées. :-p   :-p   :-p

    A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - A1200 ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae. CPC 6128-CPC 464.

    #49289
    Alain.Treesong
    • Level 4
    • Messages : 102

    @Zarnal

    Alors on va essayer d’ordonner les réponses ;-) à ces questions intéressantes.

    Pour les sprites: en fait il reste 4 sprites car la bête (le heros) en consomme 4. En effet il y affectivement 8 sprites hard de 4 couleurs sur le 500 mais tu le sais certainement tu dois les combiner 2 par 2 pour avoir 16 couleurs. La bête fait 32 pixels de large donc 4 sprites sont pris. Les 4 sprites restant sont théoriques car l’utilisation du scrolling sous Amos rend généralement au moins les 2 derniers sprites invalides (le 6 et 7).

    Ce que tu appelles multiplex est effectivement géré par Amos. Donc on peut avoir théoriquement plus de 8 sprites à l’écran. Par contre l’algo dans Amos n’est pas optimal quand cela scrolle. Donc pour résumé ce point il y a encore un peu de chose à faire avec les sprites (tir du héros, jauge incrusté dans le décor) mais ce n’est pas énorme.

    Côté CPU on en a encore pas mal sous le pied car je n’utilise pas grand chose pour le moment. Dans la petite demo, le monstre est un bob. Je peux en mettre pas mal normalement (alors pas tous de cette taille évidemment ;-)) tout en restant fluide. Je ferai une V3 pour voir.

    Côté RAM, si on a de la fast (512ko), il reste 200 ko de chip donc tout va bien. Au passage la démo tourne avec seulement 512ko de mémoire totale. Mais un jeu complet nécessiterait la config de l’Amiga 500 typique de 1991 : 512ko de chip, 512ko de fast.

    Je poste ces trucs dans ce forum car il est possible que cela intéresse d’autres devéloppeurs ou même d’autres Amigaïstes non développeurs. Mais je suis peut être en train de polluer le thread sur EON. Donc je vais commencer je pense un nouveau sujet en faisant un résumé de tout le baratin fait à présent.

    A+

    #49312
    Staff
    ZarnalZarnal
    • Level 17
    • Messages : 3904

    J’ai oublié de poser une question : dans ce cas de figure, il est prévu de rester en 100% basic ou bien d’injecter du code machine au passage ?

    Je ne me souviens plus pour le 500 : les sprites doivent-ils ou non avoir la même palette ?

     

     

    A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - A1200 ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae. CPC 6128-CPC 464.

    #49339
    Alain.Treesong
    • Level 4
    • Messages : 102

    Je ne prévois pas d’inclure d’extension maison en asm. Je pense que ce n’est pas nécessaire pour obtenir quelque chose de bien.

    Palette des sprites sur OCS/ECS : les sprites de 16 couleurs ont les couleurs d’index 16 à 31. Les 2 premiers sprites de 4 couleurs : 16 à 19. Les 2 suivants 20 à 23. Les deux suivants 24 à 27. Les deux derniers 28 à 31.

    #49345
    sodapopsodapop
    • Level 1
    • Messages : 14

    Rendre justice au travail de François Lionet est une bonne démarche, il a fait très fort en développant ce langage ! Je m’étais bien amusé avec à l’époque, avant de passer à l’assembleur…

    L’image a l’air belle, et ça serait sympa d’avoir aussi une vidéo de l’animation (sans avoir a passer par l’adf  ;-) )

    #49384
    Staff
    ZarnalZarnal
    • Level 17
    • Messages : 3904

    A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - A1200 ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae. CPC 6128-CPC 464.

    #49433
    Alain.Treesong
    • Level 4
    • Messages : 102

    Bonsoir,

    Merci d’avoir posté cette vidéo.

    Attention toutefois le rendu dans la video semble être en 25 fps. Je confirme que le scrolling et le sprite sont bien en 50 fps comme l’atteste mon Amiga 500. Je ne voudrais pas que les puristes soient fâchés:-)

    Donc suite du moteur.

    J’ai chargé shadow of the beast 1 pour me rafraichir la mémoire. C’était vraiment techniquement bien fait. Du coup j’ai regardé un peu plus les détails.

    Je me suis rendu compte que les « ennemis » avaient une vitesse constante que l’on court vers eux ou que l’on soit immobile. Ce qui est n’est pas logique mais facilité certainement la jouabilité. En ce qui concerne le moteur Amos, pour le moment les objets ont une vitesse relative. A voir ce que je ferai sur ce point. Le but étant d’avoir la meilleure jouabilité.

    J’ai par ailleurs testé le saut dans shadow et je ne me souvenais plus qu’il était assez contraignant.  J’ai donc codé le saut en le rendant plus maniable. J’ai par ailleurs ajouter un tir un peu comme dans la phase où l’on est dans l’arbre. Les joueurs comprendront. J’ai dessiné un sprite rapidement pour le tir. C’est juste pour le moteur.

    Donc cela donne cela :

    L’adf à tester de préférence sur Winuae mode A500 ou un vrai Amiga se trouve ici:

    EON500_2.ADF

    Tous les retours sont les bienvenus.

    Salut.

     



    #49439
    TarzinTarzin
    • Level 3
    • Messages : 92

    Franchement, c’est impressionnant!

    Merci pour ce sujet très intéressant et toutes les explications que tu donnes. Je vais suivre cela avec intérêt.

    A500/A600/A1200/SAM 440 OS4.1 FE upd1/WinUAE AmiKit/Amiga Forever

    #49440
    Staff
    ZarnalZarnal
    • Level 17
    • Messages : 3904

    Bonsoir, Merci d’avoir posté cette vidéo. Attention toutefois le rendu dans la video semble être en 25 fps.

    Exact. Mais la vidéo source est bien en 50. :-p

    Ici

     

    A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - A1200 ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae. CPC 6128-CPC 464.

    #49516
    Staff
    JimJim
    • Level 20
    • Messages : 5328

    Super sujet. Merci Alain. Je me suis à nouveau permis d’héberger tes fichiers directement sur le serveur AF pour qu’ils ne soient pas perdus dans quelques temps.  ;-)

    A500 - A500 Plus - A600 HD - A1200 - A2000 - A4000T - CD32 - C=64 - 1040STE - CPC6128
    Micromiga.com - Le Webshop Amiga

    #49780
    Alain.Treesong
    • Level 4
    • Messages : 102

    Amigaistes motivés bonsoir,

    Et merci à ceux qui ont manifesté leur intérêt. C’est sympa.

    Donc suite de la conception du moteur.

    Il est affiché en mode dual playfield de chacun 8 couleurs, soit 3 bitplans.

    Une petite parenthèse au passage : comme on le sait tous, il y a 6 bitplans sur Amiga OCS ce qui fait un total de 2 puissance 6 soient 64 couleurs (parmi une palette de 4096 teintes dispo).

    Comme il n’y a que 32 registres de couleurs, le mode 64 couleurs, appelé half-bright est spécial : le deuxième groupe de 32 couleurs est un assombrissement du premier. Astucieux. Comme ce mode est lent et consommateur en mémoire, peu de jeux l’utilisent. Le plus célèbre à ma connaissance est le fantastique Pinball dreams (et sans doute les suites) dont les tables utilisent ce mode.

    Bon revenons au moteur. En dual playfield, les 6 bitplans sont séparés en 2 groupes de 3 (soit 2 puissance 3 = 8 couleurs). Ce qui veut dire que l’on a 8 couleurs pour le premier plan qui accueille le scroll (l’herbe) et les monstres.

    Il y a bien sûr les sprites (la beast et les projectiles) qui ont une palette de 16 couleurs spécifique mais 8 couleurs pour les autres objets ce n’est pas énorme. On va donc les changer en fonction de la position du joueur dans le niveau.

    Shadow of the beast a plusieurs phases de jeux. Il y a donc les extérieurs et des parties « plus plateforme » (il y a même un shoot’em’up si je ne m’abuse). Pendant les phases extérieures auxquelles correspondent le moteur, il y a un enchaînement de séquences correspondant à différentes phases d’attaques de monstres, ou de récupération d’energie. L’original profite des interséquences pour changer la palette. On va faire pareil.

    Donc cela implique de commencer également à mettre en place des séquences. Le « niveau » a donc une longeur et le joueur a une abscisse dans ce niveau. Les monstres et autres objets aussi du coup.

    Voilà comment je m’y suis pris. C’est assez simple en fait. Au niveau de la boucle principal du jeu, on peut définir les séquences en découpant la longueur total du niveau (par une puissance de 2 pour que la division soit transposé par un décalage logique). Le changement de séquence permet donc des événements. J’ai implémenté le changement de la palette. Il pourra y avoir un changement de music par exemple…

    La gestion de la position des monstres est faite au niveau des chaines Amal (les dev Amos comprendront) pour optimiser le temps de traitement.

    Donc cela donne ceci :

    Pour le moment, franchement j’ai fait basique. J’ai défini 3 séquences. Les chauves souris sont statiques pour une première version c’était plus simple. La dernière séquence est composée du « bison » (donc de shadow of the beast 3) qui a une palette différente des chauves souris.

    Voici l’adf à tester de préférence avec un Amiga vanille:

    EON500_3.ADF

    A plus

     

     

     

    #49796
    SalomeSalome
    • Level 5
    • Messages : 211

    Je vois pas trop ce que les gens pourraient à dire vis à vis de l’AMOS. J’en ai fait beaucoup dans les années 90, même professionnellement pour un logiciel de VisualMix que j’avais fait, et il est on ne peut mieux adapté à l’Amiga, en particulier « stock ».
    Mais la je suis passée à Amiblitz pour des trucs plus puissants, car pouvoir faire du VisualMix en 1080p ou 4K, c’est quand même plus adapté aux standards actuels ;-)

    1200 PCMCIA 2MB (piqué dans la cave de mes parents et revendu par mon frère #LESGLANDES )
    FS-UAE OS39+Amikit XE Registred sur Mac
    FS-UAE OS4 FE (FlowerPot) sur Mac
    Powerbook G4+MOS
    Taulière de http://amigadistrowatch.com/ et http://mogeek.fr/

Partager sur vos réseaux sociaux préférés :
Facebooktwitterredditpinterestlinkedintumblrmail
15 réponses de 1 à 15 (sur un total de 29)
  • Vous devez être connecté pour répondre à ce sujet.