Proceduralno generiranje odprtih svetov v videoigrah je eden od ključnih izzivov za razvoj igre, saj nam omogoči ustvarjanje unikatnih in dinamičnih okolij, za katera ni potrebno ročno ustvarjanje okolice. To nam sprosti čas razvijanja, ki ga lahko usmerimo v druge dele igre, prav tako pa lahko ustvarimo neskončne svetove brez omejitev. Naš problem je razviti sistem proceduralne generacije, ki nam zagotavlja unikaten in razgiban teren ter ni prezahteven.
Cilj te diplomske naloge je bil razviti sistem za proceduralno generiranje neskončnega sveta v 3D okolju z uporabo voksel elementov v programskem okolju Unity. Da smo naš cilj dosegli, smo uporabili programski jezik C# in algoritem Perlinov šum ter kosovno generacijo, ki nam je omogočila optimizacijo sistema.
V okviru diplomske naloge smo implementirali različne dele sistema, s katerimi smo dosegli naše cilje. Uspešno smo implementirali generacijo terena, različne biome in optimizacijo sistema. Rezultat tega je učinkovito ustvarjanje unikatnega terena z visoko stopnjo prilagodljivosti in nizko obremenitvijo sistema.
Dodana vrednost raziskave je ta, da nam naš sistem ponuja prilagodljiv in razširljiv sistem za proceduralno generacijo sveta, ki ga lahko uporabimo za nadaljnje razvijanje naše igre. V primerjavi z že obstoječimi rešitvami nam omogoča modularnost, je bolj optimiziran, prav tako pa nam omogoča zelo podrobno prilagajanje glede na naše želje.Procedural generation of open worlds in videogames is one of the main challanges in game development, as it allows us to create uniqe and dynamic environments that don’t require manual environment creation, this frees up development time which we can devote to other parts of our game, and allows us to create infinite worlds without limitations. Our goal is to develop a procedural generation system which provides us with unique and varied terrains and is not too complex.
The aim of this thesis was to develop a system for procedural generation of infinite worlds in a 3D environment using voxel elements in the Unity programming environment. To achieve this goal, we used the C# programming language, the Perlin noise algorithm and chunk generation, which allows us to optimise the system.
Within the scope of this thesis, we implemented different solutions for out system. We have successfully implemented terrain generation, various biomes and system optimization. Thus, we achieved efficient generation of unique terrains with a high degree of flexibility and a low system load.
The added value of our research is that out system provides us with a scalable and extensible procedural world generation system which we can use to further develop our game. Compared to existing solutions, it allows us to customize it in detail according to out preferences