Wednesday, April 25, 2012

GAME ALGORITHMS

Ketika bermain othello, demikian juga permainan-permainan lain seperti catur, shogi, igo dll., kita manusia berpikir dengan menggabungkan intuisi yang menggunakan perasaan dan perhitungan yang menggunakan otak. 

Pada sebuah posisi papan othello tertentu, mula-mula intuisi kita akan segera mengenali pola susunan keping di saat itu, ini adalah kemampuan pattern recognition yang inheren dimiliki oleh setiap manusia. Beberapa langkah yang jelas-jelas buruk atau 'dianggap' buruk segera dapat dikenali dan dihilangkan dari daftar langkah yang mungkin dilakukan (disebut possible moveslegal moves atau valid moves). Setelah itu barulah kita menghitung langkah-langkah sisanya yang 'terlihat' baik, dengan melakukan simulasi permainan di dalam kepala kita untuk setiap langkah, kemudian membandingkan untung-ruginya untuk menentukan langkah terbaik.

Misalnya di dalam sebuah posisi papan, ada 10 valid moves. Mula-mula intuisi kita akan menghapus 3 langkah yang jelas-jelas buruk, lalu 2 langkah lagi yang 'kelihatannya' buruk, dari daftar valid moves. Dengan demikian, hanya tinggal tersisa 5 langkah yang perlu diperhitungkan. Di sini, barulah kita melakukan simulasi permainan, ketika langkah 1 dilakukan maka lawan akan menjawab dengan langkah 1-1, 1-2, 1-3, ... Kalau kita melangkah dengan langkah 2 maka lawan akan menjawab dengan langkah 2-1, 2-2, 2-3, ... dst, sampai beberapa langkah ke depan (kedalaman tertentu) tergantung daya ingat kita.

Di sinipun intuisi manusia selalu berperan besar dalam mengenali pola-pola yang muncul di setiap kedalaman simulasi permainan untuk menghilangkan langkah-langkah yang 'dianggap' buruk dari perhitungan. Sehingga kita manusia dapat memilih hanya satu atau dua langkah tertentu saja yang 'dianggap' baik untuk ditelusuri sampai kedalaman cukup jauh, sementara langkah-langkah lain yang 'dianggap' tidak menjanjikan hanya diperhitungkan seperlunya saja. Dari hasil simulasi ini, kita membandingkan untung-rugi setiap langkah yang disimulasikan, dan menentukan langkah mana yang terbaik.

Komputer berpikir hanya dengan perhitungan

Nah.. di sisi lain, berbeda dengan manusia, komputer tidak mempunyai intuisi yang menggunakan perasaan. Sebagai gantinya, komputer mempunyai daya perhitungan yang jauh lebih besar daripada manusia. Ketika diberikan sebuah posisi papan othello tertentu, sama seperti manusia komputer juga melakukan perhitungan simulasi permainan untuk valid moves yang tersedia. Tetapi berbeda dengan manusia, dia tidak mempunyai intuisi untuk mengenali langkah-langkah yang jelas-jelas buruk lalu menghilangkannya dari daftar perhitungan. Sehingga komputer harus memperhitungkan semua valid moves, di sinilah daya perhitungan yang besar sangat diperlukan.

Pada dasarnya ketika diberikan sebuah susunan posisi papan tertentu, komputer menghitung nilai posisi tersebut menggunakan fitur-fitur yang dijelaskan pada artikel Strategi bermain othello, seperti jumlah keping, penguasaan sudut/x-quare/c-square, jumlah keping stabil, mobility, jumlah keping tepi, parity, dan pola sisi/sudut. Di setiap posisi papan yang sedang dipertimbangkan, mula-mula komputer menghitung nilai dari setiap fitur. Misalnya ketika dilakukan simulasi langkah 1, maka jumlah keping (discs) ada 30, sudut yang dikuasai (corners) ada 2, jumlah keping stabil (stables) ada 5, mobility ada 15, jumlah keping tepi (frontiers) ada 10, parity yang dimenangkan ada 3, dan nilai pola sisi/sudut (pattern) adalah 20.

Selanjutnya nilai dari masing-masing fitur ini digabungkan secara linier dengan bobot-bobot tertentu yang dianggap tepat. Misalnya nilai total dari posisi papan ini adalah:

score = w_d * discs + w_c * corners + w_s * stables + w_m * mobility + w_f * frontiers + w_p * parity + w_t * pattern
= -3 * 30 + 5 * 2 + 9 * 5 + 7 * 15 - 5 * 10 + 8 * 3 + 6 * 20
= 164

Dengan asumsi bahwa bobot-bobot untuk setiap fitur yang dianggap tepat adalah:

w_d = -3 (bobot untuk discs)
w_c = 5 (bobot untuk corners)
w_s = 9 (bobot untuk stables)
w_m = 7 (bobot untuk mobility)
w_f = -5 (bobot untuk frontiers)
w_p = 8 (bobot untuk parity)
w_t = 6 (bobot untuk pattern)

Ini adalah nilai papan untuk simulasi langkah 1. Berikutnya dilakukan simulasi untuk langkah 2, dihitung lagi berapa nilainya, langkah 3 berapa nilainya.. dst. Dan ini baru berpikir sampai kedalaman satu, disebut juga 1-ply dalam istilah kecerdasan buatan untuk permainan komputer. Untuk berpikir sampai kedalaman 2, maka di setiap posisi papan (hasil simulasi kedalaman 1) belum dihitung dulu nilainya, tetapi harus dilakukan lagi simulasi kedalaman 2 untuk setiap langkah di posisi tersebut, baru kemudian dilakukan perhitungan di atas.

Jadi kalau di kedalaman 1 ada 3 valid moves, yang membawa ke 3 posisi papan berbeda, dan di setiap posisi papan rata-rata ada 3 valid moves yang dimiliki lawan kita, maka untuk berpikir sampai kedalaman 2 kita perlu memperhitungkan sebanyak 3 x 3 = 9 posisi papan. Tetapi rata-rata jumlah valid moves pada othello diperkirakan sekitar 8, sehingga 'berpikir' sampai kedalaman 2 perlu menghitung 8^2 = 64 posisi, kedalaman 3 perlu 8^3 = 512 posisi.. dan kedalaman 10 perlu menghitung lebih dari 1 milyar posisi!

Algoritma Minimax

Untuk melakukan perhitungan simulasi permainan inilah, digunakan algoritma standar di dalam bidang kecerdasan buatan (artificial intelligence, AI) yang sudah dikembangkan sejak lama, yaitu Game Theory, terutama algoritma yang disebut Minimax. Sesuai namanya, algoritma minimax adalah aturan untuk permainan zero-sum 2 pemain, yang berusaha meminimalkan kemungkinan kalah sambil memaksimalkan kemungkinan menang untuk pemain yang akan melangkah.

Di kedalaman 1 (dan kedalaman ganjil lainya), posisi papan akan menentukan nilai untuk pemain yang akan melangkah saat ini (current player), sehingga di kedalaman ganjil ini algoritma minimax memilih langkah bernilai maksimal sebagai langkah terbaik. Sebaliknya di kedalaman 2 (dan kedalaman genap lainnya), posisi papan akan menentukan nilai untuk pemain lawan yang akan melangkah berikutnya (opponent player), sehingga di kedalaman genap ini algoritma minimax memilih langkah bernilai minimal sebagai langkah terbaik.

Sebagai ilustrasi sampai kedalaman dua bisa digambarkan dengan tabel berikut:

B memilih B1
B memilih B2
B memilih B3
A memilih A1
+3
−2
+2
A memilih A2
−1
0
+4
A memilih A3
−4
−3
+1

Ketika A memilih langkah A1 dilanjutkan dengan B memilih langkah B1, posisi papan yang terbentuk bernilai +3. Demikian pula untuk A1 → B2 nilainya -2, A1 → B3 nilainya +2 dst. Sekarang mari kita coba aplikasikan algoritma minimax untuk menghitung langkah terbaik bagi pemain A.

