• Tidak ada hasil yang ditemukan

Pembuatan Game "The Conqueror" Menggunakan XNA 4.0.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pembuatan Game "The Conqueror" Menggunakan XNA 4.0."

Copied!
14
0
0

Teks penuh

(1)

v

ABSTRAK

Game turn-based strategy merupakan salah satu jenis game yang sudah tidak asing lagi. Kebanyakan dari game berjenis ini dibuat dengan untuk seorang pemain dengan lawan main berupa Artificial Intelligence (AI).

Ada banyak jenis-jenis dari AI yang dapat digunakan. Salah satu diantaranya adalah minimax. Algoritma minimax merupakan salah satu algoritma pengambilan keputusan secara rekursif membentuk sebuah pohon. Selain itu, pada game turn-based strategy dibutuhkan sebuah algoritma pendukung untuk melakukan pathfinding.

Akhirnya dilakukan analisa, perancangan, desain sistem, dan teori-teori yang mendukung dalam pembuatan game turn-based strategy serta tahap implementasi dan pengujiannya. Hal tersebut bertujuan untuk mengimplementasikan algoritma minimax sebagai pengambilan keputusan dan algoritma A* sebagai pathfinding.

(2)

vi

ABSTRACT

Turn-based strategy game is one type of game that is familiar to player. Most of this type games are single-player games with Artificial Intelligence as the opponent.

There are may kinds of Artificial Intelligence that can be used. One of them is minimax. This algorithm is one of decision making algorithm that generates a tree. Furthermore, turn-based strategy games needs another algorithm for pathfinding.

Finally, analysis, design, system design, and theories that support the making of turn-based strategy game done as well as implementation and testing phases. It aims to implement the minimax algorithm as a decision-making and A* algorithm as a pathfinding.

(3)

vii

DAFTAR ISI

LEMBAR PENGESAHAN ... i

PERNYATAAN ORISINALITAS LAPORAN PENELITIAN ... ii

PERNYATAAN PUBLIKASI LAPORAN PENELITIAN ...iii

KATA PENGANTAR ... iv

1.5 Sistematika Penyajian ... 2

BAB II LANDASAN TEORI ... 4

2.1 Pemrograman Berorientasi Objek dengan C# ... 4

2.2 Microsoft XNA 4.0 ... 7

2.2.1 Area Deklarasi ... 7

2.2.2 Class Constructor ... 7

2.2.3 Method Initialize() ... 7

2.2.4 Method LoadContent() ... 8

2.2.5 Method Update() ... 8

2.2.6 Method Draw() ... 8

2.2.7 Game Component ... 8

2.3 Grafik Isometrik 2D ... 9

2.4 Turn-Based Strategy Games ... 10

2.5 Unified Modeling Language (UML) ... 11

2.5.1 Use Case Diagram ... 11

2.5.2 Activity Diagram ... 13

2.5.3 Class Diagram ... 15

2.6 Input/Output File ... 16

(4)

viii

2.8 Artificial Intelligence (AI) ... 19

2.8.1 Algoritma Minimax ... 20

2.8.2 Evaluation Function ... 21

2.8.3 Algoritma A* ... 21

2.9 Whitebox Testing ... 25

BAB III ANALISA DAN PEMODELAN ... 26

3.1 Latar Belakang Cerita ... 26

3.2 Rincian Game ... 26

3.2.1 Battle System ... 26

3.2.2 Perhitungan Damage ... 28

3.2.3 Perhitungan Experience ... 30

3.3 Arsitektur Game ... 31

BAB IV PERANCANGAN DAN IMPLEMENTASI ... 48

4.1 Tampilan Aplikasi Game ... 48

4.1.1 Tampilan Start Game ... 48

4.1.2 Tampilan Load Game... 49

4.1.3 Tampilan Option ... 49

4.1.4 Tampilan Map Game ... 50

4.1.5 Tampilan Fortress ... 53

4.1.6 Tampilan Shop ... 56

4.1.7 Tampilan save game... 59

4.1.8 Tampilan Keluar Permainan ... 59

4.1.9 Tampilan Peta Pertempuran ... 60

4.1.10 Tampilan area pertempuran ... 74

4.1.11 Tampilan Tutorial Permainan ... 74

4.1.12 Tampilan Stage Clear... 75

4.1.13 Tampilan Game Over ... 76

4.2 Implementasi Algoritma Minimax ... 77

4.2 Forward Pruning ... 84

(5)

ix

4.4 Implementasi Algoritma A*... 85

BAB V PENGUJIAN ... 87

5.1 Kelas Unit ... 87

5.2 Kelas Player ... 91

5.3 Kelas Coordinate ... 94

5.4 Kelas AstarAI ... 95

BAB VI KESIMPULAN DAN SARAN ... 96

6.1 Kesimpulan... 96

6.2 Saran ... 96

DAFTAR PUSTAKA ... xi

LAMPIRAN ... xii

(6)

x

DAFTAR GAMBAR

Gambar 2 . 1 Proyeksi isometrik 30 ° ... 10

Gambar 2 . 2 Proyeksi isometrik 1 : 2 ... 10

Gambar 2 . 3 Proyeksi militer ... 10

Gambar 2 . 4 Contoh penggunaan dependensi include ... 13

Gambar 2 . 5 Contoh penggunaan dependensi extend ... 13

Gambar 2 . 6 Contoh penggunaan generalisasi pada use case... 13

Gambar 2 . 7 Komponen – komponen dalam Activity Diagram ... 15

Gambar 2 . 8 Contoh Class pada Class Diagram ... 15

Gambar 2 . 9 Contoh penggunaan dependensi ... 16

Gambar 2 . 10 Contoh penggunaan asosiasi ... 16

Gambar 2 . 11 Contoh penggunaan komposisi ... 16

Gambar 2 . 12 Contoh penggunaan generalisasi... 16

Gambar 2 . 13 State Diagram dari sebuah thread ... 19

Gambar 2 . 14 Contoh algoritma minimax ... 20

Gambar 2 . 15 Contoh algoritma minimax dengan pruning ... 21

Gambar 2 . 16 Contoh algoritma A* ... 23

Gambar 2 . 17 Contoh lain algoritma A* ... 24

Gambar 3 . 1 Use Case Diagram ... 32

Gambar 3 . 2 Activity Diagram memulai game ... 37

Gambar 3 . 3 Activity Diagram memilih lokasi ... 38

Gambar 3 . 4 Activity Diagram membeli barang ... 39

Gambar 3 . 5 Activity Diagram bertarung ... 40

Gambar 3 . 6 Activity Diagram mengatur option ... 41

Gambar 3 . 7 Activity Diagram mengganti equipment ... 42

Gambar 3 . 8 Class Diagram game The Co ue o ... 43

Gambar 3 . 9 Rancangan tampilan Menu Utama ... 44

Gambar 3 . 10 Rancangan tampilan Menu Load Game ... 44

Gambar 3 . 11 Rancangan tampilan Menu Option ... 45

Gambar 3 . 12 Rancangan tampilan map game The Co ue o ... 45

(7)

xi

Gambar 3 . 14 Rancangan tampilan area pertempuran ... 46

Gambar 4 . 1 Tampilan Start Game ... 48

Gambar 4 . 2 Tampilan Load Game ... 49

Gambar 4 . 3 Tampilan option... 50

Gambar 4 . 4 Tampilan map game ... 51

Gambar 4 . 5 Tampilan pemilihan lokasi ... 52

Gambar 4 . 6 Tampilan fortress ... 53

Gambar 4 . 7 Tampilan status unit ... 54

Gambar 4 . 8 Tampilan pemilihan equipment ... 54

Gambar 4 . 9 Tampilan inventory pemain ... 55

Gambar 4 . 10 Tampilan shop ... 56

Gambar 4 . 11 Tampilan daftar barang yang dapat dibeli di shop ... 57

Gambar 4 . 12 Tampilan pemilihan kuantitas barang ... 57

Gambar 4 . 13 Tampilan daftar inventori pemain yang akan dijual di shop ... 58

Gambar 4 . 14 Tampilan save game ... 59

Gambar 4 . 15 Tampilan konfirmasi mengakhiri pemainan ... 60

Gambar 4 . 16 Tampilan memulai pertempuran ... 61

Gambar 4 . 17 Tampilan pemain akan menempatkan unit ... 61

Gambar 4 . 18 Tampilan pemilihan unit pada peta pertempuran ... 62

Gambar 4 . 19 Tampilan menu ketika memilih grid yang sudah ditempati unit ... 62

Gambar 4 . 20 Tampilan unit yang sudah ditempatkan oleh pemain ... 63

Gambar 4 . 21 Tampilan memulai giliran pemain ... 63

Gambar 4 . 22 Tampilan menu pada unit yang belum digunakan ... 64

Gambar 4 . 23 Tampilan grid ketika pemain memilih menu move ... 65

Gambar 4 . 24 Tampilan menu pada unit yang sudah melakukan move ... 65

Gambar 4 . 25 Tampilan submenu dari Act ... 66

Gambar 4 . 26 Tampilan grid ketika pemain memilih submenu attack atau skill ... 67

Gambar 4 . 27 Tampilan daftar skill unit yang dipilih ... 68

Gambar 4 . 28 Tampilan animasi ketika menggunakan skill ... 68

Gambar 4 . 29 tampilan inventori pemain ... 69

Gambar 4 . 30 Tampilan grid ketika pemain memilih submenu item ... 70

(8)

xii

Gambar 4 . 32 Tampilan menu unit yang sudah digunakan ... 71

Gambar 4 . 33 Tampilan menu end turn ... 72

Gambar 4 . 34 Tampilan mengakhiri giliran ... 72

Gambar 4 . 35 Tampilan memulai giliran AI ... 73

Gambar 4 . 36 Tampilan peta pertempuran ketika giliran AI ... 73

Gambar 4 . 37 Tampilan area pertempuran ... 74

Gambar 4 . 38 Tampilan tutorial permainan ... 75

Gambar 4 . 39 Tampilan stage clear ... 76

Gambar 4 . 40 Tampilan game over ... 77

Gambar 4 . 41 Flowchart pembuatan minimax tree ... 78

Gambar 4 . 42 Ilustrasi Minimax tree ... 79

Gambar 4 . 43 Ilustrasi Minimax tree dengan menggunakan pruning ... 81

Gambar 5 . 1 Flowchart dari procedure CalculateDamage ... 88

Gambar 5 . 2 Flowchart dari procedure GetExperience ... 90

Gambar 5 . 3 Flowchart dari procedure BuyItem ... 92

Gambar 5 . 4 Flowchart dari procedure SellItem ... 93

(9)

xiii

DAFTAR TABEL

Tabel 2 . 1 Simbol Use Case Diagram ... 12

Tabel 2 . 2 Simbol Activity Diagram ... 14

Tabel 3 . 1 Tabel pengali damage unit penyerang ... 29

Tabel 3 . 2 Tabel pengali damage unit bertahan ... 29

Tabel 5 . 1 Pengujian Kelas Unit – Property CurrentTroops ... 87

Tabel 5 . 2 Pengujian Kelas Unit – Property status unit ... 87

Tabel 5 . 3 Pengujian Kelas Unit – Method CalculateDamage ... 88

Tabel 5 . 4 Pengujian Kelas Unit – Method GetExperience ... 90

Tabel 5 . 5 Pengujian Kelas Player – Property Money ... 91

Tabel 5 . 6 Pengujian Kelas Player – Method BuyItem ... 92

Tabel 5 . 7 Pengujian Kelas Player – Method SellItem ... 94

Tabel 5 . 8 Pengujian Kelas Coordinate – Property X ... 94

Tabel 5 . 9 Pengujian Kelas Coordinate – Property Y ... 94

(10)

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Game turn-based strategy adalah sebuah game dimana pemain menggunakan sistem bergilir

ketika bermain. Hal ini membedakan turn-based strategy dan real time strategy karena pada game real

time strategy seluruh pemain dapat bermain secara bersamaan tanpa harus menunggu giliran. Pada

game turn-based strategy, biasanya terdapat grid seperti papan catur dan setiap unit ditempatkan di

satu grid.

Awalnya game turn-based strategy muncul dengan skala konfrontasi yang kecil. Disebut skala

konfrontasi yang kecil karena satu unit hanya mewakili satu karakter dan biasanya di battlemap tidak

lebih dari dua puluh unit. Salah satu game turn-based strategy dengan skala konfrontasi kecil yang

sukses adalah Final Fantasy Tactics. Game tersebut dapat dikatakan sukses karena memiliki alur cerita

yang baik serta sistem battle yang menarik.

Setelah itu muncul game turn-based strategy yang berskala besar seperti game Romance of

