Jumat, 18 Maret 2016

Menganalisis Permainan Game Online ( Tower Defense)


Tower Defense adalah jenis permainan yang dibuat untuk mengasah kemampuan logika. Dalam permainan ini pemilihan penyimpanan tower dianggap krusial dan sangat penting untuk diperhatikan, karena tower memiliki radius serangan tertentu (AOE, Area Of Effect ). Strategi penempatan tower adalah hal yang perlu dilakukan untuk mendapatkan skor yang maksimal.

Cara bermain dari game ini yakni pemain mencoba menghentikan musuh yang melintasi suatu jalan tertentu dengan tower/bangunan yang dapat menyerang. Tower dapat menyerang musuh dengan kemampuan beragam dan biaya yang berbeda. Ketika tower mengalahkan salah satu musuh dari wave, akan mendapatkan gold/uang dan skor. Gold atau uang pada Tower defense dapat digunakan untuk membeli tower baru, upgrade tower, atau membeli hal lain sesuai fitur dari Tower defense yang dimainkan.



Contoh game tower defense

Algoritma yang diterapkan pada permainan ini adalah Algoritma greedy. Algoritma greedy merupakan metode yang paling popular untuk memecahkan persoalan optimisasi. Prinsip utama dari algoritma greedy adalah “ take what you can get now! ” dengan cara membentuk solusi langkah perlangkah (step ny step). pada setiap langkahnya, algoritma greedy mengambil keputusan berdasarkan nilai terbaik (minimasi dan maksimasi) tanpa mengambil konsekuensi langkah dan pilihan di depan (langkah selanjutnya).
Elemen-elemen algoritma greedy:
            1. Himpunan kandidat.
            2. Himpunan solusi.
            3. Fungsi seleksi (selection function).
            4. Fungsi kelayakan (feasible).
            5. Fungsi obyektif.

Dan yang harus diperhatikan pada permainan Tower Defense ini adalah kita harus mampu mengeliminasi atau membunuh musuh yang melintas semaksimal mungkin dengan membangun tower di tempat yang strategis dan memiliki jangkauan serangan yang besar terhadap jalur musuh. Dengan persoalan harus membunuh sebanyak mungkin musuh, maka diperlukan penempatan tower yang strategis karena total tower yang bisa disimpan terbatas dengan persediaan gold/uang yang ada. Dalam persoalan ini Algoritma Greedy dapat digunakan untuk penyelesaian masalah.
         
   Algoritma Greedy dapat menempatkan tower pada lokasi optimum dengan radius yang efektif untuk membunuh musuh dengan tujuan memperoleh skor maksimal.
Elemen Algoritma Greedy pada simulasi tower defense ini :
o   Himpunan kandidat, himpunan titik-titik pada Battleground atau pada peta tower defense
o   Fungsi Seleksi, memilih titik yang sesuai pada Battleground. Titik yang dipilih adalah titik yang memiliki AOE (area yang memungkinkan bisa dilakukan serangan) paling besar.
o   Fungsi Kelayakan, untuk mengecek apakah suatu titik dapat dibangun tower atau tidak. Titik dapat dibangun tower jika tidak terdapat tower lain dan tidak berada pada wave path dan limit tower yang bisa dibangun (sesuai dengan jumlah gold/uang yang dimiliki).
o   Fungsi Objektif, untuk memaksimalkan skor dengan memperoleh AOE sebesar mungkin untuk memungkinkan tower dapat menyerang musuh.
o   Himpunan Solusi , himpunan titik yang merupakan tempat strategis tower dapat dibangun.


Algoritma untuk mendapatkan titik himpunan solusi :
o   Mengambil titik-titik pada peta yang memenuhi fungsi kelayakan (dapat dibangun tower) dengan fungsi generateArea dan memberikan nilai representasi tiap titik.

0, representasi dari wilayah yang dapat dibangun tower
9, representasi dari wave path dan tidak dapat dibangun tower
1, representasi dari bangunan tower yang sudah dibuat dan tidak bisa dibangun tower kembali

Dapat diambil himpunan titik layak bangun dengan fungsi makeEnable yaitu fungsi untuk mengambil area manakah yang bias dibangun tower atau area manakah yang memiliki nilai ‘0’ pada list atau array battleground.

T={{1,A},{1,H},{1,I},{1,J},{2,A},{2,C},{2,D},{2,E},{2,F},{2,H},{2,I},{2,J},{3,A},{3,C},{3,D},{3,H},{4,A},{4,C},{4,D},{4,F},{4,G},{4,H},{4,J},{5,A},{5,C},{5,D},{5,J},{6,A},{6,D},{6,E},{6,F},{6,G},{6,H},{6,I},{6,J},{7,A},{7,B},{7,E},{7,F},{7,G},{7,H},{7,I},{7,J},{8,A},{8,B},{8,C},{8,F},{8,G},{9,A},{9,B},{9,C},{9,D},{9,I},{9,J},{10,A},{10,B},{10,C},{10,D},{10,E},{10,F},{10,G},{10,H},{10,I},{10,J}}

o   Pada array T[10][10] atau himpunan titik T dapat dicari radius tower paling besar dengan fungsi findMaxAoe, dan return/feedback dari fungsi findMaxAoe adalah titik yang memiliki radius AOE paling besar sesuai dengan algoritma greedy yang bersifat take what you can get now!.
Proses pencarian titik dengan AOE terbesar adalah mencari titik dengan nilai ‘9’ yang merepresentasikan jalur musuh paling banyak.
Pada langkah ini didapatkan titik layak bangun pertama adalah (2,F) dengan area terbesar 7 titik. Dan tower dibangun pada titik yang telah ditemukan dengan procedure buildTower.

o   Proses pembangunan tower dapat dilakukan dengan cara mengubah nilai representasi pada titik yang akan dibangun dengan nilai ‘1’ yang merepresentasikan bahwa di titik tersebut terdapat tower dan tidak dapat dibangun tower kembali. Dan nilai ‘2’ pada AOE titik tower tersebut untuk mengantisipasi adanya tower yang dibangun di sekitarnya padahal daerah tersebut sudah di handle oleh tower yang sudah dibangun (Karena Tower dibangun dengan melihat nilai ‘9’ pada battleground).

Sumber :
Prasetiya, Taufik. (2011). Penggunaan Algoritma Greedy Dalam Permainan
Warcraft III Tower Defense. (Online)
Tersedia: http://informatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2011-2012/Makalah2011/MakalahIF3051-2011-065.pdf
 (4 Maret 2013)

M, Irsyad Arif. (2010). Penerapan Perilaku Cerdas Pada Obyek di dalam Game Flash Tower Defense. (Online)
Tersedia: http://digilib.its.ac.id/public/ITS-Undergraduate-17655-Presentation.pdf
(4 Maret 2013)