Terhadap langkah A1 (kedalaman 1) misalnya valid moves pemain B adalah B1, B2 dan B3 (kedalaman 2), dan langkah terbaik menurut algoritma minimax didapat dengan mencari langkah bernilai minimal (karena di kedalaman 2), yaitu B2 (bernilai -2). Demikian pula terhadap langkah A2 yang terbaik bagi B adalah B1 (bernilai -1), dan terhadap A3 adalah B1 juga (bernilai -4). Selanjutnya, nilai untuk langkah pemain A (kedalaman 1) adalah nilai yang 'dikembalikan' dari pemain B di kedalaman 2, yaitu A1 adalah -2, A2 adalah -1, dan A3 adalah -4. Kemudian untuk kedalaman 1 ini algoritma minimax mencari nilai maksimal sebagai langkah terbaik, yaitu A2 (bernilai -1).


Untuk kedalaman lebih dari dua, cara 'berpikir' algoritma minimax dapat digambarkan sebagai pohon permainan (game tree) seperti pada gambar di atas. Di lokasi paling dalam (disebut lokasi node daun atau leaf node), dalam hal ini kedalaman 4, dilakukanlah perhitungan nilai posisi papan yang selanjutnya 'dikembalikan' ke node pada kedalaman di atasnya terus hingga sampai lokasi paling atas (di sebut akar atau root). Panah merah menunjukkan nilai yang dikembalikan dari langkah terbaik pilihan algoritma minimax ke kedalaman di atasnya. Demikianlah, kita dapat melihat algoritma minimax bergantian memilih langkah dengan nilai minimal dan maksimal sebagai langkah terbaik sesuai dengan kedalamannya. Dengan algoritma ini komputer dapat 'berpikir' sampai kedalaman tertentu untuk menentukan langkah terbaik untuk memenangkan permainan.

Tetapi pada prakteknya, algoritma minimax kini tidak pernah digunakan lagi, karena algoritma ini harus memperhitungkan semua valid moves, sehingga memerlukan waktu yang sangat lama. Sebagai gantinya telah dikembangkan beberapa improvisasi dari minimax seperti algoritma AlphaBeta, NegaScout dll. yang dapat melakukan pemangkasan game tree supaya tidak perlu memperhitungkan semua valid moves, sehingga dapat 'berpikir' dalam waktu jauh lebih cepat.

Monday, April 9, 2012

Analisa Game Point Blank Online

Sejarah Point Blank Online – PB, ya itulah nama singkat yang popular untuk game online point blank. Sekarang ini permainan komputer ber-genre FPS yang dimainkan secara online ini (Point Blank Online) sangat digemari masyarakat dunia, mulai dari kalangan anak-anak, remaja dan bahkan orang tua. Dalam catatan sejarah, asal usul permainan PB atau Point Blank dipublikasikan oleh NCSoft yang dikembangkan oleh Zepetto dari Kore Selatan. Selain Korea Selatan, permainan point blank mempunyai server sendiri di Thailand, Rusia, dan Indonesia. Di Indonesia sendiri game point blank dikelola oleh PT. Kreon melalui Gemscool. Point Blank berkisah tentang perseteruan antara Free Rebels dan pemerintah yang dalam hal ini adalah Counter Terrorist Force(CT-Force). Nah bagi para penggemar Game Online Point Blank, ada beberapa point penting yang perlu Anda ketahui / pelajari  dalam asal usul sejarah Point Blank Online

Latar Belakang Permainan

1. Terbentuknya Free Rebels
Semakin bertambahnya imigran yang tidak mendapatkan pekerjaan dan terusir dari masyarakat, sehingga untuk bertahan hidup para imigran kemudian melakukan berbagai macam tindak kriminal dari perampokan hingga pengedaran obat-obatan terlarang. Aksi kriminal ini berkembang menjadi gerakan yang teroganisir hingga terbentuk organisasi yang dinamakan Free Rebels. Tujuannya tidak lain untuk menguasai seluruh perdagangan obat terlarang dan senjata di seluruh dunia serta menciptakan rasa takut bagi masyarakat.

