360

Perso je dirai ~ 700.

361

jfg : decompresser avant, c'est ce que je faisais, quand le joueur ne gerait qu'une 20aine de positions... maintenant c carrement impossible. Ken compresse fait presque 48ko, le tout decompre fait environ 90 à 100ko (par joueur !!) sans compter la decompression des boules de feu.
En moyenne une position represente 3ko (les graphs de chaque annim de la position avec les deux plans et le masque)
Sachant qu'il y a 38 positions dans Ken, plus une boule de feu, ca fait grosso modo 39*3 = 117Ko pour decompresser la totalite d'un joueur...
Resultat, au debut de la partie, j'alloue la taille necessaire pour decompresser la plus grosse annim ainsi que les projectiles, plus les divers parametres du joueur pendant la partie, ce qui donne le nombre affiche sous PLAYER SELECT au demarrage du jeu (un peu plus de 11ko pour KEN)... comme ca au passage a une nouvelle position, je decompresse l'annimation complete de la position, mais uniquement elle. Je ne me vois pas en plus generer un changement de couleur.

Apres tout ca, il faut voir qu'il y a deux joueurs pendant une partie, soit le double d'espace memoire utilise, plus le buffer pour stocker le background de 320*128 en grays, plus le buffer des grays, plus le virtual screen, plus...

Donc en gros, 20Ko pour le jeu en general, 10Ko pour le background, et mini 10Ko par joueur en general... tu fais le total ca chiffre assez vite fou
20+10+10+10 = 50Ko
Si je ne decompressais pas :
20+10+100+100.... irrealisable.


Autre petit detail important :
les graphismes sont bien plus beaux que dans un street fighter, ken debout dispose de 12 sprites differents pour cette position... ca commence a faire.
Dans un jeu comme street, il y a ptetre 4 annimations max quand un joueur est debout... et la encore, ca chiffre tres vite !!
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

362

cross
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

363

Pour Ken, il doit y avoir un peu plus d'une centaine de sprites pour l'instant (chaque sprite dispose de deux plans, et d'un mask). Le format va peut etre evoluer pour des positions supplementaires.
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

364

Ca n'a pas été évoqué de faire un jeu de platte-forme une fois celui la fini? ca serait sympa, genre un double dragon grin

365

En meme temps les jeux de FZ sont souvent gourmand en memtongue

Rien que la fonte, est elle genere a partir du tios (ie en tmps reel) ou c des datas?

366

JackosKing :
En meme temps les jeux de FZ sont souvent gourmand en memtongue


On peut difficilement avoir un max de graphismes et une taille infime...
J'admets que mes premiers jeux, comme PACMAN, TBO, et CROCKMAN, ont une taille un peu demesuree.
TI-Pang et BomberMaze se sont ameliores...
Et concernant FlashZBomberMan, je vois difficilement comment faire mieux... compare a BomberDude ou BigDyna, je trouve qu'il a une taille tout a fait respectable, compte tenu de la dose de graphs et de presentation du jeu.
JackosKing :
Rien que la fonte, est elle genere a partir du tios (ie en tmps reel) ou c des datas?

Ma font n'a aucun rapport avec celle du tios, la forme n'a rien a voir.
Et puis maintenant, elle est externe, et commune a tous mes progs... (on le voit deja dans FZBomber derniere version)
Ca represente 2Ko environ.
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

367

alexis : tiens coucou smile
Ca faisait un bail... msn ? J'utilise pu icq sad
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

368

La font peut etre génére en temps reel. Cette effet est assez facile a fairetongue
Tes sprites sont aussi inversés en temps reel comme le fait genlib (et malheureusement pas Xlib..)

Ma remarque portait sur le temps ou tu faisais du preshiftingtongue

369

"Et concernant FlashZBomberMan, je vois difficilement comment faire mieux... compare a BomberDude ou BigDyna, je trouve qu'il a une taille tout a fait respectable, compte tenu de la dose de graphs et de presentation du jeu."
Je pense qu'il parlait de la mémoire allouée, pas de la taille du programme.

370

JackosKing :
La font peut etre génére en temps reel. Cette effet est assez facile a fairetongue


Ben si tu arrives en tps reel a generer une font comme la mienne a partir de celle du tios, je te nomme le champion du monde de la magie. Celle du tios est tres laide, et les effets se limitent assez vite (genre ombre ou legere modif graphique), on peut tjrs s'ammuser a faire un algo a la con... fais le si ca t'amuse, j'ai deja donné.
Et tu crois aussi que je v m'ammuser a faire ca en plus de tout le moteur du jeu qui est deja bien lourd ?! mur
JackosKing :
Tes sprites sont aussi inversés en temps reel comme le fait genlib (et malheureusement pas Xlib..)
Ma remarque portait sur le temps ou tu faisais du preshiftingtongue

Mais de quoi tu parles ?!
Quels sprites inverses ?
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

371

jfg :
"Et concernant FlashZBomberMan, je vois difficilement comment faire mieux... compare a BomberDude ou BigDyna, je trouve qu'il a une taille tout a fait respectable, compte tenu de la dose de graphs et de presentation du jeu."
Je pense qu'il parlait de la mémoire allouée, pas de la taille du programme.


Ben oui, je veux bien, mais le moteur graphique est concu comme ca, et il est tres performant.
De toute facon, dans ce sens, la remarque ne tient plus : c'est le seul qui utilise bcp de ram au lancement...
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

372

373

	
case 0:
	(*charset1)=((( ((*charset)<<1) | ((*charset)>>1)) ) |(*(charset-1))|(*(charset+1)))|(*charset);//(*charset);		
	(*(charset1+1504))= (((( ((*charset)<<1) | ((*charset)>>1)) ) |(*(charset-1))|(*(charset+1)))^(*charset))&(~(*charset));
	charset1++;
break;
case 1:
	(*(charset1+1504))=((*charset)<<1)|((*charset)>>1)|(*charset);
	(*charset1)=( ( ((*charset)<<2)|((*charset)>>2) ) &(~(*(charset1+1504))) ) | (*charset);
	charset1++;

Ca devrait te donner la meme fontetongue

374

375

Ca devrait te donner la meme fonte

Eh bien compile et montre moi... si ca t'amuse... je n'ai pas que ca a foutre. Fais un shot de ce que tu avance, on verra apres.
Et pour les sprites inverses, oui, c'est du tps reel. Et ca prend pas specialement bcp de temps, c'est meme presque infime.
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

376

Et autre chose concernant ma font : elle me permet d'avoirs des caracteres qui n'en sont pas, comme de petites icones dans BomberMaze et FZBomber, dans TIPang aussi, dans la barre d'etat. C'est genialement pratique et efficace. Et je ne veux surtout pas reutiliser les fonts affreuses du tios, meme si modifiees on peut en faire un peu qqch. Ca reste trop limité.
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

377

Ca me soul de resortir XLib V2 pour te montre ca...
Il suffit de voir des shot de Xlib v1 il me semble pour voir l'effet GLOW LIFT etc...

378

je ne connais meme pas xlib...
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

379

Bon je vais la reprogrammer en C pur pour te montrer l'effet... me faut un peu de temps (le temps de dl TIGCC VTI tishot... et de la programmer...)

380

Bon j'ai mis un peu de temps, mais bon j'ai obtenu un resultat un peu pres potable vite fait:
[IMG]http://img77.exs.cx/img77/4792/aze5dr.png[/IMG]
source tres crade :
#include <extgraph.h>
#include <tigcclib.h>



void * IniFont(short taille ,short type) {
    short i;
		unsigned short *charset=NULL;
		unsigned short *charset1=NULL;
		unsigned short *charset3=NULL;
		unsigned short *charset2=NULL;
    if (!(charset = malloc(6016))) return 0;
    SetCurAttr(A_NORMAL);
		FontSetSys(taille);
    memset(charset,0,6016);
    PortSet(charset,15,15000);
    for (i=32;i<126;i++) DrawChar(2,(i-32)*16,(char)i,A_REPLACE);
    PortRestore();
    if (!(charset2 = malloc(6016))) { free(charset) ; return FALSE;}    
  	charset1=charset2;
  	charset3=charset;
    for (i=0;i<(125-32+1)*16;i++)
		{
			switch (type) 
			{
					case 0:
					(*charset1)=((( ((*charset)<<1) | ((*charset)>>1)) ) |(*(charset-1))|(*(charset+1)))|(*charset);//(*charset);		
					(*(charset1+1504))= (((( ((*charset)<<1) | ((*charset)>>1)) ) |(*(charset-1))|(*(charset+1)))^(*charset))&(~(*charset));
					charset1++;
					break;
					case 1:
					(*(charset1+1504))=((*charset)<<1)|((*charset)>>1)|(*charset);
					(*charset1)=( ( ((*charset)<<2)|((*charset)>>2) ) &(~(*(charset1+1504))) ) | (*charset);
					charset1++;
					break;	
					case 2:
					(*charset1++)=(*charset);
					break;
			}
			charset++;			
	}    
    free(charset3); 
    return charset2;
}

void GrrDrawStr(short x, short y,const unsigned char* texte,short espace,void *plan1, void *plan2, void *charset2)
{
while (*texte)
	{
		if ((*texte)!=32)  
		{
		Sprite16_OR(x,y,16,charset2+32*((*texte)-32)-2,plan1);	
		Sprite16_OR(x,y,16,charset2+32*((*texte++)-32)-2+3008,plan2);	
		}
		else texte++;
		x+=espace;
	}
}


void _main(void)
{
	GrayOn();
	GraySetAMSPlane (LIGHT_PLANE);
	ClrScr();
	GraySetAMSPlane (DARK_PLANE);
	ClrScr();
	{
	//F_4x6, F_6x8, and F_8x10
		unsigned short *fnt1a = IniFont(F_4x6,0);
		unsigned short *fnt1b = IniFont(F_4x6,1);
		unsigned short *fnt1c = IniFont(F_4x6,2);
		unsigned short *fnt2a = IniFont(F_6x8,0);
		unsigned short *fnt2b = IniFont(F_6x8,1);
		unsigned short *fnt2c = IniFont(F_6x8,2);
		unsigned short *fnt3a = IniFont(F_8x10,0);
		unsigned short *fnt3b = IniFont(F_8x10,1);
		unsigned short *fnt3c = IniFont(F_8x10,2);
		GrrDrawStr(1,1,"ESSAI essai",7,GrayGetPlane(LIGHT_PLANE),GrayGetPlane(DARK_PLANE),fnt1a);
		GrrDrawStr(1,10,"ESSAI essai",7,GrayGetPlane(LIGHT_PLANE),GrayGetPlane(DARK_PLANE),fnt1b);
		GrrDrawStr(1,20,"ESSAI essai",7,GrayGetPlane(LIGHT_PLANE),GrayGetPlane(DARK_PLANE),fnt1c);
		GrrDrawStr(1,30,"ESSAI essai",8,GrayGetPlane(LIGHT_PLANE),GrayGetPlane(DARK_PLANE),fnt2a);
		GrrDrawStr(1,40,"ESSAI essai",8,GrayGetPlane(LIGHT_PLANE),GrayGetPlane(DARK_PLANE),fnt2b);
		GrrDrawStr(1,50,"ESSAI essai",8,GrayGetPlane(LIGHT_PLANE),GrayGetPlane(DARK_PLANE),fnt2c);		
		GrrDrawStr(1,60,"ESSAI essai",10,GrayGetPlane(LIGHT_PLANE),GrayGetPlane(DARK_PLANE),fnt3a);
		GrrDrawStr(1,70,"ESSAI essai",10,GrayGetPlane(LIGHT_PLANE),GrayGetPlane(DARK_PLANE),fnt3b);
		GrrDrawStr(1,80,"ESSAI essai",10,GrayGetPlane(LIGHT_PLANE),GrayGetPlane(DARK_PLANE),fnt3c);		
	}
	ngetchx();
	GrayOff();
}

381

Au fait c possible de jouer sur la hauteur de la font etc.. en gros obtenir te font, mais j'ai pas envie de passer plus de temps dessus.
J'ai alloué directement un buffer a cet effet, mais il est possible de le faire en temps reel, mais ca m'a gave de passe en asm pour refaire une routine...

sur ce bye!

382

C'est bien ce que je dis, c'est pas la meme. Et ca reste limite, on restera tjrs sur un graph de base de TI. C'est pas mon but, et je ne vois pas l'interet pour lequel tu me soules avec ca... surtout pour utiliser une methode tiree par les cheveux qui ferait gagner quelques minuscules octets en stockage, perdre plusieurs kilo octets au lancement en RAM, alors que tous mes jeux utilisent cette meme font qui est desormais externe...
Et dans tous les cas ca ne permet pas de faire la meme chose concernant mes barres de status.

Et dernier truc, je pense pas que ce soit le genre de conseils que je cherche ici, ca n'est pas tres constructif.
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

383

perdre plusieurs kilo octets au lancement en RAM
>> non toujours pas compris.

Pour le reste je laisse tomber...

384

FlashZ :
je ne connais meme pas xlib...

Tu es resté trop longtemp hors courses tongue
avatar
Membre fondateur de la Ligue Anti-MacIntoc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Un expert est quelqu'un qui en sait de plus en plus sur de moins en moins
de choses, jusqu'à ce qu'il connaisse absolument tout à propos de rien.

385

JackosKing :
perdre plusieurs kilo octets au lancement en RAM
>> non toujours pas compris.

Pour le reste je laisse tomber...


Pour moi, utiliser un buffer pour y stocker une font = utiliser de la RAM...
En plus, ca m'a l'air d'etre du c ca, non ?
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

386

Bof, tu ne rate pas grand chose avec xlib ... oups j'ai dit ca? je suis mauvaise langue, je rigole, je connais pas vraiment, je sais juste qu'ils se tirent dans les pattes depuis plus d'un an sur leur librairies respectives parce qu'elle font ou ne font pas ca ou ca, que telle ou telle fonction ou technique est plus rapide que celle de son voisin, bref rien de tres passionnant, ce qu'il faut retenir, c'est que tu veux faire quelque chose qui te corresponde tu sais le faire toi meme, alors pourquoi aller voir ailleurs, on n'est jamais mieux servi que par soit meme!

387

Meuh nan Alexis, ça fait plus d'un an qu'ils ne se tirent plus dans les pattes hehe
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.

388

C'est bien pour ca que je ne comprends pas trop ce genre de debat, surtout que je sais tres bien ce que je veux et ce que je fais.
Site personnel
Site professionnel

msn / mail : racine.f(at)free.fr

389

La ou tu n'as pas compris, c'est qu'il n'y a pas besoin de buffer, j'ai donné l'exemple du buffer parce que ca me soulait de recoder une fonction pour redessiner un sprite etc...

Pour XLib c'est HS.

390

FlashZl: tu pourrait en dire plus sur ton system de linking qui synchronise et lance TF sur l'autre calc ? cheeky
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.