Minggu, 14 Juni 2015

Dokumentasi Aset Game



INITIAL STATE:
   Matches merupakan permainan yang menggunakan kecerdasaan buatan (AI). Dimana masing-masing player dituntut untuk mengalahkan AI yang telah di buat. Kita harus menentukan langkah yang benar untuk bisa mengalahkan AI, jika kita salah langkah, maka kita akan kalah melawan AI. Perlu diketahui disini AI pada game ini sangat sulit di kalahkan, kemungkinan untuk di kalahkan yaitu sekitar 10%. Di game ini ada  2 pilihan, yaitu computer terlebih dahulu, atau player yang maju dahulu. Jika kita ingin menang melawan AI, di haruskan kita tidak boleh mengambil ikon paling terakhir, atau kita akan kalah dari AI.
Didalam game matches terdapat konsep AI yang diwajibkan untuk saya kembangkan pada praktikum ini. Kali ini saya akan mengembangkan game Matches yang sudah saya pilih dengan mengganti icon menjadi karakter Hamtaro dikarenakan saya suka dengan kartun Hamtaro dan saya ingin mengingatkan terus tentang kartun semasa kecil saya dahulu dan teman-teman saya. Itulah alasan mengapa game ini saya beri nama “Hamtaro Matches”. Begitulah cerita singkat saya kenapa saya memilih matches sebagai syarat sidang dalam praktikum kecerdasaan buatan ini.

Dibawah ini adalah rancangan tampilan matches yang sudah saya kembangkan.
Tampilan Timer:

 
Tampilan Awal Permainan:

Tampilan Saat Permainan Sedang Berjalan:

Tampilan Saat Memilih Button Tentang:


Tampilan ketika kita memilih button help akan menampilkan bagaimana cara bermain Matches. Button ini akan langsung terhubung ke Web Browser karena sudah saya hubungkan langsung dengan web ketika mengembangkan permainan ini.

   Permainan dimulai dengan menekan button Opsi, disitu akan terlihat pilihan computer dahulu atau kita yang terlebih dahulu. Disini saya memilih untuk maju terlebih dahulu, player pertama akan memilih salah satu ikon yang akan dihilangkan. Berikutnya untuk CPU yang memilih untuk ikon mana yang akan dipilih untuk maju. Jika player yang mengambil batang terakhir, maka pemain akan kalah, tapi jika AI yang mengambil batang terakhir maka AI akan kalah. Namun disini AI sangat sulit dikalahkan. Kita bisa mengambil berapapun batang yamg kita inginkan tapi harus berada dalam satu kolom, begitu juga computer.

RULES:

   Identifikasi ruang keadaan permasalahan ini dapat di lambangkan dengan sebuah field dengan background sebuah gambar. Di field tersebut terdapat 6 tingkatan yang terdiri dari ikon-ikon yang tersusun sesuai tinggi yang di inginkan. Pemain hanya terdiri dari player dan AI (CPU).
Keadaan awal dan tujuan.
Keadaan awal = papan  permainan.
Keadaan tujuan = bagi yang terakhir meng-klik ikon, dialah yang kalah.

Aturan-aturan:

1. Pada button Opsi kita akan menentukan siapa yang akan memulai permainan terlebih dahulu, AI atau Player.

2. Bermain dengan 2 pemain, player mengawal permainan dengan memilih salah satu ikon yang sudah tersedia.

3. Yang terakhir memilih icon maka dipastikan akan kalah.

GOALS:
Tampilan Saat Pemain Menang:

Tampilan Saat Pemain Kalah:

Pada tampilan pertama, player dinyatakan telah menang, karena langkah kesalahan AI. Sedangkan pada tampilan kedua palyer dinyatakan kalah karena menjadi yang terakhir memilih ikon.




KONSEP AI:
            AI akan selalu berjalan dan memberikan perlawanan kepada kita sehingga tidak akan begitu mudah dapat memenangkan game tersebut, pada saat memainkan permainan ini akan mendapatkan hasil akhir berupa kita menang atau kita kalah melawan komputer, karena prinsipnya game ini ingin anda yang kalah. Kesimpulan dari permainan ini ialah bagaimana cara untuk memenangkan perlawanan dari komputer dengan tidak mengambil korek api yang paling akhir (don’t take the last), jika pengguna (user) dapat tidak mengambil korek api yang terakhir maka pengguna tersebut ememnangkan permainan game Matches dan jika pengguna (user) mengambil korek api yang paling akhir maka pengguna (user) tersebut dinyatakan kalah dalam permainan game Matches ini.

ALGORITMA:
Berikut ini adalah algoritma yang dipakai dalam permainan ini :
           
1.    Memilih salah satu beberapa dari 36 icon yang susunannya berbentuk seperti korek api namun tingginya berbeda. icon yang telah di sediakan, pengguna (user) atau lawan (komputer) dapat memilih sesuai dengan yang di inginkan.
2.    Jika 36 icon telah di pilih secara bergantian.
3.    Dengan cara mengklik kiri pada mouse dan arahkan kursor kearah icon yang ingin di ambil.
4.    Jika pengguna (user) bermain sebagai pemain (player) pertama dan sudah memilih pensil yang di inginkan untuk di ambil, maka berikutnya lawan (komputer) yang memilih icon yang di inginkan untuk diambil.
5.    Jika icon yang di sediakan telah habis maka akan dilihat siapa yang mengambil ikon yang paling akhir untuk menentukan menang atau tidaknya pengguna (user) ataupun lawan (komputer) karena syarat ketentuan permainan ini ialah akan menang jika tidak mengambil icon yang paling akhir dan akan kalah jika mengambil ikon yang paling akhir.
6.    Jika pengguna (user) bermain cepat dalam pengambilan icon maka lawan (komputer) akan menyamakan kecepatan seperti pengguna (user) dalam proses pengambilan icon.
7.    Jika lawan (komputer) memenangkan permainan ini maka keluar message "You Lost!" Jika pengguna (user)yang memenangkan permainan ini maka akan keluar message “You Win".
8.    Permainan selesai bila 36 icon telah habis baik diambil pengguna (user) ataupun lawan (komputer). Dan akan menampilkan message menang atau tidaknya dalam permainan ini.

Dalam Game matches ini menggunakan Algoritma Backtracking menggunakan dan DFS dalam pembentukan pohon solusi.
1.    Pohon solusi dibentuk dari awal permainan sampai akhir permainan.
2.    Untuk permainan yang di nyatakan cukup kompleks seperti permainan Matches, pembentukan pohon solusi di mulai dari awal permainan sampai akhir permainan dapat direalisasikan karena pada game ini mempunyai batasannya, yaitu kotak yang telah di batasin berapa banyak yang dapat di beri tanda, sehingga bila anda ingin mengurutnya bisa di lakukan dan di ketahui cara untuk memenangkan game ini. Sehingga bila anda cari dalam pohon solusi bisa di selesaikan sampai tidak ada kemungkinan lagi untuk di cari solusinya.
3.    Semakin akurat fungsi heuristic yang digunakan, semakin baik pula pengambilan keputusan yang dilakukan oleh AI.
Dengan menggunakan algoritma Bactracking untuk AI dalam permainan Matches, pengguna (user) tidak akan begitu mudah untuk melawan AI tersebut. 

Jumat, 24 April 2015

Artikel Game



  ARTIKEL GAME ENGINE

Game yang sudah saya liat diyoutube sebagai contoh adalah game yang permainannya dibuat melalui aplikasi prolog. Dalam game tersebut permainannya adalah ada seseorang yang mengendarai mobil mencari tempat persembunyian bebek diantara rumah-rumah kecil yang sudah menutupi bebek tersebut. Jika sudah menemukan semua bebek yang tersembunyi, maka game tersebut selesai.

Nama Prolog diambil dari bahasa Perancis programmation en logique (pemrograman logika). Bahasa ini diciptakan oleh Alain Colmerauer dan Robert Kowalski sekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman yang memungkinkan pernyataan logika alih-alih rangkaian perintah untuk dijalankan komputer.
Prolog adalah bahasa pemrograman logika atau disebut juga bahasa non prosedural.  Prolog disebut sebagai object oriented language atau declarative language. Dalam prolog tidak terdapat prosedur, tetapi hanya tampilan data-data object (fakta) yang akan diolah dengan relasi antar object yang membentuk suatu aturan. Aturan-aturan ini disebut heuristik dan diperlukan dalam mencari suatu jawaban, dengan kata lain, prolog dalam prolog adalah database.

Bahasa Pemrograman Prolog
  1. Object oriented languange atau declarative languange.
  2. Tidak terdapat prosedur, tetapi  hanya kumpulan data-data objek (fakta) yang akan diolah, dan relasi antar objek tersebut membentuk aturan yang diperlukan untuk mencari suatu jawaban
  3. Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya.
  4. Dilakukan pembuktian terhadap cocok-tidaknya tujuan dengan data-data yang telah ada dan relasinya.
  5. Prolog ideal untuk memecahkan masalah yang tidak terstruktur, dan prosedur pemecahannya tidak diketahui, khususnya untuk memecahkan masalah non numerik.
  6. Prolog bekerja seperti pikiran manusia, proses pemecahan masalah bergerak di dalam ruang masalah menuju suatu tujuan (jawaban tertentu).
Aplikasi Prolog
  1.  Sistem Pakar (Expert System), Program menggunakan teknik pengambilan kesimpulan dari data-data yang didapat, layaknya seorang ahli.
  2. Pengolahan Bahasa Alami (Natural Languange Processing), Program dibuat agar pemakai dapat berkomunikasi dengan komputer dalam bahasa manusia sehari-hari, layaknya penterjemah.
  3. Robotik, Prolog digunakan untuk mengolah data masukanyang berasal dari sensor dan mengambil keputusan untuk menentukan gerakan yang harus dilakukan.
  4. Pengenalan Pola (Pattern Recognition), Banyak digunakan dalam image processing, dimana komputer dapat membedakan suatu objek dengan objek yang lain.
  5. Belajar (Learning), Program belajar dari kesalahan yang pernah dilakukan, dari pengamataqn atau dari hal-hal yang pernah diminta untuk dilakukan.

Terdapat tiga jenis Prolog ,yaitu :
1. Strawberry Prolog
            Strawberry Prolog dihasilkan oleh Institut Matematika dan Informatika pada Akademi Ilmu Pengetahuan Bulgaria . Versi pertama dirilis pada tahun 1996. Pemimpin tim Strawberry Dimiter Dobrev.
            Strawberry Prolog sedang dikembangkan di Institut Matematika dan Informatika dan di Fakultas Matematika dan Informatika. Kompiler Prolog ini merupakan bagian dari proyek AI. Beberapa contoh game yang dibuat menggunakan strawberry prolog adalah Point(Dots), Tic tac toe, Row, chess, checkers, dll.
         Strawberry Prolog adalah dialek dari bahasa pemrograman Prolog. Sintaksnya sangat dekat dengan ISO-Prolog tetapi memiliki banyak ekstensi yang bukan bagian dari standar. Gagasan utama dari Strawberry Prolog sangat mudah digunakan dan oleh karena itu beberapa universitas menggunakan prolog untuk kursus .


2. Visual Prolog
        Visual prolog sebelumnya dikenal sebagai PDC prolog dan turbo prolog merupakan bahasa pemrograman prolog yang berorientasi objek. Sebagai turbo prolog dipasarkan oleh Borland, tetapi sekarang dikembangkan dan dipasarkan oleh perusahaan Denmark Pusat Pengembangan Prolog (PDC). Visual Prolog dapat membangun Microsoft Windows GUI-aplikasi, aplikasi konsol, DLL (Dynamic Link Libraries).


3. SWI Prolog
         SWI Prolog merupakan open source implementasi bahasa pemrograman Prolog, biasanya digunakan untuk pengajaran dan semantic web aplikasi. Memiliki seperangkat kaya fitur, perpustakaan untuk logika pemrograman kendala, multithreading, Unit testing, GUI, dll. SWI Prolog berjalan pada UNIX, Windows, dan Machintosh.




TUTORIAL GAME 


Curve dart adalah game pengembangan dari game Fire yang telah ada di Strawberry Prolog. Dalam permainan sebenarnya, game Fire terdiri dari peluru kecil dan tiga buah bola target. Game fire dimainkan dengan mengeklik pada window game tersebut . Curve dart memiliki beberapa perbedaan dari game fire yaitu di dalam game windownya sudah terdapat gambar background, button dan menu.
Didalam game curve terdapat beberapa rules dalam bermain. Rules tersebut antara lain sebagai berikut.
1. Klik menu->start
2. Tembak target dengan cara klik mouse pada window, kekuatan tembakan ditentukan
     dengan jarak antara mouse anda dengan canon pada game
3. Tembak target sebelum waktu giliran anda habis
4. Jika waktu habis maka ai akan mengambil giliran untuk menembak
5. Pemenangnya adalah yang berhasil menembak target pertama kali