MEMBANGUN GAME FIRST PERSON SHOOTER “SAMARINDA FANTASY”
DENGAN MENERAPKAN METODE FINITE STATE MACHINE MENGGUNAKAN ENGINE UNITY 5
Muhammad Dwi Fajar
Pembimbing I: Kusno Harianto, S.Kom Pembimbing II: Siti Qomariah, S.Kom
Program Studi Teknik Informatika, STMIK Widya Cipta Dharma Jl. M. Yamin No.25, Samarinda, 75123
E-mail : [email protected]
ABSTRAK
Penelitian ini membuat bagaimana membangun sebuah game 3 dimensi yang bertemakan tentang seorang detektif dari elit kepolisian yang bertugas mengusut kasus narkoba jenis sabu. Adapun latar belakang dalam mengambil tema game Samarinda Fantasy adalah berdasarkan fantasi dari penulis namun tetap memuat ikon-ikon yang ada pada kota Samarinda.
Pada penelitian game yang dibangun menggunakan tahapan pengembang multimedia dan juga menggunakan metode Finite State Machine (FSM), dimana didalam tahapan pengembang multimedia ada enam tahapan yaitu : Konsep, Desain, Pengumpulan materil, Penyusunan, Tes dan Distribusi. Adapaun alat bantu pengembangan sistemnya menggunakan Unified Modelling Language.
Dengan Memanfaatkan software Engine Unity sebagai alat untuk membuat game dan software blender sebagai alat untuk membantu membuat model 3 Dimensi yang nantinya akan diimport ke software unity.
Kata Kunci : Game, First Person, First Person Shooter, Samarinda Fantasy, Samarinda.
1. PENDAHULUAN
Teknologi informasi merupakan suatu teknologi yang dapat digunakan untuk mengelola suatu data, yaitu untuk menghasilkan informasi yang akurat dan tepat waktu yang digunakan untuk kepentingan hiburan, pribadi, bisnis, sampai pemerintahan, salah satuya yang memenuhi kebutuhan akan hiburan adalah game.
Game jenis-jenisnya semakin bervariasi sejalan dengan perkembangan teknologi perangkat keras dan perangkat lunak, game saat ini telah merambah hampir disetiap kalangan masyarakat di Indonesia mulai dari anak-anak sampai orang dewasa, perkembangan game di era ini mengalami kemajuan yang signifikan, dimulai dari game mario bross, tetris, Monkey Kong, dan lainnya yang menyajikan grafis 2D, dewasa ini muncul berbagai macam game 3D, kebanyakan dari game 3D ini memiliki jalur cerita dan kualitas gambar yang sangat menarik.
Game bergenre FPS atau First Person Shooter mulai banyak bermunculan seperti: Point Blank, Counter Strike, Resident Evil, Far Cry dan masih banyak lagi, dengan melihat game-game diatas penulis berinisiatif untuk membuat game yang bergenre FPS ataulanjutkan First Person Shooter.
Game pada umumnya menggunakan Artifical Intelligence pada sistemnya agar membuat game tersebut lebih menarik untuk dimainkan. Artifical Intelligence diterapkan pada agen game tersebut yang berupa NPC dan musuh atau lawan yang harus dihadapi didalam
game, salah satu penerapan kecerdasan buatan di game untuk pengambilan keputusan yang cerdas adalah finite state machine (FSM). Metode finite state machine sendiri dipilih karena merupakan metode yang cukup sederhana namun sangat baik dalam memodelkan perilaku agen. Metode finite state machine menggunakan state (kondisi), event (kerja) dan action (aksi) yang saling berkaitan, penerapan metode finite state machine pada agen digunakan agar agen tersebut terpenuhi ketika suatu event terjadi akan memicu suatu state yang berhubungan dengan event tersebut dan setelahnya akan menjalankan action yang berkaitan dengan state tersebut, state dan action akan terus berganti tergantung event yang terjadi dalam game.
Berdasarkan latar belakang tersebut, maka diambil tema skripsi ini dengan judul “Membangun Game First Person Shooter “Samarinda Fantasy” Dengan Menerapkan Metode Finite State Machine Menggunakan Engine Unity 5”
2. RUANG LINGKUP PENELITIAN Permasalahan difokuskan pada :
1. Aplikasi game yang dibuat sebagai keperluan hiburan semata.
2. Game ini tidak memiliki inputan nama pemain, data pemain (history), tidak memiliki skor serta tidak dapat menyimpan game.
3. Game dimainkan secara single player.
4. Game yang dibangun bergrafis 3D.
5. Game hanya dapat dimainkan pada laptop atau desktop (tidak diperuntukkan pada android).
6. Menggunakan kecerdasan buatan (Artifical Intelligence) metode finite state machine (FSM) pada agen gamenya.
7. Pengujian yang dipakai pengujian black-box &
pengujian beta.
8. Dengan menerapkan metode FSM pada setiap agen musuh maka musuh akan bergerak sesuai jarak yang sudah ditentukan oleh pengembang.
3. BAHAN DAN METODE
Adapun bahan dan metode yang gunakan dalam membangun game first person shooter ini yaitu:
3.1 Game
Menurut Henry (2010), game atau permainan adalah sesuatu yang dapat dimainkan dengan aturan tertentu sehingga ada yang menang dan ada yang kalah.
Sudah dapat dikatakan sebagai life style masyarakat dimasa kini. Dimulai dari usia anak–anak hingga orang dewasa pun menyukai video game. Itu semua dikarenakan bermain video game adalah hal yang menyenangkan.
3.2 First Person Shooter
Merupakan salah satu jenis game dimana, Kebanyakan game First-person shooter lebih berfokus ke action. Dalam game ini, objektif atau tujuan misi kita kebanyakan diselesaikan dengan menembak semua musuh untuk bisa lanjut ke level selanjutnya, walaupun pemain juga dapat menggunakan senjata jarak dekat seperti pisau, tombak dan lain sebagainya.
3.3 FSM
Menurut Yunifa dkk (2012), FSM merupakan model komputasi dan sebagai teknik permodelan AI, FSM terdiri dari 4 komponen yaitu state merupakan kondisi yang mendefinisikan perilaku sekaligus memungkinkan terjadinya aksi. I, yang memicu perpindahan state. Rules, atau kondisi yang harus dipenuhi untuk dapat memicu transisi state. Input event, yang bisa dipicu secara internal ataupun eksternal yang memicu tercapainya rule dan mengarahkan terjadinya transisi state.
Menurut Millington dan Funge (2009), Finite State Machine (FSM) adalah sebuah metodologi perancangan sistem kontrol yang menggambarkan tingkah laku atau prinsip kerja sistem dengan menggunakan Finite State Machine (Keadaan), event (Kejadian) dan action (Aksi).
Dalam State Machine sistem menempati satu state (Keadaan). Sistem akan beralih atau bertransisi menuju ke state lain jika mendapatkan masukan event tertentu.
Sistemakan tetap melakukan aksi yang sama pada suatu state sampai sistem menerima event tertentu baik yang berasal dari perangkat luar atau dari
komponen dari sistem itu sendiri. Setiap state terhubung oleh transisi dan setiap transisinya mengarah ke satu state lainnya. Transisi keadaan ini umumnya juga disertai oleh aksi yang dilakukan tersebut dapat berupa
aksi sederhana yang melibatkan rangkaian proses yang relatif rumit.
3.4 Engine Unity
Unity merupakan suatu aplikasi yang digunakan untuk mengembangkan game multi platform yang didesain untuk mudah digunakan. Editor pada Unity dibuat degan user interface yang sederhana. Editor ini dibuat setelah ribuan jam yang mana telah dihabiskan untuk membuatnya menjadi nomor satu dalam urutan ranking teratas untuk editor game. Grafis pada unity dibuat dengan grafis tingkat tinggi untuk OpenGL dan directX. Unity mendukung semua format file, terutamanya format umum seperti semua format dari art applications. Unity cocok dengan versi 64-bit serta 32- bit dan dapat beroperasi pada Mac OS x dan windows dan dapat menghasilkan game untuk Mac, Windows, Wii, iPhone, iPad dan Android. Unity secara rinci dapat digunakan untuk membuat video game 3D, real time animasi 3D dan visualisasi arsitektur dan isi serupa yang interaktif lainnya. Editor Unity dapat menggunakan plugin untuk web player dan menghasilkan game browser yang didukung oleh Windows dan Mac. Plugin web player dapat juga dipakai untuk widgets Mac. Unity juga akan mendukung console terbaru seperti PlayStation 3 dan Xbox 360.
3.5 Artifical Intilligence
Menurut Russel dan Norvig (2010), dalam arti bahasa inggris, artifical berarti buatan sedangkan intelligence berarti sebuah kata sifat yang memiliki arti cerdas. Jadi, artifical intelligence adalah suatu kecerdasan yang dibuat atau tiruan yang cerdas. Maksud cerdas disini adalah kepandaian berpikir dan bertindak layaknya manusia.
Kecerdasan buatan atau Artifical Intelligence (AI) adalah salah satu cabang ilmu komputer yang berhubungan dengan tingkah laku yang cerdas dan
dapat beradaptasi pada mesin. Penelitian pada Artifical Intelligence dipusatkan pada penghasilan mesin yang mengotomatisasikan tugas–tugas yang memerlukan tingkah laku yang cerdas.
Pengertian kecerdasan buatan dikembangkan menjadi 4 kelompok kategori, yaitu :
1. Thingking humanly, sistem yang berpikir selayaknya manusia berpikir.
2. Acting Humanly, sistem yang bertindak selayaknya manusia bertindak.
3. Thingking Rationally, sistem yang berpikir secara rasional.
4. Acting Rationally, sistem yang bertindak secara rasional.
Para ilmuwan memiliki 2 cara sudut pandang yang berlainan tentang AI. Yang pertama adalah AI sebagai bidang ilmu yang hanya fokus pada proses berpikir.
Sedangkan yang kedua adalah memandang AI sebagai bidang ilmu yang fokus pada tingkah laku. Cara pandang kedua memandang AI secara lebih luas karena satu tingkah laku selalu didahului dengan proses berpikir.
3.6 Kelebihan Finite State Machine
FSM memiliki beberapa kelebihan, diantaranya : 1. Sederhana, sehingga mudah diimplementasikan.
2. Komputasi ringan.
3. Bisa diprediksi responnya.
4. Sebaiknya hanya digunakan pada sistem dimana sifat sistem bisa didekomposisi menjadi state.
5. Merupakan metode AI lama yang bisa digunakan pada berbagai sistem.
6. Relatif fleksibel.
7. Mudah ditransfer dari abstrak menjadi kode program.
3.7 Kelemahan Finite State Machine
Selain memiliki banyak kelebihan, FSM juga mempunyai beberapa kelemahan, diantaranya :
1. Kondisi untuk transisi state adalah tetap.
2. Karena sifatnya bisa diprediksi, maka implementasi pada game kurang memuaskan.
3. Implementasi pada sistem yang lebih besar lebih sulit karena pengaturan dan pemeliharaannya jadi kompleks.
3.8 Metode Pengembangan Multimedia
Menurut Luther (1994), Metodologi Pengembangan multimedia terdiri dari enam tahap, yaitu :
1 Concept
2 Design
3 Material Collecting
4 Assembly 5
Testing 6
Distribution
1. Concept
Tahap concept (Pengonsepan) adalah tahap untuk menentukan tujuan dan siapa pengguna program (identifikasi audiens). Tujuan dan penggunaakhir program berpengaruh pada nuansa multimedia sebagai pencerminan dari identitas organisasi yang menginginkan informasi sampai pada pengguna akhir.
Karakteristik pengguna termasuk kemampuan pengguna juga perlu dipertimbangkan karena dapat mempengaruhi pembuatan desain.
Selain itu, tahap ini juga akan menentukan jenis aplikasi (presentasi, interaktif dan lain-lain). Dasar aturan untuk perancangan juga ditentukan pada tahap ini, misalnya ukuran aplikasi, target dan lain–lain. Output dari tahap ini biasanya berupa dokumen yang bersifat naratif untuk mengungkapkan tujuan projek yang ingin dicapai.
2. Design
Design (Perancangan) adalah tahap pembuatan spesifikasi mengenai arsitektur program, gaya, tampilan dan kebutuhan material/bahan untuk program.
Spesifikasi dibuat serinci mungkin sehingga pada tahap berikutnya, yaitu material collecting & assembly, pengambilan keputusan baru tidak diperlukan lagi, cukup
menggunakan keputusan yang sudah ditentukan pada tahap ini. Meskipun demikian, pada praktiknya, pengerjaan proyek pada tahap awal masih akan sering mengalami penambahan bahan atau pengurangan bagian aplikasi, atau perubahan-perubahan lain.
Tahap ini biasanya menggunakan storyboard untuk menggambarkan deskripsi tiap scene, dengan mencantumkan semua objek multimedia dan tautan ke scene lain dan bagian alir (flowchart) untuk menggambarkan aliran dari satu scene ke scene lain.
Pembuatan storyboard dapat menggunakan cara pembuatan storyboard film/animasi.
3. Material Collecting
Material Collecting adalah tahap pengumpulan bahan yang sesuai dengan kebutuhan yang dikerjakan.
Bahan–bahan tersebut, antara lain gambar clip art, foto, animasi, vidio, audio dan lain–lain yang dapat diperoleh secara gratis atau dengan pemesanan kepada pihak lain sesuai dengan rancangannya. Tahap ini dapat dikerjakan secara paralel dengan tahap assembly. Namun pada beberapa kasus material collecting dan tahap assembly akan dikerjakan secara linear dan tidak paralel.
4. Assembly
Pada tahap ini pembuatan semua obyek atau bahan multimedia. Pembuatan aplikasi didasarkan pada tahap design, seperti storyboard, bagan alir dan atau struktur navigasi. Tahap ini biasanya menggunakan perangkat lunak authoring.
5. Testing
Tahap testing (pengujian) dilakukan setelah menyelesaikan tahap assembly dengan menjalankan aplikasi/program dan melihatnya apakah ada kesalahan atau tidak. Tahap pertama pada tahap ini disebut tahap pengujian alpha (alpha test) yang pengujiannya dilakukan oleh pembuat atau lingkungan pembuatnya sendiri. Setelah lolos dari pengujian alpha, pengujian beta yang melibatkan pengguna akhir dilakukan.
6. Distribution
Pada tahap ini, aplikasi akan disimpan dalam suatu media penyimpanan. Jika media penyimpanan tidak cukup untuk menampung aplikasinya, kompresi terhadap aplikasi tersebut akan dilakukan. Tahap ini juga dapat disebut tahap evaluasi untuk pengembangan produk yang sudah jadi supaya lebih baik. Hasil evaluasi ini dapat digunakan sebagai masukan untuk tahap concept.
4. RANCANGAN SISTEM ATAU APLIKASI Dalam game ini pengembang menggunakan Unified modelling language (UML) sebagai rancangannya dan Finite state machine sebagai metodenya, adapun UML menurut Nugroho (2009) adalah UML (Unified Modeling Language) Metodologi kolaborasi antara metoda-metoda Booch, OMT (Object Modeling Technique), serta OOSE (Object Oriented Software Enggineering) dan beberapa metoda lainnya, merupakan metodologi yang paling sering digunakan saat ini untuk analisa dan perancangan sistem dengan metodologi berorientasi objek mengadaptasi maraknya penggunaan bahasa “pemrograman berorientasi objek”
(OOP).
Use Case Diagram, Pada gambar dibawah ini dapat dilihat user memiliki beberapa pilihan yaitu main menu dimana pada saat game pertama kali dibuka maka akan keluar tampilan main menu, tampilan main menu berisi beberapa tombol dan tampilan diantaranya Tombol Mainkan, Tombol Permainan Baru, Tombol Pilih Level, Tombol Pilih Level 1, Tombol Pilih Level 2, Tombol Pilih Level 3, Tombol Pengaturan / Kontrol, Tombol Kredit dan Tombol Keluar, sedangkan untuk tampilan diantaranya Tampilan Pengaturan / Kontrol, Tampilan Kredit dan 3 Tampilan setiap levelnya dan ada beberapa fungsi yang bisa didapat oleh user.
Gambar 1. Use Case Diagram Game
5. IMPLEMENTASI
Dalam mengimplementasikan game ini pengembang / developer menggunakan dua aplikasi diantaranya aplikasi blender dan aplikasi game engine unity, adapun fungsi dari aplikasi blender adalah membuat model 3D baik bangunan maupun karakter sedangkan aplikasi game engine unity sebagai wadah penampung semua objek 3D yang dibuat sebelumnya serta sebgai pembuat alur cerita pada game, adapun jenis 3D model yang telah dibuat pada aplikasi blender adalah sebagai berikut :
5.1 Objek 3D
Objek 3D dalam game dikategorikan menjadi 4 jenis diantaranya Objek Bangunan, Karakter, Benda dan Permainan, berikut penjelasannya sebagai berikut :
1. Objek Bangunan
Objek Bangunan adalah suatu model 3 dimensi yang berbentuk rumah, gedung ataupun fasilitas umum yang termasuk bagian dari bangunan.
Gambar 2. Contoh Objek Bangunan
2. Objek Karakter
Objek Karakter adalah suatu model 3 dimensi yang berbentuk manusia, mulai dari karakter musuh, karakter pemain dan karakter pembantu lainnya.
Gambar 3. Contoh Objek Karakter
3. Objek Benda
Objek Benda adalah suatu model 3 dimensi berupa item, key item, Senjata, Suplemen dan benda pembantu lainnya.
Gambar 4. Contoh Objek Benda
4. Objek Arena Permainan
Objek Arena Permainan adalah suatu model 3 dimensi berupa hamparan tanah yang berisi objek bangunan, objek karakter dan objek benda.
Gambar 5. Contoh Objek Arena Permainan
5.2 Interface Pada Game 1. Tampilan Scene Menu Utama
Pada Tampilan Scene Menu Utama Pemain dapat berinteraksi dengan tombol-tombol yang dapat mengarahkan pemain ke scene tertentu, pada scene menu utama terdapat beberapa tombol diantaranya tombol mainkan, tombol pilih level, tombol level 1,
tampilan pengaturan / kontrol tampilan_Kredits keluar_game
Lev el 3 Pengaturan / k ontrol
<<include>>
Kredit
<<include>>
Keluar
<<extend>>
Lev el 2
<<extend>>
user
Lev el 1
<<extend>>
Mainkan
Permainan Baru
<<include>>
Panel Mainkan
<<include>>
<<include>>
Lev el 1
Lev el 2
Lev el 3 pilih Lev el
<<include>>
tombol level 2, tombol level 3, tombol pengaturan/kontrol, tombol Kredit dan tombol keluar.
Pada setiap tombol akan mengarahkan pada panel ataupun scene
Gambar 6. Tampilan Scene Menu Utama
2. Tampilan Scene L1
Pada Tampilan Scene L1, pemain diarahkan pada level pertama dalam permainan, didalam level 1 pemain akan dihadapkan dengan 2 musuh dan beberapa item yang harus didapatkan.
Gambar 7. Tampilan Scene L1
3. Tampilan Scene L2
Pada Tampilan Scene L2, pemain diarahkan pada level kedua dalam permaiinan, didalam level 2 pemai akan dihadapkan dengan 3 musuh dan beberapa item dan key item yang harus didapatkan.
Gambar 8. Tampilan Scene L2
4. Tampilan Scene L3
Pada Tampilan Scene L2, pemain diarahkan pada level kedua dalam permaiinan, didalam level 2 pemai akan dihadapkan dengan 3 musuh dan beberapa item dan key item yang harus didapatkan.
Gambar 9. Tampilan Scene L3
5. Tampilan Scene Game Over
Pada tampilan scene game over hanya akan muncul apabila kesehatan pemain sama dengan 0, maka akan otomatis menuju ke scene game over.
Gambar 10. Tampilan Scene Game Over
6. Tampilan Scene to L1
Pada tampilan scene to L1 pemain akan dihadapkan pada memilih level 1 untuk dimainkan, scene to L1 hanya akan muncul apabila pemain telah selesai pada scene intro.
Gambar 11. Tampilan Scene to L1
7. Tampilan Scene to L2
Pada tampilan scene to L2 pemain akan dihadapkan pada memilih level 1 dan level 2 untuk dimainkan, scene to L2 hanya akan muncul apabila pemain telah selesai pada scene L1.
Gambar 12. Tampilan Scene to L2
8. Tampilan Scene to L3
Pada tampilan scene to L3 pemain akan dihadapkan pada memilih level 1, level 2 dan level 3 untuk dimainkan, scene to L3 hanya akan muncul apabila pemain telah selesai pada scene L2.
Gambar 13. Tampilan Scene to L3
9. Tampilan Scene Selesai
Pada tampilan scene selesai pemain akan dihadapkan pada animasi terakhir dan berakhir pada game over karena pemain telah menyelesaikan semua level.
Gambar 14. Tampilan Scene Selesai
5.3 Penerapan FSM Pada Lawan
Pada musuh yang telah diimplementasikan dengan FSM(Finite State Machine) memiliki beberapa gerakan khasnya masing-masing sehingga setiap karakter musuh memiliki gerakannya sendiri, FSM(Finite State Machine) akan merespon dengan cara jika karakter pemain mendekat pada karakter musuh, berikut dibawah ini gerakan 4 gerakan musuh yang telah tersentuh dengan FSM :
1. Idle
Pada gerakan idle, karakter musuh akan bergerak jika pemain berada jauh pada karakter musuh, sehingga musuh seolah-olah memiliki gerakan bersiap menghadapi karakter pemain.
Gambar 15. Idle
2. Walk
Pada gerakan walk, karakter musuh berjalan mendekati musuh dengan syarat karakter pemain berada pada titik yang pas sehingga karakter musuh berjalan mendekati karakter pemain.
Gambar 16. Walk
3. Attack
Pada gerakan attack, karakter musuh menyerang karakter pemain dengan syarat karakter pemain berada tepat didepan karakter musuh sehingga setiap pukulan karakter musuh akan melukai pemain, begitu juga dengan karakter pemain setiap serangannya akan melukai karakter lawan.
Gambar 17.Attack
4. Dead
Pada gerakan dead, karakter musuh mati dengan syarat karakter pemain melukai sampai bar kesehatan dari karakter musuh habis, sehingga karakter musuh tidak dapat bergerak lagi
Gambar 17. Dead 6. KESIMPULAN
Berdasarkan uraian dari masing-masing bab dan hasil pembahasan dapat ditarik kesimpulan sebagai berikut : 1. Pengembangan Game Samarinda Fantasy
melalui 6 tahap pengembangan multimedia diantaranya Konsep, Desain, Pengumpulan Bahan, Assembly, Pengujian dan Pendistribusian. Penerapan metode finite state machine(FSM) pada musuh yang dapat membuat musuh berjalan, menyerang dan memiliki posisi bersiap(idle).
2. Penerapan finite state machine(FSM) pada game yang memiliki andil penting dalam menentukan respon serta perilaku pada musuh.
3. Pada game ini pemain dapat dengan leluasa menjelajahi setiap detail pada game dan melawan musuh
4. Pengujian Black-Box yang dilakukan menunjukkan tiap tombol pada game berjalan dengan baik dan pengujian Beta menunjukkan
tingkat kepuasan teman-teman yang telah bersedia menjadi responden pada game ini.
7. SARAN
Saran-saran yang dapat diberikan untuk mengembangkan game Samarinda Fantasy yaitu : 1. Memberikan animasi pada karakter musuh yang
memiliki frame lebih panjang sehingga karakter bergerak lebih luwes dan tidak terkesan kaku.
2. Menambahkan level pada game sehingga game memiliki cerita yang lebih menarik.
3. Menambahkan karakter musuh yang dapat menggerakan mulutnya sehingga seolah-olah dapat berbicara.
4. Membuat sistem yang lebih ringan namun tetap menjaga kualitas pada game.
5. Menambahkan aspek interaksi yang lebih sehingga dapat membuat game lebih menarik.
6. Game ini hanya dapat dimainkan pada OS Windows, maka diharapkan untuk penelitian yang akan datang mahasiswa dapat membuat game yang dapat berjalan pada segala jenis platform Menambahkan fitur multiplayer sehingga dapat dimainkan oleh banyak orang.
8. DAFTAR PUSTAKA
Astari, Amelia. 2011. Automatic leveling Pada Sliding Puzzle Game Berbasis Finite State Machine.
Skripsi. S1. Program Studi Ilmu Komputer, Medan : Universitas Sumatera Utara.
B.A Pranata, A.K. Pamoedji dan R. Sanjaya. 2015.
Mudah Membuat Game dan Potensi Finansialnya dengan Unity 3D. Jakarta :Elex Media.
Binanto, Iwan. 2010. Multimedia Digital Dasar Teori – Pengembangannya.Yogyakarta : Andi.
Nugroho, Adi. 2009. Rekayasa Perangkat Lunak Menggunakan UML & Java ,.Yogyakarta:
Andi Offset.
Pressman, Roger .2012. Rekayasa Perangkat Lunak Pendekatan Praktisi Edisi 7, Yogyakarta : Andi.
Rich, E. 2009. Automata, Computability and Complexity, Theory and Application.United States Of America : Pearson Prentice Hall.
Russel, Stuart and Norvig Peter. 2009. Artifical Intelligence: A Modern Apprach 3rd Edition.
United State of America : Pearson Prentice Hall.
Wijaya, Surya Adi. 2009. Fuzzy State Machine Untuk Menghasilkan Variasi Respon NPC (Non- Playable Character) pada Game. Tesis.
Surabaya: