AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Cartes Pokémon : la prochaine extension ...
Voir le deal

 

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

Aller en bas 
4 participants
AuteurMessage
Mamie Wawa
Très bonne participation



Messages : 112

Game Maker et la génération de map ? Optimisation ? Empty
MessageSujet: Game Maker et la génération de map ? Optimisation ?   Game Maker et la génération de map ? Optimisation ? EmptyMar 19 Aoû 2014 - 16: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 *****
Térence


Messages : 2213
Localisation : Oui

Game Maker et la génération de map ? Optimisation ? Empty
MessageSujet: Re: Game Maker et la génération de map ? Optimisation ?   Game Maker et la génération de map ? Optimisation ? EmptyMar 19 Aoû 2014 - 17: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 ****
Asu


Messages : 895

Game Maker et la génération de map ? Optimisation ? Empty
MessageSujet: Re: Game Maker et la génération de map ? Optimisation ?   Game Maker et la génération de map ? Optimisation ? EmptyMar 19 Aoû 2014 - 18: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
onilink_


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

Game Maker et la génération de map ? Optimisation ? Empty
MessageSujet: Re: Game Maker et la génération de map ? Optimisation ?   Game Maker et la génération de map ? Optimisation ? EmptyMar 19 Aoû 2014 - 20: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...

_________________
Game Maker et la génération de map ? Optimisation ? Runningpotato1Game Maker et la génération de map ? Optimisation ? TvF6GED Game Maker et la génération de map ? Optimisation ? MdetltS
Revenir en haut Aller en bas
Mamie Wawa
Très bonne participation



Messages : 112

Game Maker et la génération de map ? Optimisation ? Empty
MessageSujet: Re: Game Maker et la génération de map ? Optimisation ?   Game Maker et la génération de map ? Optimisation ? EmptyMar 19 Aoû 2014 - 21: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
onilink_


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

Game Maker et la génération de map ? Optimisation ? Empty
MessageSujet: Re: Game Maker et la génération de map ? Optimisation ?   Game Maker et la génération de map ? Optimisation ? EmptyMar 19 Aoû 2014 - 21: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".

_________________
Game Maker et la génération de map ? Optimisation ? Runningpotato1Game Maker et la génération de map ? Optimisation ? TvF6GED Game Maker et la génération de map ? Optimisation ? MdetltS
Revenir en haut Aller en bas
Contenu sponsorisé





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

Revenir en haut Aller en bas
 
Game Maker et la génération de map ? Optimisation ?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Optimisation génération de terrain (style terraria)
» game maker qui aime pas game maker -_-'
» Nu,Pogodi-Electronic mini game on Game Maker
» Appel à la communauté RPG Maker / Game Maker
» Game Maker et RPG 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: