Logicielsmoto.com http://www.logicielsmoto.com/phpBB/ |
|
Outillage pour développement de jeux sur TO8 http://www.logicielsmoto.com/phpBB/viewtopic.php?f=3&t=620 |
Page 14 sur 40 |
Auteur: | Bentoc [ 22 Sep 2021, 13:00 ] |
Sujet du message: | Re: Outillage pour développement de jeux sur TO8 |
Le but initial étant de pouvoir afficher de grandes maps variées en terme de décors, j'utilise un affichage par bloc de 16x8, ça permet d'avoir un tileset "contenu". Comme tu le dis un affichage par ligne serait plus performant pour le scroll, mais on n'aurait pas assez de place pour les maps de Rick. Ceci dit c'est une idée qui pourrait s'appliquer dans d'autres cas. |
Auteur: | Fool-DupleX [ 22 Sep 2021, 22:59 ] |
Sujet du message: | Re: Outillage pour développement de jeux sur TO8 |
J'observe qu'il y a un scroll vertical mais pas horizontal. De vague mémoire (j'y ai beaucoup joué !), je crois que c'est aussi comme ça dans le rick dangerous d'origine ? Mais ma question, c'est plutot est-ce que ce serait possible d'avoir aussi le scroll horizontal ? Je pense toujours à un jeu d'aventure type Zelda, c'est pour ca que je pose cette question (encore que dans Zelda, toute la carte se deplace a chaque mouvement du personnage, pas aux extremites de l'ecran - mais le scroll en limite d'ecran m'irait bien aussi pour un tel jeu) |
Auteur: | Samuel Devulder [ 22 Sep 2021, 23:06 ] |
Sujet du message: | Re: Outillage pour développement de jeux sur TO8 |
Fool-DupleX a écrit: J'observe qu'il y a un scroll vertical mais pas horizontal. De vague mémoire (j'y ai beaucoup joué !), je crois que c'est aussi comme ça dans le rick dangerous d'origine ? Oui c'est comme ca Ca fait parti de l'image de marque du jeu (rick est un jeu "vertical") et on retrouve ce scroll sur toutes les plateformes: Sauf sur MSX, mais là tout est moche: A noter: les bruitages font beaucoup à l'ambiance du jeu, je trouve perso. Les versions dont les bruitages ne sont pas les mêmes sont vraiment moins bien. |
Auteur: | Bentoc [ 22 Sep 2021, 23:13 ] |
Sujet du message: | Re: Outillage pour développement de jeux sur TO8 |
Oui pas de problème pour un scroll horizontal avec le système mis en place, c'est juste qu'il n'y en a pas dans Rick. Dans qq jours je ferai une map type zelda si tu veux comme ça je montrerai le scroll dans les deux directions sur une grande carte. Tu as raison, étant donné que le framerate tombe à 10fps lors du scroll, mieux vaut l'utiliser pour les transitions que de faire un scroll à chaque mouvement. (Edit) merci sam pour le recensement ! |
Auteur: | Fool-DupleX [ 23 Sep 2021, 17:21 ] |
Sujet du message: | Re: Outillage pour développement de jeux sur TO8 |
Punaise, le graphisme sur Sinclair, il est ultra-chiadé, j'adore |
Auteur: | Samuel Devulder [ 23 Sep 2021, 18:01 ] |
Sujet du message: | Re: Outillage pour développement de jeux sur TO8 |
On aurait presque envie de le faire pour MO5, n'est-ce pas (mais je crois qu'il utilise les attributs de demi-intensité) |
Auteur: | Fool-DupleX [ 23 Sep 2021, 18:08 ] |
Sujet du message: | Re: Outillage pour développement de jeux sur TO8 |
Mais carrément ! |
Auteur: | adnz [ 25 Sep 2021, 22:09 ] |
Sujet du message: | Re: Outillage pour développement de jeux sur TO8 |
Pratiquement au pixel comme sur amiga, et le color clash est super bien géré on dirait que y'en n'a même pas (à part le perso, normal ) mais moi aussi cette version spectrum m'a bien surpris |
Auteur: | Bentoc [ 30 Sep 2021, 10:13 ] |
Sujet du message: | Re: Outillage pour développement de jeux sur TO8 |
Je bosse sur l'intégration des graphismes en RLE pour enrichir le moteur de rendu des sprites. Cela permettra de gagner de la place par rapport à certains cas ou les sprites compilés n'ont pas d'interet (menus, images statiques, ...) Je suis reparti du format map (pas le header mais juste la partie données compressées) et j'ai ajouté la notion de pixel transparent de la manière suivante : Code: nn xx ; run of n consecutive identical bytes (2 to 255) or non-identical bytes (1), value xx 00 nn xx xx xx ... ; run of n consecutive non-identical bytes (2 to 255), values xx follow 00 01 xx ; apply write ptr offset xx 1 to 254 (decode should use abx to apply offset) 00 01 ff xx xx ; apply write ptr offset xx 1 to 32767 00 00 ; end of bitplane j'utilise la balise 00 01 xx (3 octets) qui n'a pas d'intérêt dans le format MAP d'origine, car déjà couvert par la balise 01 xx (2 octets) Du coup je peux encoder l'usage des 16 couleurs ainsi que les déplacements du pointeur de destination. Une autre idée pour le format ou ça vous semble bon ? Je ne cherche pas la compatibilité MAP, c'est juste pour pas réinventer la roue ... |
Auteur: | Bentoc [ 30 Sep 2021, 14:36 ] |
Sujet du message: | Re: Outillage pour développement de jeux sur TO8 |
Après quelques essais, le format suivant semble plus efficace en terme de taille : Code: // nn xx ; run of n consecutive identical bytes (2 to 254) or non-identical bytes (1), value xx // 00 nn xx xx xx ... ; run of n consecutive non-identical bytes (2 to 255), values xx follow // ff xx ; apply write ptr offset xx (1 to 255) (decode should use abx to apply offset) // ff 00 xx xx ; apply write ptr offset xx (1 to 32767) // 00 00 ; end of bitplane Sur mon jeu de test, les images prennent 2 fois moins de place avec ce format par rapport aux sprites compilés. reste à voir la rapidité d'affichage ;-) |
Auteur: | Samuel Devulder [ 30 Sep 2021, 19:09 ] |
Sujet du message: | Re: Outillage pour développement de jeux sur TO8 |
Citation: // ff 00 xx xx ; apply write ptr offset xx (1 to 32767) Pourquoi 32767 ? tu peux aller jusqu'à 65535, non ? (bon en pratique ca n'a pas d'intérret. Quelque part je pense que les répétitions ne sont jamais très nombreuses horizontalement. Du coup je me demande si en travaillant au niveau bit tu ne peux pas être encore plus compact: Code: bits ou dans le même genre. Le décodage peut être assez rapide 00000000 -> fin 0nnnnnn0 XX -> répète XX nn+1 fois (1 à 64 inclus) 0nnnnnn1 -> n octets transparents 10nnnnnn XX YY ... -> recopie XX YY ... (nn + 1 octets) 11xxxxxx XX --> saute au dessus des 1 +xxxxxxXX (14 bits = 16384 octets, soit une page RAM) Code: LOOP on doit pouvoir faire encore mieux en utilisant les codes long pour les trucs rares comme "FIN" et "saut sur 14 bits".
LDB ,Y+ BMI L1xxxx BPL L0xxxx RTS L1xxxx LSLB BPL L10xxx LDD -1,Y LEAY 1,Y <-- beurk lent, mais rare LEAY 1,X <-- beurk lent, mais rare ANDA #%00111111 LEAX D,X BRA LOOP L10xxx LDA ,Y+ STA ,X+ SUBB #2 <-- ben oui on a fait LSL BGE L10xxx BRA LOOP L0xxxx LSRB BCC L0xxx0 ABX BRA LOOP L0xxx0 LDA ,Y+ LOOP2 STA ,X+ DECB BGE LOOP2 BRA LOOP |
Auteur: | Bentoc [ 30 Sep 2021, 19:49 ] |
Sujet du message: | Re: Outillage pour développement de jeux sur TO8 |
Merci ! Oui c'est vrai compte tenu de l'entrelacement les répétitions sont plus courantes en vertical. D'ailleurs le format MAP encode dans le sens vertical puis horizontal si j'ai bien compris ... Pour le déplacement je voulais dire +-15 bits : -32768,32767 (le négatif c'est pour le positionnement de départ car la référence de position est centrée dans le moteur) Je termine de debug ma routine actuelle et je me penche sur le code que tu m'a envoyé. |
Auteur: | Bentoc [ 30 Sep 2021, 22:35 ] |
Sujet du message: | Re: Outillage pour développement de jeux sur TO8 |
Bon j'ai oublié un léger détail ... il faut que j'encode les cas de pixels partiellement transparent (à gauche ou à droite). la transparence ne peut pas être gérée par l'index couleur ;-) c'est la que ça va se compliquer ! il va falloir effectivement passer par un encodage bit à bit. Edit : ou alors justement j’utilise un id de couleur comme indice de transparence. Charge a l’encodeur via une balise de positionner un code couleur non utilisé sur un segment de l’image pour indiquer au décodeur quel est l’index de transparence. Pour encoder on cherche la séquence la plus longue jusqu’à ce que tous les indexes de couleurs aient été utilisés et on prend la dernière couleur trouvée comme indice de transparence. On fait ça sur chaque segment jusqu’à la fin du fichier. Autre solution : on gere les quantités répétées et les offsets de déplacement en nibble et pas en byte … |
Auteur: | Samuel Devulder [ 30 Sep 2021, 23:32 ] |
Sujet du message: | Re: Outillage pour développement de jeux sur TO8 |
Pour la transparence tu peux avoir un code supplémentaire qui réalise un masque et/ou. Il servira au debut et aux fins de lignes.
Code: LOOP
LDA ,Y+ LSLA BCC L0x BPL L10x L11x (skip 14 bits) LSLA ASRA extension de signe ASRA extension de signe BEQ INUTILISE LDB ,Y+ LEAX D,X BRA LOOP L10x (recopie) LDB ,Y+ STB ,X+ SUBA #2 BCC L10x BRA LOOP L0x BEQ FIN BMI L01x SKIP (saute 6 bits) LDB -1,Y ABX BRA LOOP L01x ANDA #%00111111 BEQ MASK LDB ,Y+ REPETE (répète octet) STB ,X+ SUBA #2 BCC REPETE BRA LOOP MASK LDB ,Y+ ANDB ,X ORB ,Y+ STB ,X+ BRA LOOP |
Auteur: | Bentoc [ 01 Oct 2021, 08:36 ] |
Sujet du message: | Re: Outillage pour développement de jeux sur TO8 |
bien vu, ça va faire gagner pas mal de place. Le fait que le nombre de répétitions, ou l'offset soit codé sur moins de bits n'est pas gênant, on a rarement de grandes répétitions ou de grands sauts. |
Page 14 sur 40 | Heures au format UTC + 1 heure |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |