AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 optimiser une ia ?

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Mamie Wawa
Très bonne participation


Messages : 112

MessageSujet: optimiser une ia ?   Sam 16 Aoû 2014 - 17: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 ?  crossa 
Et des conseils en général pour optimiser son jeu ?
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: optimiser une ia ?   Sam 16 Aoû 2014 - 17: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.
Revenir en haut Aller en bas
Mamie Wawa
Très bonne participation


Messages : 112

MessageSujet: Re: optimiser une ia ?   Sam 16 Aoû 2014 - 17: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  happy1 

Merci, sinon tu as d'autres conseils pour optimiser au maximum ?
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: optimiser une ia ?   Sam 16 Aoû 2014 - 17:34

Ah oui, autant pour moi ^^'
Eh bien, faire des ennemis culs-de-jatte ? guns Ca simplifierait tout awesome

_________________
Je suis partie sur les ailes du vent et la tempête m'a ramenée.
Revenir en haut Aller en bas
Mamie Wawa
Très bonne participation


Messages : 112

MessageSujet: Re: optimiser une ia ?   Sam 16 Aoû 2014 - 17:39

Eh eh  cool 

Ç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 !  gnii   rire2 

Merci ! Smile
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: optimiser une ia ?   Sam 16 Aoû 2014 - 17:41

Je t'en prie Smile
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.
Revenir en haut Aller en bas
Mamie Wawa
Très bonne participation


Messages : 112

MessageSujet: Re: optimiser une ia ?   Sam 16 Aoû 2014 - 18:52

Je sais pas trop, je vois pas comment passer en mode glandouille ( avec une alarm ? ) et l'histoire des un step sur deux scratch

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 ?
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: optimiser une ia ?   Sam 16 Aoû 2014 - 21: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.
Revenir en haut Aller en bas
Asu
Utilisateur confirmé: Rang ****
avatar

Messages : 895

MessageSujet: Re: optimiser une ia ?   Dim 17 Aoû 2014 - 7: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 Yum! 

_________________
‎<‎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
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: optimiser une ia ?   

Revenir en haut Aller en bas
 
optimiser une ia ?
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Vos idées pour optimiser le ménage
» Optimiser sa prospection
» [Résolu] Optimiser l'ouverture d'Hérédis ? ?
» Optimiser la mémoire sous Windows XP
» Windows 10 bride votre connexion internet, voici comment l’en empêcher

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