Procedural Content Generation adalah teknik dimana computer yang bertugas untuk membuat  konten yang dinikmati oleh pemain. Sebutlah dungeon, level, peta, musik, gambar dan cerita. Pada artikel ini kita akan membahas teknik membuat konten level menggunakan state machine dan grammar. Berbeda dengan teknik yang mengandalkan Perlin Noise, grammar yang akan dibahas pada artikel ini akan membuat level yang dibuat semakin rapi berdasarkan kaidah game yang akan dibuat.

 

Pertama, artikel ini akan menyampaikan disclaimer terlebih dahulu dikarenakan game sendiri genre dan jenisnya sangat beragam dengan berbagai tipe fun yang ditawarkan. Sehingga ada kalanya teknik Perlin Noise cocok dipakai pada game A, tetapi mungkin tidak cocok dipakai di game B. Begitu juga dengan teknik yang dibahas sekarang. Teknik ini lebih diperuntukkan untuk jenis misi atau quest yang mirip dengan seri game Zelda.

Gambar 1 Layout Level pada game Zelda versi lama (diambil dari https://www.zeldadungeon.net/Zelda01/Walkthrough/02/Map-1.png)

Gambar 2 Iterasi terbaru seri Zelda, Breath of the Wild. Walaupun ada peningkatan grafis yang signifikan tetapi inti permainan tetap pada explorasi lingkungan. (Sumber : pcmag.com)

Teknik ini sendiri dikembangkan oleh Joris Dormans dan koleganya, beliau adalah seorang akademisi sekaligus praktisi di bidang pengembangan game dengan teorinya yang dikenal dengan Machination. Berdasarkan paper yang ditulis oleh Joris Dormans dkk, teknik ini merupakan pengembangan lanjutan dari graph grammar. Yaitu sebuah grammar yang akan memproduksi graf. Terdapat dua intisari dari teknik ini yaitu, grammar untuk menggenerasi misi dan grammar yang dipakai untuk menggenerasi ruang[1].

Gambar 3 Contoh graf misi, dengan S menunjukkan lokasi awal, G lokasi akhir yang harus dituju dan T adalah task atau tantangan yang perlu diselesaikan pemain.[1]

Gambar 4 Contoh aktualiasi shape grammar, hijau menandakan jalan/rute yang ditempuh sedangkan hijau tua adalah detil ruang dan biru adalah pintu yang terkunci [1]

Secara umum alur dari teknik ini adalah sebagai berikut, pertama algoritma akan membuat graph misi yang dihasilkan melalui grammar misi, kemudian graph misi ini akan diaktuasi menjadi graph ruang. Terakhir dari graph ruang yang dihasilkan akan diaktuasi menjadi level yang sesungguhnya di dalam game. Perlu diingat bagi Binusian yang tertarik mengimplementasi teknik ini, teknik graph dan grammar yang dijelaskan ini khusus untuk game yang memiliki karakteristik mirip dengan seri Zelda. Jika Binusian ingin mengimplementasikan ini ke game yang karakteristiknya berbeda, perlu ada penyesuaian yang cukup signifikan, misalnya jika kita ingin mengimplementasikan teknik ini kedalam game dengan genre RTS (Real Time Strategy).

 

Referensi

[1]        J. Dormans and S. Bakkes, “Generating missions and spaces for adaptable play experiences,” IEEE Trans. Comput. Intell. AI Games, vol. 3, no. 3, pp. 216–228, 2011.