AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Game Maker et la génération de map ? Optimisation ?

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


Messages : 112

MessageSujet: Game Maker et la génération de map ? Optimisation ?   Mar 19 Aoû 2014 - 14:36

Bonjour,

Pour mon jeu, quasiment toute l'action se passe sur une grande room généré aléatoirement, cette room de base fait 10000*10000 ( donc c'est déjà un gros morceau pour Game Maker ) et pour la génération aléatoire j'ai mis dans le creation code :
Code:

// Random spawn Player
    create_randomx = round(random_range(1500,8500))
    create_randomy = round(random_range(1000,9000))
    instance_create(create_randomx,create_randomy,obj_player)
// Generation map
//
do
{
    create_randomx = random(room_width)
    create_randomy = random(room_height)
    instance_create(create_randomx,create_randomy,obj_cavern);
}
until ( instance_number(obj_cavern) >= 5 ) // Nombre de caverne
//
do
{
    create_randomx = random(room_width)
    create_randomy = random(room_height)
    instance_create(create_randomx,create_randomy,obj_tree_generate);
}
until ( instance_number(obj_tree_generate) >= 3000 ) // Nombre d'arbre
//
do
{
    create_randomx = random(room_width)
    create_randomy = random(room_height)
    instance_create(create_randomx,create_randomy,obj_boulder);
}
until ( instance_number(obj_boulder) >= 100 ) // Nombre de rocher
//
do
{
    create_randomx = random(room_width)
    create_randomy = random(room_height)
    instance_create(create_randomx,create_randomy,obj_rock);
}
until ( instance_number(obj_rock) >= 500 ) // Nombre de pierre
//
do
{
    create_randomx = random(room_width)
    create_randomy = random(room_height)
    instance_create(create_randomx,create_randomy,obj_lake);
}
until ( instance_number(obj_lake) >= 15 ) // Nombre de lac
//
do
{
    create_randomx = random(room_width)
    create_randomy = random(room_height)
    instance_create(create_randomx,create_randomy,obj_buisson);
}
until ( instance_number(obj_buisson) >= 500 ) // Nombre de buissons
///////////////////////////////////////////////////////////////////////////////////////////////////////

Le plus gros soucis vient de l'optimisation, quand je fais tourner sur mon pc je n'ai pas vraiment de chute de FPS en jouant ( juste 1-2 sec de freeze le temps que ça génère la map ) mais j'arrive au point au je voudrais animer le jeu un peu plus ( creation par exemple de lapin qui se balade ) et la quand il y a un peu trop d'entités qui se balade bah ça commence à faire une chute de FPS ( 60 normalement et parfois des chutes à 24-30 fps )

Pour "optimiser" un peu j'ai essayé :
Code:
instance_deactivate_all(true);
instance_activate_region(view_xview[0]-64, view_yview - 64, view_wview[0] + 128, view_hview + 128, true);
Dans le step de mon player, mais je crois que vu le nombre d'objet ça fait plutôt l'effet inverse

Donc j'ai plusieurs question, d'abord, pour créer aléatoirement un monde ( de type vue de dessus ) est-ce que ma méthode est bonne ? ( je ne pense pas vraiment pour le cas )
Si non, comment feriez vous ?

Peut-on changer la room_width / room_height pour générer une map qu'au alentour du joueur ? Ainsi ne pas avoir une map limité en taille et en largueur, et pouvoir aller outre des limite de la taille initial de la map ?

Est-ce que game maker atteint vite ces limites quand on parle de générer une ( grande ) map ?
Aussi, parfois j'ai des chutes de fps sans que quelque ce soit passer, une raison spécifique ?
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: Game Maker et la génération de map ? Optimisation ?   Mar 19 Aoû 2014 - 15:09

Eh bien, 3000 arbres avec GM c'est même pas la peine.
Regarde du côté des structures en chunk, c'est comme ca que fait minecraft, et c'est sans doute le plus simple pour un très grande map.
Concernant ta manière de générer, ca dépend vraiment ce que tu veux faire.

_________________
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: Game Maker et la génération de map ? Optimisation ?   Mar 19 Aoû 2014 - 16:12

Cherche pas du 1000x500 en obj (Tiles 8x8) sur mon PC (i5 4670k, gtx 760) ça tourne à 50 fps. Pas la peine de faire ça sous GM..

_________________
‎<‎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
onilink_
Modérateur
avatar

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

MessageSujet: Re: Game Maker et la génération de map ? Optimisation ?   Mar 19 Aoû 2014 - 18:16

Y a moyen en utilisant des arrays pour gérer la collision map, mais sous GM c'est assez casse *******.

Le soucis des maps qui contiennent beaucoup d'objets en fait, c'est que l'algo de detection des collisions de GM doit parcourir toutes les instances pour chaque test.
Du coup si t'as 5000 instances, chaque place_meeting/place_freee&co va couter 5k iterations. Bref du o(n).

Par contre si t'utilise un array, t'as juste a vérifier sur les cases ou se situe l'objet, du coup c'est un nombre d'iterations constantes, et très faible, on note ça o(1).

Par contre, pour ça, faut que les "collisionneurs" soient fixe.
Si t'utilises des objets dynamique pour les solides ça deviens plus complexe et faut passer par des structures genre quadtree...

_________________
                 
Revenir en haut Aller en bas
Mamie Wawa
Très bonne participation


Messages : 112

MessageSujet: Re: Game Maker et la génération de map ? Optimisation ?   Mar 19 Aoû 2014 - 19:05

Donc en utilisant ces fameux array, ça fait quoi en gros ? Ça quadrille la map puis ça calcule les collisions juste de la case ou le mob se trouvent ?
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

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

MessageSujet: Re: Game Maker et la génération de map ? Optimisation ?   Mar 19 Aoû 2014 - 19:10

Oui en gros c'est comme une tile map sauf que ça indique juste si la case est libre ou non.
T'as un tuto sur le sdz qui expliquait ça, je sais pas s'il y est toujours mais c'était "theorie des collisions".

_________________
                 
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Game Maker et la génération de map ? Optimisation ?   

Revenir en haut Aller en bas
 
Game Maker et la génération de map ? Optimisation ?
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» EPOXIA ORAGIS, projet jeu de combat Game Maker
» Développez du iOS grâce à Game Maker Studio! (c'est pas gagné...)
» Un jeu de gestion sur Game Maker, est-ce possible ?
» Qualité graphique de Game Maker
» manuel game maker

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: