Tuesday, April 16, 2013

[Game Design] Improving Minesweeper

Minesweeper adalah salah satu game klasik yang populer karena by default terinstall di beberapa versi Windows. Game ini memiliki gameplay yang khas, dimana pemain harus bisa menemukan bom berdasarkan petunjuk-petunjuk pada area permainan. Tiap petunjuk memberi tahu pemain ada berapa bom di sekitar kotak yang bersangkutan.

Minesweeper klasik

Untuk membuat minesweeper sebenarnya cukup sederhana, karena kita cukup membuat data array yang berisi kode bom atau nilai petunjuk, tapi ada beberapa hal yang menarik yang perlu diperhatikan jika kita ingin membuat ulang game minesweeper ini:

  • Saat mengacak posisi bom, pastikan tidak ada bom yang menumpuk di satu kotak yang sama, karena akan menghasilkan jumlah bom yang berbeda dengan target pada suatu level
  • Untuk menghitung nilai-nilai petunjuk jumlah bom di tiap kotak, daripada kita loop menggunakan nested loop untuk setiap kotak (dan untuk setiap kotak tersebut kita periksa 8 kotak tetangganya), akan jauh lebih cepat jika kita loop berdasarkan jumlah bom lalu tiap kotak tetangga dari bom itu nilai petunjukknya ditambahkan
  • Implementasi untuk fitur combo atau chain reaction yang terjadi saat seorang pemain membuka sebuah kotak kosong perlu dibuat dengan hati-hati, jangan menggunakan rekursif karena beresiko menghabiskan memory pada mobile game. Buatlah dengan menggunakan iterasi terhadap list daftar kotak yang perlu kita buka, setiap 'rekursi', kita cukup menambahkan kotak-kotak yang perlu dibuka ke daftar kotak tersebut. Hal ini juga akan mencegah kita membuka kotak yang sudah terbuka dan menghemat proses dalam algoritma tersebut.

Hal-hal di atas saya pelajari saat mencoba membuat ulang minesweeper dalam suatu event workshop. Moral of the story: Bahkan dalam game klasik seperti Minesweeper tetap ada hal menarik yang bisa kita pelajari :D

Apa yang bisa kita lakukan untuk mengembangkan gameplay minesweeper? Sudah ada beberapa contoh pengembangan minesweeper, dan kurang lebih ada dua kategori besar:

  1. Mengembangkan dari bentuk tile/grid pada minesweeper
    Bentuk dasar tile pada minesweeper adalah kotak, sehingga jumlah maksimum tetangga yang bisa dimiliki adalah 8. Dengan mengubah bentuk tile menjadi bentuk lain, kita bisa mengubah jumlah tetangga yang dimiliki sebuah tile. Contohnya adalah dengan mengubah jadi segitiga dengan jumlah tetangga 3, atau segi enam dengan jumlah tetangga 6 (hanya tetangga yang menempel).
     
  2. Mengembangkan gameplay dengan tema lain
    Contohnya Mamono Sweeper, game ini mengembangkan minesweeper dengan memasukan karakteristik game RPG, dimana kita memiliki karakter yang memulai dari level 1 dan akan meningkat berdasarkan jumlah musuh yang kita kalahkan. Musuh menggantikan peran bom, dan bedanya musuh di sini memiliki level, semakin tinggi level musuh semakin sulit kita kalahkan. Musuh dengan level seperti ini mirip dengan contoh lain dimana dalam satu kotak bisa terdapat lebih dari satu bom.

Pengembangan mana kah yang menurut kalian paling menarik?

 

No comments:

Post a Comment