2. Terbentuknya CT-FORCE
Akibat konflik dengan imigran yang semakin meluas, pemerintah memutuskan dibentuk suatu organisasi khusus untuk menghadapi para teroris.Sejak dibentuknya organisasi ini, mereka mulai mencari informasi dan keberadaan dari organisasi teroris yang dinamakan Free Rebels. Sejalan dengan meningkatnya ancaman teroris tersebut, pemerintah kemudian mengirimkan bantuan pasukan terbaik yang pernah ada di pemerintahan yang kemudian datang dan bergabung serta berganti nama menjadi CT-FORCE (Counter Terrorist Force)

Model Permainan Point Blank Online
Point Blank memiliki 7 mode permainan, yaitu:
1. Death Match: Bunuh pemain musuh hingga skor tim-mu mencapai nilai yang ditentukan atau berusahalah menjadi tim dengan skor terbanyak saat waktu permainan habis.
2. Bomb Mission: Tujuan tim Free Rebels adalah untuk meledakkan area yang disebut bombsite dengan C4, sementara tujuan tim CT-Force adalah mencegah tim Free Rebels meledakkan bombsite.
3. Destroy Mission: Hancurkan objek yang menjadi target dalam mode ini.
4. Eliminate: Habisi semua musuh yang ada untuk memenangkan ronde.
5. AI Mode: Dalam mode ini, para pemain diharuskan untuk melawan musuh yang dikendalikan oleh komputer (AI). Mode AI terdiri dari Level 1 hingga Level 10, dimana semakin tinggi levelnya, semakin tinggi pula tingkat kesulitan musuh AI. Mode ini telah dihapus dari Point Blank Indonesia karena ada bug yang membuat experience dan point yang seharusnya tidak didapat bisa didapat.
6. Shotgun Mode: Hanya senjata tipe shotgun saja yang dapat digunakan dalam mode ini.
7. Sniper Mode: Hanya senjata tipe sniper rifle saja yang dapat digunakan dalam mode ini.

Senjata Point Blank Online
Point Blank memiliki banyak variasi senjata yang bisa digunakan, yang terdiri dari:
1. Assault Rifle
1. K-2
2. AK-47
3. F2000
4. SG 550
5. M4A1
6. SG 550 Special
7. G36C
8. AUG A3
9. AK SOPMOD
10. AK SOPMOD King Cobra (belum dirilis di Indonesia)
11. K-201 (belum dirilis di Indonesia)
2. Submachine Gun
1. K-1
2. MP7
3. MP5K
4. Spectre
5. UMP45
6. MP5K Gold
7. Spectre Wood
8. P90
9. Kriss Super V
10. P90 Matrix Custom
3. Handgun
1. K-5
2. Mk.23
3. Glock 18
4. Desert Eagle
5. P99 & HAK
6. Colt Phyton
7. Dual Handgun
8. Dual Desert Eagle
4. Melee
1. M7
2. Dual Knife
3. Amok Kukri
4. Mini Axe
5. Combat Machete
5. Shotgun
1. 870 MCS
2. 870 MCS Wood
3. SPAS 15
4. M1887
6. Machine Gun
1. Mk.46
2. M197 (terdapat dalam helikopter di map “Helispot” dan “Outpost”)
7. Sniper Rifle
1. SSG-69
2. SSG-69 Special
3. PSG1
4. PSG1 Special
5. Dragunov
6. Dragunov Gold
7. Dragunov King Cobra
8. L115A1
8. Grenade
1. K-400
2. K-413 Dual Grenade
3. C5
4. C4 (hanya terdapat di Bomb Mission)
9. Special
1. Smoke
2. White Phosphorus Smoke
3. Flashbang
10. Senjata lain
1. RPG7 (Terdapat di map “Outpost” dan map “Helispot”)

Kebanyakan senjata memiliki “extension” yang dapat digunakan dengan klik kanan mouse atau tombol B. Extension sebuah senjata bervariasi tergantung dari senjata yang digunakan, mulai dari teropong optik, dot sight, hingga peredam suara. Ada beberapa senjata yang hanya bisa didapatkan melalui “Supply Kit”, yaitu M4A1 Custom dan Rangemaster.

Karakter Permainan Game PB
Point Blank memiliki total 8 karakter yang dibagi ke 4 karakter untuk masing-masing tim.
CT-Force
1. Acid Pool (Paul) – Lulus sebagai polisi terbaik dari University of Elite Police dan mempunyai pembawaan yang cool. Akan tetapi karena gaya bicaranya yang lucu maka dia diberikan nickname “Acid Pool” oleh teman-temannya Setelah lulus dia kemudian mendaftar untuk menjadi polisi. Karena mempunyai kemampuan yang tinggi dan selalu memiliki taktik yang baik, dia kemudian ditugaskan untuk bergabung dengan CT-FORCE. Untuk membuktikan loyalitas dan kepercayaanya kepada pemerintah, dia siap untuk melawan Free Rebels yang semakin merajalela.
2. Keen Eyes (Ayse) – Merupakan keturunan campuran antara penduduk asli dan pendatang. Dia mempunyai kemampuan yang tinggi dan merupakan salah satu pimpinan dari kepolisian. Karena alasan ini CT-FORCE berniat untuk mengajaknya bergabung. Karena merupakan keturunan campuran dan memiliki mata yang tajam maka teman-temannya menjulukinya “Keen Eyes”. Merupakan satu-satunya keturunan campuran di kepolisian.
3. Leopard - Pada usia 17 tahun dia melakukan imigrasi ke United States bersama dengan seluruh keluarganya. Karena merupakan keturunan Asia dia selalu diganggu oleh teman sekolahnya. Setelah lulus dari universitas pada 22 tahun dia langsung mendaftar untuk menjadi U.S Army. Pada usia 24 tahun dia sudah menjadi anggota dari Green beret special force. Dia kemudian mendapatkan pangkat Sergeant pada usia 33 tahun. Setelah itu, dia kembali ke tempat kelahirannya untuk menikmati hidup. Tidak lama kemudian terdengar kabar bahwa pemerintah pusat ingin merekrut semua prajurit yang handal untuk membentuk team melawan para terroris yang semakin merajalela. Team tersebut dinamakan Ct-FORCE. Green beret mendapatkan perintah untuk mencari seseorang yang mempunyai kemampuan yang tinggi untuk bergabung dengan CT-FORCE melawan teroris. Pada saat bergabung dengan CT-FORCE dia mendapatkan panggilan “Leopard”.
4. Hide – Dia lahir di Inggris, kedua orangtuanya merupakan mantan prajurit di Tokyo. Pada usia 19 tahun dia mendaftarkan diri untuk menjadi infantry pada British Army. Menginjak usia 22 tahun dia menjadi prajurit yang paling terkenal di British Army karena memiliki taktikal support dan kemampuan yang tinggi. Di usia 26 tahun dia mendapatkan pertempuran yang keras, sehingga menimbulkan luka pada wajahnya. Karena kemampuan dan pengalamannya CT-FORCE tertarik untuk merekrut dirinya Karena berasal dari negara asing dia diberikan nickname “Hide”. Akan tetapi karena sifatnya yang penyendiri dia kurang dapat bergaul dengan sesamanya dalam CT-FORCE Dengan potongan rambut yang pendek dan hitam serta bekas luka pada wajahnya, membuat dia terlihat sangat dingin.

Free Rebels
1. Red Bulls – Karena hanya seorang imigran dia tinggal di desa kecil bersama orang tuanya.dan imigran lainnya. Dia juga merupakan pemain bola yang hebat. Sesaat setelah menerima gelar MVP pada kejuaraan sepak bola, dia mendengar kabar bahwa kedua orangtuanya terbunuh pada saat mempertahankan desa mereka dari pemerintah yang ingin menghancurkan desa tersebut. Dia segera pulang ke desanya, akan tetapi dia hanya menemukan desanya yang telah hancur lebur. Hatinya penuh dengan amarah dan kebencian kepada pemerintah. Kemudian dia bergabung dengan Free Rebels untuk membalaskan kematian orang tuanya. Memiliki fisik seorang pemain bola dan mempunyai mata yang tajam seperti banteng membuat teman-temannya di Free Rebels memanggilnya “Red Bulls”
2. Tarantula - Dia terlahir di keluarga imigran. Kehilangan kedua orang tuanya pada waktu kecil karena kecelakaan, kemudian diadopsi oleh keluarga lain. Hari demi hari dilalui di keluarga barunya. Akan tetapi sifat rasis dari ayah angkatnya semakin lama semakin besar dan memperlakukan dirinya secara kasar. Suatu hari dia menemukan revolver di lemari, kemudian dia mengambil revolver itu dan menembakkanya ke dada ayah angkatnya. Akibat insiden ini dia dimasukkan ke dalam penjara. Dalam penjara dia sering dipanggil dengan sebutan “Tarantula”. Setelah beberap tahun dia bebas dari penjara.Kemudian dia mendengar kabar bahwa para imigran selalu mendapatkan diskriminasi, hal ini membuatnya sangat marah. Kemudian dia memustuskan untuk bergabung dengan Free Rebels.
3. D-Fox – Kedua orang tuanya berasal dari Timur Tengah dan Asia. Meskipun campuran dia memiliki fisik yang baik. Pada usia 20 tahun dia telah menjadi Lieutenant dan telah melakukan banyak misi khusus. Pada usia 25 tahun dia telah menjadi Team leader. Dia terkenal karena tidak pernah meninggalkan jejak di setiap pertempuran. Di usia 26 tahun dia telah menjadi seorang Army Ranger. Tidak lama setelah itu dia mendapatkan suatu tugas rahasia dari pemerintah. Akan tetapi karena ada kesalahan informasi dari pemerintah, seluruh anggota teamnya terbunuh. Pemerintah melimpahkan semua kesalahan kepada dirinya atas kejadian itu. Tidak terima perlakuan pemerintah, dia kemudian memberontak dan bergabung dengan Free Rebels Untuk mengenang dan menghormati teman-temannya yang telah terbunuh di medan perang dia kemudian menamai dirinya Desert Fox, yang kemudian disingkat menjadi “D-Fox”. Pada suatu misi dia tidak sempat untuk melarikan diri sebelum bomb yang dipasang meledak, sehingga tanganya terluka. Oleh karena itu dia selalu menggunakan sarung tangan.
4. Viper Red – Dia mengikuti jejak ayah angkatnya yang berasal dari Perancis untuk menjadi seorang bodyguard. Kemampuan bertarung dan daya tahan tubuhnya telah ditempa dengan baik dari waktu kecil. Dia diadopsi oleh seseorang dari negara lain 25 tahun yang lalu, karena ibunya akan menjalankan suatu misi rahasia. Sekarang dia berusaha untuk mencari dan menemui ibunya kembali. Dia kemudian mendapatkan kabar bahwa ibunya adalah seorang Free Rebels dan telah terbunuh oleh pemerintah pada saat pertempuran demi melindungi imigran dari Amerika Latin. Mendengar itu dia kemudian memutuskan untuk bergabung dengan Free Rebels untuk membantu para imigran yang tertindas dan membalaskan dendam ibunya. Tidak seperti wanita yang lainnya. Dia mempunya kecepatan yang tinggi dan kekuatan yang besar. Dia juga ahli dalam menyusun taktik dan selalu bergerak licin seperti ular pada saat di medan pertempuran. Dia tidak menyukai sinar matahari dan selalu menggunakan kacamata hitam.

Masalah Program Illegal Point Blank Online
Permainan Point Blank Online yang terbilang sukses dan memiliki banyak user ini tidak lepas dari kritik, yaitu karena banyaknya pemain yang menggunakan cheat atau cara curang untuk memenangkan permainan tanpa memerhatikan kepentingan pemain lain. Oleh karena itu, pihak Game Master Gemscool melakukan tindakan tegas bagi pemain yang menggunakan cheat mulai dari memblokir (banned) ID dan IP pelanggar, sampai diproses melalui hukum bila terbukti menjual atau menyediakan atau menyebarkan software ilegal.