AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -20%
-20% Récupérateur à eau mural 300 ...
Voir le deal
79 €

 

 [Edit]optimiser : pourquoi m'embêter ?

Aller en bas 
4 participants
AuteurMessage
luuu17
Très bonne participation



Messages : 124

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyLun 5 Nov 2012 - 17:46

Bonjour, je met volontairement ce titre sachant que bien sur je sais quelle est la réponse, mais je m'explique :


je suis dans la fin de mon projet, je construit les niveaux et musiques, etc je fais les finitions.
mon problème : je travaille sur un PC portable :
Asus Intel Core 2.53 Ghz ram4Go Nvidia GT415M.

je suis un peu agacé de voir que quand je lance le jeu, ça "tourne" un peu aléatoirement : parfois, il se met à ramer pendant quelques secondes.
parfois, il tourne de manière plus que correcte. Je n'arrive pas à trouver ce qui peut causer cela.

(sur un PC fixe bien plus performant le jeu tourne sans problème pour moi )

Ce qui m'agace, c'est que je regarde les performance en cours je deu avec Ctrl Alt Supr :
UC utilisé passe d'une fourchette entre 0 et 3% si je ne fais rien à coté à 50-55% ( avec des pointes a 80% rares et pas systématiques mais tout de même toujours aux mêmes endroits du jeu me semble-t-il)

la mémoire passe de 1.25G -1.28G sans rien, à 1.54 environ en cours de jeu.


Surtout, après avoir passer pas mal de temps à virer des lignes de codes mal pensées, supprimer (beaucoup) des variables inutiles, remplacé des objets en tiles, ou supprimer pas mal d'objets dans une room, pour essayer de trouver des pistes à suivre pour améliorer ça, la "nouvelle" version me donne exactement les mêmes résultats. ( ça rame toujours un peu aléatoirement à certains endroits et les chiffres des performances sont identiques)


Qu'en pensez vous ? dois je insister ? Je ne cherche pas au bon endroit ? Quelques conseils ?


PS--> Ceci dit, le jeu tourne quand même correctement l'essentiel du temps mais tout ça me fait me dire que sur une machine un peu plus faible, on doit vite tomber dans le jeu qui rame tout le temps. Il reste sur cette machine largement jouable selon moi mais j'aimerais faire au mieux.


EDIT : les performances dans l'onglet processus : pour mon jeu lancé, la colonne processeur tourne entre 38 et 41
et la colonne Mémoire entre 199 000K et 202 000K
pour la version retravaillée, même chose pour processeur et entre 197 et 198 000K pour la mémoire.


Dernière édition par luuu17 le Lun 5 Nov 2012 - 18:52, édité 1 fois
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyLun 5 Nov 2012 - 18:26

D'après mes souvenirs, GM va garder en mémoire tout ce que le jeu contient de pacqué dans l’exécutable.
Donc même si tu n'utilise un background X qu'une seule fois dans le jeu, il seras gardé en mémoire pendant tout le jeu.
Pareil pour toutes les autres ressources. Si tu as pleins de cartes dans ton jeu par exemple, toutes les rooms resteront en mémoire.

La solution? Elle est chiante... : n'utiliser que des ressources externes, et les charger que lorsque tu n'en a besoin.
Le plus chiant étant pour les rooms évidement. Mais certains membres ont posté des scripts/moteurs tout pret pour ça.

Par contre pour les performances, pas sur que ce soit a cause de ce que j'ai évoqué précédemment.
En général pour trouver un problème de perfs, on utilise le mode debug, et on vérifie les instances, car dans la majorité des cas c'est un soucis d'instances inutilisées qui ne sont pas détruites.
Tu peut aussi regarder la ou tu utilise de grosses boucles, en général c'est ce genre de code qui demande le plus d'UC.

Il faut aussi savoir qu'afficher beaucoup d'objets par exemple, ou tester des collisions lorsqu'il y a beaucoup d'instances/tiles (si collisions par tiles) peut bouffer pas mal de perfs.

_________________
[Edit]optimiser : pourquoi m'embêter ?  Runningpotato1[Edit]optimiser : pourquoi m'embêter ?  TvF6GED [Edit]optimiser : pourquoi m'embêter ?  MdetltS
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyLun 5 Nov 2012 - 18:57

Je sais pas trop me servir du debug mode, je vais essayer de voir ce que je peux trouver avec. Je pense que je pourrais pas faire beaucoup mieux malheureusement mais bon je vais faire au mieux.
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyLun 5 Nov 2012 - 19:00

Est il plus intelligent par exemple :

de creer des objets (ennemis par exemple ) dans la room lorsque qu'on se rapproche d'un point prévu,
ou vaut il mieux que l'ennemi y soit déjà placé ? sachant que pour créer cet ennemi, il faudra de toute façon que je place un objet "createur" dans la room. inutile ?
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyLun 5 Nov 2012 - 19:04

Je pense que créer un objet qui fait spawn des ennemis c'est mieux.
En plus tu peut faire en sorte qu'on puisse le paramétrer, et ça c'est cool :p

_________________
[Edit]optimiser : pourquoi m'embêter ?  Runningpotato1[Edit]optimiser : pourquoi m'embêter ?  TvF6GED [Edit]optimiser : pourquoi m'embêter ?  MdetltS
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyLun 5 Nov 2012 - 19:43

Dans le DEBUG mode , je n'arrive à rien afficher d’intéressant . Possible d'afficher l'UC utilisée ? par objets ?
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyLun 5 Nov 2012 - 19:58

Dans le menu Tools t'as les trucs intéressants:
Show Instance pour voir si ton jeu est pas saturé d'instances.
Show Locale Variables pour voir un peu ce qui se passe dans une instance.
Tu peut aussi executer du code.

Par contre pour l'uc go taskmgr :b

_________________
[Edit]optimiser : pourquoi m'embêter ?  Runningpotato1[Edit]optimiser : pourquoi m'embêter ?  TvF6GED [Edit]optimiser : pourquoi m'embêter ?  MdetltS
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyLun 5 Nov 2012 - 20:25

saturé d'instances, comment le savoir ? je vois la liste des instances, y'en a plein dans une room. genre 300. c'est pas bien ?
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyLun 5 Nov 2012 - 20:40

Ben si le nombre d'instances reste constant et que c'est a peu près le même que celui que t'as dans ta room a la base, pas de soucis.
Par contre 300 instances c'est pas mal, tu devrais désactiver les instances inactives.

_________________
[Edit]optimiser : pourquoi m'embêter ?  Runningpotato1[Edit]optimiser : pourquoi m'embêter ?  TvF6GED [Edit]optimiser : pourquoi m'embêter ?  MdetltS
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyLun 5 Nov 2012 - 21:08

ça reste constant et ça diminue même au fur et à mesure qu'on fait le niveau. je peux pas vraiment les desactiver sachant que je peux revenir en arrière.

les Sols et les Murs sont constitués d'un puzzle d'instances " bloc". c'est pas bien ?
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyLun 5 Nov 2012 - 21:25

Pour la désactivation des instances je ne parlais que de celles qui sont en dehors de la view par exemple :b

Sinon pour les sols difficile de faire mieux avec GM j'ai l'impression.

_________________
[Edit]optimiser : pourquoi m'embêter ?  Runningpotato1[Edit]optimiser : pourquoi m'embêter ?  TvF6GED [Edit]optimiser : pourquoi m'embêter ?  MdetltS
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyLun 5 Nov 2012 - 21:32

Tu entends quoi par désactiver ? comment faire ? je me contente de les rendre " visible = 0" en dehors de la view.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyLun 5 Nov 2012 - 21:53

Je cite la doc:
Code:
{
  instance_activate_all();
  instance_deactivate_region(view_xview[0],view_yview[0],
                        view_wview[0],view_hview[0],false,true);
}

Je te laisse aller la voir pour plus d'infos, et si t'as du mal avec l'anglais y a une version française dans un topic en post it dans la section GameMaker Wink

_________________
[Edit]optimiser : pourquoi m'embêter ?  Runningpotato1[Edit]optimiser : pourquoi m'embêter ?  TvF6GED [Edit]optimiser : pourquoi m'embêter ?  MdetltS
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyLun 5 Nov 2012 - 21:55

ça semble intéressant effectivement ^^ je vais essayer ça merci en tout cas. faut que je mette ce code dans une instance toujours à l'écran alors
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyLun 5 Nov 2012 - 21:59

Oui, mais tu peut aussi faire un truc du genre:
Code:
{
  instance_activate_all();
  instance_deactivate_region(view_xview[0],view_yview[0],
                        view_wview[0],view_hview[0],false,true);
  instance_activate_object(tonObjet)
}

De cette manière tu peut empêcher la désactivation d'objets importants, comme le GUI.

_________________
[Edit]optimiser : pourquoi m'embêter ?  Runningpotato1[Edit]optimiser : pourquoi m'embêter ?  TvF6GED [Edit]optimiser : pourquoi m'embêter ?  MdetltS
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyMar 6 Nov 2012 - 15:07

