Minggu, 28 April 2013

[Game Design] Improving Frogger

Frogger adalah game tentang seekor katak yang ingin menyebrang jalan. Gameplaynya cukup sederhana, si katak bisa bergerak empat arah (kanan, kiri, atas, bawah) lalu ada jalan beberapa jalur yang perlu dilewati si katak untuk menyelesaikan level. Rintangan dalam game cukup sederhana, yaitu berbagai mobil dengan berbagai bentuk dan kecepatan, dan di level-level berikutnya rintangan bertambah bukan hanya jalan dan mobil tapi juga sungai dan bongkahan kayu. Gameplay akan berubah saat di sungai, karena kita bukannya menghindari objek-objek (yang rata-rata berbentuk kotak) yang bergerak tapi justru mengatur waktu untuk lompat ke atasnya, dan jika kita gagal dan mendarat di air, kita harus mengulang level yang bersangkutan.

Frogger

Oke, kita berhenti dulu sejenak, katak jatuh ke air dan game over? Sebenarnya bagian ini kurang masuk akal karena seekor katak akan dengan mudah berenang sampai tepian sungai satunya. Improvement? Mungkin kita buat karakter kataknya menggunakan tuxedo dan bermaksud menghadiri pesta mewah di kota. :)

Frog in a tuxedo

Selain versi klasik di console jadul, Frogger juga muncul di console terbaru seperti 3DS, berjudul Frogger 3D. Pada game ini gameplay Frogger sudah dikembangkan menjadi lebih banyak variasi. Pada video trailernya kita bisa melihat kalau ada bagian permainan di mana si katak sedang berada di atas mobil box dan harus menghindari papan petunjuk arah di jalan raya.

Pengembangan gameplay Frogger ini juga bisa ditemukan di dalam game Mass Effect, yaitu saat akan melakukan hacking. Dapat dilihat pada screenshot gamenya, konsep gameplay Frogger dimana pemain harus 'menyeberangi lalu lintas' untuk mencapai tujuan. 'Jalan' pada minigame ini dibuat melingkar, ini lebih menguntungkan untuk pemain karena pemain dapat melakukan timing dan dapat menebak kapan jalur kosong akan terbentuk. Kelebihan lainnya adalah pemain tidak akan merasa dicurangi algoritma random karena dia dapat melihat semua pergerakan rintangannya, berbeda jika rintangan muncul dari luar layar seperti pada game Frogger yang asli, pemain hanya bisa menebak kira-kira akan muncul rintangan dari mana. Satu kelebihan lain dengan gameplay dengan rintangan melingkar seperti ini adalah pemain lebih condong berstrategi dengan mempertimbangkan gerakan dan kecepatan rintangan daripada bergantung pada reaksi/refleks saat ada rintangan yang bergerak.  

modern frogger

Adakah game lain yang menggunakan konsep Frogger yang kamu tahu? Tulis di komentar ya!

Senin, 15 April 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?

 

Senin, 08 April 2013

[Game Design] Improving Pipe Dreams

Pipe Dreams adalah game klasik dimana kita harus menghubungkan sumber air dan drainase dengan cara membuat jalur pipa yang menghubungkan kedua tersebut.

Classic Pipe Dreams

Kita akan mendapat point yang lebih besar semakin panjang jalur pipa yang bisa kita buat. Untuk membuat jalur, kita hanya bisa memilih dari beberapa potongan pipa acak yang tersedia. Pada game versi klasik, air akan mengalir secara real time di saat yang bersamaan dengan kita menyusun jalur pipa.

Tingkat kesulitan pada game ini diatur dengan cara mengatur peluang kemunculan beberapa jenis potongan. Pada tingkat kesulitan yang mudah, potongan pipa berbentuk plus (+) akan lebih sering muncul dibandingkan pada tingkat kesulitan yang lebih sulit. Satu komponen lain untuk mengatur kesulitan adalah waktu yang tersedia untuk pemain dalam membuat jalur pipa, dalam hal ini adalah kecepatan air mengalir. Pengaturan tingkat kesulitan yang serupa juga dilakukan pada game tetris, yaitu dengan mengatur peluang munculnya balok lurus (|) dan mengatur kecepatan balok-balok bergerak ke bawah.

Pengembangan untuk gameplay Pipe Dreams ini bisa dilakukan dengan beberapa cara, dan beberapa sudah diimplementasi pada game lain.

Rocket Mania

Pada game Rocket Mania, kita juga membuat sebuah jalur dari titik awal ke titik akhir, namun dalam game ini kita membuat jalur untuk api, dan titik awal dan akhirnya lebih dari satu. Perbedaan utama dari game Pipe Dreams adalah untuk membuat jalur, kita tidak meletakkan potongan baru, tapi memutar potongan yang sudah ada di area permainan. Lalu saat sebuah jalur sudah dinyalakan, jalur tersebut akan menjadi kosong dan akan terisi oleh potongan yang ada di atasnya. Lalu akan muncul beberapa potongan acak lain dari atas area permainan untuk mengisi sisa tempat kosong di area permainan.

Tambahan berikutnya pada Rocket Mania adalah adanya combo jika saat potongan turun tercipta jalur baru dan jalur tersebut langsung menyala. Aspek ini bahkan dapat membuat pemain yang sudah mahir dapat memasukkan komponen combo ini menjadi bagian dari strategi permainan, dengan sengaja membuat lebih dari satu jalur yang dapat menyala dalam suatu combo untuk mendapatkan poin lebih besar lagi.

Pengaturan tingkat kesulitan pada gameplay ini kurang lebih sama dengan pada gameplay klasiknya, namun satu hal yang perlu diingat adalah perlunya sebuah algoritma untuk mendeteksi apakah sebuah konfigurasi potongan-potongan pada area permainan dapat membuat sebuah jalur atau tidak. Jika tidak mungkin terbentuk sebuah jalur, kita harus memberi pemain satu set potongan-potongan yang baru dan acak (dan dipastikan bisa tercipta jalur).

Pengembangan terakhir yang bisa dilakukan adalah dengan membuat pemain bukan memutar potongan pipa, tapi menukarnya dengan potongan pipa di sampingnya (atas, bawah, kiri, atau kanan). Untuk game seperti ini saya belum menemukan contohnya, tapi lebih terinspirasi pada tipikal game match three seperti Bejeweled.

Oke, pengembangan yang bisa saya lakukan hanya sejauh ini. Apakah kamu masih punya ide bagaimana mengembangkan game play Pipe Dreams ini? Game design manakah yang menurut kamu paling menarik untuk dimainkan? Silahkan tulis di komentar :D