nama : Angga Dharmawan jenis kelamin : Laki-laki
tempat, tanggal lahir : Bandung, 30 Juli 1990
agama : Islam
kewarganegaraan : Indonesia
status : Belum kawin
anak ke : Tiga dari tiga bersaudara
alamat : Kp. Parakan Desa Bojong Koneng RT03/08 Kec. Ngamprah Kab. Bandung barat
telepon : +6289 7900 0075
e-mail : ongoks@gmail.com
2. RIWAYAT PENDIDIKAN
1. Sekolah Dasar : SD Negeri Kertajaya I Padalarang
tahun ajaran 1996-2002
2. Sekolah Menengah Pertama : SMP Krida Utama Padalarang
tahun ajaran 2002 – 2005
3. Sekolah Menengah Atas : SMA Negeri I Padalarang
tahun ajaran 2005 – 2008
4. Perguruan Tinggi : FTIK UNIKOM Bandung
tahun ajaran 2008 – 2013
Demikian riwayat hidup ini saya buat dengan sebenar-benarnya dalam keadaan sadar dan tanpa paksaan.
Bandung
PEMBANGUNAN GAME TAKEDOWN THE TERRORISTS
SKRIPSI
Diajukan untuk Menempuh Ujian Akhir Sarjana Program Studi Teknik Informatika Fakultas Teknik dan Ilmu Komputer
ANGGA DHARMAWAN
10108130
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNIK DAN ILMU KOMPUTER
iii
Assalammu’alaikum Wa Rohmatullohi Wa Barokatuh.
Puji syukur alhamdulillah penulis panjatkan atas kehadirat Allah SWT sang Pencipta alam semesta, manusia, dan kehidupan beserta seperangkat aturan Nya, karena berkat limpahan rahmat, taufiq, hidayah serta inayah-Nya, sehingga penulis dapat menyelesaikan Skripsi yang berjudul ”Membangun Aplikasi Game Takedown The Terrorists”. Tidak lupa juga, shalawat beserta salam semoga dicurah limpahkan kepada baginda Rasulullah Muhammad SAW.
Skripsi ini dibuat sebagai salah satu syarat kelulusan pada program Strata 1 Fakultas Teknik dan Ilmu Komputer, Program Studi Teknik Informatika di Universitas Komputer Indonesia.
Penulismenyadari bahwa skripsi ini masih banyak kekurangan dari berbagai macam hal.Namun berkat bantuan dan bimbingan dari beberapa pihak akhirnya skripsi ini dapat diselesaikan tepat pada waktunya. Karena itu pada kesempatan ini, penulis ingin mengucapkan banyak terima kasih kepada :
1. Allah SWT, yang telah memberikan rahmat dan hidayah-Nya kepada penulis sehingga dapat menyelesaikan skripsi ini dengan baik.
2. Nabi Muhammad SAW sebagai junjungan yang telah menyampaikan wahyu Allah.
3. Kedua orang tua Hj. Anih Rohaeni dan Otip Suhanda, beserta nenek saya Hj. Rokayah yang senantiasa selalu mendukung saya setiap saat baik moril maupun materil.
iv
7. Yth. Bapak Adam Mukharil Bachtiar, S.Kom., selaku dosen wali kelas IF-3 angkatan 2008.
8. Kepada Kakak-kakak Tercinta Erik Teguh Gunawan dan Otang Rohendi yang selalu memberi semangat.
9. Rekan-rekan mahasiswa Program Studi Teknik Informatika angkatan 2008 khususnya rekan-rekan mahasiswa dari kelas IF-3.
10.Kepada sahabat-sahabat seperjuangan yang selalu memberi dukungan dan motivasi yang lebih
11.Seluruh dosen pengajar dan staff tata usaha.
12.Semua pihak yang telah membantu dalam menyelesaikan skripsi ini yang tidak bisa disebutkan satu persatu oleh penulis.
Akhir kata penulis hanya berharap semoga skripsi ini dapat bermanfaat bagi penulis dan para pembaca umumnya.
Wassalamu’alaikum wr. Wb
Penulis
v
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... x
DAFTAR TABEL ... xiv
DAFTAR SIMBOL ... xvi
DAFTAR LAMPIRAN ... xx
BAB 1 PENDAHULUAN ... 1
I.1 LatarBelakangMasalah ... 1
I.2 PerumusanMasalah ... 2
I.3 MaksuddanTujuan ... 2
I.4 BatasanMasalah ... 3
I.5 MetodologiPenelitian ... 3
I.6 SistematikaPenulisan ... 5
BAB II LANDASAN TEORI ... 7
II.1 Game... 7
II.1.1 Pengertian Game ... 7
II.1.2 Jenis-jenis Game ... 8
II.2. AI (Artificial Intelligence) ... 10
II.3. Algoritma A* ... 12
II.4 Analisis Sistem Berbasis Objek... 15
II.4.1 Object Oriented Programming ... 16
II.4.2 UML (Unified Modelling Language) ... 17
II.4.1.1 Use Case Diagram ... 17
II.4.1.2 Class Diagram ... 18
II.4.1.3 Component Diagram ... 19
II.4.1.4 Deployment Diagram ... 20
vi
II.6. Java ... 25
II.7. Unity ... 27
II.8 3D Studio Max ... 27
II.8.2.7 Collaboration Diagram ... 26
II.8.2.8 Activity Diagram ... 27
BAB III ANALISIS DAN PERANCANGAN ... 29
III.1 AnalisisSistem ... 29
III.1.1 Analisis Masalah ... 29
III.1.2 Analisis Game sejenis ... 30
III.1.2.1 Soldier Of Fortune Payback ... 30
III.1.3 Analisis Game yang Dibangun... 33
III.1.4 Storyline ... 33
III.1.5Gameplay ... 34
III.1.6Analisis Tingkat Kesulitan ... 35
III.1.7 Analisis Scoring ... 35
III.1.8 Analisis Algoritma A star... 35
III.1.9 Collision Detection... 50
III.2 Analisis dan Kebutuhan Non-Fungsional ... 51
III.2.1 Analisis dan Kebutuhan Perangkat Lunak ... 52
III.2.2 Analisis dan Kebutuhan Perangkat Keras ... 52
III.2.3 Analisis Pengguna ... 53
III. 2.3.1 User Knowledge and Experience ... 53
III. 2.3.2 Users Physical Characteristic ... 53
III.3AnalisisdanKebutuhanFungsional... 54
III.3.1 Use Case Diagram ... 54
III.3.2Definisi Actor ... 55
vii
III.3.4.4 Skenario Use Case Pergerakkan karakter ... 58
III.3.4.5 Skenario Use Case Perhitungan Skor ... 58
III.3.4.6 Skenario Use Case Menampilkan Petunjuk Misi ... 59
III.3.5 Activity Diagram ... 59
III.3.5.1 Activity Diagram Menampilkan Level 1 ... 60
III.3.5.2Activity Diagram Menampilkan Level 2 ... 62
III.3.5.3Activity Diagram Menampilkan Level 3 ... 64
III.3.5.4Activity Diagram Pergerakan Karakter ... 66
III.3.5.5Activity Diagram Perhitungan Skor ... 66
III.3.5.6Activity Diagram Menampilkan Petunjuk Misi ... 67
III.3.6 Sequence Diagram ... 68
III.3.6.1 Sequence Diagram Menampilkan Level 1 ... 68
III.3.6.2 Sequence Diagram Menampilkan Level 2 ... 70
III.3.6.3 Sequence Diagram Menampilkan Level 3 ... 72
III.3.6.4 Sequence Diagram Pergerakkan Karakter ... 73
III.3.6.4 Sequence Diagram Perhitungan Skor... 74
III.3.6.4 Sequence Diagram menampilkan Petunjuk Misi ... 75
III.4 Class Diagram ... 76
III.4.1 Perancangan Sistem ... 78
III.4.1 Perancangan Komponen Permainan ... 78
III.4.1.1 Storyboard ... 78
III.4.1.2 Pengenalan Karakter ... 80
III.4.2.1 Perancangan Struktur Menu ... 82
III.4.3 Perancangan Antarmuka ... 83
III.4.3.1 Perancangan Antarmuka Menu Utama ... 83
III.4.3.2 Perancangan Antarmuka Permainan ... 84
viii
III.4.5.2 Method Enemy.UpdateGUI() ... 87
III.4.5.3 Method EnemyRespawn.Respawn() ... 88
III.4.5.4 Method CharacterDamage.ApplyDamage() ... 89
III.4.5.5 Method misiSelesai.misiSelesai() ... 90
III.4.5.6 Method UniversalGUn.Reload() ... 91
III.4.5.7 Method AI.AttackPlayer()... 93
III.4.5.8 Method AI.Patrol() ... 93
III.4.5.8 Method AI.searchPlayer() ... 95
III.4.5.8 Method FPSwalker.FixedUpdate() ... 96
BAB IV IMPLEMENTASI DAN PENGUJIAN ... 97
IV.1 Implementasi ... 97
IV.1.1 Implemenatasi Perangkat Keras ... 97
IV.1.2 Implementasi Perangkat Lunak... 97
IV.1.3 Implementasi Instalasi Aplikasi Game ... 97
IV.1.4 Implementasi Antarmuka ... 98
IV.1.4.1 Implementasi Menu Utama ... 98
IV.1.4.2 Implementasi Menu Option ... 98
IV.1.4.3 Implementasi Menu Main ... 99
IV.1.4.4 Implementasi Menu Petunjuk ... 101
IV.2 Pengujian... 102
IV.2.1 Skenario Pengujian Blackbox ... 102
IV.2.2 Kasus dan Hasil Pengujian (Black boxTesting)... 103
IV.2.3 Kasus dan Hasil Pengujian (White Box Testing) ... 105
4.2.4 Kuesioner ... 110
BAB V KESIMPULAN DAN SARAN ... 119
V.1Kesimpulan... 119
118
[1] Mubah. A Safaril. (2011). “Strategi meningkatkan daya tahan budaya lokal dalam menghadapi arus globalisasi”.Departemen Hubungan Internasional, FISIP, Universitas Airlangga, Surabaya. Volume24, Nomer 4 hal : 302-308
[2] wartakota live. (2010) Kesadaran Masyarakat Terhadap Budaya Sejarah rendah. Document.
[3] Grimshaw, Mark. (2008). "Sound and immersion in the first-person shooter..". Games Computing and Creative Technologies: Journal Articles (Peer-Reviewed). Paper 3.
[5] Ian Sommerville, Software Engineering (Rekayasa Perangkat Lunak), 6th ed., Hilarius Wibi Hardani, Ed. Jakarta, Indonesia: Erlangga, 2003.
[6] Hengky Fitrayco & Piere Dayaka. (2012) scribd website. http://id.scribd.com, diakses pada tanggal 17 September 2012, 17.33 WIB
[7] Andang, Ismail., (2009)Education Games (Menjadi cerdas dan ceria dengan permainan
edukatif). Yogyakarta : Pilar Media.
[8] Thomas, (2006). Genre and game studies : Toward a critical approach to video game
genres. Simulation & Gaming, Vol. 37, University of Melbourne.
[9] Kusumadewi, Sri., (2003).Artificial Intelligence (Teknik dan Aplikasinya). Yogyakarta : Graha Ilmu.
[10] Tilawah, Hapsari, (2011), Penerapan Algoritma A-Star(A*) Untuk Menyelesaikan
Masalah Maze, Jurnal, Teknik Informatika, Institut Teknologi Bandung, Bandung
[11] Hamilton, Kim, and Miles, Russell. 2006. Learning UML 2.0. United States of America: O’Reilly Media.
[12] Ratnasari Nurrohmah. Definisi UML. Dokumen.
[13] Fowler, Martin., (2005). UML Distilled edisi 3 Panduan Singkat Bahasa Pemodelan
[15] Universitas Mulawarman. (2011) ftikom-unmul. http://ftikom-unmul.nstars.org
[16] Unity Technologies., (2012). Create the game you love with unity.Diakses tanggal 22 September 2012 pukul 09.00 (GMT +7), dari http://unity3d.com/unity/.
[17] Zaharuddin, G., Djalle., (2007).The Making of 3D Animation Movie Using 3Dstudio Max.
1
Seiring dengan berkembangnya peradaban saat ini membuat kebudayaan asing mudah masuk hal ini berdampak kepada berkurangnya kepedulian terhadap sejarah. Menariknya budaya masa lalu yang berakibat banyaknya budaya asing yang cenderung lebih menarik sehingga menggeser keberadaan sejarah yang ada [1]. Bangunan bersejarah tentu dimiliki oleh setiap kota setiap negara diseluruh penjuru dunia. Bangunan bersejarah merupakan cermin akan akar budaya sejarah masa lalu, warisan dari perjalanan panjang hasil jerih payah seluruh warga masa lalu untuk membentuk kotanya.
Pemerhati sejarah dan kebudayaan, Asep Kambali mengatakan jika kesadaran masyarakat Indonesia khususnya remaja untuk mengenal dan mencintai sejarah dan budaya, berangsur-angsur mulai meredup menurutnya Kesadaran masyarakat, khususnya pemuda, terhadap budaya dan sejarah dinilai saat ini justru rendah. Kita bisa menilai pertama dari pengetahuan mereka yang kurang terhadap sejarah dan budaya. Kedua, dari cara bersikap. Ketiga, dari cara mereka menghargai dan bertindak terhadap kebudayaan itu sendiri
2
]. Dengan diaplikasikannya ke dalamgame diharapkan bisa menambah pengetahuan pengguna tentang sejarah
khususnya beberapa bangunan bersejarah yang ada di Indonesia seperti Gedung Merdeka, Musium Fatahilah, dan Musium Kereta Api ambarawa, selain itu agar dapat lebih menghargai terhadap sejarah itu sendiri, serta dapat menarik minat para remaja untuk mengunjungi objek-objek wisata yang menyajikan edukasi sejarah.
First Person Shooter atau disingkat FPS merupakan genre sebuah game yang
mengambil sudut pandang orang pertama. Dimana pemain seolah-olah menjadi karakter utama dalam game yang berpusat pada permainan tersebut. First person
shooter sama seperti third person shooter game yaitu mengutamakan shooting dan
combat dari perspektif karakter yang bertujuan untuk memberikan pemandangan
FPS (First Person Shooter)adalah jenis game yang mengutamakan kecepatan dan gerakan pandangan pemain untuk melihat tampilan dilayar, seperti yang terlihat dari pandangan mata pemain itu sendiri [3].
Banyaknya remaja yang menggemari game bergenre first person shooter
membuat game bergenre ini laris di pasaran dan banyak dimainkan oleh masyarakat terutama dari kalangan remaja. Berdasarkan hasil survey terhadap
gamers di Indonesia yang dilakukan oleh Agate Studio game bergenre FPS
menempati urutan ke 3 setelah game bergenre RPG dan strategi dengan presentasi 40%. Game bergenre first person shooter menurut Entertainment Software Rating
Board salah satu lembaga yang bergelut pada bidang peratingan game.
Berdasarkan hal-hal yang telah dipaparkan dari atas penulis tertarik untuk melakukan penelitian dengan mencoba membangun game yang berjudul
Takedown The Terrorists yang bergenre first person shooter dengan menerapkan
algoritma pencarian A* pada NPC untuk mencari jalur terpendek dari NPC menuju player.
I.2 Rumusan Masalah
Berdasarkan uraian latar belakang yang telah dijelaskan sebelumnya maka rumusan masalah yang bisa diambil ialah bagaimana membangun aplikasi game
3D first person shooter (FPS) Takedown The Terrorists.
I.3 Maksud dan Tujuan
Berdasarkan permasalahan yang telah diteliti sebelumnya, maka maksud dari penulisan tugas akhir ini adalah membangun sebuah game 3D yang bergenre first
person shooter yang di dalamnya memiliki konten informasi tentang beberapa
gedung bersejarah yang ada di Indonesia. Tujuan dari pembangunan aplikasi
game 3D ini yaitu :
1. Sebagai media penyampaian informasi mengenai beberapa bangunan-bangunan bersejarah yang ada di Indonesia
I.4 Batasan Masalah
a. Game bisa dijalankan di desktop
b. Game bisa dimainkan oleh satu pemain.
c. Menggunakan algoritma A* pada NPC untuk mencari jalur terpendek dari
NPC menuju player
d. Software pembangun menggunakan Unity 4.0.
e. Software perancangnya menggunakan Autodesk 3ds Max, Google Sketchup,
dan Adobe Photoshop.
f. Sasaran pengguna 13 tahun ke atas.
g. Bahasa pemrograman yang digunakan menggunakan Javascript dan C#
h. Game terdiri atas 3 level
I.5 Metodologi Penelitian
Metodologi yang digunakan dalam penulisan tugas akhir ini adalah metode analisis deskriptif, yaitu metode yang menggambarkan dan menginterpretasikan objek sesuai dengan apa adanya.
Metode analisis deskriptif terbagi menjadi dua yaitu:
1. Metode Pengumpulan Data
Metode pengumpulan data yang digunakan untuk mengumpulkan informasi dalam pembangunan dan perancangan game takedown the terrorists ini adalah sebagai berikut :
a. Studi literatur
Studi literatur yang dilakukan yaitu berupa pengumpulan data-data sumber informasi dari buku, internet ataupun literatur lainnya tentang informasi beberapa gedung bersejarah.
b. Kuesioner
berusia 13 tahun ke atas yang sebelumnya telah memainkan game
Takedown The Terrorrists.
2. Metode Pembangunan Perangkat Lunak
Metode pembangunan perangkat lunak yang digunakan ialah model
waterfall yang bisa dilihat pada gambar I.1 [5]
Definisi persyaratan
Implementasi dan pengujian unit
Integrasi dan pengujian sistem Perancangan sistem
dan perangkat lunak
Operasi dan pemeliharaan
Gambar I.1 Siklus Metode Waterfall
Tahap tahap utama dari model waterfall ini memetakan kegiatan-kegiatan pengembangan dasar yaitu:
a. Definisi persyaratan dilakukan dengan melakukan konsultasi dengan calon pemakai sistem kemudian ditentukan cara yang mudah untuk dipahami baik oleh pengguna maupun pengembang
c. Implementasi dan pengujian unit. Pada tahap ini, dilakukan serangkaian pengujian terhadap perangkat lunak yang dibangun dengan mencoba seluruh fungsionalitas yang ada di dalam perangkat lunak yang dibangun. d. Integrasi dan pengujian sistem. Pada tahap ini dilakukan pengecekan
terhadap perangkat lunak apakah sudah sesuai dengan semua sistem dari perangkat lunak itu sendiri agar bisa dinilai apakah sudah layak diberikan kepada calon pengguna.
e. Operasi dan pemeliharaan. Di tahap ini dilakukan apabila masih terdapat kekurangan yang ada di dalam perangkat lunak yang dibangun maka akan dilakukan update untuk perangkat lunak tersebut mulai dari fitur-fitur yang dimiliki sampai dengan sistem yang ada di dalam perangkat lunak yang dibangun[ HYPERLINK \l "Ian03"
5
].I.6 Sistematika Penulisan
Sistematika penulisan ini disusun untuk memberikan gambaran umum tentang penelitian yang dijalankan. Sistematika penulisan Tugas Akhir ini adalah sebagai berikut:
BAB I PENDAHULUAN
Bab ini menguraikan tentang latar belakang permasalahan, mencoba merumuskan inti permasalahan yang dihadapi, menentukan tujuan dan kegunaan penelitian yang kemudian diikuti dengan pembatasan masalah, serta sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini membahas tentang teori-teori dasar yang berkaitan dengan topik pembuatan aplikasi game. Teori-teori tersebut meliputi game, AI atau kecerdasan buatan, algoritma pencarian yang digunakan yaitu algoritma A*, game engine
yang digunakan yaitu Unity, software perancang 3D Studio Max, bahasa pemrograman yang digunakan yaitu C#, Java, analisis sistem berbasis objek,
UML (Unified Modelling Language),
Analisis masalah yang dihadapi dalam pembuatan aplikasi game 3D First
Person Shooter Takedown The Terrorists. Baik dari segi gameplay ataupun AI
yang akan dipergunakan.
BAB IV IMPLEMENTASI DAN PENGUJIAN
Implementasi yang ada yaitu implementasi perangkat keras, impementasi perangkat lunak, implementasi installasi aplikasi game, implementasi antamuka metode dan kaidah yang diterapkan dalam penelitian. Pengujian meliputi pengujian white box dan pengujian black box, juga hasil kuesioner yang telah diberikan kepada pengguna
BAB V KESIMPULAN DAN SARAN
7
suatu aktivitas rekreasi yang dapat dimainkan untuk menciptakan kesenangan, tujuan dari permainan itu sendiri adalah untuk refreshing.Biasanya permainan dilakukan sendiri ataupun bersama-sama.Teori permainan mula-mula dikembangkan oleh seorang ahli matematika perancis bernamaEmile Borel pada tahun 1921. Kemudian, Jhon Von Neumann dan Oscar morgensten mengembangkan lebih lanjut sebagai alat untuk merumuskan perilaku ekonomi yang bersaing.Aplikasi-aplikasi nyata yang palingsukses dari teori permainan banyak ditemukan dalam militer. Tetapi denganberkembangnya dunia usaha (bisnis) yang semakin bersaing dan terbatasnyasumber daya serta saling ketergantunga social, ekonomi, dan ekologi yangsemakin besar, akan meningkatkan pentingnya aplikasi-aplikasi teori permainan. Kontrak dan program tawar menawar serta keputusan-keputusan penetapan harga adalah contoh penggunaan teori permainan yang semakin meluas [6].
Model-model teori permainan dapat diklasifikasikan dengan sejumlah cara,seperti jumlah pemain, jumlah keuntungan dan kerugian dan jumlah strategi yangdigunakan dalam permainan. Sebagai contoh, bila jumlah pemain adalah dua,permainan disebut sebagai permainan dua-pemain. Begitu juga, bila jumlahpemain adalah N (dengan N ≥3 ), permainan disebut permainan N-pemain.
II.1.1 Pengertian Game
Game merupakan sebuah bentuk seni dimana penggunanya disebut dengan pemain (player), diharuskan membuat keputusan-keputusan dengan tujuan mengelola sumber daya yang diperoleh dari kesempatan-kesempatan bermain
(token) miliknya untuk mencapai tujuan tertentu. Video game adalah bentuk game
yang interaksi umunya melibatkan media video dan audio.
kesenangan tanpa mencari menang atau kalah. Kedua, permainan diartikan sebagai aktifitas bermain yang dilakukan dalam rangka mencari kesenangan dan kepuasan, namun ditandai pencarian menang – kalah.
Berdasarkan representasinya, game dapat dibedakan menjadi 2 jenis yaitu
game 2 dimensi (2D) dan 3 dimensi (3D). Game 2D adalah game yang secara matamatis hanya melibatkan 2 elemen koordinat kartesius yaitu x dan y, sehingga konsep kamera pada game 2D hanya menentukan gambar pada game yang dapat dilihat oleh pemain. Sedangkan game 3D adalah game yang selain melibatkan elemen x dan y juga melibatkan elemen z pada perhitungannya sehingga konsep kamera pada game 3D benar-benar menyerupai konsep kamera pada kehidupan nyata [7].
II.1.2 Jenis-jenis Game
Berikut klasifikasi game berdasarkan genre permainannya [8] : 1. Aksi Shooting
Video game jenis ini sangat memerlukan kecepatan refleks, koordinasi mata
dan tangan, juga timing, inti dari game jenis ini adalah tembak, tembak dan tembak. Termasuk didalamnya tedapat :
a. First person shooter (FPS) seperti Counter Strike dan Call of Duty.
Drive n shoot, menggunakan unsur simulasi kendaraan tetapi tetap dengan tujuan utama menembak dan menghancurkan lawan, contoh : Spy Hunter, Rock and Roll Racing, Road Rash.
b. Shoot em up, seperti Raiden, 1942, dan gradius.
c. Beat em up (tonjok hajar) seperti Double Dragon dan Final Fight, lalu
hack and slash (tusuk tebas) seperti Shinobi dan Legend of Kage.
d. Light gun shooting, yang menggunakan alat yang umumnya berbentuk
seperti senjata, seperti Virtua Cop dan Time Crisis.
e. Fighting ( pertarungan ) Ada yang mengelompokan video game fighting di
2. Petualangan.
Jenis videogame aksi-petualangan memerlukan kelihaian pemain dalam bergerak, refleks, berlari, melompat hingga memecut atau menembak tidak diperlukan di sini. Video Game murni petualangan lebih menekankan pada jalan cerita dan kemampuan berpikir pemain dalam menganalisa tempat secara
visual, memecahkan teka-teki maupun menyimpulkan rangkaian peristiwa dan
percakapan karakter hingga penggunaan benda-benda tepat pada tempat yang tepat.
3. Simulasi, Konstruksi dan manajemen.
Video Game jenis ini seringkali menggambarkan dunia di dalamnya sedekat
mungkin dengan dunia nyata dan memperhatikan dengan detil berbagai faktor.
Video Game jenis ini membuat pemain harus berpikir untuk mendirikan,
membangun dan mengatasi masalah dengan menggunakan dana yang terbatas. Contoh: Sim City, The Sims, Tamagotchi.
4. Role Playing.
Video game jenis ini sesuai dengan terjemahannya, bermain peran, memiliki
penekanan pada tokoh/peran perwakilan pemain di dalam permainan, yang biasanya adalah tokoh utamanya, dimana siring kita memainkannya, karakter tersebut dapat berubah dan berkembang ke arah yang diinginkan pemain ( biasanya menjadi semakin hebat, semakin kuat, semakin berpengaruh, dll) dalam berbagai parameter yang biasanya ditentukan dengan naiknya level, baik dari status kepintaran, kecepatan dan kekuatan karakter. seperti Final Fantasy,
Dragon Quest dan Xenogears.Never Winter Nights, baldurs gate, Elder Scroll,
dan Fallout.
5. Puzzle.
Video game jenis ini sesuai namanya berintikan mengenai pemecahan
petualangan maupun game edukasi. Tetris, Minesweeper, Bejeweled, Sokoban
dan Bomberman.
6. Simulasi kendaraan.
Video Game jenis ini memberikan pengalaman atau interaktifitas sedekat mungkin dengan kendaraan yang aslinya, muskipun terkadang kendaraan tersebut masih eksperimen atau bahkan fiktif, tapi ada penekanan khusus pada detil dan pengalaman realistik menggunakan kendaraan tersebut.
II.2 AI (Artificial Intelligence)
Salah satu unsur yang berperan penting dalam sebuah game adalah kecerdasan buatan. Dengan kecerdasan buatan, elemen-elemen dalam gameseperti musuh biasa berinteraksi dengan player dalam berbagai hal, mulai dari bertarung hinggaberjalan. khusus proses berjalan, algoritma pathfinding adalah algoritma yangdapat dimanfaatkan membantu musuh menemukan alur jalannya.
Kecerdasan buatan atau Artificial Intelligence (AI) merupakan cabang dari ilmu komputer yang berhubungan dengan pengotomatisan tingkah laku cerdas.Kecerdasan buatan didasarkan pada teori suara (sound theoretical) dan prinsip-prinsip aplikasi dari bidangnya.Prinsip-prinsip ini meliputi struktur data yang digunakan dalam representasi pengetahuanalgoritama yang diperlukan untuk mengaplikasikan pengetahuan tersebut serta bahasa dan teknik pemrograman yang digunakan dalam mengimplementasikannya.
Berdasarkan sudut pandang, AI dapat dipandang sebagai berikut :
1. Sudut pandang kecerdasan, AI adalah bagaimana membuat mesin yang cerdas dan dapat melakukan hal-hal yang sebelumnya hanya dapat dilakukan manusia.
2. Sudut pandang bisnis, AI adalah sekelompok alat bantu yang berdayaguna dan metodologi yang menggunakan alat-alat bantu tersebut untuk menyelesaikan masalah-masalah bisnis.
3. Sudut pandang pemrograman,AI meliputi studi tentang pemrograman simbolik,pemecahan masalah dan proses pencarian
a. Riset tentang AI dimulai pada awal tahun 1960-an,percobaan pertama adalah membuat program permainan catur,membuktikan teori dan
general problem solving.
b. AI adalah nama pada akar dari studi area.
Kecerdasan buatan memiliki sejumlah sub disiplin ilmu yang sering digunakan untuk pendekatan yang esensial bagi penyelesaian suatu masalah dan dengan aplikasi bidang AI yang berbeda.Pada gambar 2.3 dapat dilihat bidang-bidang tugas dari AI.
Expert
Gambar II.1 Bidang-bidang tugas (task domains) dari AI [9] Aplikasi penggunaan AI dapat dibagi ke dalam tiga kelompok yaitu :
1. Expert Task
AI dibentuk berdasarkan pengalaman dan pengetahuan yang dimiliki oleh para ahli.Penggunaan ini dapat membantu para ahli untuk menyampaikan ilmu-ilmu yang dimiliki. Contohnya adalah:
a. Analisis finansial. b. Analisis medikal.
d. Rekayasa
(desain,pencarian,kegagalan,perencanaan,manufaktur).
2. Formal Task
AI digunakan untuk melakukan tugas-tugas formal yang selama ini manusia biasa lakukan dengan lebih baik.Contohnya adalah :
a. Game.
b. Matematika (geometri,logika,kalkulus,integral).
3. Mundane Task
Secara harfiah mundane adalah keduniaan.AI digunakan untuk melalukan hal-hal yang sifatnya duniawi atau melakukan kegiatan yang dapat membantu manusia.Contohnya adalah:
a. Persepsi. b. Bahasa alami. c. Robot control.
Aplikasi kecerdasan buatan memiliki dua bagian utama yaitu :
1. Basis Pengetahuan (Knowledge Base): berisi fakta-fakta,teori,pemikiran dan hubungan antara satu dengan lainnya.
2. Motor Inferensi (Inference Engine): kemampuan menarik kesimpulan berdasarikan pengalaman.
II.3 Algoritma A*
Algoritma ini merupakan algoritma Best First Search yang menggabungkan
Uniform Cost Search dan Greedy Best-First Search. Biaya yang diperhitungkan
didapat dari biaya sebenarnya ditambah dengan biaya perkiraan. Dalam notasi matematika dituliskan sebagai f (n) = g(n) + h(n).Dengan perhitungan biaya seperti ini, Algoritma A* adalah compelete dan optimal.
Algorima A*, merupakan salah satu contoh algoritma pencarian yang cukuppopular di dunia. Jika mengetikkan Algoritma A* pada sebuah mesin
Beberapa terminologi dasar yang terdapat pada algoritma ini adalah starting point, simpul (nodes), A, open list, closed list, harga (cost), halangan
(unwalkable). Starting point adalah sebuah terminologi untuk posisi awal sebuah
benda.A adalah simpul yang sedang dijalankan dalam algortima pencarian jalan terpendek. Simpul adalah petak-petak kecil sebagai representasi dari area
pathfinding.Bentuknya dapat berupa persegi, lingkaran, maupun segitiga.open list
adalah tempat menyimpan data simpul yang mungkin diakses dari starting point
maupun simpul yang sedang dijalankan. Closed list adalah tempat menyimpan data simpul sebelum A yang juga merupakan bagian dari jalur terpendek yang telah berhasil didapatkan. Harga (F) adalah nilai yang diperoleh dari penjumlahan nilai G, jumlah nilai tiap simpul dalam jalur terpendek dari starting point ke A, dan H, jumlah nilai perkiraan dari sebuah simpul ke simpul tujuan. Simpul tujuan yaitu simpul yang dituju.Rintangan adalah sebuah atribut yang menyatakan bahwa sebuah simpul tidak dapat dilalui oleh A.
Prinsip algoritma ini adalah mencari jalur terpendek dari sebuah simpul awal
(starting point) menuju simpul tujuan dengan memperhatikan harga (F) terkecil.
Diawali dengan menempatkan A pada starting point, kemudian memasukkan seluruh simpul yang bertetangga dan tidak memilik atribut rintangan dengan A ke dalam open list. Kemudian mencari nilai H terkecil dari simpul-simpul dalam
open list tersebut. Kemudian memindahkan A ke simpul yang memiliki nilai H
terkecil. Simpul sebelum A disimpan sebagai parent dari A dan dimasukkan ke dalam closed list. Jika terdapat simpul lain yangbertetangga dengan A (yang sudah berpindah) namun belum termasuk kedalam anggota open list, maka
masukkan simpul-simpul tersebut ke dalam open list. Setelah itu, bandingkan nilai G yang ada dengan nilai G sebelumnya (pada langkah awal, tidak perlu dilakukan perbandingan nilai G). Jika nilai G sebelumnya lebih kecil maka A kembali ke posisi awal. Simpul yang pernah dicoba dimasukkan ke dalam closed list. Hal terebut dilakukan berulangulang hingga terdapat solusi atau tidaka ada lagi simpul lain yang berada pada open list.
Terdapat beberapa hal yang perlu didefinisikan terlebih dahulu dalam kasus
yang akan dibahas yaitu path, open list, closed list, nilai f, g dan n.
Algoritma A* menggunakan dua senarai yaitu OPEN dan CLOSED.OPEN
adalah senarai (list) yang digunakan untuk menyimpan simpul-simpul yangpernah dibangkitkan dan nilai heuristiknya telah dihitung tetapi belum terpilih sebagai simpul terbaik (best node) dengan kata lain, OPEN berisi simpul-simpul masih memiliki peluang untuk terpilih sebagai simpul terbaik, sedangkan CLOSED
adalah senarai untuk menyimpan simpul-simpul yang sudah pernahdibangkitkan dan sudah pernah terpilih sebagai simpul terbaik. Artinya, CLOSED berisi
simpul-simpul yang tidak mungkin terpilih sebagai simpul terbaik (peluang untuk terpilih sudah tertutup).
1. OPEN LIST adalah list yang menyimpan kemungkinan path yang akan
diperiksa. OPEN LIST dibuat terurut berdasarkan nilai f. OPEN LIST
digunakan untuk menentukan secara selektif (berdasarkan nilai f) jalan yang dikira lebih dekat menuju pada path tujuan. OPEN berisi simpul-simpul yang masih memiliki peluang untuk terpilih sebagai simpul terbaik (best node).
2. CLOSED adalah senarai (list) untuk menyimpan simpul-simpul yang
sudahpernah dibangkitkan dan sudah pernah terpilih sebagai simpul terbaik
(bestnode) atau senarai yang menyimpan jalan yang sudah diperiksa dari open
list.Artinya, CLOSED berisi simpul-simpul yang tidak mungkin terpilih sebagai simpul terbaik (peluang untuk terpilih sudah tertutup). Kedua list
(OPENLIST dan CLOSED LIST) ini bertujuan juga untuk menghindari
penelusuranberkali-kali jalan (rute) yang memang sudah diidentifikasi agar tidak masuk kembali ke dalam OPEN LIST.
3. Nilai F adalah cost perkiraan suatu path yang teridentifikasi. Nilai F merupakan hasil dari f(n).
4. Nilai G hasil dari fungsi g(n), adalah banyaknya langkah yang diperlukan untuk menuju ke path sekarang.
dengan :
f(n) = fungsi evaluasi ( jumlah g(n) dengan h(n) )
g(n) = biaya (cost) yang dikeluarkan dari keadaan awal sampai keadaan n
h(n) = estimasi biaya untuk sampai pada suatu tujuan mulai dari n
Perhitungan nilai H digunakan fungsi heuristic, metode yang digunakan di dalam contoh ini adalah metode Manhattan dimana perhitungan jumlah node
hanya yang bergerak secara vertical dan horizontal menuju tujuannya serta
mengabaikan penghalang atau collision, yang kemudian nilainya dikalikan dengan 10. Atau dirumuskan dengan [10]:
H = 10*(abs(currentX-targetX) + abs(currentY-targetY)) Di bawah ini merupakan pseudocode dari algoritma A*.
Tabel II.1 Pseudocode Algoritma A*
II.4 Analisis Sistem Berbasis Objek
Analisis dan disain berorientasi objek adalah cara baru dalam memikirkan suatu masalah dengan mengguna kan model yang dibuat menurut konsep sekitar dunia nyata. Dasar pembuatan adalah objek,yang merupakan kombinasi antara struktur data dan perilaku dalam satu entitas
f(n) = g(n) + h(n)
1. fungsi A*(awal,tujuan)
2. var himpunan_tertutup <- himpunan_kosong
3. var q <- buat_antrian(titk_awal)
4. while (q tidak kosong)
5. var p <- hapus_elemen_pertama(q)
6. var x <- titik_akhir_dari_p
7. if (x = tujuan)
8. return p
9. for (tiap y pada suksesor(p))
10. if (y bukan anggota himpunan_tertutup)
11. masuk_antrian(q, y)
12. tambahkan y ke himpunan_tertutup
13. endif
14. endfor
15. endwhile
II.4.1 Object Oriented Programming
OOP (Object Oriented Programming) adalah pemodelan atau alat untuk mendesain sebuah game.Desainnya bisa dari objek karakter ataupun dari programnya.
Objek adalah kesatuan entitas yang memiliki sifat dan tingkah laku. Dalamkehidupan sehari-hari, objek adalah benda, baik benda berwujud nyata seperti manusia, hewan, mobil, komputer, handphone, pena, ataupun benda yang tidak nyata atau konsep, seperti halnya tabungan bank, sistem antrian, sistem internet banking, dan sebagainya. Jadi pengertian OOP adalah konsep yang membagi program menjadi objek-objek yang saling berinteraksi satu sama lain. Objek adalah benda, baik benda yang berwujud nyata maupun benda yang tidak nyata (konsep). Jika menggunakan OOP maka akan ada enam keuntungan yang dapat diperoleh, yaitu [11]:
1. Alami (Natural).
2. Dapat diandalkan (Reliable).
3. Dapat digunakan kembali (Reusable).
4. Mudah untuk dalam perawatan (Maintainable). 5. Dapat diperluas (Extendable).
6. Efisiensi waktu.
Berikut ini beberapa bahasa pemrograman yang sudah menggunakan konsep
OOP, adalah : 1. C++.
2. Visual C++.
II.4.2 UML (Unified Modeling Language)
UML (Unified Modeling Language) adalah sebuah bahasa yang
berdasarkan grafik/gambar untuk memvisualisasi, menspesifikasikan, membangun, dan pendokumentasian dari sebuah sistem pengembangan software
berbasis OO (Object-Oriented). UML sendiri juga memberikan standar penulisan sebuah sistem blue print,yang meliputi konsep bisnis proses, penulisan kelas-kelas dalam bahasa program yang spesifik, skema database, dan komponen-komponen yang diperlukan dalam sistem software.
Metode objek-oriented banyak digunakan dalam pengembangan perangkat lunak.Unified Modeling Language (UML) adalah bahasa yang dapat digunakan untuk spesifikasi, visualisasi dan dokumentasi sistem software pada fase pengembangan.UML merupakan unifikasi metode-metode Booch, OMT dan
Objectory serta beberapa metode lainnya, de facto UML merupakan standar
bidang analisis dan desain sistem objek-oriented. View adalah jendela (window) yang merupakan aspek pandang UML terhadap sistem. UML memperkenalkan lima buah view untuk memandang sistem yaitu: Use-Case View, Logical View,
Componentview, Deployment Viewdan Concurrency View (Eriksson dan Penker,
1998). Booch (1998) menyebut view ini sebagai arsitektur 4+1´ dan menyebut
Concurrency View sebagai Process View. Tahap pengembangan sistem perangkat
lunak di dalam UML meliputi:
Analisis Kebutuhan (Requirement Analysis), Analisis Sistem (Analysis), Desain (Design), Implementasi (Implementation) dan Testing [12]
II.4.1.1 Use Case Diagram
Use case diagram menggambarkan fungsionalitas yang diharapkan dari
Use case diagram dapat sangat membantu menyusun requirement sebuah sistem,mengkomunikasikan rancangan dengan klien, dan merancang test case
untuk semua feature yangada pada sistem.
Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalamdirinya. Secara umum diasumsikan bahwa use case yang
di-include akan dipanggil setiap kali usecase yang meng-include dieksekusi secara
normal.
Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitasdapat dihindari dengan cara menarik keluar fungsionalitas yang common.
Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri.Sementara hubungan generalisasi antar use case menunjukkan bahwa use
case yang satu merupakanspesialisasi dari yang lain [13]. contoh use case dapat
dilihat pada gambar II.1
Gambar II.2 Diagram Use Case
II.4.1.2 Class Diagram
Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan
Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungansatu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain [13]. Gambar II.3 menunjukkan contoh class diagram
Gambar II.3 Class Diagram
II.4.1.3 Component Diagram
Component diagram menggambarkan struktur dan hubungan antar
komponen piranti lunak,termasuk ketergantungan (dependency) di antaranya. Komponen piranti lunak adalah modul berisi code, baik berisi source code
maupun binary code, baik library maupun executable, baik yang muncul pada
compile time, link time, maupun run time.
Gambar II.4 Component Diagram
II.4.1.4 Deployment Diagram
Deployment/physical diagram menggambarkan detail bagaimana
komponen di-deploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal.
Gambar II.5 Deployment Diagram
II.4.1.5 State Diagram
Statechart diagram menggambarkan transisi dan perubahan keadaan (dari
satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari stimuli
yang diterima. Pada umumnya statechart diagram menggambarkan class tertentu (satu class dapat memiliki lebih dari satu statechart diagram).
Dalam UML, state digambarkan berbentuk segiempat dengan sudut membulat dan memiliki namasesuai kondisinya saat itu. Transisi antar state
umumnya memiliki kondisi guard yang merupakan syarat terjadinya transisi yang bersangkutan, dituliskan dalam kurung siku. Action yang dilakukansebagai akibat dari event tertentu dituliskan dengan diawali garis miring [13]. Contoh state
Gambar II.6 State Diagram
II.4.1.6 Sequence Diagram
Sequence diagram menggambarkan interaksi antar objek di dalam dan di
sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait).
Sequence diagram biasa digunakan untuk menggambarkan skenario atau
rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event
untuk menghasilkan output tertentu. Diawali dariapa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan [13]. Salah satu contoh sequence diagram digambarkan pada gambar II.6.
Gambar II.7 Sequence Diagram
II.4.1.7 Collaboration Diagram
Collaboration diagram juga menggambarkan interaksi antar objek seperti
bukan pada waktu penyampaian message. Setiap message memiliki sequence
number, di mana message dari level tertinggi memiliki nomor 1. Messages dari
level yang sama memiliki prefiks yang sama [13]. Gambar II.8 menunjukkan contoh collaboration diagram.
Gambar II.8 Collaboration Diagram
II.4.1.8 Activity Diagram
Activity diagrammenggambarkan berbagai alur aktivitas dalam sistem
yang sedang dirancang, bagaimana masing-masing alur berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.
Activity diagram merupakan state diagram khusus, dimana sebagian besar
state adalah action dan sebagian besar transisi di-trigger oleh selesainya state
sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum [13].
Gambar II.9 Activity Diagram
II.5 Bahasa Pemrograman C#
C# merupakan sebuah bahasa pemrograman yang berorientasi objek yangdikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .NET
Framework [13].C# adalah Java versi Microsoft, sebuah bahasa multi flatform
yang didesain untuk bisa berjalan di berbagai mesin.C# adalah pemrograman berorientasi Object (OOP).C# memiliki kekuatan bahasa C++ dan portabilitas seperti Java. Fitur-fitur yang diambilnya dari bahasa C++ dan Java adalah desain berorientasi objek, seperti garbage collection, reflection, akar kelas (root class), dan juga penyederhanaan terhadap pewarisan jamak (multiple inheritance).
Bahasa pemrograman C# dibuat sebagai bahasa pemrograman yang bersifat general-purpose (untuk tujuan jamak), berorientasi objek, modern, dan sederhana.C# ditujukan agar cocok digunakan untuk menulis program aplikasi baik dalam sistem clien-server (hosted system) maupun sistem embedded
(embedded system), mulai dari program aplikasi yang sangat besar yang
menggunakan sistem operasi yang canggih hingga kepada program aplikasi yang sangat kecil.
bersaing secara langsung dengan kinerja dan ukuran program aplikasi yang dibuat dengan menggunakan bahasa pemrograman C [14].
II.6 Java
Java adalah sebuah bahasa pemrograman pada komputer sama seperti
pendahulunya C++. Bahasa pemrograman ini dikembangkan oleh Sun
microsystems yang dikembangkan pada tahun 1995 . Awalnya javadiciptakan
pada tahun 1991 oleh Patrick Naughton, Mike Sheridan , James Gosling dan Bill Joy beserta programer dari Sun Microsystems . Uniknya nama javadiambil dari nama pulau jawa ( bahasa inggris dari jawa ) karena James Gosling " Bapak Java" menyukai kopi tubruk yang berasal dari pulau Jawa . Jadi kita perlu berbangga menjadi warga negara Indonesia [15].
Java sendiri merupakan bahasa pemrograman yang berbasis objek ,
maksudnya adalah semua aspek yang terdapat pada javaadalah objek sehingga sangat memudahkan untuk mendesain , membuat dan mengembangkan program
javadengan cepat . Kelebihan ini membuat program javamenjadi mudah untuk digunakan oleh banyak orang . Bahasa pemrograman ini juga dapat digunakan oleh banyak sistem operasi , seperti : Microsoft Windows, Linux, Mac OS, dan Sun Solaris ( Multiplatform ) .
Kelebihan Java:
- Berorientasi objek, Memudahkan untuk mendesign dan mengembangkan program dengan cepat dan teliti, sehinnga mudah digunakan. Salah satu bahasa pemrograman yang berorientasi objek secara murni. Mirip C++, Mempunyai sintaks yang mirip dengan bahasa pemrograman C++. Sehingga para pengguna C++ banyak yang hijrah menggunakan Java.
- Multiplatform, Dapat digunakan dibanyak sistem operasi. Perkembangan yang luas, Dari game sampai sistem operasi handphone menggunakan program java.
- Proses Compile, Mengharuskan pengguna mengcompile programnya sebelum dijalankan, berbeda dengan bahasa pemrograman python yang tidak perlu mengcompile terlebih dahulu .
- Penggunaan Memori yang besar, Berbeda dengan bahasa pemrograman lain yang hanya membutuhkan memori sedikit
SunMicrosystem mendefinisikan 3 (tiga) edisi java, yaitu :
1. J2ME (JavaMicro Edition)
Edisi ini ditunjukan bagi lingkungan dengan sumber daya terbatas, seperti
smartcard, ponsel, dan PDA.
2. J2SE (Java2 Standard Edition)
Edisi ini ditunjukan bagi lingkungan workstation, seperti pembuatan aplikasi-aplikasi desktop.
3. J2EE (Java2 Enterprise Edition)
Edisi ini ditunjukan bagi lingkungan Internet atau aplikasi terdistribusi dalam skala besar.
Perbedaan setiap edisi meliputi fitur-fitur bahasa yang didukung dan API
yang tersedia. Berdasarkan tingkatannya, edisi yang lebih tinggi mampu mengemulasi edisi yang lebih rendah. Adapun urutan edisi yang tertinggi ke rendah adalah J2EE, J2SE, J2ME.
Sedangkan pada Versi javakita cermati dari versi-versi Javayang telah dirilis
Sun Microsystems yang menggunakan dua jenis versi, yaitu versi produk dan versi
developer. Seperti kita ketahui, versi terbaru saat ini adalah versi 6 (Versi produk) atau versi 1.6.5 (Versi developer), dengan nama kode Mustang. Sejak tahun 2006, Sun juga menyederhanakan penamaan platform dengan tujuan untuk mencerminkan tingkat kematangan, stabilitas, skalabilitas, dan sekuriti yang lebih baik.Jika penamaan versi sebelumnya adalah Java2 Platform, Standard Edition
5.0 (J2SE 5.0), maka sekarang disederhanakan menjadi Java Platform, Standard
II.5 Unity
Unity Game Engine adalah software atau game engine yang digunakan
untuk membuat video game berbasis dua atau tiga dimensi dan dapat digunakan secara gratis. Selain untuk membuat game, unity juga dapat digunakan untuk membuat konten yang interaktif lainnya seperti, visual arsitektur dan real-time 3D animasi.
Unity adalah sebuah sebuah tool yang terintegrasi untuk membuat game,
arsitektur bangunan dan simulasi.Unity bisa digunakan untuk games PC dan
games online. Untuk games online diperlukan sebuah plugin, yaitu Unity Web
Player, yang sama halnya dengan flashplayer pada browser. Bahasa pemrograman
yang digunakan bermacam-macam, mulai dari javascript, C#, dan boo[16].
II.6 3D Studio Max
3ds Max atau 3D Studio Max adalah salah satu software atau perangkat
lunak yang sering digunakan oleh perancang produk untuk membuat animasi atau pemodelan dalam bentuk 3 dimensi. Aplikasi canggih ini dirilis oleh salah satu perusahaan Autodesk Media & Entertainment yang pada mulanya dikenal sebagai
Discreet and Kinetix.3D Max merupakan salah satu dari sekian banyak aplikasi
modeling untuk membuat model 3D dan paling banyak digunakan oleh perancang
yang tersebar di seluruh dunia.
Sejalan dengan berkembangnya teknologi termasuk juga dalam bidang komputerisasi.3D Max pun mengalami perubahan-perubahan untuk menyesuaikan dengan kemampuan komputer yang semakin tinggi dalam hal grafis.3D Max
dikembangkan dari aplikasi sebelumnya yang bernama 3D Studio for Dos, tetapi aplikasi ini hanya diperuntukan untuk platform Win32.
Dengan semakin canggihnya kemampuan software ini, maka tidak aneh
3D Max menjadi program animasi komputer 3D dengan penjualan terbesar di
dunia.Software ini memiliki kemampuan modeling yang kuat dan merupakan
plugin architecture yang fleksibel dan bekerja dengan platform Microsoft
29 BAB III
ANALISIS DAN PERANCANGAN
III.1 Analisis Sistem
Pada bagian analisis sistem merupakan penelitian atas sistem yang telah ada dengan tujuan untuk merancang sistem yang baru atau diperbarui. Analisis sistem ini mencakup analisis-analisis terhadap masalah yang akan dilakukan terhadap game mulai dari analisis masalah, analisis game sejenis, analisis kebutuhan non fungsional, analisis pengguna, analisis algoritma, analisis fungsional hingga perancangan antarmuka dari game yang akan dibua.
III.1.1 Analisis Masalah
Seiring dengan berkembangnya peradaban saat ini membuat kebudayaan asing mudah masuk hal ini berdampak kepada berkurangnya kepedulian terhadap pendidikan sejarah. Menariknya budaya masa lalu yang berakibat banyaknya budaya asing yang cenderung lebih menarik sehingga menggeser keberadaan sejarah yang ada [1]. Menurut pemerhati budaya dan sejarah Asep Kambali mengatakan jika kesadaran masyarakat Indonesia untuk mengenal dan mencintai sejarah dan budaya, berangsur-angsur mulai meredup menurutnya Kesadaran masyarakat, khususnya pemuda, terhadap budaya dan sejarah dinilai saat ini justru rendah.Kita bisa menilai pertama dari pengetahuan mereka yang kurang terhadap sejarah dan budaya. Kedua, dari cara bersikap. Ketiga, dari cara mereka menghargai dan bertindak terhadap kebudayaan itu sendiri [2]. Dengan diaplikasikannya ke dalam game diharapkan bisa menambah pengetahuan pengguna tentang sejarah khususnya beberapa bangunan bersejarah yang ada di Indonesia seperti Gedung Merdeka, Musium Fatahilah, dan Musium Kereta Api ambarawa, selain itu agar dapat lebih menghargai terhadap sejarah itu sendiri, serta dapat menarik minat para remaja untuk mengunjungi objek-objek wisata yang menyajikan edukasi sejarah.
1. Bagaimana membangun sebuah aplikasi hiburan yang bisa dinikmati oleh para remaja dalam bentuk sebuah game PC .
2. Menjadikan game sebagai media penyampaian informasi mengenai beberapa bangunan-bangunan bersejarah yang ada di Indonesia
III.1.2 Analisis Game Sejenis
Analisis game sejenis dilakukan untuk memberikan gambaran dari sistem yang akan dibuat yang digunakan sebagai pembanding agar sistem dari game
yang dibuat semakin baik agar bisa memenuhi keinginan dari pembuat game.
III.1.2.1 Soldier Of Fortune payback
Game Soldier Of Fortune Payback ini merupakan game bergenre first
person shooter yang dibuat oleh Activision dan dirilis pada tanggal 14 Nopember
2007. Game ini memiliki grafis yang sangat bagus karena game ini ditujukan untuk console Xbox 360, Playstation 3, dan PC. Thomas Mason diberikan perintah untuk melaksanakan suatu misi pengawalan dan harus melibatkan dirinya di dalam masalah ketika ada campur tangan kelompok teroris, dan Thomas harus bisa menghentikan kelompok teroris yang bisa menimbulkan kekacauan di seluruh dunia berikut adalah gambar dari game Soldier Of Fortune : Payback
terlihat pada gambar III.1
Game memiliki grafis dan alur cerita yang cukup baik, namun di dalam
game terdapat konten-konten yang menunjukan sadisme yaitu apabila user
menembak kepada musuh pada anggota badan tertentu maka anggota badan yang tertembak akan terpisah dari anggota badan lainnya.
Tabel III.1 analisis game sejenis Nama Game Genre Game Desain Grafis Storyline dan
gameplay
multiplayer Basis
Soldier Of bersifat sadis di
dalam game tersebut
tidak Desktop
a. Gameplay
Pada game Soldier of Fortune, pemain harus mengalahkan musuh-musuh yang ada di dalam game, dan harus sampai ke titik yang telah ditentukan untuk menuju level selanjutnya.
b. Skenario Game
Skenario dalam permainan Soldier of Fortune dapat dilihat alur permainannya sebagai berikut :
a. Pemain berada di sebuah kota yang tandus di tengah gurun
b. Pemain harus mencari sebuah titik yang sudah ditentukan untuk menuju level selanjutnya
c. Pemain harus menghindari dan mematikan musuh ketika berada di dalam arena permainan
Alur sistem dari game Soldier of Fortune ini dapat digambarkan melalui activity diagram yang terlihat pada gambar III.2.
Gambar III.2 Alur permainan pada game Soldier of Fortune
Game Soldier of Fortune memiliki beberapa keterbatasan yaitu,
1. Game ini memiliki sifat sadisme karena banyaknya darah yang diperlihatkan
pada game ini.
2. Game ini hanya bisa dimainkan oleh satu pemain saja.
Disamping ada beberapa keterbatasan yang dimiliki game Soldier of Fortune
ada juga beberapa kelebihan yang dimiliki yaitu ;
1. Konten yang disajikan cukup lengkap di dalam game ini 2. Memiliki grafis yang sangat baik
3. Memiliki banyak senjata
Pemain Sistem
Memilih menu play menampilkan intro
menampilkan arena permainan mengendalikan karakter
menembak musuh mengambil item gagal menyelesaikan permainan
III.1.3 Analisis game yang dibangun
Game yang akan dibangun berjudul Takedown The Terrorists. Game ini bergenre first person shooter, Game ini memiliki grafis 3D (3 Dimensi). Memiliki alur cerita tentang perlawanan terhadap kelompok teroris.
Game dibangun dengan konsep sudut pandang orang pertama agar
permainan yang ditampilkan terkesan lebih nyata, seolah-olah pemain terlibat langsung ke dalam arena permainan
Berikut ini adalah fitur-fitur yang terdapat di dalam game: 1. Grafik game 3D
2. Game ini memiliki 3 buah level
3. Game ini dibuat dengan genre first person shooter
4. Game dapat dihentikan ketika permainan sedang berlangsung
5. Memiliki objek-objek gedung bersejarah dimana info dari objek gedung tersebut bisa ditampilkan pada saat permainan berlangsung
6. Game ini memiliki pause menu
7. Game dilengkapi dengan menu option untuk pengaturan suara dan resolusi
gambar
III.1.4 Storyline
Cerita dimulai tentang maraknya kasus terrorisme yang terjadi di Indonesia dan juga banyaknya kelompok teroris yang ada di Indonesia. Seorang kapten tim dari sebuah pasukan khusus yang bernama Kapten dari pasukan densus 88 yang ditugaskan untuk menangkap kelompok-kelompok teroris di yang ada di Indonesia.
- Level pertama misi utama di level ini ialah player harus menuju mobil
pasukannya yang telah menunggu untuk menuju kota selanjutnya di dalam
level 1 petunjuk keberdaan musuh akan ditunjukkan oleh pasukan yang ada di
- Level kedua misi utama dari level ini harus mencari pasukan-pasukan yang diculik oleh para teroris. Karakter harus mengalahkan teroris yang akan menghadang dan membebaskan pasukan yang sedang ditawan oleh teroris. Pada level ini karakter akan dihadapkan dengan jumlah musuh yang semakin banyak daripada level sebelumnya, petunjuk akan diberikan oleh warga sipil yang akan memberitahu keberadaan player dan karakter akan mendapat NPC bantuan yang membantu karakter. Gedung-gedung bersejarah di level ini adalah Bank Indonesia, Stasiun Jatinegara, dan Musium Fatahilah.
- Level ketiga, karakter harus menemukan bom yang disembunyikan oleh para
teroris untuk menyelesaikan misi terakhir ini. Karakter tidak akan mendapat petunjuk apapun tentang lokasi disimpannya bom-bom tersebut. Level ini karakter akan menghadapi musuh yang jauh lebih banyak dan lebih kuat daripada level sebelumnya. Gedung-gedung bersejarah di level ini adalah Taman Sari, Lawang Sewu, dan Stasiun Ambarawa.
III.1.5 Gameplay
Misi utama dari game ini adalah mengagalkan rencana terorisme terhadap gedung-gedung bersejarah yang ada di Indonesia sekaligus memberantas komplotan teroris yang telah melakukan teror terhadap masyarakat. Menu utama memiliki beberapa menu yaitu Main, petunjuk, option, dan keluar. Di dalam game ini terdapat tiga buah level, dua level semua level memilik setting di perkotaan.
Semakin banyak level yang dilewati maka semakin sulit musuh yang dihadapi pada setiap level player akan mendapatkan beberapa item yaitu berupa darah dan amunisi senjata, pada setiap level player akan menjumpai gedung-gedung bersejarah, informasi gedung-gedung tersebut akan tampil jika aktor utama mendekati objek gedung tersebut.
Senjata yang terdapat di dalam game berupa M4A1 dengan grenade launcher,dan
III.1.6 Analisis Tingkat Kesulitan
Tingkat kesulitan akan berbeda di setiap levelnya dilihat dari jumlah musuh, kekuatan musuh, dan selang waktu setiap tembakan yang dilakukan musuh. Di bawah ini adalah perbandingan tingkat kesulitan tiap level, dapat dilihat pada tabel III.2
Tabel III.2 Tingkat Kesulitan tiap Level
Keterangan Level 1 Level 2 Level 3
Jumlah musuh 10 15 20
Jarak tembak musuh 50 75 100
Jarak Pencarian Player 100 125 150
III.1.7 Analisis Scoring
Skor yang ada di dalam game Takedown the terrorists ini dilakukan dengan cara menghitung jumlah musuh yang mati akan dikalikan 100 poin skor ti saling berhubungan tiap levelnya.
III.1.8 Analisis Algoritma A star
Algoritma A* di dalam game akan diterapkan pada NPC (Non Playable
Character) sebagai penentuan jalur tependek atau pathfinding menuju target yaitu
Tabel III.3 Pseudocode Algoritma A*
Kamus global yang digunakan ditampung dalam class node yang terdapat pada script astarclasses.
{Kamus Global} public class Node type:
{
public Int3 position; public Node parent; public int pathIDx;
1. public int f {
8. void UpdateH (Int3 targetPosition, Heuristic 9. heuristic, float scale) {
10. if (heuristic == Heuristic.None) { 11. h = 0;
12. return; 13. }
14. if (heuristic == Heuristic.Manhattan) { 15. h = Mathfx.RoundToInt (
16.(Abs (position.x-targetPosition.x) + 17. Abs (position.y-targetPosition.y) + 18. Abs (position.z-targetPosition.z)) 19. * scale
20. );
21. } else if (heuristic == 22. Heuristic.DiagonalManhattan) {
23. int xDistance = Abs (position.x-targetPosition.x); 24. int zDistance = Abs (position.z-targetPosition.z); 25. if (xDistance > zDistance) {
26. h = (14*zDistance + 10*(xDistance-zDistance))/10; 27. } else {
28. h = (14*xDistance + 10*(zDistance-xDistance))/10; 29. }
30. h = Mathfx.RoundToInt (h * scale); 31. } else {
32. h = Mathfx.RoundToInt ((position- 33. targetPosition).magnitude*scale);
public static Path activePath; public int g;
public int h; public int cost; public int penalty; public int tags = 1; }
public Node[] connections; public int[] connectionCosts;
script di atas merupakan kamus global yang akan dimasukkan ke dalam
banyaknya node yang saling berhubungan, juga untuk menentukan nilai dari tiap-tiap node
Cara kerja algoritma A* di dalam game lebih jelasnya kita lihat pada gambar III.3
Gambar III.3 Tahap awal pencarian Algoritma A*
Pada gambar III.3 pencarian wilayah dibagi ke dalam node-node yang terdiri dari node berwarna hijau merupakan node awal (node A), node berwarna merah merupakan node akhir (node B) dan yang berwarna biru merupakan penghalang (unwalkable node).
A
Selanjutnya adalah, melakukan pencarian untuk menemukan jalan terpendek dengan cara memeriksa node-node yang berdekatan dengan node awal untuk bisa sampai node B. Berikut adalah langkah pencarian yang dilakukan oleh
node awal:
1. Langkah pertama, dimulai dari node awal yang ditambahkan ke dalam
Open list yangmerupakan list untuk node-node yang harus diperiksa.
2. Periksa semua node yang berdekatan dengan node awal apakah bisa dilalui atau tidak, node penghalang yang berwarna biru diabaikan lalu tambahkan semua node tersebut ke dalam open list, untuk setiap node yang baru ditambahkan, simpan node awal sebagai “parent” yang nantinya akan
digunakan untuk menelusuri jalan.
3. Hapus node awal dari open list, dan tambahkan ke dalam closed list.
Closed list merupakan list untuk node yang tidak perlu diperiksa atau
dalam artian merupakan bagian dari jalur terpendek yang sudah didapatkan.
Untuk lebih jelasnya open list dan closed list diilustrasikan pada gambar III.4
Gambar III.4 Ilustrasi open list dan closed list
Pada gambar III.4 diatas node awal yang berwarna hijau sudah ditambahkan ke dalam closed list. Sedangkan kotak yang berada di sekelilingnya
Closed List
A
Open
List
B
Open List
adalah open list yang harus diperiksa satu persatu nilai dari masing-masing node open list.
Langkah berikutnya adalah memilih node yang memiliki nilai F terendah di dalam open list dengan menggunakan rumus (F = G + H) G adalah nilai yang dikeluarkan untuk dari node A ke node yang ada disekitarknya. Sedangkan H adalah fungsi heuristic yang digunakan untuk menghitung perkiraan biaya yang dikeluarkan dari node awal menuju node tujuan.
Proses ini dilakukan secara berulang-ulang, dimulai dari open list dan menemukan node dengan nilai F paling rendah. Perhitungan persamaan untuk mendapatkan nilai F dijelaskan pada ilustrasi gambar III.5.
Gambar III.5 Perhitungan menentukan nilai F
Gambar III.5 menunjukkan pada open list dari node awal yaitu NPC nilai F yang dihasilkan adalah 4 yang didapatkan dari menambahkan nilai G = 2 dan nilai H = 2. Di dalam contoh ini G akan diberi nilai 2 apabila node bergerak secara vertical atau horizontal dan diberi nilai 3 apabila node bergerak secara
diagonal.
Perhitungan nilai H yaitu nilai estimasi jalur terpendek dari node awal ke
node tujuan yaitu player dirumuskan dengan:
H = 2*(abs(n.x-tujuan.x) + abs(n.y-tujuan.y))
Sebagai contoh node yang terletak disebelah kanan dari node awal diberikan nilai H = 6 yang didapatkan dari perhitungan 6 node menuju node
tujuan dan dikalikan 2, 2*3 = 6.
Setelah didapatkan nilai F dari setiap node yang ada di open list, maka akan dipilih node yang memiliki nilai F paling rendah yang kemudian disebut dengan current node, langkah selanjutnya adalah sebagai berikut.
1. Hapus current node dari open list dan masukkan ke dalam closed list.
2. Periksa semua node yang berdekatan dengan current node, abaikan node
penghalang. Jika tidak ada pada open list, tambahkan ke dalam open list,
lalu tambahkan “parent” untuk node tersebut.
3. Jika node sudah ada pada open list, lalu bandingkan dengan node awal apakah jalur yang di ambil lebih baik dari node awal, dengan dengan memeriksa nilai G-nya apakah lebih rendah jika kita menggunakan node
ini, jika lebih rendah maka hitung ulang nilai F dan G serta merubah arah
pointer, jika tidak maka jangan lakukan apa-apa.
Langkah pertama menghasilkan node-node di dalam open list dan closed list dijelaskan pada tabel III.3
Tabel III.4 Tabel Perhitungan Langkah Pertama
Open List 2, 6, 7
Closed List 1
Parent 1
Current Node 7
Gambar III.6 Penjelasan A* menggunakan tree pada langkah pertama
Proses yang dijelaskan di atas, dilakukan berulang kali atau looping,
dimulai dari open list, dimana open list juga berperan sebagai parent dan menemukan node dengan nilai F yang paling rendah yang selanjutnya akan dijadikan current Proses yang dijelaskan di atas, dilakukan berulang kali atau
looping, dimulai dari open list, dimana open list juga berperan sebagai parent dan
menemuka node dengan nilai F yang paling rendah yang selanjutnya akan dijadikan current node (1,1), langkah-langkahnya sebagai berikut
1. Hapus current node dari open list atau parent lalu masukkan current node
tersebut ke dalam closed list.
2. Periksa semua node yang berdekatan dengan current node, abaikan penghalang atau unwalkable node. Jika tidak ada pada open list,
tambahkan ke dalam open list dan tambahkan parent untuk node tersebut 3. Jika node sudah ada pada open list, periksa open list yang mana yang
memiliki nilai F terendah dengan rumus F = G + H, node dengan nilai F terendah akan dijadikan current node selanjutnya.
Perhitungan pada langkah kedua yang berada pada node dengan koordinat (7)dapat dilihat pada gambar 3.7
8 8 7 1