Membangun Aplikasi Game Death Castle

(1)

(2)

Diajukan untuk Menempuh Ujian Akhir Sarjana Program Strata Satu Jurusan Teknik Informatika

Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia

ARIS NUGRAHA

10108573

PROGRAM STUDI S1

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

2012


(3)

(4)

(5)

i Oleh

ARIS NUGRAHA 10108573

Salah satu bentuk hiburan yang paling banyak diminati masyarakat saat ini adalah permainan game. Saat ini permainan game berjenis casual mulai populer. Casual game merupakan jenis game yang mudah untuk dimainkan dan tidak memerlukan kerumitan seperti pada jenis permainan game yang lain. Desain game-nya cenderung sederhana dan biasanya sangat adiktif walaupun dimainkan dalam waktu yang singkat. Game arcade juga termasuk dalam game berjenis

casual . Walaupun permainan arcade termasuk dalam jenis game casual, namun

saat ini permainan arcade kurang memiliki peminat, hal ini disebabkan oleh beberapa hal diantaranya terlalu sederhananya alur permainan, tampilan grafis yang kurang atraktif, dan kurang variatifnya jenis musuh.

Pembangunan aplikasi game Death Castle bertujuan untuk membuat aplikasi permainan berjenis arcade menjadi lebih menarik untuk dimainkan. Dalam Pembangunan aplikasi ini akan menerapkan Algoritma A* pada objek musuh untuk melakukan pencarian rute terpendek menuju karakter pemain. Adapun metode rekayasa perangkat lunak yang digunakan dalam pembagunan aplikasi permainan ini adalah dengan pendekatan berorientasi objek menggunakan UML (Unified Modelling Language) sebagai pemodelan aplikasi.

Setelah melakukan analisis dan perancangan terhadap aplikasi permainan yang dibangun, maka tahap implementasi dilakukan. Setelah itu, tahap pengujian dilakukan yang terdiri dari pengujian alpha dengan metode black box dan white box serta pengujian beta dengan teknik kuesioner. Berdasarkan hasil pengujian yang dilakukan dapat disimpulkan bahwa , aplikasi permainan Death Castle dapat menarik minat para pengguna untuk memainkan permainan game berjenis arcade Kata Kunci : Game Death Castle, Algoritma A*, Arcade Game


(6)

ii

By

ARIS NUGRAHA 10108573

One of the most popular forms of entertainment is game. Nowadays, casual games have become more and more popular. Casual game is an easy-playing game and not as complicated as other games. The game’s design is quite simple and usually addictive even though the game is played in a relatively short time. Arcade is also a type of casual game. Although it is a casual game, not many people are interested in arcade games. This is because arcade games are lack of interesting graphic display and have unvaried enemies.

Death Castle game application is built to make arcade games more interesting. The application building uses Algorithm A* for enemy objects to conduct shortest route search to the player character. The software engineering method used in this application building is object-oriented approach and UML (Unified Modelling Language) is used in making its modelling application.

Implementation is conducted after analyzing and designing the game application. After that, do the testisng phase by the method of black box and white box to the functional test of the game with questionnaire techniques to validate the user. Based on the results of tests performed can be concluded that death castle game applications can attract users to play a game of arcade type games.


(7)

iii

KATA PENGANTAR

Assalammu‟alaikum Wr.Wb.

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 Death Castle” ini dapat terselesaikan tidak kurang dari pada waktunya.

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. Penulis menyadari 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.

Dengan penuh rasa syukur, ucapan terima kasih yang mendalam serta penghargaan yang tidak terhingga penulis sampaikan kepada:

1. Allah SWT, yang telah memberikan rahmat dan hidayah-Nya kepada penulis sehingga dapat menyelesaikan skripsi ini dengan baik.

2. Nabi Muhammad SAW yang telah menyampaikan wahyu Allah.

3. Kedua orang tua, Bapak Dr.Aminuddin Kasim, S.H., M.H., (Ayah sekaligus sosok yang paling penulis kagumi), Ibu Syarifah Mardjun (Mama terbaik dan terhebat di dunia). Yang selalu senantiasa mendoakan penulis sepanjang waktu, memberikan pengertian diantara kekhawatirannya, dan memberikan


(8)

iv

semangat yang tidak ada hentinya serta memberikan dorongan baik moril maupun materil.

4. Yth. Bapak Dr. Ir. Eddy Suryanto Soegoto, M.Sc., selaku Rektor Universitas Komputer Indonesia.

5. Yth. Bapak Prof. Dr. H. Denny Kurniadie, Ir., M.Sc., selaku Dekan Fakultas Teknik dan Ilmu Komputer Universitas Komputer Indonesia.

6. Yth. Ibu Mira Kania Sabariah, S.T., M.T., selaku Ketua Jurusan Teknik Informatika Universitas Komputer Indonesia sekaligus pembimbing yang telah memberikan pengarahan dan masukan-masukan yang berharga kepada penulis dalam mengerjakan laporan tugas akhir

7. Yth. Ibu Rani Susanto, S.Kom., selaku dosen wali kelas IF-12 angkatan 2008. 8. Yth. Bapak Adam Mukharil Bachtiar, S.Kom., selaku penguji 1 yang telah

memberikan banyak masukan yang berarti bagi penulis

9. Yth. Ibu Utami Dewi Widianti, S.Kom., selaku penguji 3 yang telah memberikan banyak masukan yang berarti bagi penulis

10. Seluruh dosen pengajar dan staff tata usaha.

Selain itu tidak lupa juga penulis ucapkan terima kasih yang setulus-tulusnya dan penghargaan yang setinggi-tingginya kepada:

1. Kakakku tercinta Sari Puji Lestari S.T. Yang telah banyak membantu dan memberikan dorongan serta dukungan baik moril maupun materil.

2. Teman-temanku satu bimbingan Egi Jhon ,Resa Bjo, Nurul, Rahmi, Novi dan semua teman pembimbing Ibu Mira Kania Sabariah, S.T., M.T., yang selalu


(9)

v

saling memberikan semangat, dorongan, dan doa. Terimakasih untuk hari rabu yang menyenangkan.

3. Teman-temanku R. Mochammad Reza, Andi Susanto, Daniel Nababan, Nurul Akromah, Emil Solecha, Ronan D. Malelak, Agung Rosamaji, Dadang Sujana , Oscar, Olga, dan semua anak kelas IF-12 angkatan 2008, terimakasih untuk segala kebersamaan selama ini.

4. 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


(10)

vi

ABSTRAK ...i

ABSTRACT ...ii

KATA PENGANTAR ...iii

DAFTAR ISI ...vi

DAFTAR GAMBAR ...ix

DAFTAR TABEL ...xiii

DAFTAR SIMBOL ...xiv

DAFTAR LAMPIRAN ...xvii

BAB 1 PENDAHULUAN ...1

1.1 Latar Belakang Masalah ...1

1.2 Rumusan Masalah ...3

1.3 Maksud dan tujuan ...3

1.4 Batasan Masalah ...4

1.5 Metodologi Penelitian ...5

1.6 Sistematika Penulisan ...8

BAB 2 LANDASAN TEORI ...10

2.1 Game ...10

2.1.1 Pengertian Game ...10


(11)

vii

2.1.3 Jenis-jenis Game ...13

2.1.4 Genre Game ...14

2.1.5 Game Design ...16

2.2 AI (Artficial Intelligence) ...17

2.2.1 Teknik Pemecahan Masalah AI ...19

2.2.2 Game Artificial Intelligence ...21

2.2.3 Algoritma Pencarian ...22

2.2.4 Algoritma A* ...23

2.2.5 Fungsi Heuristic ...25

2.2.6 Pathfinding ...27

2.3 Interaksi Manusia dan Komputer ...33

2.4 Rekayasa Perangkat Lunak ...36

2.5 OOP (Object Oriented Programming) ...39

2.6 UML (Unified Modelling Language) ...42

2.7 Pembangunan Perangkat Lunak ...49

2.7.1 Bahasa Pemrograman C#...49

2.7.2 Microsoft Visual C# 2010 Express ...50

2.7.2 Framework XNA ...50

BAB 3 ANALISIS DAN PERANCANGAN ...52

3.1 Analisis Sistem ...52

3.1.1 Analisis Game Sejenis pada Labirinth Prison ...52

3.1.2 Analisis Perancangan Game Death Castle ...62


(12)

viii

3.1.4 Analisis dan Kebutuhan Non-Fungsional ...103

3.2 Perancangan Sistem ...104

3.2.1 Perancangan Perangkat Lunak ...104

3.2.2 Perancangan Arsitektur Menu ...105

3.2.3 Perancangan Antar Muka ...106

3.2.4 Perancangan Pesan ...109

3.2.5 Jaringan Semantik ...109

3.2.6 Perancangan Method ...110

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM ...124

4.1 Implementasi Sistem ...124

4.1.1 Implementasi Perangkat Keras ...124

4.1.2 Implementasi Perangkat Lunak ...125

4.1.3 Implementasi Aplikasi Game ...125

4.1.4 Implementasi Antarmuka ...126

4.2 Pengujian Sistem ...128

4.2.1 Pengujian Alpha ...128

4.2.2 Pengujian Beta ...142

BAB 5 KESIMPULAN DAN SARAN ...147

5.1 Kesimpulan ...147

5.2 Saran ...147


(13)

1 1.1 Latar Belakang

Dewasa ini banyak sekali permainan game yang berkembang dan diminati oleh masyarakat dunia. Kini permainan game berjenis casual mulai populer. Casual game merupakan jenis game yang mudah untuk digunakan dan tidak memerlukan kerumitan seperti memainkan game lainnya. Desain gamenya cenderung sederhana dan biasanya sangat adiktif walaupun bisa dimainkan dalam waktu yang cukup singkat. Casual game sendiri terdiri dari berbagai tipe gameplay dan berbagai genre game atau jenis game[16]. Game berjenis arcade pun termasuk dalam Casual game. salah satu contohnya adalah game berjudul Battle Tank yang dulu sempat populer di tahun 90-an.