Qu'appelles-tu le GUI ? la taille de la room joue pas mal aussi à ce que je vois. En fait je me rend compte que c'est vraiment niveau UC que ça bouffe beaucoup trop. je sais ou j'ai énormément de lignes de codes, ou on peut surement faire mieux, mais je suis pas très fort et je pense pas que je pourrai mieux faire là dessus.

[Edit] pour les collisions : il vaut mieux utiliser un "disk" ou rectangle manuel ou utiliser "precise collision checking" ?
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyMar 6 Nov 2012 - 15:31

Si tu veux quelques conseil (pas forcément très utile pour un initié, mais comme je sais pas si tu débute...) :
-utiliser un maximum de boucles, ca réduit énormément la taille des fichiers, en plus d'être plus rapide lors de la compilation et en jeu. En plus c'est beaucoup plus simple à modifier après coup.
-tu dois jamais avoir plusieurs fois le même bout de code, utilise plutot des fonctions, plus clair, plus rapide et toujours plus simple à modifier
-limiter le nombre d'objets (pas seulement le nombre d'instance dans la room, mais aussi le nombre d'objet dans GM) : faut pas que t'ai un objet heros, une autre objet heros_blessée, puis heros_mort, heros_avec_bonus,etc... t'utilise des variables, c'est à sa que ca sert
-utilise l'héritage : même si avec GM c'est ******, c'est mieux que rien...
-et enfin otimise dès le dbut, te dis pas "je le ferais à la fin", parce que c'est pas vrai, à la fin tu le fera pas mrgreen2

Voilà, comme dit c'est pas forcément utile si t'as déjà de bonnes bases, mais c'est déjà ca happy1

edit: précise collision est forcément plus long que les autres, mais tout dépend du type de jeu.
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyMar 6 Nov 2012 - 15:54

^^ Je suis débutant plutôt, enfin ça fait super longtemps que je m'en sert j'arrive à faire plein de choses dont je suis content, mais niveau programmation, j'arrive à faire ce que je veux, ça fonctionne, mais c'est très mal fait je crois. (moi mon truc c'est plutôt le game design)

-les boucles : j'en utilise aucune. je sais que c'est mal, mais sérieusement dans tout ce que j'ai mis je vois pas un endroit ou je peux mettre une boucle. ( je met que des if et des else : if je me fait toucher, vie -=1, etc etc )

- jamais avoir plusieurs fois le même bout de code ? je comprends pas exactement ce que tu veux dire

-limiter le nombre d'objets : alors la je me suis dit ça aussi, mais je sais pas comment faire autrement. Chaque élément du jeu interactif doit forcément être une instance non ? chaque ennemi, chaque décor ( s'il a un role ) de plus mon Héros est partagé entre beaucoup d'objet car je suis incapable de représenter un personnage annimé correctement. du coup, il a une tete, des mains, et pieds que j'ai géré à part. comme ça j'arrive à avoir une animation potable (il a un look rayman)

-j'ignore ce qu'est l'héritage ^^

j'essaie tout de même d'optimiser car je suis maintenant à la fin, ou en tout cas la dernière partie.


---> quand le personnage tire : il se crée un objet "laser" qui part dans une direction donée et qui a un code qui lui dit de se detruire s'il rencontre un mur, ou un ennemi . donc ça ressemble à ça pour l'objet laser :

if collision_line(x,y,x+hspeed,y+vspeed,Mur,true,true)
{
speed = 0
move_contact_solid(direction,10)
instance_create(x,y,etincelle)
instance_destroy()
}

voilà je fais tout à peu près comme ça mais y'a des trucs bien plus compliqué. c'est juste un exemple pour voir si je peux faire la même chose mieux.
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyMar 6 Nov 2012 - 16:24

Pour les boucles, je me répète, mais essaie quand même de les utiliser, et sinon, si t'utilise beaucoup de conditions, intègre des switch, je te laisse regarder dans la doc pour plus d'infos.
Ensuite, quand je parle de plusieurs fois le même bout de code, c'est quand par exemple, le dinosaure et le gremlins (fais pas gaffe aux exemple...) ont la même réaction quand ils se font buter : par exemple si les deux font un bruit d'agonie puis disparraise, tu fais une fonction mourrir(id) qui joue un son d'agonie et qui détruit l'objet d'id "id" donné en argument :
fonction mourrir(id)
Code:

play_sound(agonie);
with(argument0)
{
instance_destroy();
}
Là aussi je te laisse regarder dans la doc pour plus d'infos.
Ensuite pour limiter le nombre d'instances :
-pour les décors :
- s'ils ne servent que de décors, utilise les tiles, pas besoin d'objet.
-s'ils ne servent que de murs ou d'autre objet solide ou l'on peut marcher, tu fais un objet mur avec un simple carré noir en sprite, et tu rajoute ensuite des tiles par dessus, comme ca t'a un seul objet et ils peuvent tous avoir un aspect différent
-pour ton perso : c'es pas très optimisés, mais c'est vai que je sais pas trop ce que tu pourrais faire à la place...

