300

Bas pour les 8 niveaux de gris j'hésite car j'ai besoin d'énormément de conseil.

Pour les sprites mon jeux en possèderat une multitude donc pour la hauteur il seront variable car par exemple les balles auront par exemples 8x7 pour la plus petites et 16x16 pour la plus grosses, de même pour les briques qui elles sont fixe de 16x8, la barre qui elle est variable en largeur mais pas en hauteur donc 32x8 max à 9x8 pour la plus petite, puis les monstres qui seront de 16x16 max et de 8x8 min et encore le décors ou la faut que je réfléchisse de faire des morceaux de 16x16 ou 8x8, les vie qui sont fixe de 15x6. Et mais sprites utilise tous du maskage mais j'ai lus dans XLib qu'il existé une fonction dite de transparence car mais masques sont en noir tout le temps donc je voudrais savoir ce que c'est la transparence précisément.

Ah oui j'ai un problème de compromis, voilà je sauve dans un buffer le contenu de l'image ce trouvant derriere les brique mais mes briques possèdent des ombres donc je peu plus travailler sur 16 bits pour afficher ses buffers mais 32 alors voici la taille d'une image à sauver sous la brique (18x10), je cherche un compromis entre mémoire et vitesse car mes matrices de niveaux font du 14x11 donc (14x40)x11=6160*nbrbuffer donc 3 max=18480 octets pour sauvegarder le niveaux tout ça si j'utilise sprite32 donc sur 32 bits mais si j'utilise spriteX8 (14x30)x11=4620*nbrbuffer=13860 donc a votre avis quelle est la meilleur méthode?
A savoir que je ne veut surout pas tout effacer et tout rafficher car j'ai fait le teste et là c'est très très lent vu le nombre de sprites à réafficher!

A savoir qu'au départ je voulait faire un casse brique assez simple mais en fin de compte je préfére recréer un Arkanoid sur TI, principalement sur TI-92+ dû à la taille de l'écran mais je penserais à la TI-89 pour faire une version un peu spéciale. Ce casse brique serat digne d'Arkanoid donc musiques quelque peu identique, niveaux un peu différent mais sur le même principe, énormément de bonus en tout genre, des monstres et des brutages spéciales... A savoir que vous pensez qu le son laisse à désirer mais ce n'est pas du tout le cas car comparé à Duke68K le son est 100% plus interessant et de meilleurs qualité car je le répéte avant tout ce jeux serviras de support de démonstration de ma librairie et ainsi montrer que se serat un jeux d'enfants d'inclure du son dans un jeux quelque soit sont type vu que le sont ne ralentie pas un jeux. Par contre ce qui me fait peur le plus c'est qu'il me faut des fonctions d'affichage les plus rapides possibles car il y aurat énormément de sprites à gérer.

Merci de votre soutien car cela me motive encore plus, car c'est mon premier jeux et donc je n'y connais pas grand chose. Encore merci. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

301

OK, c'est bon, je viens de finir GraySprite16_OR, il prend 165 octets et est 34% plus rapide que ce que tu utilises déjà smile
Par contre, le format de sprite est différent (pour gagner en rapidité).
Un sprite16 est défini comme ça :
1ère ligne light,
1ère ligne dark,
2ème ligne light,
2ème ligne dark,
...

Je crois que GraphX ou genlib ou Xlib utilise déjà ce format, donc tu devrais trouver assez facilement un editeur de sprites.

La destination passée en paramètre est l'adresse d'un buffer de 3840*2 octet, il y a le plan light (3840 octets) puis le plan dark (3840 octets) à la suite.
Voilà, ces petites restrictions sur le format de sprite et de buffer permettent de gagner quelques % de rapidité en plus smile

Maintenant, il ne me reste plus qu'à trouver la motivation de faire les autres (parce qu'une fois qu'on en a faite une, c'est presque pareil pour les autres... donc c'est vite lassant)

302

Mes routines de 8 niveaux de gris marchent sur l'auto-interruption n°1, exactement comme les routines de 4 niveaux de gris de TIGCCLIB. (J'ai pris les routines de TIGCCLIB et changé 2-3 trucs. Il n'y a pas grand chose de moi là-dedans.) D'ailleurs, je te conseille plutôt 8 niveaux de gris que 7 (mes routines te laissent ce choix) parce qu'il y a des problèmes bizarres avec les 7 niveaux de gris (l'écran n'aime pas certains motifs récurrents) que j'ai eu beaucoup de mal à contourner dans Backgammon et qui ne se produisent pas avec les 8 niveaux de gris pour une raison ou pour une autre.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

303

Ca un peu logique qu'avec 7 niveaux de gris l'écran n'aime pas mais j'ai lus dans un topic sur tict qu'il existé ce genre de conseille et je vais donc suivre ton conseil Kevin par contre les 8 niveaux de gris sont de combien plus lent que les 4 niveaux de gris car c'est une question importante pour savoir les réglages que je devrait apporté à ma librairies si l'écart est trop grand.

Dans ce cas je me débrouillerait pour l'éditeur quitte à en faire un. smile
Par contre Jackiechan tes routines ne gére que 4 niveaux de gris? Vraiment merci pour votre aide. smile

Kevin juste une dernière choses, pourquoi ne pas inclure les 8 niveaux de gris dans TIGCC? Certe il faut 3 buffers... mais ça vaut le coups.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

304

Ma fonction fonctionne pour l'instant sur 4 nvg, mais je peux facilement l'adapter à 8 (mais elle sera légèrement plus grosse ~200 octets en tout, je pense)

Le format de sprite sera :
1ère ligne plane0
1ère ligne plane1
1ère ligne plane2
2ème ligne plane0
2ème ligne plane1
2ème ligne plane2
...

Et la destination désignerait un buffer de 3*3840 octets : plane0, plane1 et plane2 à la suite.

305

D'accord alors, juste une dernière faveur, garde les fonctions en 4 niveaux de gris ça pourrat m'aider pour les futur programmes. smile

Quand j'aurais ses fonctions je vais essayer de comprendre le code et ainsi suivre cette exemple comme modéle pour l'optimisation de mes programmes en assembleur car en faite je débute en C depuis septembre 2002 précisément et en ASM depuis Juillet 2002 donc je suis un parfait débutant. sad
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

306

Désassemble plutôt genlib si tu veux un vrai code optimisé smile

307

Je regarderais ça alors!
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

308

geogeo
a écrit : par contre les 8 niveaux de grnis sont de combien plus lent que les 4 niveaux de gris car c'est une question importante pour savoir les réglages que je devrait apporté à ma librairies si l'écart est trop grand.

Ils utilisent la même interruption à la même vitesse. Le cycle des plans est plus long (7 switches au lieu de 3), c'est tout.
Kevin juste une dernière choses, pourquoi ne pas inclure les 8 niveaux de gris dans TIGCC? Certe il faut 3 buffers... mais ça vaut le coups.

C'est prévu, mais il faut que j'écrive les fichiers .hsf qu'il faut.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

309

geogeo et jackiechan> lol wink
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

310

7 switch au lieu de 3 !
Bon, geogeo, je doute que le jeu sera suffisamment rapide en 8 nvg, mais je ferai quand même les fonctions, tu testeras par toi-même.

311

jackiechan
a écrit : 7 switch au lieu de 3 !

Ben, oui, il faut un rapport 4:2:1 et plus seulement 2:1.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

312

Je verrais bien, par contre il y a un problème, si les sprites sont au format
1ère ligne plane0
1ère ligne plane1
1ère ligne plane2
2ème ligne plane0
2ème ligne plane1
2ème ligne plane2

Donc SpriteXGet ne serat compatible, est ça c'est un gros problème car je suis obligé de sauvegarder des zones.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

313

Je ne comprends pas comment tu te débrouilles parce que des jeux comme CF sont suffisemment rapides alors qu'ils réaffichent tout à chaque fois (et parfois plusieurs plans).

314

Enfin, si tu veux je peux te faire un SpriteGet, ça n'est pas très compliqué ça.

315

Ce n'est pas que mon jeux est lent mais quelle méthode dois-je appliquer car moi je sauvegarde la zone du sprites, je l'affiche puis j'affiche la zone... Mais le problème de tout réafficher et que pour les niveaux je doit relire le contenu de la matrices et afficher les sprites correspondant, pour les balles c'es faisable ainsi que pour les raquettes. Mais ce qui ralentie le plus si je réaffiche tout c'est la lecture du niveaux. Mais si y a d'autre méthodes, ya pas de PB. smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

316

Comment tu fais quand on casse une brique ?

317

Je calcule en fonction de la position de la balle sur quelle brique elle va toucher dans la matrice puis je calcule précisément si il y a collision dans ce cas dans la matrice je met un 0 et je cherche avec un pointeur dans le buffer des brique l'image d'avant et je l'affiche ainsi de suite.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

318

Ça doit sûrement être plus rapide de faire ce que tu fais que de réafficher l'arrière-plan, puis les briques (et les balles et le palet) à chaque image...

Enfin, moi je trouve que c'est plus pratique de tout réafficher.

319

Certe c'est plus pratique et ça je suis tout à fait d'accord avec toi, c'est même ce que j'ai fait au début car comme le dit squale92, tout réafficher permet de ne pas ce prendre la tête avec divers bugs graphique... Mais dans mon cas je ne vois pas comment tout réafficher, jai déjà essayé et c'est très très lent. Mais je suis en train de réfléchir à ma méthode des briques car je pense qu'il y a d'autre méthode plus performante.

Il existe quoi comme méthode graphique pour accélérer un jeux?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

320

Programmer bien smileNon, mais franchement, ce n'est pas normal que ce soit très lent en réaffichant tout à chaque fois...

321

Vérifie l'état de tes piles, ça peut avoir une incidence surprenante, quelque fois... :/
avatar

322

Bas il faut lire la matrice du niveaux et afficher le sprite correspondant, déjà ça fait un for donc ça prend du temps, puis y a les balles si il y en a 10 donc encore un for, le décors bon ça c'est rapide, la barre si il y en a 2 encore un for...

Est-ce que les structure alloué en mémoire sont très lente pour lire une valeur? Car depuis que j'ai fait ma structure de gestion des balles en allouant de la mémoire j'ai constaté une forte baisse de vitesse? Et aussi enregistrer une image dans une matrice c'est rapide? J'aurais plutôt besoin de ce gere d'astuces car je pense dans les jeux que vous faite vous avez bien des ptits astuces? smile
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

323

En tout cas, la technique utilisée par PpHd dans genlib est de tout redessiner à chaque fois. Et TiMad a fait pareil dans Xlib. C'est nettement plus rapide et pratique si on a plusieurs plans de scrolling.
Mais dans ton cas, c'est très probable que ça n'apporte rien.

Le mieux c'est que tu essaies tout ce qui te passe par la tête et que tu prennes le meilleur.
Apparemment, ce que tu utilises actuellement est bien.
Et vu ce que tu as à afficher, même avec 10 balles en mouvement, ça devrait être rapide...

324

Je vais essayer tout ce que je pense mais est-ce que les structure que j'alloue sont elle lente pour accéder à un élément?

Par contre pour enregistrer les briques dans un buffer (en totale 3) je perd 25872, est-ce que c'est beaucoup pour ce type de jeux?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

325

C'est dommage que PpHd ne passe pas ici, il pourrait te renseigner mieux que tt le monde...
avatar

326

geogeo
a écrit : Je vais essayer tout ce que je pense mais est-ce que les structure que j'alloue sont elle lente pour accéder à un élément?
Il faudrait voir le code assembleur généré. Mais à priori, je ne vois pas comment ça pourrait être beaucoup plus lent.
Par contre pour enregistrer les briques dans un buffer (en totale 3) je perd 25872, est-ce que c'est beaucoup pour ce type de jeux?
25ko, ça commence à faire beaucoup, oui.

Bon, sinon, j'ai fini aujourd'hui les fonctions Sprite16. Je ferai les autres tailles plus tard (je pense que jeudi je pourrai avancer).
Donc voilà pour l'instant, j'ai fait FastGraySprite16_OR/_MASK, pour 4 nvg ou 8. Les tailles des fonctions vont de ~160 octets à ~350 octets (version masquée en 8 nvg).
Je n'ai pas testé les fonction 8 nvg parce que j'avais la flemme, donc c'est possible qu'elles ne marchent pas bien.
Maintenant les performances :
mode OR : +34%
mode MASK : +36% (par raport à ExtGraph 1.02)

Télécharger les fonctions : SpritesRapides.zip
(au fait, c'est sûrement optimisable de quelques cycle, le moment du passage d'une boucle à une autre selon leshifting, si qq1 a une idée... puis si vous avez d'autres idées pour d'autres optimisations à d'autres endroits, allez-y aussi smile)

327

Je vais regarder ça tout de suite. Merci jackiechan.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

328

N'oublie pas de respecter le format de sprite et de buffer de destination !

329

Oui ne t'inquiéte pas. Je viens de commencer les collisions avec les briques et c'est plutôt rapide vu qu'il y a peu de condition à faire mais malheuresement pour c'est collisions la billes et considérée comme un carré.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

330

Mais réellment est-ce que d'accéder à une structure comme je viens de le précisé au dessus c'est lent?
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.