Game berjudul Labirinth Prison[17] merupakan game berjenis arcade berbasis flash yang ada di situs www.freearcade.com. game ini memiliki misi utama untuk keluar dari sebuah penjara yang dijaga oleh banyak musuh. Dalam game ini terlihat beberapa kekurangan diantaranya adalah musuh yang terlihat kurang cerdas dalam melakukan pengejaran terhadap pemain, musuh hanya akan mengejar pemain apabila mendekati daerahnya. Kekurangan lain adalah kurang variatifnya objek permainan terutama objek musuh. Dalam game ini musuh hanya memiliki kemampuan yang sama pada tiap levelnya sehingga alur permainan terkesan sangat monoton. Oleh karena itu pengguna akan merasa kurang tertantang dalam memainkannya. Dari segi kualitas grafis pun terlihat


(14)

kurang atraktif. Dari beberapa kekurangan tersebut, game ini akan membuat pengguna yang memainkan merasa cepat bosan.

Dengan implementasi artificial intelligence pada non-players characters (NPCs) dalam suatu permainan game dapat meningkatkan kualitas permainan terutama dari segi gameplay. Musuh menjadi terlihat lebih cerdas, sehingga pengguna yang menggunakan game tersebut akan merasa lebih tertantang dalam memainkannya. Artificial Intelligence adalah teknik yang digunakan dalam permainan komputer dan permainan video yang menerapkan tiruan dari kecerdasan manusia terhadap perilaku dari pemain bukan manusia atau non-players characters (NPCs)[15]. Hal penting dalam menentukan keberhasilan suatu aplikasi berdasarkan artificial intelligence adalah kesuksesan dalam pencarian dan pencocokan. Pada dasarnya ada dua teknik pencarian dan pelacakan yang digunakan, yaitu pencarian buta (blind search) dan pencarian terbimbing (heuristic search). Dalam pencarian terbimbing ada beberapa algoritma yang dapat digunakan salah satunya algoritma A*. Algoritma ini banyak diterapkan pada NPC untuk menyelesaikan permasalahan secara optimal dalam menemukan jalan terpendek menuju suatu tujuan yaitu dalam mengejar pemain.

Dewasa ini terdapat banyak tools yang dapat memudahkan para developer dalam malakukan pembangunan aplikasi game, salah satunya adalah framework XNA. Dengan menggunakan XNA, para developers dimudahkan karena telah banyak method-method yang dapat digunakan untuk melakukan pembangunan aplikasi game sehingga tidak perlu melakukan pengkodean dari awal. XNA


(15)

merupakan framework yang bersifat gratis dan memiliki banyak dukungan terhadap device selain desktop seperti XBOX 360 , Windows Phone dan Zune.

Berdasarkan uraian diatas, akan dibangun aplikasi permainan game dengan mengimplementasikan beberapa artificial intelligence agar permainan terlihat lebih menarik bagi para penggunanya, serta menggunakan framework XNA dalam memudahkan pembangunan aplikasi. Adapun penelitian tersebut dituangkan dalam penyusunan skripsi dengan judul “Membangun Aplikasi Game Death Castle”.

1.2 Rumusan Masalah

Berdasarkan latar belakang yang sudah dijabarkan sebelumnya, maka rumusan masalah dari penelitian ini adalah bagaimana membangun aplikasi game dengan judul Death Castle.

1.3 Maksud dan Tujuan

Berdasarkan permasalahan yang akan diteliti, maka maksud dari penelitian ini adalah membangun aplikasi permainan Death Castle .

Tujuan yang diharapkan akan dicapai dalam penelitian adalah sebagai berikut :

1. Menerapkan Algoritma A* untuk membuat alur permainan pada game Death Castle menjadi lebih menarik.

2. Merubah tampilan grafis pada game Death Castle agar menjadi lebih menarik.


(16)

1.4 Batasan Masalah

Adapun batasan masalah dalam membangun aplikasi ini, adalah sebagai berikut:

1. NPC (non playable character / musuh) yang akan dibuat bersifat artificial intelligence, dengan menggunakan metode algoritma A* dalam melakukan pencarian terhadap pemain.

2. Menggunakan metode collision-detection untuk memaksimalkan pembangunan aplikasi.

3. Tampilan grafis dibangun dalam bentuk 2D (dua dimensi).

4. Level game hanya dibatasi sampai level 2 saja, dimana level 2 diproyeksikan lebih interaktif daripada level 1 , tingkat kemampuan musuh akan bertambah di level 2.

5. Musuh yang disertakan dalam aplikasi permainan ini terdiri dari 2 jenis, yaitu musuh Ghost yang akan muncul di level 1 , musuh Beast dilevel 2. 6. Pengembangan aplikasi permainan ini menggunakan diagram-diagram

UML 2.0 dalam dokumentasi pada tahap analisis dan perancangannya. 7. Aplikasi permainan ini dibangun dalam Bahasa Pemrograman C#,

menggunakan .NET Framework, dan IDE (Integrated Development Environment) Microsoft Visual Studio C# 2010 Express Edition dengan tambahan framework XNA.


(17)

1.5 Metodologi Penelitian

Metodologi penelitian yang akan digunakan dalam pembuatan skripsi ini menggunakan metodologi analisis deskriptif, yaitu metode penelitian menggunakan studi kasus. Metodologi ini terbagi menjadi dua metode yaitu:

1. Metode pengumpulan data

Metode pengumpulan data yang digunakan dalam penelitian ini adalah sebagai berikut:

a. Studi Literatur

Pengumpulan data dengan cara mangumpulkan literatur, jurnal, makalah dan bacaan-bacaan yang ada kaitannya dengan penelitian yang dilakukan.

b. Observasi

Pengumpulan data dengan mengadakan peninjauan secara langsung maupun tidak langsung terhadap hal-hal yang berkaitan dengan penelitian.

c. Wawancara

Pengumpulan data dengan mengadakan kegiatan tanya-jawab baik secara langsung maupun tidak langsung kepada responden yang dipandang memiliki peranan dalam kelangsungan kegiatan penelitian.


(18)

2. Metode pengembangan perangkat lunak

Metode pengembangan perangkat lunak yang digunakan dalam pengembangan aplikasi permainan Death Castle menggunakan paradigma model waterfall, yang meliputi beberapa proses diantaranya[10] :

a. Requirements analysis and definition

Tahap ini Mengumpulkan kebutuhan secara lengkap kemudian kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Fase ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap.

b. System and software design

Tahap ini merupakan kegiatan Tahap ini merupakan kegiatan mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh aplikasi yang akan dibangun. Tahap ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap. Pada tahap ini juga dilakukan analisis algoritma yang akan dipakai dalam aplikasi game Death Castle.

c. Implementation and unit testing

Desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit.


(19)

d. Integration and system testing

Penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing).

e. Operation and maintenance

Mengoperasikan program dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya.

Secara umum tahapan pada model waterfall dapat dilihat pada gambar 1.1 dibawah ini :


(20)

1.6 Sistematika Penulisan

Sistematika penulisan proposal ini disusun untuk memberikan gambaran umum mengenai penelitian yang dilakukan. Sitematika penulisan dalam penelitian ini adalah sebagai berikut :

BAB I PENDAHULUAN

Menguraikan tentang latar belakang masalah seputar hal-hal yang menjadi kajian penelitian, merumuskan inti permasalannya, menentukan batasan masalahnya, mengutarakan maksud dan tujuannya serta menjelasakan mengenai metode penelitian dan sistematika penulisannya.

BAB II LANDASAN TEORI

Menguraikan tentang teori-teori yang relevan dengan kajian penelitian dan hal-hal lainnya yang mendukung penelitian serta berguna dalam pengembangan aplikasi game Death Castle.

BAB III ANALISIS DAN PERANCANGAN

Bab ini menguraikan tentang proses rekayasa balik dari aplikasi permainan yang dijadikan acuan kemudian menganalisis hasilnya untuk kebutuhan pengembangan aplikasi. Selain itu diuraikan pula mengenai tahap perancangan aplikasi berdasarkan dari hasil analisisnya.

BAB IV IMPLEMENTASI DAN PENGUJIAN

Bab ini menguraikan implementasi dari pembangunan aplikasi game Death Castle sesuai dari hasil analisis dan perancangan. Selanjutnya tahap pengujiannya juga diuraikan pada bab ini.


(21)

BAB V KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan tentang keseluruhan hasil dari proses penelitian yang telah dilakukan yaitu mengenai pembangunan aplikasi game Death Castle dan disertai saran dari penulis.


(22)

10

BAB 2

TINJAUAN PUSTAKA

2.1 Game

Video game merupakan salah satu media hiburan yang sangat populer untuk semua orang, baik itu tua maupun muda. Teknologi game telah mengalami kemajuan yang sangat pesat. Terbukti hal ini ditandai dengan berkembangnya jenis, produk dan alat yang beragam untuk berinteraksi dengan game.

2.1.1 Pengertian Game

Game berasal dari kata bahasa inggris yang memiliki arti dasar Permainan. Permainan dalam hal ini merujuk pada pengertian “kelincahan intelektual” (intellectual playability). Game juga bisa diartikan sebagai arena keputusan dan aksi pemainnya. Ada target-target yang ingin dicapai pemainnya.