Ensuite, l'héritage : en gros tu fais un objet de base qui n'apparaitra pas forcément dans le jeu, par exemple l'objet enemie, tu lui met l'algo pour se déplacer, recevoir des dégats,ect... et ensuite tu fais tous tes ennemis : par exemple l'objet dinosaure et l'objet gremlins : en bas à gauche, là ou tu change le nom, le sprite,etc.. de ton objet, ia un truc du genre parent, là tu met l'objet ennemie
Ensuite, même si ia aucun code dans ton objet gremlins (ou dino peut importe), il fera pareil que son parent, c'est à dire l'objet ennemie. Ensuite, si tu veux par exemple que le gremlins ai un coeur au dessus de lui mais pas les autres objets, tu va dans l'event draw, tu rajoute ton code pour afficher le coeur et faut appeler une fonction (je sais plus sonnom désolé) qui execute en plus le code du parent, sinon t'aura plus le code de l'event draw de l'objet ennemie dans ton ojet gremlins.
C'est pas très clair désolé, mais si tu regarde un peu dans la doc et dans les tutos ca devrait aller...

Ensuite dernier truc, il ne faut jamais créer d'objet juste pour l'affichage !! ; utilise les particules pour faire des étincelles, en plus tu pourra faire plus joli plus facilement happy1
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyMar 6 Nov 2012 - 18:25

Ok merci beaucoup, je cours me renseigner sur le switch. pour les particules également. pour parent, je savais et m'en sert déjà.
Je vois un peu ce que je peux faire pour certains trucs, mais d'autres je pense en revanche que je pourrai pas faire grand chose de mieux (avec ma cervelle). Tout de même , il faudra peut être aller au CERN pour faire tourner mon jeu, mais il sera pas mal ^^ j'en suis content.
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyMar 6 Nov 2012 - 22:00

Un truc très très très utile et que très très très peut de monde connais c'est le code de création d'instance.

Quant tu place un objet dans l’éditeur de salle si tu fait "ctr+clic_droit" tu va avoir l'option "creation code" et elle est là la magie.
Tu peut mettre une variable genre "ID" à la création de l'instance ensuite dans ton objet tu peut faire:

Code:

switch( ID ){
   case 0:
      text="Bienvenue dans le jeu.";
   break;

   case 1:
      text="Pour vous déplacer utilisez les touches fléchés.";
   break;

   default:
      text="...";
}

Et voilà comment avoir plusieurs pancartes d'aide avec un seul objet.

Ensuite pour compléter ce que dit Térence68 sur les scripts voici encore mieux.

obj:
Code:
text= getTextGame(ID);

Et voici le script "getTextGame":
Code:

var text;

switch( argument0 ){
   case 0:
      text[FRENCH]="Bonjour.";
      text[ENGLISH]="Hello.";
      text[SPANISH]="Hola.";
   break;
   //etc...
}

return text[global.language];
Alors bien-entendue pour que ce code fonctionne tu doit créer la variable "global.language" qui aura comme valeur FRENCH, ENGLISH ou SPANISH et bien entendu c'est variables sont des constantes (très peut connus par les utilisateurs de GM mais terriblement puissantes).

Si tu veux un exemple je peut te faire ça.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9180
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyMar 6 Nov 2012 - 22:31

Dommage qu'on soit obligé de passer par la avec GM, alors que dans tous les langages un minimum objet il suffit d'instancier avec un paramètre supplémentaire :/

A mes débuts je faisait un truc tout con:

ins code:
message = "blablabla"

Et dans le create de l'objet
if(!variable_local_exists("message")) message = ""

D'ailleurs on peut même rien mettre dans le create pour pas utiliser une fonction qui seras par la suite obsolète Razz
Ça évite d'avoir plusieurs conditions exécutés par instances, et on peut rendre le code plus propre en créant une fonction 'Constructeur' pour chaque objet.

Par exemple pour l'objet Message:
Code:
draw_text(x, y, msg)

script CMessage:
Code:
msg = argument0

Et dans chaque code d'instance on peut facilement utiliser le constructeur de l'objet Message.


_________________
[Edit]optimiser : pourquoi m'embêter ?  Runningpotato1[Edit]optimiser : pourquoi m'embêter ?  TvF6GED [Edit]optimiser : pourquoi m'embêter ?  MdetltS
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyMer 7 Nov 2012 - 14:15

J'avais vu en effet le creation code quand je place un objet dans la room, je m'en suis servi pour quelques trucs. ( genre un piège qui est un plafond de pics qui tombe i+=1 et quand i = 100 le plafond tombe. je me sert alors de creation code pour initialiser i a des valeurs différents pour que les plafonds ne tombent pas tous en même temps.


J'ai fait un test et je suis un peu surpris : j'ai supprimé beaucoup d'objets, ceux qui sont les plus complexes, en fait j'ai supprimé tout le codage de ces objets, ceux qui utilisent beaucoup de fonctions, degtorad, point_direction , et qui utilisent pas mal de variables, pour voir ensuite si j'avais une différence, mais les performances restent inchangées ; toujours entre 38 et 42 en UC et un peu moins en mémoire (195 000).

Je me dit alors : j'ai peut être un seul objet qui met un peu la zone et je ne l'ai pas trouvé ? ce que j'ai supprimé n'étais pas si mal ?

je précise encore que je suis pas du tout programmeur dans l'ame, j'ai du m'obliger pour réaliser ce petit projet, j'ai acquis quelques bases et je fais avec, et je recommencerai pas depuis le début ^^ merci encore pour tous ces conseils en tout cas.


[Edit] je n'utilise jamais l'event draw. j'ai pas bien compris l'interêt et des que je m'en sert, c'est la galère. j'ai l'impression de tout compliquer.
tous mes sprites sont associés à un objet et si j'ai besoin de le changer , j'utilise dans l'event step :

exemple simple :

if vie = 0
{
sprite_index = mechantmort
}
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: trouvaille   [Edit]optimiser : pourquoi m'embêter ?  EmptyMer 7 Nov 2012 - 15:21

Je viens de trouver quelque chose, à force de supprimer des objets ou des choses, et de comparer les performances affichées dans le gestionnaire des tâches de windows.

à force de supprimer nombre de vieilles variables inutiles, remplacées par une seul en trouvant un code différent, j'ai fait descendre légèrement la mémoire utilisée. ça je l'avais déjà trouvé.


mais l'UC donc, comme je l'ai dit plus haut, reste stagnant entre 38 et 41 environ, sauf sur la dernière manip que je viens de faire : l'UC passe a 30-32. ce qui fait une bonne différence non ? ce que j'ai fait : j'ai simplement supprimé des sons ( et le code les faisant intervenir) je m'explique :
j'ai créé pas mal de sons bruitages,
j'en ai en wav ( bruit de flingue, explosions, choses comme ça)
des mp3 pour la musique
d'autres wav qui sont des voix enregistrées : je faisais parler certains ennemis pour voir si c'était rigolo, et je l'ai laissé : mais j'ai créé pas mal de voix différentes qui sont lancées alors aléatoirement :
if point_distance(x,y,Heros.x,Heros.y) < 200
{
if hasard = 1 sound_play(bonjour)
if hasard = 2 sound_play(salut)
if hasard = 3 sound_play(coucou)
}

(je me dis d'ailleurs que c'est un beau cas ou j'aurai pu mettre " case " à la place des if)

c'était un peu pour m'amuser et depuis que j'ai supprimé ça et les sons avec , ( y'en avait pas mal) les performances affichées sont donc passé de 40 a 30 grossomodo pour l'UC utilisée. qu'en pensez vous ?
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyMer 7 Nov 2012 - 15:27

GM gère très mal les sons, c'est pas nouveau, donc faut les rajouter à la fin, t'as 2 fois moins de chargement sans eux....
Et sinon, t'utilise quoi comme truc pour faire des voix ? Ca m'intéresse mrgreen2
Revenir en haut Aller en bas
luuu17
Très bonne participation



Messages : 124

[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  EmptyMer 7 Nov 2012 - 17:55

rien de bien poussé, je m'enregistrais sur le magnétophone et avec audacity je rajoutais quelques effets et augmentais la vitesse ^^
Revenir en haut Aller en bas
Contenu sponsorisé





[Edit]optimiser : pourquoi m'embêter ?  Empty
MessageSujet: Re: [Edit]optimiser : pourquoi m'embêter ?    [Edit]optimiser : pourquoi m'embêter ?  Empty

Revenir en haut Aller en bas
 
[Edit]optimiser : pourquoi m'embêter ?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Pourquoi, mon dieu pourquoi?
» Problème pour dessiner des primitives texturées
» Gros bug de variable
» Tribal Online1.6.5 Nouvelle Interface - Serveur 24h/24
» Poster mon jeu ou pas?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide confirmés-
Sauter vers: