Wednesday, June 29, 2016

Level generation



Een van de irritante dingen aan het maken van games is de lange tijd die je steekt in het creëren van levels. Niet het designen per se, er zit natuurlijk een logica achter hoe een level in elkaar steekt. Hierboven zie je een plaatje met wat ik uiteindelijk heb gemaakt, ik geef een plaatje aan een script welke op de overeenkomende plaatsen objecten plaatst.

Het volgende is het script die ik heb geschreven om de wereld te bouwen;

Zoals je hier kan zien stop ik als eerst alle pixels in een array waarna ik Generate() uitvoer, deze loopt door alle pixels heen en vergelijkt de kleur, de verschillende kleuren komen overeen met andere variabelen waardoor herkend word welk object er op de locatie geplaatst moet worden.

Wanneer het een muur is word er nog een method gecalled, touchingForeign(). Hier word gekeken om de pixel heen of het niet tegen een andere muur staat, als het namelijk niet tegen een andere muur staat betekend het dat er een gat onstaat in het level dus word deze wel gespawned. Dit maakt het script ook iets efficienter omdat niet al het zwart in het design word gevuld met muren.

Op een later moment bedacht ik me dat het heel cool kon zijn als ik real-time om het level heen kon vliegen en muren, vloeren en misschien objecten kon plaatsen. Om deze reden worden alle gespawnede objecten geparent aan een container met spawnBlock(). Het kostte meer moeite dan ik er voor over had om het aan de praat te krijgen dus toen had ik dit project achtergelaten.

0 comments:

Post a Comment