Amos Beast Engine

Forum News Room Projets Amos Beast Engine

Ce sujet a 12 réponses, 6 participants et a été mis à jour par  Alain.Treesong, il y a 3 jours et 11 heures.

13 sujets de 1 à 13 (sur un total de 13)

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

  • Auteur
    Messages
  • #49291

    Alain.Treesong
    • 32 Messages

    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+



    #49312
    Staff
    Zarnal
    Zarnal
    • 1 971 Messages

    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 - CM A1200 complète ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae.

    #49339

    Alain.Treesong
    • 32 Messages

    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
    sodapop
    sodapop
    • 9 Messages

    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
    Zarnal
    Zarnal
    • 1 971 Messages

    A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - CM A1200 complète ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae.

    #49433

    Alain.Treesong
    • 32 Messages

    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
    Tarzin
    Tarzin
    • 36 Messages

    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

    #49440
    Staff
    Zarnal
    Zarnal
    • 1 971 Messages

    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 - CM A1200 complète ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae.

    #49516
    Staff
    Jim
    Jim
    • 3 587 Messages

    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 Plus - 2Mo de Chip - 128Mo Fast - 8Gb CF - 68080@78Mhz (Vampire V2+ inside)

    #49780

    Alain.Treesong
    • 32 Messages

    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:

    https://ufile.io/640h8

    A plus

     

     

     



    #49796
    Salome
    Salome
    • 146 Messages

    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 9 Registred sur Mac
    FS-UAE OS4 FE sur Mac
    AmiKit X Registred
    IbookG4+MOS
    Taulière de http://amigadistrowatch.com/

    #49858
    Staff
    Zarnal
    Zarnal
    • 1 971 Messages

    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.

    Du coup, cela devient très limite pour mettre en couleur au niveau des bobs (en dual playfield) ? La palette doit être partagée avec l’herbe ? Et quoi qu’il en soit, je suppose que tu ne peux pas utiliser/partager la palette du second plan sur le premier ?

     

    A1200 Commodore mutant " FrankenAmiga" + 68040 + 8MO + SD 8go - CM A1200 complète ESCOM. HD 20MO. Mon meilleur et seul A500 : WinUae.

    #49864

    Alain.Treesong
    • 32 Messages

    Pour simplifier : sur le premier plan, il y a 1 couleur transparente (0), 2 couleurs verrouillées le vert, 5 couleurs variables.

    Illustration avec le dernier adf posté: les chauve souris utilisent 3 couleurs sur les 5 spécifiques, le « bison » les 5 couleurs (rouge + un dégradé de marron).

    Le passage sur de deuxième plan demande une gestion spécifque de la position des objets pour ce plan et le passage en double buffer. Faisable mais une complexité pas forcément nécessaire.

     

Partager sur vos réseaux sociaux préférés :
Facebooktwittergoogle_plusredditpinterestlinkedintumblrmail
13 sujets de 1 à 13 (sur un total de 13)

Vous devez être connecté pour répondre à ce sujet.