Kelincahan intelektual, pada tingkat tertentu, merupakan ukuran sejauh mana game itu menarik untuk dimainkan secara maksimal. Pada awalnya, game identik dengan permainan anak-anak. Kita selalu berpikir game merupakan suatu kegiatan yang dilakukan oleh anak-anak yang dapat menyenangkan hati mereka. Dengan kata lain, segala bentuk kegiatan yang memerlukan pemikiran, kelincahan intelektual dan pencapaian terhadap target tertentu dapat dikatakan sebagai game . Berdasarkan representasi visualnya, game dapat dibedakan menjadi 2 jenis, yaitu game 2 dimensi (2D) dan 3 dimensi (3D). Game 2D adalah game, yang secara matematis, hanya melibatkan 2 elemen koordinat kartesius, yaitu x dan y, sehingga konsep kamera pada game 2D hanya menentukan “gambar” mana


(23)

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, yaitu selain digeser (seperti pada game 2D), juga dapat diputar dengan sumbu tertentu.

2.1.2 Sejarah Singkat Perkembangan Game

Video game pertama diciptakan oleh dua orang utama, yaitu William Higinbotham dan Steve Russell[7]. Saat itu William Higinbotham berperan sebagai orang pertama yang mendesain dan mengimplementasikan sebuah video game, dan Steve Russell berperan sebagai orang pertama yang menciptakan sebuah game yang kemudian menginspirasikan bermilyaran dollar industri video game.

Berdasarkan sejarah, yang pertama kali menemukan video game ialah United States Department of Enery. Khususnya ialah seorang pria bernama William Higinbotham yang menjadi kepala pada bagian Instrumentation division for Brookhaven National Laboratory. Beforen Brookhaven, William pernah bekerja sebelumnya di Manhattan Project dan telah menyaksikan ledakan atom pertama. Namun, pada tahun 1950-an, masyarakat khawatir akan kekuatan atom, dan Brookhaven mencoba untuk menampilkannya untuk memasyarakatkan penelitian yang dilakukan pada acara kunjungan tahunan. Ratusan orang berkunjung ke laboratorium setiap musim gugur untuk melihat berbagai penelitian yang sedang dilakukan disana. Pada tahun 1958, William mendapatkan ilham bagaimana membuat pengunjung agar tidak bosan pada setiap kunjungan tahunan


(24)

ke laboratoriumnya, yaitu dengan cara membuat tampilan interaktif. Tampilan ini menjadi video tennis game.

Generasi ketiga dimulai pada tahun 1983 dengan dipasarkannya Japan Family Computer atau lebih dikenal dengan nama FAMICOM (kemudian dikenal sebagai Nintendo Entertainment System di seluruh dunia). FAMICOM juga termasuk sistem 16-bit seperti Mega Drive / Genesis. Di era ini pulalah terjadi perang konsol game yang pertama antara perusahaan konsol Nintendo dengan SEGA.

Generasi keenam ini ditandai dengan munculnya konsol-konsol game next-generation dari masing-masing perusahaan seperti SONY, SEGA, Nintendo serta munculnya satu lagi konsol game baru yang diluncurkan oleh Microsoft yang diberi nama XBOX. Perang konsol game ini akhirnya mengakibatkan jatuhnya perusahaan konsol SEGA yang tidak dapat lagi meneruskan konsol generasi selanjutnya (Dreamcast) mereka dan lebih memilih untuk berkonsentrasi dibidang pembuatan game konsol.

Dikarenakan semakin canggihnya teknologi di bidang teknologi maka kemudian 3 perusahaan konsol terbesar (Sony, Nintendo, dan Microsoft) mengeluarkan kembali konsol next-generation mereka dengan keluaran terbaru. Sony mengeluarkan konsol selanjutnya yang diberi nama PS3 (Playstation 3), lalu Nintendo dengan Nintendo Wii kemudian Microsoft dengan Xbox 360. Pada generasi ini semakin dikembangkan sistem permainan online atau permainan yang melibatkan banyak pemain yang terhubung dengan antar konsol dan semakin ditinggalkannya permainan single player.


(25)

2.1.3 Jenis-jenis Game

Berikut adalah jenis-jenis game antara lain[4] :

1. Game Arcade

Biasanya berada ditempat-tempat khusus dan memiliki box atau mesin yang memang khusus di desain untuk jenis video game tertentu, Bahkan pemain bisa lebih merasa masuk ke dalam game yang dimainkan seperti pistol, kursi khusus, sensor gerakan dan stir mobil.

2. Game PC

Video game yang dimainkan pada Personal Computer yang memiliki

keunggulan dalam tampilan antar muka yang sangat baik, Output visual kualitas tinggi karena layar komputer mempunyai resolusi lebih tinggi dibandingkan layar televisi. Kekurangan pada game PC adalah spesifikasi komputer sangat beragam hingga memungkinkan beberapa game dapat ditampilkan dengan baik pada satu komputer tetapi tidak berjalan baik pada komputer yang lainnya.

3. Game Konsol

Video game yang dimainkan pada suatu mesin tertentu misalnya Xbox, Sony Playstation, Sega genesis, Gameboy Advance dan sebagainya.

4. Game Mobile

Game konsol atau game mobile phone yang dapat dibawa kemana-mana.

5. Game Online


(26)

2.1.4 Genre Game

Setiap game memiliki genre atau tipenya, baik dalam satu kategori genre maupun beberapa genre dalam satu game. berikut ini adalah tipe-tipe game[4]: 1. Action

Game ini dikenali dari aksi didalamnya yang berupa pergerakan, attack, reaksi dan pergerakan-pergerakan lainnya. Yang lebih ditekankan pada game jenis ini adalah aksi didalamnya, bukan dari sudut pandang cerita.

2. Adventure

Dalam game tipe ini, player akan menyelesaikan misi yang diberikan sepanjang petualangan di dalam game. Player memulai permainan dengan inventory yang terbatas, senjata dan makanan, kemudian dikirim untuk melakukan suatu quest, dan dalam perjalanannya ada tugas yang harus diselesaikan.

3. Casual Game

Yang termasuk dalam casual game adalah board game, card game dan game shows. Game ini bertujuan untuk menghibur player, dan selain itu dapat juga digunakan untuk melatih, mempelajari dan meningkatkan pengetahuan dan level skill gamer

4. Educational Game

Game edukasi memberikan penekanan pada unsur pendidikan dan

pembelajaran. Contoh game edukasi yang sederhana dapat berupa pertanyaan pilihan ganda, isian maupun essai.


(27)

5. Role-Playing Game (RPG)

Pada game bertipe ini memiliki dunia yang luas untuk dieksplorasi oleh player, baik untuk mencari harta karun, objek dan status (leveling), sambil menghancurkan monster dan objek yang menghalaginya. Dalam RPG ada tujuan yang harus dicapai player untuk menyelesaikan permainan.

6. Strategy

Dalam game tipe ini dibutuhkan pemikiran dan perencanaan yang benar untuk dapat memenangkan permainan dan biasanya menggunakan sudut pandang overhead sehingga player dapat melihat seluruh area permainan.

7. Simulation

Simulation game atau sims adalah suatu bentuk permainan game yang menggambarkan situasi dunia nyata, baik dalam rupa simulasi driving maupun dalam hubungannya dengan lingkungan interaksi antara manusia.

8. Puzzle

Puzzle game memiliki tujuan yang sangat sederhana untuk menyelesaikan puzzle yang diberikan.

2.1.5 Game Design

Game Design adalah suatu aksi untuk menentukan seperti apakah suatu game seharusnya akan dibuat. Menurut Rolling dan Adams dalam bukunya Game Design merancang game adalah proses dari[8] :

a. Membayangkan permainan

b. Menentukan cara permainan tersebut bekerja


(28)

d. Mengirim informasi kepada kelompok yang akan membuat game tersebut.

Game design dibagi menjadi 3 bagian, yaitu : core mechanics, cerita dan interaktivitas[8].

1. Core Mechanics

Aturan yang mendefinisikan operasi dari dunia permainan membentuk mekanisme inti permainan, atau dasar gameplay. Mekanisme inti merupakan terjemahan dari visi perancang ke dalam sekumpulan peraturan konsisten yang dapat diinterpretasikan oleh komputer atau lebih tepatnya aturan-aturan yang dapat dinterpretasikan oleh orang yang menulis software yang dapat diinterpretasikan oleh komputer.

2. Cerita dan Narasi

Semua permainan game menceritakan cerita. Kompleksitas dan kedalaman dari cerita tersebut tergantung dari permainannya. Narasi berarti bagian dari cerita yang diceritakan.

3. Interaktivitas

Interaktivitas adalah cara bagi pemain untuk melihat, mendengar dan bereaksi dalam dunia permainan. interaktivitas mencakup banyak topic berbeda : grafis, suara, antarmuka pengguna dan segala sesuatu yang dapat merepresentasikan pengalaman bermain bagi user.


(29)

Tujuan utama dari membuat game design dokumen adalah untuk menarik minat pembaca dan untuk menginformasikan kepada pembaca mengenai gambaran keseluruhan game yang akan dibuat sehingga nantinya gambaran-gambaran ini dapat dikumpulkan menjadi suatu requirement.

2.2 AI (Artficial Intelligence)

Kecerdasan buatan sering disebut juga dengan Artificial Intelligence (AI). AI merupakan salah satu bagian ilmu komputer yang mempelajari tentang bagaimana caranya agar komputer dapat melakukan pekerjaan seperti yang dapat dilakukan oleh manusia. Pada awal diciptakannya, komputer hanya difungsikan sebagai alat hitung saja. Namun seiring dengan perkembangan zaman, teknologi komputer semakin ditingkatkan dan peran komputer semakin mendominasi kehidupan umat manusia. Komputer tidak lagi hanya digunakan sebagai alat hitung, melainkan komputer diharapkan dapat diberdayakan untuk mengerjakan hal-hal yang dapat memudahkan pekerjaan manusia.

Agar komputer bisa bertindak seperti apa yang dapat dilakukan manusia, maka komputer juga harus diberi bekal pengetahuan dan mempunyai kemampuan untuk menalar. Untuk itu AI akan mencoba untuk memberikan beberapa metode untuk membekali komputer agar komputer bisa menjadi mesin yang pintar.

Dari beberapa perspektif, AI dapat dipandang sebagai berikut[3]:

1. Dari perspektif kecerdasan, AI adalah bagaimana membuat mesin yang cerdas dan dapat melakukan hal-hal yang sebelumnya hanya dapat dilakukan manusia.


(30)

2. Dari perspektif bisnis, AI adalah sekelompok alat bantu (tools) yang berdayaguna dan metodologi yang menggunakan alat-alat bantu tersebut untuk menyelesaikan masalah-masalah bisnis.

3. Dari perspektif pemrograman, AI meliputi studi tentang pemrograman simbolik, pemecahan masalah, dan proses pencarian (search).

4. Dari perspektif penelitian, riset tentang AI dimulai pada awal tahun 1960-an, percobaan pertama adalah membuat program permainan catur, membuktikan teori, dan general problem solving.

AI seperti bidang ilmu lainnya juga memiliki sejumlah sub-disiplin ilmu yang sering digunakan untuk pendekatan yang esensial bagi penyelesaian suatu masalah dan dengan aplikasi bidang AI yang berbeda. Bidang-bidang tugas AI dibagi menjadi tiga kelompok yaitu[3] :

a. Mundane Task

Secara harfiah, arti mundane adalah keduniaan. Di sini, AI digunakan untuk melakukan hal-hal yang sifatnya duniawi atau melakukan kegiatan yang dapat membantu manusia.

b. Formal task

AI digunakan untuk melakukan tugas-tugas formal yang selama ini manusia biasa lakukan dengan lebih baik.

c. Expert task

AI dibentuk berdasarkan pengalaman dan pengetahuan yang dimiliki oleh para ahli. Penggunaan ini dapat membantu para ahli untuk menyampaikan ilmu-ilmu yang mereka miliki.


(31)

Gambar 2.1 Bidang-bidang tugas (task domains) dari AI[3].

2.2.1 Teknik Pemecahan Masalah AI

Terdapat empat teknik dasar pemecahan masalah yang terdapat pada bidang academic/traditional artificial intelegence diantaranya adalah[12]:

a. Searching

Pada teknik searching atau pencarian ini terdiri dari beberapa langkah untuk merealisasikannya. Langkah pertama adalah mendefinisikan ruang masalah untuk suatu masalah yang dihadapi. Langkah kedua adalah mendefinisikan aturan produksi yang digunakan untuk mengubah suatu keadaan ke keadaan lainnya. Langkah terakhir adalah memilih metode pencarian yang tepat sehingga dapat menemukan solusi terbaik.


(32)

b. Reasoning

Teknik reasoning atau penalaran merupakan teknik penyelesaian masalah dengan cara merepresentasikan masalah ke dalam basis pengetahuan menggunakan logic atau bahasa formal (bahasa yang dipahami komputer). Teknik ini melakukan proses penalaran berdasarkan basis pengetahuannya untuk menemukan solusi.

c. Planning

Planning adalah suatu metode penyelesaian masalah dengan cara

memecah masalah ke dalam sub-sub masalah yang lebih kecil, menyelesaikan sub-sub masalah satu demi satu, kemudian menggabungkan solusi-solusi dari sub-sub masalah tersebut menjadi sebuah solusi lengkap dengan tetap mengingat dan menangani interaksi yang terdapat pada sub-sub masalah tersebut.

d. Learning

Pada ketiga teknik sebelumnya, seseorang harus mengetahui aturan yang berlaku untuk sistem yang akan dibangunnya. Tetapi, pada masalah tertentu terkadang aturan tidak bisa didefinisikan secara benar ataupun lengkah. Hal tersebut mungkin dikarenakan data-data yang didapat tidak lengkap. Melalui teknik yang disebut learning ini, secara otomatis aturan yang diharapkan bisa berlaku umum untuk data-data yang belum pasti diketahui dapat ditemukan.


(33)

2.2.2 Game Artificial Intelligence

Dalam ruang lingkup permainan AI yang diterapkan sedikit berbeda dengan traditional AI. Pada permainan game AI dikenal juga dengan sebutan game AI. Menurut penerapannya pada entitas permainan AI dibedakan menjadi tiga, yaitu :

a. Combat AI

AI ini diterapkan pada musuh dalam area permainan. penerapannya dimaksudkan agar musuh memiliki kemampuan untuk dapat melawan pemain lain. Sebagai contoh pada permainan arcade-shooter sang musuh harus mengetahui kapan ia harus menembak, menghindar, dan bersembunyi.

b. Non-Combat AI

AI ini diterapkan pada entitas lain dalam arena permainan selain pemain baik itu yang berperan sebagai musuh ataupun bukan. AI ini dapat kita lihat pada permainan berjenis RPG. Dimana dalam permainan jenis tersebut banyak ditemui entitas-entitas yang memiliki kegiatannya masing-masing dalam suatu arena permainan. c. Analitycal AI

AI ini diterapkan dalam permainan permainan yang berjenis simulasi. Hal tersebut dikarenakan AI ini memiliki tingkat kerumitan yang tinggi . sebagai contoh dalam simulasi pesawat terbang, simulasi balap mobil yang membutuhkan AI tersendiri.


(34)

2.2.3 Algoritma Pencarian

Metode pencarian dikatakan penting untuk menyelesaikan permasalahan karena setiap state (keadaan) menggambarkan langkah-langkah untuk menyelesaikan permasalahan. Metode pencarian dikatakan penting untuk perencanaan karena dalam sebuah permainan akan menentukan apa yang harus dilakukan, dimana setiap state menggambarkan kemungkinan posisi pada suatu saat. Metode pencarian adalah bagian dari kesimpulan, dimana setiap state menggambarkan hipotesis dalam sebuah rangkaian deduktif.

Permasalahan pencarian dapat diselesaikan dengan beberapa metode yaitu:

1. Metode pencarian yang pertama adalah metode yang sederhana yang hanya berusaha mencari kemungkinan penyelesaian yang disebut juga pencarian buta.

2. Metode yang lebih kompleks yang akan mencari jarak terpendek. Metode ini adalah British Museum Procedure, Branch and Bound, Dynamic Programming, Best First Search, Greedy Search, A* (A Star) Search, dan Hill Climbing Search. Metode-metode ini digunakan pada saat harga perjalanan untuk mencari kemungkinan menjadi perhitungan. Beberapa procedure/metode yang kita terapkan saat berhadapan dengan musuh. Prosedur ini adalah minimax search dan alpha-beta pruning. Metode ini banyak digunakan pada program-program seperti catur dan sebagainya.


(35)

2.2.4 Algoritma A*

Algoritma A* (A Star) adalah algoritma pencarian yang merupakan pengembangan dari algoritma Best First Search (BFS). Seperti halnya pada BFS, untuk menemukan solusi, A* juga ‘dituntun‟ oleh fungsi heuristik, yang menentukan urutan titik mana yang akan dikunjungi terlebih dahulu. Heuristik merupakan penilai yang memberi harga pada tiap verteks yang memandu A* mendapatkan solusi yang diinginkan[1].

Algoritma ini pertama kali diperkenalkan pada 1968 oleh Peter Hart, Nils Nilsson, dan Bertram Raphael Dalam tulisan mereka, algoritma ini dinamakan algoritma A. Dengan penggunaan fungsi heuristik yang tepat pada algoritma ini yang dapat memberikan hasil yang optimal, maka algoritma inipun disebut A*.

Dengan fungsi heuristik Algoritma ini membangkitkan verteks yang paling mendekati solusi. Verteks ini kemudian disimpan suksesornya ke dalam list sesuai dengan urutan yang paling mendekati solusi terbaik. Kemudian, verteks pertama pada list diambil, dibangkitkan suksesornya dan kemudian suksesor ini disimpan ke dalam list sesuai dengan urutan yang terbaik untuk solusi. List verteks ini disebut dengan verteks terbuka (open node) [14].

Pencarian menggunakan algoritma A* mempunyai prinsip yang sama dengan algoritma BFS, hanya saja dengan dua faktor tambahan.

1. Setiap sisi mempunyai “cost” yang berbeda-beda, seberapa besar cost untuk pergi dari satu simpul ke simpul yang lain.

2. Cost dari setiap simpul ke simpul tujuan bisa diperkirakan. Ini membantu pencarian, sehingga lebih kecil kemungkinan kita mencari ke arah yang salah.


(36)

Cost untuk setiap simpul tidak harus berupa jarak. Cost bisa saja berupa waktu bila kita ingin mencari jalan dengan waktu tercepat untuk dilalui. Sebagai contoh, bila kita berkendaraan melewati jalan biasa bisa saja merupakan jarak terdekat, tetapi melewati jalan tol biasanya memakan waktu lebih sedikit.

Cost antara simpul adalah jaraknya, dan perkiraan cost dari suatu simpul ke simpul tujuan adalah penjumlahan jarak dari simpul tersebut ke simpul tujuan. Atau agar lebih mudahnya bisa ditunjukkan seperti berikut ini.

Persamaan II.1. Algoritma A* [14]. dengan :

f(n) = fungsi evaluasi

g(n) = biaya (cost) yang sudah dikeluarkan dari keadaan sampai keadaan n h(n) = estimasi biaya untuk sampai pada suatu tujuan mulai dari n

Node dengan nilai terendah merupakan solusi terbaik untuk diperiksa pertama kali pada g(n) + h(n). Dengan fungsi heuristic yang memenuhi kondisi tersebut, maka pencarian dengan algoritma A* dapat optimal [14].

Metode A* dapat melakukan backtracking jika jalur yang ditempuh ternyata salah. Metode A* dapat melakukannya karena menyimpan jejak / track yang mungkin sebagai jalur yang optimal. Sebagai contoh, jika kita sedang menuju suatu kota dan sampai pada persimpangan jalan, dan memutuskan untuk belok kiri daripada ke kanan, dan ternyata bila jalan yang dipilih ternyata salah,


(37)

kita akan kembali ke persimpangan dan mengambil jalan satunya. Itulah yang dilakukan metode A* ini.

2.2.5 Fungsi Heuristic

BFS dan A* sebagai algoritma pencarian yang menggunakan fungsi heuristic untuk menuntun pencarian rute, khususnya dalam hal pengembangan dan pemeriksaan node-node pada peta. Dalam aplikasi ini, fungsi heuristic yang dipakai untuk pencarian rute mengisi nilai/notasi h pada algoritma BFS dan A*. Ada beberapa fungsi heuristic umum yang bisa dipakai untuk algoritma BFS dan A* ini. Salah satunya adalah yang dikenal dengan istilah “Manhattan Distance”. Fungsi heuristic ini digunakan untuk kasus dimana pergerakan pada peta hanya lurus (horizontal atau vertikal), tidak diperbolehkan pergerakan diagonal[14].


(38)

Perhitungan nilai heuristic untuk node ke-n menggunakan Manhattan Distance adalah sebagai berikut :

Dimana h(n) adalah nilai heuristic untuk node n, dan goal adalah node tujuan.

Jika pergerakan diagonal pada peta diperbolehkan, maka digunakan fungsi heuristic selain Manhattan Distance. Untuk mendekati kenyataan, cost untuk perpindahan node secara diagonal dan orthogonal dibedakan. Cost diagonal adalah 1,4 kali cost perpindahan secara orthogonal.

Gambar 2.3 Rute dengan langkah diagonal diperbolehkan[14] h(n) = (abs(n.x - goal.x) + abs(n.y - goal.y))


(39)

Maka fungsi heuristic yang digunakan adalah sebagai berikut:

Dimana h_diagonal(n) adalah banyaknya langkah diagonal yang bisa diambil untuk mencapai goal dari node n. h_orthogonal adalah banyaknya langkah lurus yang bisa diambil untuk mencapai goal dari node n.

Nilai heuristic kemudian diperoleh dari h_diagonal(n) ditambah dengan selisih h_orthogonal(n) dengan dua kali h_diagonal(n). Dengan kata lain, jumlah langkah diagonal kali cost diagonal ditambah jumlah langkah lurus yang masih bisa diambil dikali cost pergerakan lurus. [14].

2.2.6 Pathfinding

Pathfinding (pencarian jalan/rute) adalah salah satu bidang penerapan yang sering ditangani oleh kecerdasan buatan khususnya dengan menggunakan algoritma pencarian. Penerapan yang dapat dilakukan dengan pathfinding antara lain adalah pencarian rute dalam suatu game dan pencarian jalan/rute pada suatu peta. Algoritma pencarian yang dipakai harus dapat mengenali jalan dan elemen peta yang tidak dapat dilewati.

Bagaimana Pathfinding ini bekerja? Pertama-tama peta permainan harus diolah atau diproses terlebih dahulu sebelum algoritma A * dapat bekerja. Hal ini akan melibatkan pemutusan peta ke titik yang berbeda atau lokasi, yang disebut node. Node ini digunakan untuk mencatat kemajuan pencarian. Selain memegang peta setiap node memiliki tiga atribut lainnya yaitu fungsi , tujuan dan heuristik

h_diagonal(n) = min(abs(n.x - goal.x) + abs(n.y – goal.y)) h_orthogonal(n) = (abs(n.x - goal.x) + abs(n.y – goal.y)) h(n) = h_diagonal(n) + (h_orthogonal (n) – (2 * h_diagonal(n)))


(40)

yang umum dikenal sebagai f, g,dan h. Nilai yang berbeda dapat diberikan ke jalur antara node, biasanya nilai-nilai ini akan mewakili jarak antara node. Atribut g, h, dan f didefinisikan sebagai berikut:

1. g adalah biaya yang didapatkan dari node awal ke node saat ini yaitu jumlah dari semua nilai di jalan antara awal dan node saat ini.

2. h singkatan heuristik yang merupakan perkiraan biaya dari node saat ini ke tujuan node (biasanya jarak garis lurus dari node ini ke tujuan).

3. f adalah jumlah dari g dan h dan merupakan estimasi terbaik dari biaya jalan akan melalui node saat ini. Intinya semakin rendah nilai f yang akan lebih efisien.

Untuk lebih jelasnya ilustrasi pathfinding yang digunakan musuh untuk mengejar pemain menggunakan Algoritma A* dapat dilihat pada gambar dibawah ini[6] :


(41)

Pada gambar 2.4 diatas kotak berwarna hijau adalah node awal yang di ilustrasikan sebagai posisi awal musuh sedangkan kotak berwarna merah adalah tujuan yang merupakan posisi pemain. Tiga buah kotak biru merupakan penghalang yang tidak dapat dilewati oleh musuh. Angka-angka dalam kotak yang berada pada kiri atas adalah nilai f dan yang berada di kanan bawah adalah nilai h. gambar lingkaran ditengah kotak menunjukkan parent kotak tersebut. Untuk pergerakan kearah kanan vertikal cost-nya adalah sepuluh, sedangkan pergerakan diagonal kanan memakan cost sebesar empat belas. Angka pada kanan bawah adalah h(n) yaitu harga estimasi dihitung dari posisi akhir. Simpul di sebelah kanan simpul awal memiliki h(n) = 30. Perhatikan pula bahwa jarak antara simpul tersebut dengan simpul tujuan adalah 3 kotak horizontal. Sehingga harganya adalah 3 kali harga pergerakan horizontal, yaitu 3*10 = 30. Sedangkan h(n) di simpul sebelah kanan bawah adalah 40. Perhatikan bahwa jarak antara simpul ini dengan simpul tujuan adalah 3 kotak horizontal dan 1 kotak vertikal. Sehingga harga h(n)-nya adalah 3*10 + 1*10 = 40. Nilai yang tertera di bagian kiri-atas adalah f(n) = g(n) + h(n). Panah pada bagian tengah dari kotak menunjuk pada simpul yang menjadi parent dari simpul tersebut. Kedelapan simpul di atas kemudian dimasukkan ke list terbuka / OPEN LIST[6].

Selanjutnya kita akan memilih simpul dengan nilai f(n) terkecil dari list terbuka. Terhadap simpul yang dipilih kita lakukan :

1. Mengeluarkan simpul tersebut dari list terbuka dan memasukkan ke list tertutup


(42)

2. Cek semua simpul yang terhubung langsung dengan simpul yang dipilih. Masukkan ke dalam list terbuka apabila simpul yang baru belum ada pada list terbuka serta men-set parent dari simpul baru tersebut ke simpul yang dipilih

3. Apabila simpul yang dicek sudah terdapat pada list terbuka, cek nilai g(n) nya. Apabila nilai g(simpul dipilih) + harga untuk bergerak ke simpul dipilih < g(simpul dicek), maka ubah parent dari simpul yang dicek ke simpul yang dipilih. Jika tidak, jangan lakukan apa-apa.

Gambar 2.5 Pathfinding Algoritma A* [11]

Saat ini, simpul yang terpilih adalah simpul di sebelah kanan simpul awal. Kemudian seluruh simpul yang terhubung langsung dicek. Pada kasus simpul di bawah simpul terpilih dicek, kita menemukan bahwa simpul tersebut sudah berada di dalam list terbuka. Karena itu, kita akan membandingkan g(n)


(43)

simpul terpilih ditambah harga untuk pergerakan secara vertikal (10) dengan g(n) dari simpul yang dicek. Karena g(simpul terpilih) = 10, harga untuk bergerak vertikal = 10, dan g(simpul dicek) = 14, maka hubungan yang didapatkan adalah 10+10 > 14. Karena nilai g(simpul dicek) lebih kecil, maka kita tidak men-set parent simpul dicek menjadi simpul terpilih.

Dengan menggunakan cara yang sama, kita mendapatkan bahwa simpul terpilih yang baru adalah simpul di bawah dari simpul terpilih sebelumnya.

Gambar 2.6 Pathfinding Algoritma A* [11]

Simpul yang terpilih kembali melakukan pengecekan terhadap semua simpul yang terhubung. Di sini kita definisikan bahwa simpul tidak dapat terhubung secara diagonal apabila berada di dekat penghalang. Apabila kita mengulangi cara ini terus menerus, kita akan mendapatkan hasil berikut :


(44)

Gambar 2.7 Pathfinding Algoritma A* [13]

Selanjutnya kita hanya perlu menelusuri parent dari setiap simpul dimulai dari simpul tujuan, Seperti yang ditunjukkan gambar 2.8 dibawah ini :

Gambar 2.8 Pathfinding Algoritma A* [13]

Pada gambar 2.8 rute yang ditemukan adalah bujur sangkar berbingkai kuning dengan lingkaran yang berwarna merah. Maka dengan demikian musuh dapat menemukan rute terpendek ke tujuan yaitu mengejar pemain.


(45)

2.3 Interaksi Manusia dan Komputer

Interaksi Manusia dan Komputer (IMK) atau Human-Computer Interaction (HCI) adalah disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta studi fenomena-fenomena besar yang berhubungan dengannya[9].

Dalam bukunya berjudul Designing the User Interface-Strategies for Effective Human-Computer Interaction, Shneiderman mengemukakan ada lima faktor manusia terukur yang dapat dijadikan sebagai pusat evaluasi[9], yaitu :

1. Waktu belajar

Berapa lama waktu yang dibutuhkan oleh user untuk mempelajari cara relevan untuk melakukan suatu tugas.

2. Kecepatan kinerja

Berapa lama waktu yang diperlukan untuk mengerjakan suatu tugas. 3. Tingkat kesalahan

Berapa banyak kesalahan dan kesalahan-kesalahan seperti apa yang bisa terjadi saat user mengerjakan tugas-tugas tersebut.

4. Daya ingat

Bagaimana kemampuan pemakai mempertahankan pengetahuannya setelah jangka waktu tertentu.

5. Kepuasan subjektif


(46)

Selain itu Shneiderman juga mengemukakan 8 (delapan) aturan yang dapat digunakan sebagai petunjuk dasar yang baik untuk merancang suatu user interface. Delapan aturan ini disebut dengan Eight Golden Rules of Interface Design, yaitu[9]:

1. Berusaha untuk Konsisten

Urutan konsisten diperlukan pada situasi yang sama. Konsistensi harus digunakan pada prompt, menu, layar bantuan, warna tampilan, kapitalisasi, huruf, dan sebagainya.

2. Memungkinkan pengguna untuk menggunakan shortcut

Ada kebutuhan dari pengguna yang sudah ahli untuk meningkatkan kecepatan interaksi, sehingga diperlukan singkatan, tombol fungsi, perintah tersembunyi, dan fasilitas makro.

3. Memberikan umpan balik yang informatif

Untuk setiap tindakan operator, sebaiknya disertakan suatu sistem umpan balik (feedback). Untuk tindakan yang sering dilakukan dan tidak terlalu penting, dapat diberikan umpan balik yang sederhana. Tetapi ketika tindakan merupakan hal yang penting, maka umpan balik sebaiknya lebih substansial. Misalnya muncul suatu suara ketika salah menekan tombol pada waktu input data atau muncul pesan kesalahannya.

4. Merancang dialog untuk menghasilkan suatu penutupan


(47)

awal, tengah, dan akhir. Umpan balik yang informatif akan memberikan indikasi bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok tindakan berikutnya.

5. Memberikan penanganan kesalahan yang sederhana

Sedapat mungkin sistem dirancang sehingga pengguna tidak dapat melakukan kesalahan fatal. Jika kesalahan terjadi, sistem dapat mendeteksi kesalahan dengan cepat dan memberikan mekanisme yang sederhana dan mudah dipahami untuk penanganan kesalahan.

6. Memungkinkan pembalikan aksi yang mudah

Hal ini dapat mengurangi kekuatiran pengguna karena pengguna mengetahui kesalahan yang dilakukan dapat dibatalkan, sehingga pengguna tidak takut untuk mengekplorasi pilihan-pilihan lain yang belum biasa digunakan.

7. Mendukung tempat pengendali internal (internal locus of control)

Pengguna ingin menjadi pengontrol sistem dan sistem akan merespon tindakan yang dilakukan pengguna daripada pengguna merasa bahwa sistem mengontrol pengguna. Sebaiknya sistem dirancang sedemikan rupa sehingga pengguna menjadi inisiator daripada responden.

8. Mengurangi beban ingatan jangka pendek

9. Keterbatasan ingatan manusia membutuhkan tampilan yang sederhana atau banyak tampilan halaman yang sebaiknya disatukan, serta diberikan cukup waktu pelatihan untuk kode, mnemonic, dan urutan tindakan.


(48)

2.4 Rekayasa Perangkat Lunak

Rekayasa perangkat lunak adalah sebuah teknologi rancangan yang memiliki beberapa lapisan. Dasar dari rekayasa perangkat lunak adalah fokus terhadap kualitas. Setiap pendekatan rekayasa perangkat lunak harus didasari pada komitmen sebuah organisasi terhadap kualitas[5].

Fondasi dari rekayasa perangkat lunak adalah lapisan proses. Proses dari rekayasa perangkat lunak adalah pelekat yang menyatukan semua lapisan teknologi secara utuh dan memberikan pengembangan perangkat lunak komputer secara rasional dan tepat waktu. Prose mendefinisikan sebuah kerangka kerja harus ditetapkan agar rekayasa perangkat lunak menjadi efektif. Prose perangkat lunak membentuk dasar dari pengendalian proyek perangkat lunak dan menetapkan konteks dimana cara-cara teknikal diterapkan, hasil kerja(model-model, dokumentasi, data, laporan, dan lain-lain) dihasilkan.

Ada banyak model pengembangan perangkat lunak, antara lain The Waterfall Model, Joint Application Development (JAD), Information Engineering (IE), Rapid Application Development (RAD) termasuk di dalamnya Prototyping, Unified Process (UP), Structural Analysis and Design (SAD) dan Framework for the Application of System Thinking (FAST). Salah satu yang akan dijelaskan yaitu tentang model waterfall.[5].

Model waterfall sebenarnya adalah “linear sequential model”. Model ini sering disebut dengan “classic life cycle” atau model waterfall. Model ini adalah model yang muncul pertama kali yaitu sekitar tahun 1970 sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai


(49)

didalam Software Engineering (SE). Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing / verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Sebagai contoh tahap desain harus menunggu selesainya tahap sebelumnya yaitu tahap requirement.

Gambar 2.9 Model Waterfall[11]

Gambar 2.9 merupakan model Waterfall. Berikut adalah penjelasan dari tahap-tahap yang dilakukan di dalam model ini:

a. Requirements analysis and definition

Tahap ini Mengumpulkan kebutuhan secara lengkap kemudian kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Fase ini harus


(50)

dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap..

b. System and software design

Tahap ini merupakan kegiatan Tahap ini merupakan kegiatan mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh aplikasi yang akan dibangun. Tahap ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap. Pada tahap ini juga dilakukan analisis algoritma yang akan dipakai dalam aplikasi game Death Castle.

c. Implementation and unit testing

Desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit.

d. Integration and system testing

Penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing).

e. Operation and maintenance

Mengoperasikan program dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya[5].


(51)

2.5 OOP (Object Oriented Programming)

OOP atau dikenal dengan Pemrograman Berorientasi Objek merupakan pemrograman yang semua data dan fungsi di dalam paradigma ini dibungkus kedalam kelas-kelas atau objek-objek.

Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari dibandingkan dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bagian administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas administrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri [2]. Pemrograman orientasi-objek menekankan konsep berikut:


(52)

1. Kelas (Class) adalah kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi objek. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. 2. Objek (Object) adalah membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer. Objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek. 3. Abstraksi (Abstract) adalah Kemampuan sebuah program untuk melewati

aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.

4. Enkapsulasi (Encapsulation) adalah Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk


(53)

mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut. 5. Polimorfisme (Polimorfism) melalui pengiriman pesan. Tidak bergantung

kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan, metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tunggal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.

6. Inheritas (Inheritance) adalah Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada, objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas).


(54)

2.6 UML (Unified Modeling Language)

Unified Modeling Language (UML) adalah himpunan struktur dan teknik untuk pemodelan desain program berorientasi objek (OOP) serta aplikasinya. UML adalah metodologi untuk mengembangkan sistem OOP dan sekelompok perangkat tool untuk mendukung pengembangan sistem tersebut. UML mulai diperkenalkan oleh Object Management Group, sebuah organisasi yang telah mengembangkan model, teknologi, dan standar OOP sejak tahun 1980-an. Sekarang UML sudah mulai banyak digunakan oleh para praktisi OOP.

UML adalah suatu bahasa yang digunakan untuk menentukan, memvisualisasikan, membangun, dan mendokumentasikan suatu sistem informasi. UML dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi objek oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson. Namun demikian UML dapat digunakan untuk memahami dan mendokumentasikan setiap sistem informasi. Penggunaan UML dalam industri terus meningkat. Ini merupakan standar terbuka yang menjadikannya sebagai bahasa pemodelan yang umum dalam industri peranti lunak dan pengembangan sistem.

a. Kegunaan UML

Adapun kegunaan UML menurut Fowler [2] adalah sebagai berikut : 1. UML sebagai bahasa visualisasi digunakan untuk merancang suatu

model yang dapat dibaca oleh banyak orang dengan pengertian yang sama.


(55)

2. UML sebagai bahasa pendefinisian digunakan untuk mendefinisikan dengan rinci seluruh hasil analisis, desain, dan implementasi yang harus dilakukan dalam pengembangan sistem.

3. UML sebagai bahasa perancangan digunakan untuk merancang model yang dapat dikembangkan oleh bahasa pemrograman yang berbeda-beda.

4. UML sebagai bahasa dokumentasi digunakan untuk mendokumentasikan arsitektur sistem beserta perinciannya, unsur-unsur yang dibutuhkan dalam pengembangannya, serta perencanaan dan implemantasi proyek secara keseluruhan dengan simbol-simbol yang mudah dimengerti.

b. Struktur UML

Adapun unsur-unsur pada UML terdiri dari :

1. Objek, yang merupakan abstraksi dari elemen-elemen model. 2. Hubungan, yang menjadi alat penyatu bagi objek-objek yang ada. 3. Diagram, yang mengelompokkan objek-objek dan hubungannya dalam

kelompok-kelompok yang mudah dibaca.

Selain memiliki unsur-unsur, UML juga memiliki aturan-aturan yang berfungsi untuk mengatur bentuk sebuah model yang baik. Sebuah model dinyatakan telah dirancang dengan baik jika model tersebut konsisten secara semantik dan selaras dengan model-model lain yang terkait.


(56)

c. Tipe Diagram UML

UML Sebuah diagram merupakan presentasi grafis dari suatu set elemen, paling sering diterjemahkan sebagai graph terhubung dari simpul(benda) dan lengkungan (hubungan).[2]

Adapun tipe dari diagram UML adalah sebagai berikut :

1. Use Case Diagram

Diagram yang menunjukkan suatu set penggunaan kasus beserta aktornya (suatu kelas spesial), beserta hubungannya. Use case diagram mengalamatkan suatu pandangan kasus statis pada suatu sistem. Diagram ini sangat penting dalam menyusun dan membuat model tingkah laku (behaviour) dari suatu sistem.

Gambar 2.10 Use Case Diagram [2].

2. Class Diagram

Diagram ini menunjukkan suatu set kelas, antarmuka dan kolaborasi, serta hubungannya. Diagram ini adalah diagram yang umum ditemukan pada sistem berbasis objek. Class diagram mengalamatkan desain yang statis dari suatu sistem. Class


(57)

diagram yang berisi kelas aktif, mengalamatkan proses statis dari suatu sistem.

Gambar 2.11 Class Diagram [2].

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 ataupun executable, baik yang muncul pada compile time, link time, maupun run time. Umumnya komponen terbentuk dari beberapa class atau package, tapi dapat juga dari komponen-komponen yang lebih kecil. Komponen dapat juga berupa interface, yaitu kumpulan layanan yang disediakan sebuah komponen untuk komponen lain.


(58)

Gambar 2.12 Component Diagram [2].

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 apapun), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal. Sebuah node adalah server, workstation, atau piranti keras lain yang digunakan untuk men-deploy komponen dalam lingkungan sebenarnya [2].


(59)

5. State Diagram

Statechart diagram menggambarkan transisi dan perubahan keadaan (dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari stimulus yang diterima. Pada umumnya statechart diagram menggambarkan class tertentu (satu class dapat memiliki lebih dari satu statechart diagram).

Gambar 2.14 State Chart Diagram [2].

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.


(60)

Gambar 2.15 Sequence Diagram [2].

7. Collaboration Diagram

Collaboration diagram juga menggambarkan interaksi antar objek seperti sequence diagram, tetapi lebih menekankan pada peran masing-masing objek dan 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.


(61)

8. Activity Diagram

Diagram ini adalah jenis spesial dari statechart diagram yang menunjukkan alur dari aktifitas ke aktifitas lain dalam suatu sistem. Activity diagram mengalamatkan secara dinamis suatu sistem. Diagram ini sangat penting dalam membuat model fungsi dari suatu sistem dan menekankan pada alur control diantara objek - objek yang bersangkutan.

Gambar 2.17 Activity Diagram [2].

2.7 Pembangun Perangkat Lunak 2.7.1 Bahasa Pemrograman C#

C# (dibaca: C sharp) merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .NET Framework. Bahasa pemrograman ini dibuat berbasiskan bahasa C++ yang telah dipengaruhi oleh aspek-aspek ataupun fitur bahasa yang terdapat pada bahasa-bahasa pemrograman lainnya seperti Java, Delphi, Visual Basic, dan lain-lain) dengan beberapa penyederhanaan. Menurut standar ECMA-334 C# Language Specification, nama C# terdiri atas sebuah huruf Latin C


(62)

(U+0043) yang diikuti oleh tanda pagar yang menandakan angka # (U+0023). Tanda pagar # yang digunakan memang bukan tanda kres dalam seni musik (U+266F), dan tanda pagar # (U+0023) tersebut digunakan karena karakter kres dalam seni musik tidak terdapat di dalam keyboard standar

2.7.2 Microsoft Visual C# 2010 Express

Microsoft Visual Studio Express adalah kumpulan freeware lingkungan pengembangan terpadu (IDE) yang dikembangkan oleh Microsoft yang merupakan versi ringan dari Microsoft Visual Studio. Gagasan edisi ekspres menurut Microsoft adalah untuk menyediakan efisiensi, mudah digunakan dan mudah dipelajari bagi pengguna IDE selain pengembang perangkat lunak profesional, yaitu seperti penggemar dan mahasiswa.

2.7.3 Framework XNA

XNA merupakan Framework yang dibuat oleh Microsoft khusus untuk pengembang game baik PC, XBOX 360, maupun device lain seperti Zune dan Windows Phone 7. Kata “XNA” tidak memiliki arti. XNA adalah satu game framework yang fiturnya paling banyak dan sudah banyak digunakan oleh para game developer dunia. Selain fiturnya yang sudah cukup lengkap dan sangat membantu para game programmer, XNA juga cross-platform framework, sehingga game untuk PC hanya cukup dikompilasi ulang untuk ditaruh di platform lain, misalnya XBOX 360, Zune dan Windows Phone 7. Microsoft XNA Framework adalah bagian dari XNA Game Studio, yaitu tools tambahan pada Microsoft Visual Studio untuk membuat game menggunakan XNA. Dengan


(63)

XNA kita tak perlu membuat game dari awal (coding arsitektur). Jadi, sangat mudah tinggal memanfaatkan fungsi dan kelas yang disediakan. Selain itu support XNA sangat besar baik intern maupun extern Microsoft.


(64)

52 3.1 Analisis Sistem

Pada bagian analisis sistem ini, akan dilakukan berbagai macam analisis yang berhubungan dengan game yang akan dibangun, mulai dari analisis terhadap game sejenis serta analisis berbagai kebutuhan baik fungsional maupun non-fungsional.

3.1.1 Analisis Game Sejenispada Labirinth Prison

Pada bagian analisis sistem ini, akan dilakukan berbagai macam analisis yang berhubungan dengan game yang akan dibangun, mulai dari analisis terhadap game sejenis serta analisis berbagai kebutuhan baik fungsional maupun non-fungsional. 3.1.1.1 Pengenalan Game Labirinth Prison

Permainan game Labirinth Prison adalah game berjenis arcade yang ada www.freearcade.com. Game ini adalah game 2D (dua dimensi) yang dibangun menggunakan flash. Sesuai dengan namanya game ini memiliki arena permainan yang berbentuk seperti labirin dengan banyak penghalang yang tidak dapat dilalui oleh pemain ataupun musuh. Misi utama pemain adalah harus mendapatkan semua koin untuk kemudian mendapatkan kunci untuk lolos dari penjara.


(65)

Gambar 3.1 Screenshoot tampilan permainan game Labirinth Prison

3.1.1.2 Gameplay

Pada game Labirinth Prison, ini pemain harus mengumpulkan semua koin yang tersebar di arena permainan. Apabila berhasil mengumpulkan semua koin maka akan mendapatkan kunci untuk melangkah ke level selanjutnya. Diarena permainan terdapat musuh yang akan melakukan patroli. Musuh akan mengejar pemain yang mendekati daerahnya.

3.1.1.3 Elemen Game

Elemen permainan yang terdapat dalam permainan game Labirinth Prison diantaranya adalah sebagai berikut:

1. Arena Permainan

Pada permainan game Labirinth Prison arena permainannya adalah disebuah penjara yang dipenuhi banyak rintangan dan berbentuk seperti layaknya


(66)

sebuah labirin. Diarena permainan inilah entitas pemain harus meloloskan diri dari kejaran musuh.

2. Pemain

Pemain merupakan entitas utama yang akan dikendalikan oleh pengguna aplikasi dalam arena permainan. Pemain harus mengumpulkan semua koin yang terdapat dalam arena permainan, apabila dapat mengumpulkan semua koin maka akan keluar kunci yang digunakan untuk membuka pintu dan dapat melangkah ke level selanjutnya. Pemain juga harus menghindar dari kejaran musuh dalam arena permainan.

3. Musuh

Musuh dalam game Labirinth Prison adalah entitas yang akan mengejar pemain dalam menyelesaikan misi diarena permainan. Musuhnya terdiri dari beberapa jenis diantaranya ulat namun dalam game ini musuh ditiap levelnya hanya memiliki kemampuan yang sama.

4. Koin

Koin adalah entitas yang harus dikumpulkan oleh pemain untuk mendapatkan kunci, sehingga pemain dapat menuju ke level berikutnya.

5. Item Trap

Item Trap adalah entitas yang digunakan oleh pemain untuk menjebak musuh yang berada dalam arena permainan. Apabila terkena jebakan darah/life point dari musuh akan berkurang.


(67)

3.1.1.4 Alur pada Permainan GameLabirinth Prison

Alur dalam permainan game Labirinth Prison disusun oleh beberapa hal sebagai berikut :

A. Alur Sistem

Alur Sistem pada game Labirinth Prison adalah sebagai berikut :

1. Sistem akan menginialisasi seluruh entitas permainan yaitu arena permainan, pemain, musuh, koin, dan skor awal permainan.

2. Penghalang yang tidak dapat dilewati pemain dan musuh berada pada posisi tertentu didalam arena permainan dan ditentukan oleh sistem secara acak. 3. Posisi musuh berada pada posisi tertentu yang ditentukan secara acak oleh

sistem.

4. Koin berada setiap jalur diarena permainan. 5. Posisi pemain berada disudut kiri bawah 6. Permainan dimulai.

7. Pengguna mengontrol pergerakkan pemain dengan memasukkan perintah tertentu melalui keyboard.

8. Sistem akan melakukan update terhadap seluruh entitas permainan, life point pemain dan skor pada game.

Adapun alur sistem dari permainan game Labirinth Prison ketika permainan dimulai dapat digambarkan melalui activity diagram berikut ini :


(68)

Gambar 3.2 activity diagram alur sistem pada gameLabirinth Prison

B. Alur Permainan

Alur permainan pada game Labirinth Prison adalah sebagai berikut :

a. Pemain terjebak dalam sebuah penjara yang dipenuhi dengan musuh yang menjaga penjara tersebut.

b. Pemain harus mengumpulkan koin untuk mendapatkan kunci yang akan digunakan untuk melangkah ke level yang berikutnya.

c. Pemain harus menghindar dari musuh yang berada di arena permainan. d. Jika pemain ditabrak oleh musuh, maka life point/darah akan berkurang


(69)

pemain memilih mulai permainan tampilkan arena permainan

inisialisasi posisi awal pemain

pengendalikan karakter pemain

Kumpulkan semua koin hindari musuh

update skor dapatkan kunci

pindah level

Adapun alur permainan dari game Labirint Prison dapat di gambarkan melalui activity diagram berikut ini :

Gambar 3.3 alur permainan pada gameLabirinth Prison

C.Misi yang harus dicapai Pemain

Pemain harus lolos dari penjara, dengan mengumpulkan semua koin didalam arena permainan. Ketika semua koin terkumpul maka pemain akan mendapatkan kunci untuk melangkah ke level berikutnya.

3.1.1.5 Objek dalam Game Labirinth Prison

Beberapa objek yang terlibat dalam permainan game Labirinth Prison adalah sebagai berikut :


(70)

NO NAMA GAMBAR PENJELASAN

1. Pemain / player Ini adalah karakter

utama dalam game yang dikendalikan oleh pemain melalui inputan dari keyboard.

2. Pinky Slime Ini adalah salah karakter

musuh yang berada dalam game Labirinth Prison . musuh ini akan bergerak secara acak diarena permainan.

3. Worm Ini adalah karakter

musuh yang bernama worm . musuh ini akan bergerak secara acak diarena permainan.

4. Koin Ini adalah koin yang

harus dikumpulkan oleh pemain untuk bisa mendapatkan kunci dan lolos ke level berikutnya. Yang berada di arena permainan.

5. Item Trap Ini adalah item yang

digunakan pemain untuk menjebak musuh. Apabila musuh terkena jebakan maka life point dari musuh akan berkurang

Tabel 3.1 Objek yang terlibat dalam gameLabirinth Prison.

3.1.1.6 Analisis Metode pada game Labirinth Prison

Pada permainan game Labirinth Prison objek musuh menerapkan suatu metode tertentu sehingga dapat bergerak dengan pola acak diarena permainan. Objek musuh juga ditanamkan AI game engine melalui pengkodean dalam tubuh


(71)

programnya yang akan terpicu apabila pemain mendekati daerah musuh. AI game engine akan melakukan pencarian terhadap objek pemain. Namun AI game engine terlihat masih kurang sempurna, hal ini dikarenakan objek musuh tidak dapat melacak posisi pemain apabila memiliki jarak yang cukup jauh sehingga apabila pemain telah berada cukup jauh dari posisi pemain, musuh akan kembali bergerak secara acak diarena permainan. Lain halnya pada permainan game Pacman, AI game engine pada game Pacman mampu melacak lokasi pemain walaupun jaraknya jauh. Sehingga semua musuh diarena permainan akan melakukan pengejaran terhadap pemain. Adapun Activity diagram metode pergerakan musuh adalah sebagai berikut :


(72)

Pada gambar 3.4 dijelaskan bahwa AI game engine hanya akan terpicu apabila pemain mendekati area sekitar musuh. AI game engine akan menginisialisasi posisi musuh yang merupakan titik awal , posisi pemain dan setelah itu AI game engine akan menentukan arah pergerakan musuh untuk melakukan pengejaran kepada pemain.

3.1.1.7 Analisis Masalah

Berdasarkan hasil observasi dari analisis game sejenis diketahui bahwa beberapa hal yang menyebabkan game Labirinth Prison kurang menarik dan diminati oleh para pengguna diantaranya :

1. Alur permainan yang monoton

2. Lemahnya penerapan AI pada objek musuh.

3. Kurangnya variatifnya entitas permainan terutama pada kemampuan musuh

Hal –hal tersebutlah yang menyebabkan permainan Labirinth Prison menjadi kurang menarik dan sepi peminat


(73)

Dari gambar 3.5 diatas terlihat kalau game labirinth Prison kurang menarik dengan jumlah pemain yang memainkannya hanya sekitar tiga ribu lebih beda halnya yang terjadi pada game Battle Tank dan Wicky Woo yang telah dimainkan oleh pemain lebih dari enam ratus ribu kali.

Gambar 3.6 Play Count Game Battle Tank

Gambar 3.7 Play Count Game Wicky Woo

3.1.2 Analisis Perancangan Game Death Castle

Pada analisis ini, akan dilakukan analisis terhadap perancangan game yang akan dibangun. Tujuan dari analisis ini yaitu mendapatkan konsep permainan dari game Death Castle.


(74)

3.1.2.1 Pengenalan Game Death Castle

Death Castle adalah merupakan game berjenis arcade yang akan dibangun. Nama castle diambil karena arena permainan dari game ini berlokasi didalam sebuah kastil sedangkan kata Death digunakan karena dalam kastil tersebut terdapat berbagai macam musuh yang yang harus dihadapi oleh pemain. Death Castle merupakan game dengan sistem single player dan dibangun dengan grafis 2D( dua dimensi).

3.1.2.2 Storyline

Game Death Castle bercerita tentang seorang penjelajah bernama Explorer yang tersesat dalam sebuah kastil bernama “Death Castle”. Kastil ini dijaga oleh Boss monster dan banyak anak buahnya. Misi utama dari game ini adalah keluar dari Death Castle. Untuk keluar kastil ini Explorer harus melewati dua lantai / dua level, untuk melewati tiap lantainya Explorer harus menutup sejumlah peti di masing-masing lantai, namun untuk menemukan kunci tersebut tidaklah mudah dikarenakan Explorer harus menghadapi Ghost di lantai paling atas, lantai selanjutnya Explorer harus menghadapi Ghost dan Beast.

3.1.2.3 Gameplay

Tugas utama pemain (pengguna) dalam memainkan aplikasi ini yaitu harus melalui 2 level, dimana tiap level memiliki tingkat kesulitan yang berbeda, semakin tinggi level maka tingkat kesulitan akan semakin sulit. Tiap level pemain harus menyelesaikan misi yaitu menutup sejumlah peti untuk melangkah ke level


(75)

berikutnya. Musuh akan menghalangi pemain untuk menyelesaikan misi. Akan tetapi, pemain dapat mengalahkan musuh dengan mengambil item-item yang tersedia diarena permainan misalnya tembak dan bom.

3.1.2.4 Elemen Game

Elemen permainan yang terdapat dalam permainan game Death Castle diantaranya adalah sebagai berikut:

1. Arena Permainan

Pada permainan game Death Castle arena permainannya adalah disebuah kastil yang berbentuk kotak dan dipenuhi banyak rintangan atau halangan yang tidak dapat dilalui oleh pemain dan musuh. Diarena permainan inilah entitas pemain harus meloloskan diri dari kejaran musuh.

2.Pemain (Explorer)

Pemain bernama Explorer merupakan aktor utama yang menggunakan aplikasi game. Ia mengontrol pergerakan untuk bergerak dari dari satu titik ke titik yang lain pada area permainan. Pemain memiliki misi yaitu menutup sejumlah peti untuk mendapatkan kunci dan menghindari kejaran musuh. Pemain dapat mengalahkan musuh dengan mengambil item-item yang tersedia di arena permainan seperti tembak dan bom.

3.Musuh (Non-Playable Character)

Pada game Death Castle musuh terdiri dari tiga jenis yaitu Ghost, Beast. Musuh Ghost akan akan keluar dari peti untuk mengajar pemain, pemain


(76)

dapat mengalahkan Ghost dengan menembaknya menggunakan tembak. Beast juga akan mengejar pemain akan tetapi Beast hanya dapat dikalahkan oleh senjata peluru cannon.

4. Peti

Peti akan mengeluarkan musuh Ghost, oleh sebab itu pemain harus menutup sejumlah peti dalam arena permainan. Apabila berhasil menutup semua peti pemain akan melangkah ke level berikutnya.

3.1.2.5 Alur pada Game Death Castle

Alur pada game Death Castle tidak jauh berbeda dengan yang terdapat dalam game Labirinth Prison namun dilakukan beberapa pengembangan diantaranya :

A.Alur Sistem

Alur sistem pada game Death Castle adalah sebagai berikut :

1. Sistem menginisialisasi seluruh entitas yang ada didalam arena permainan seperti pemain, musuh dan item-item.

2. Peti dan penghalang dalam arena permainan ditentukan secara acak oleh sistem

3. Posisi pemain berada pada posisi kiri atas diarena permainan 4. Permainan dimulai


(77)

6. Pemain akan dikontrol dan melalukan tembakan dengan memasukkan perintah melalui keyboard

7. Sistem melakukan update terhadap posisi seluruh entitas permainan dan logika dari sistem.

B. Alur Permainan

Alur permainan pada game Labirinth Prison adalah sebagai berikut :

1. Pemain terkurung sebuah kastil bernama Death Castle yang dipenuhi oleh berbagai musuh, pemain harus menemukan jalan keluar untuk meloloskan diri dari kastil tersebut.

2. Pemain harus menghindari kejaran musuh yang berada pada arena permainan.

3. Jika musuh ditembak oleh pemain, maka musuh tersebut akan hilang dari arena permainan.

4. Pemain harus menutup sejumlah peti ditiap levelnya.

5. Pemain akan berpindah ke level selanjutnya apabila telah menutup semua peti di arena permainan

C. Misi yang harus dicapai Pemain

Pemain harus lolos dari Death Castle, dengan menutup semua peti didalam arena permainan. Ketika semua semua peti tertutup, maka pemain akan melangkah ke level berikutnya.


(1)

Implementasi

Implementasi Perangkat Keras

Implementasi Perangkat Lunak

Implementasi Instalasi Aplikasi GameImplementasi Antarmuka


(2)

(3)

Pengujian

 Alpha


(4)

Pengujian Alpha

 Menu Utama

 Tombol kontrol pemain

Collision Detection


(5)

(6)