Three Kingdom. Setiap unit mewakili satu atau lebih perwira didampingi oleh ratusan bahkan ribuan

pasukan. Selain itu, pada game turn-based strategy yang berskala besar pemain dapat mengatur

perekonomian hingga politik dari negaranya.

Game turn-based strategy dengan satu orang player menggunakan AI (Artificial Intelligence)

sebagai lawan main. Game turn-based strategy de ga AI ya g bodoh e buat game tersebut

menjadi terlalu mudah. AI yang hanya akan menggerakkan unit-unit tertentu setelah beberapa turn

yang sudah ditentukan serta serangannya yang dapat dikatakan random membuat game tersebut dapat

dimainkan tanpa menggunakan strategi khusus.

Algoritma yang digunakan untuk game turn-based strategy dapat beragam. Hal ini dapat dilihat

dari cara pikir AI dalam game. Semua algoritma memiliki kelebihan dan kekurangan masing-masing.

Untuk itu, dilakukanlah perancangan dan pengimplementasian AI untuk game turn-based strategy.

1.2 Rumusan Masalah

Adapun pertanyaan yang muncul seputar hal tersebut adalah bagaimana merancang dan

(11)

2

1.3 Tujuan Pembahasan

Tujuan dari Tugas Akhir ini adalah untuk merancang dan mengimplementasikan AI dengan

menggunakan algoritma A* sebagai pathfinding dan algoritma Minimax sebagai decision making ke

dalam sebuah game turn-based strategy.

1.4 Ruang Lingkup Kajian

Game turn-based strategy The Co ue o dibuat e ggu aka C# da XNA 4.0 de ga

batasan-batasan sebagai berikut :

1. Game ini merupakan single-player game.

2. Game ini menggunakan AI sebagai lawan main.

3. Dalam satu battlemap, pemain dapat mengontrol satu hingga empat unit.

4. Ada 3 kategori unit, yaitu spearman, archer, dan knight. Sebuah unit akan masuk ke dalam suatu

kategori berdasarkan perwira yang terdapat di unit tersebut.

5. Pemain hanya dapat melakukan save data ketika berada di worldmap.

6. Setiap unit hanya dapat bergerak secara horizontal dan vertikal, tidak dapat bergerak diagonal.

7. AI yang digunakan adalah A* serta Minimax dengan 1 level tree.

8. Unit yang dijalankan oleh AI selalu berurutan.

1.5 Sistematika Penyajian

Berikut adalah sistematika penulisan dalam Tugas Akhir ini :

Bab I. Pendahuluan

Bab ini berisi gambaran keseluruhan dari produk yang akan dibuat secara garis besar

Bab II. Landasan Teori

Bab ini digunakan untuk menjelaskan teori-teori yang berkaitan dengan pembuatan game

turn-based strategy The Co ue o , yaitu teo i e ge ai XNA 4.0 dan C#, threading, File I/O, serta

AIlgoritma untuk AI yang akan digunakan dalam game ini, yaitu algoritma minimax dan A*.

Bab III. Analisis dan Pemodelan

Bab ini digunakan untuk menjelaskan latar belakang cerita, aturan permainan, rincian game,

arsitektur game, storyboard, serta creative strategy arsitektur game yang dibuat.

Bab IV. Perancangan dan Implementasi

Bab ini digunakan untuk menjelaskan User Interface yang sudah dibuat dan penjelasan dari tiap

(12)

3

Bab V. Pengujian

Bab ini berisi pembahasan mengenai metode pengujian yang digunakan dan hasil pengujian.

Bab VI. Kesimpulan Dan Saran

Bab ini digunakan untuk memberi kesimpulan dan saran berdasarkan hasil evaluasi program game

(13)

96

BAB VI

KESIMPULAN DAN SARAN

6.1 Kesimpulan

Dari hasil pembahasan yang telah dilakukan dan berdasarkan hasil pengujian, dapat ditarik

beberapa kesimpulan, yaitu :

1. Algoritma Minimax dapat digunakan untuk membuat game turn-based strategy. Kelebihan dari

penggunaan algoritma ini adalah AI dapat memperkirakan langkah-langkah selanjutnya dari unit

lawan, sehingga keputusan yang diambil dapat lebih optimal. Namun, besarnya tree dari algoritma

