| optimiser une ia ? | |
|
|
Auteur | Message |
---|
Mamie Wawa Très bonne participation
Messages : 112
| Sujet: optimiser une ia ? Sam 16 Aoû 2014 - 19:08 | |
| Bonjour, J'ai créé une IA, celle-ci marche plutot bien mais j'ai une chute de fps quand j'ai trop d'ennemis à l'écran à cause de l'ia ( trop de conditions à vérifier je pense ) Voici le code : - Code:
-
if ( instance_exists(obj_player) ) { if ( distance_to_object(obj_player) <= global.distance_destroy ) {
if ( distance_to_object(obj_player) <= global.distance_view and !collision_line(x,y,obj_player.x,obj_player.y,obj_wall,false,true) and !collision_line(x,y,obj_player.x,obj_player.y,obj_tree_generate,false,true) and !collision_line(x,y,obj_player.x,obj_player.y,obj_tree_world,false,true) and !collision_line(x,y,obj_player.x,obj_player.y,obj_boulder,false,true) and obj_player.vanish_mode == false ) // Champ de vision { friction = 0 motion_add(point_direction(x,y,obj_player.x,obj_player.y),0.4) if ( speed >= 3 ) { speed = 3 } } else { speed = 2 } } else { instance_destroy(); } } J'ai bien vérifié que c'était l'ia qui me faisait une baisse de fps en la retirant et en faisant des test Quelqu'un aurait une idée de comment l'optimiser pour qu'elle prenne moins de ressource ? Et des conseils en général pour optimiser son jeu ? |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: optimiser une ia ? Sam 16 Aoû 2014 - 19:22 | |
| Ta condition distance_to_object(obj_player) <= global.distance_destroy est en double, et au lieu de faire 50 collision_line avec tous les obstacles différent, fait un nouvel objet "obstacle" dont tes objets spécifiés hériteront (tes wall, tree, ehc...) Dans la doc ia une petite partie sur l'optimisation, ca te coutera rien d'y jeter un oeil.
Mais après ia pas de secret, l'IA ca bouffe beaucoup... A noter aussi que si t'utilise du pathfiniding ca devient vite ingérable... (je sais plus le nom de la fonction GM, mais c'est A*, pour te faire éviter les murs). _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Mamie Wawa Très bonne participation
Messages : 112
| Sujet: Re: optimiser une ia ? Sam 16 Aoû 2014 - 19:30 | |
| J'ai relus mon code et la condition est pas en double ya juste distance_view et distance_destroy, l'un pour la distance de vue du monstre et l'autre détruit le monstre si il dépasse une certaine limite autour du joueur Sinon je vais essayer la technique de l'héritage qui me semble déjà pas mal Merci, sinon tu as d'autres conseils pour optimiser au maximum ? |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: optimiser une ia ? Sam 16 Aoû 2014 - 19:34 | |
| Ah oui, autant pour moi ^^' Eh bien, faire des ennemis culs-de-jatte ? Ca simplifierait tout _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Mamie Wawa Très bonne participation
Messages : 112
| Sujet: Re: optimiser une ia ? Sam 16 Aoû 2014 - 19:39 | |
| Eh eh Ça serait trop simple dans un survival :p Sinon ton astuce à déjà bien fait son effet, en supprimant tous les collisions_line et en mettant qu'un seul ( l'objet parent ) bah de 20 ennemis > 38 fps je suis passé à 48 fps, c'est que 10 fps mais c'est déjà un début ! Merci ! |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: optimiser une ia ? Sam 16 Aoû 2014 - 19:41 | |
| Je t'en prie Sinon je viens d'y penser, faut voir si ca rend bien, mais tu pourrais les mettre en mode glandouille tant qu'il ne se passe rien : ils feraient moins gaffe (distance max inférieure, vérification un step sur deux) et ne passeraient qu'en mode normal s'il se passe quelque chose. _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Mamie Wawa Très bonne participation
Messages : 112
| Sujet: Re: optimiser une ia ? Sam 16 Aoû 2014 - 20:52 | |
| Je sais pas trop, je vois pas comment passer en mode glandouille ( avec une alarm ? ) et l'histoire des un step sur deux Et sinon jusqu'à présent dans les collisions de mes ennemis j'ai utilisé move_bounce_all(true); mais j'ai remarqué que lorsque qu'unse plante dans le décor ça fait une grosse baisse de fps ( 60 fps à 24 :O ) Comment y remédier ? |
|
| |
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: optimiser une ia ? Sam 16 Aoû 2014 - 23:11 | |
| Pour le monde glandouille : Pour checker les collision_line un step sur deux tu fais une variable globale time que t'incremente de un à chaque step, et tu procède à la vérification que si global.time%2==0. Quand ils repèrent le joueur tu les fais passer en mode normal, et ouais tu fous une alarme pour les faire repasser en mode glandouille x secondes après qu'ils aient perdu le joueur.
Et pour tes collisions je sais pas, ca dépend comment tu fais, mais essaie d'utiliser une autre fonction, ia pleins de moyen de gérer ca, à toi de tester pour trouver la plus adaptée à ton jeu. _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
| |
Asu Utilisateur confirmé: Rang ****
Messages : 895
| Sujet: Re: optimiser une ia ? Dim 17 Aoû 2014 - 9:35 | |
| En général l'IA ne devrait pas être executé tous les steps. Tous les 5 step, par exemple, ça limitera le lag. Encore faut-il que le jeu soit adapté pour _________________ <Cysteine> nON mais la touche maj s'active/se désactive toute seule <Cysteine> et a du mal à réponDRE QUANd j'appuie dessus <Cysteine> et je l'ai démont2? IL Ny a rien DEDANs
|
|
| |
Contenu sponsorisé
| Sujet: Re: optimiser une ia ? | |
| |
|
| |
| optimiser une ia ? | |
|