Sto sempre lavorando su generazione procedurale e ho confrontato due script che all'apparenza dovrebbero avere la stessa velocità di esecuzione, ma in realtà uno "gira" a 9000fps (38000k di memoria usata), l'altro a 5000fps (18000k).
Codice: Seleziona tutto
// Il primo viene chiamato in questo modo
global.worldElevationSeed = sDS(global.worldElevation,255,50);
while(ds_grid_get_max(global.worldElevation, 0, 0, global.worldSize, global.worldSize) < 250) ||
(ds_grid_get_min(global.worldElevation, 0, 0, global.worldSize, global.worldSize) > 5){
global.worldElevationSeed = sDS(global.worldElevation,255,50);
// E restituisce string(random_get_seed());
Codice: Seleziona tutto
Il secondo viene chiamato in questo modo
sDS(global.worldElevation,global.worldSize +1,global.worldSize +1,elevationDispersion,elevationRoughness);
// E non restituisce niente: setta i valori di una griglia all'interno dello script (ds_grid_set(grid,i,j,value));
Giusto per curiosità, qualcuno sa dove si trova questa grossa differenza?