Minimax ini sangat bergantung kepada jumlah unit dari kedua belah pihak. Semakin banyak jumlah

unit, maka tree yang dihasilkan pun akan semakin besar dan proses pembuatannya pun akan

semakin lama. Forward pruning dapat digunakan dalam pembuatan minimax tree ga e The

Co ue o da e pe cepat p oses pembuatan tree.

2. Algoritma A* membantu algoritma Minimax dalam decision making terutama untuk pathfinding.

Dengan penggunaan algoritma ini, AI dapat mencari alternatif jalan lain ketika menemukan

kebuntuan. Jarak antara titik awal dan titik akhir memengaruhi besarnya ukuran tree A*.

6.2 Saran

Berdasarkan hal-hal yang telah dicapai dalam implementasi algoritma Minimax pada game

turn-based strategy ini, dapat diperoleh beberapa saran, yaitu :

1. Syarat-syarat untuk melakukan pruning dapat lebih detail, sehingga tree pada algoritma Minimax

yang dibuat dapat lebih efisien dan proses pembuatan tree semakin singkat.

2. Dapat ditambahkan tingkat kesulitan dari AI. Semakin tinggi tingkat kesulitan AI, semakin besar level

level dari Minimax tree yang dibuat.

3. Unit AI yang akan bergerak dapat diurutkan sesuai kriteria tertentu, sehingga urutan unit tidak

(14)

xi

DAFTAR PUSTAKA

1. Chonoles, Michael Jesse dan Schardt, James A. 2003. UML 2 for Dummies. Indianapolis : Wiley

Publishing.

2. Pole, Charlie. 2012. NUnit 2.6 Documentation. Retrieved from NUnit :

http://www.nunit.org/index.php? p=docHome&r=2.6

3. Jaegers, Kurt. 2010. XNA 4.0 Game Development by Example. Birmingham - Mumbai : Packt

Publishing.

4. Nagel, Christian, dkk. 2007. Professional C# 2005 with .NET 3.0. Indianapolis : Wiley Publishing.

5. Nash, Trey. Accelerated C# 2010. 2010. New York : Apress.

6. Pilon, Dan dan Pitman, Neil. 2005. UML 2.0 in a Nutshell. Gravenstein Highway North : O’Reilly

Media.

7. Pressman, Roger S., Ph.D. Software Engineering A Practitioner’s Approach. New York :

McGraw-Hill

8. Reid, Fiach. 2004. Network Programming in .NET. Burlington : Elsevier Digital Press.

9. Riemersma, Thiadme. Axonometric Projections - A Technical Overview. Retrieved from Graphics

Programming and Theory :

http://www.gamedev.net/page/resources/_/technical/graphics-programming-and-theory/axonometric-projections-a-technical-overview-r1269

Gambar

Grafik Isometrik 2D ....................................................................................................................

Referensi

Dokumen terkait

Kolostrum merupakan cairan yang pertama kali disekresi oleh kelenjar mamae. Kolostrum ini berlangsung sekitar tiga sampai empat hari setelah ASI pertama kali keluar. Kolostrum

7b Hal ini tidak penting bahwa iman saya secara kompatibel lebih tinggi dengan atau sama dengan iman. 8a Tradisi keagamaan dan kepercayaan

j. Wajib mempunyai perjanjian Kerja Sama Operasi atau Kemitraan yang memuat prosentase Kemitraan dan Perusahaan yang mewakili Kemitraan tersebut. Penilaian

Pejabat Pengadaan Barang / Jasa Bidang Sumber Daya Air Dinas Pekerjaan Umum Kabupaten

Tulisan ini bertujuan untuk memberikan informasi kepada pendidik tentang hypnoteaching sebagai salah satu alternatif metode yang dapat digunakan untuk menciptakan

Dalam membuat sebuah aplikasi Augmented Reality maka terlebih dahulu harus mendownload semua library dan juga software yang digunakan untuk dapat membuat programnya, karena

Tujuan dari penelitian ini adalah untuk mengetahui perubahan luasan terumbu karang periode tahun 2001 - tahun 2011, kondisi ekosistem terumbu karang serta kondisi parameter perairan

Pada hari ini Selasa tanggal Delapan Belas bulan September tahun Dua Ribu Dua Belas, kami yang bertanda tangan di bawah ini Panitia Pengadaaan Barang dan Jasa Pekerjaan Konstruksi