iv
Universitas Kristen Maranatha
ABSTRAK
Inovasi baru dalam game komputer dibutuhkan setiap saat. Aplikasi ini, yang merupakan gabungan dari tiga jenis game, yaitu board, card dan turn-based strategy, dibuat untuk menjawab tantangan tersebut. Fitur-fitur utama game ini meliputi jumlah
pemain 1-4 orang, arsitektur network pure peer-to-peer, tampilan dengan GDI+, pembacaan data dari file teks. Pengembangan di masa depan dapat dilakukan dengan menambah fitur memilih peta, perluasan jaringan dengan memanfaatkan internet, dan penambahan rincian game seperti avatar, item, dan ability. Aplikasi ini dibuat dengan bahasa pemrograman Visual C# .NET 2005, dengan teknologi seperti pure p2p remoting,
v
Universitas Kristen Maranatha
ABSTRACT
New innovation in computer games is needed all the time. This application, that is made from a merge of three genres, such as board, card, and turn-based strategy, created to answer the challenge. Main features in this game are 1-4 supported players, pure
peer-to-peer network architecture, GDI+ display, and text-based file data reading. Improvements in the future can be done by adding map selection feature, broading the network using internet, and the expansion of the ga e’s ele e t such as avatars, ite s,
and abilities. This application is built with Visual C# .NET programming language, with technologies such as pure p2p remoting, GDI+, ownerDraw, and file input/output. Theories that referenced in this project includes Programming and Algorithms, Software
vi
DAFTAR LAMPIRAN ... xv
BAB I PENDAHULUAN ... 1
1.1. LATAR BELAKANG ... 1
1.2. RUMUSAN MASALAH ... 1
1.3. TUJUAN ... 2
1.4. BATASAN MASALAH ... 2
1.5. SISTEMATIKA PEMBAHASAN ... 3
1.6. TIME SCHEDULE ... 4
BAB II DASAR TEORI ... 5
2.1. ATURAN PERMAINAN BLOODRUSH ... 5
2.2. TEORI PENUNJANG... 11
2.3. METODE ... 18
2.4. PROTOKOL KOMUNIKASI ... 19
BAB III ANALISA DAN PEMODELAN ... 23
3.1. LATAR BELAKANG CERITA ... 23
3.3.1. ARSITEKTUR JARINGAN ... 52
3.3.2. USE CASE ... 53
vii
Universitas Kristen Maranatha
3.3.2.2. DALAM PERMAINAN ... 55
3.3.3. ACTIVITY DIAGRAM ... 56
3.3.3.1. SEBELUM PERMAINAN ... 56
3.3.3.1.1. MASUKKAN NAMA ... 56
3.3.3.1.8. KELUAR DARI APLIKASI ... 58
3.3.3.2. DALAM PERMAINAN ... 59
3.3.3.2.1. KIRIM PESAN ... 59
3.3.3.2.2. JALAN ... 59
3.3.3.2.3. AMBIL KARTU ... 59
3.3.3.2.4. LIHAT KARTU ... 59
3.3.3.2.5. GUNAKAN KARTU DAN ATAU ABILITY ... 60
3.3.3.2.6. GERAKKAN PETA ... 60
3.3.3.2.7. BUANG KARTU ... 61
3.3.3.2.8. KELUAR DARI APLIKASI ... 61
3.3.4. CLASS DIAGRAM ... 62
3.3.4.1. DATA ... 62
3.3.4.2. REMOTE OBJECT... 63
3.3.4.3. ITEM & ABILITY ... 64
3.3.4.4. COMBAT ... 65
3.3.5. SEQUENCE DIAGRAM ... 66
3.3.5.1. SEBELUM PERMAINAN ... 66
viii
Universitas Kristen Maranatha
3.3.5.1.7. BATALKAN GAME ... 70
3.3.5.1.8. KELUAR DARI APLIKASI ... 70
3.3.5.2. DALAM PERMAINAN ... 71
3.3.5.2.1. KIRIM PESAN ... 71
3.3.5.2.2. JALAN ... 71
3.3.5.2.3. AMBIL KARTU ... 72
3.3.5.2.4. LIHAT KARTU ... 73
3.3.5.2.5. GUNAKAN KARTU DAN ATAU ABILITY ... 73
3.3.5.2.6. GERAKKAN PETA ... 74
3.3.5.2.7. BUANG KARTU ... 75
3.3.5.2.8. KELUAR DARI APLIKASI ... 75
3.4. STORYBOARD ... 76
3.5.4. TAMPILAN PERMAINAN ... 89
BAB IV PERANCANGAN DAN IMPLEMENTASI ... 91
4.1. DATA ... 91
4.1.3.3. INPUT LOCATIONS DATA ... 95
4.1.3.4. INPUT ITEMS DATA ... 96
ix
Universitas Kristen Maranatha
4.2. COMBAT ... 97
4.2.1. FIGHT ... 99
4.2.2. ATTACKED ... 105
4.2.3. ABILITY CHECKING ... 109
4.2.4. TRAIT CHECKING ... 116
4.3. REMOTING ... 118
4.3.1. REMOTE OBJECT ... 118
4.3.2. EVENTS ... 120
4.4. MAP & SPRITE ... 121
4.4.1. ONPAINT BACKGROUND ... 121
4.4.2. COMBINE BACKGROUND AND SPRITE ... 122
4.4.3. CHECK DIRECTION ... 122
4.4.4. MOVEMENT ARRAY ... 123
4.4.5. MOVE AVATAR ... 124
4.4.6. SEARCH LAST RESURRECTION POINT ... 125
4.4.7. DRAG MAP POSITION ... 126
4.4.8. TRANSPARENT LISTBOX ... 129
4.5. SORTING HAND ... 132
BAB V PENGUJIAN ... 135
5.1. TESTING DATA ... 135
5.1.1. READ DATA ... 135
5.1.2. INPUT HEROES DATA ... 136
5.1.3. INPUT CREEPS DATA... 138
5.1.4. INPUT LOCATIONS DATA ... 139
5.1.5. INPUT ITEMS DATA ... 140
5.1.6. INPUT ABILITIES DATA ... 142
5.2. TESTING COMBAT ... 144
5.2.1. FIGHT ... 144
5.2.2. ATTACKED ... 146
5.2.3. ABILITY CHECKING ... 147
5.2.4. TRAIT CHECKING ... 149
5.3. TESTING MAP & SPRITE ... 151
x
Universitas Kristen Maranatha
5.3.2. MOVEMENT ARRAY ... 152
5.3.3. SEARCH LAST RESURRECTION POINT ... 154
5.4. TESTING SORT HAND... 155
BAB VI KESIMPULAN DAN SARAN ... 158
6.1. KESIMPULAN ... 158
6.2. SARAN ... 158
DAFTAR PUSTAKA ... xvi
xi
Universitas Kristen Maranatha
DAFTAR GAMBAR
Gambar II.1 Pilihan avatar... 6
Gambar II.2 Arsitektur Server-client ... 11
Gambar II.3 Arsitektur pure peer-to-peer ... 12
Gambar II.4 Listbox transparan ... 13
Gambar II.5 Pergerakan peta menggunakan mouse ... 14
Gambar II.6 Pergerakan sprite di peta ... 15
Gambar II.7 Kursor beranimasi ... 16
Gambar II.8 Data pada file teks ... 17
Gambar II.9 MarshalByRefObject pada server dan client ... 21
Gambar II.10 Proses pengiriman data ... 22
Gambar III.1 Arsitektur Jaringan ... 52
Gambar III.2 Use-case sebelum permainan ... 53
Gambar III.3 Use-case dalam permainan ... 55
Gambar III.4 Activity Diagram Masukkan nama ... 56
Gambar III.5 Activity Diagram Kirim pesan (di luar game) ... 57
Gambar III.6 Activity Diagram Pilih avatar ... 57
Gambar III.7 Activity Diagram Undang pemain ... 57
Gambar III.8 Activity Diagram Buat game ... 57
Gambar III.9 Activity Diagram Mulai game ... 58
Gambar III.10 Activity Diagram Batalkan game ... 58
Gambar III.11 Activity Diagram Keluar dari aplikasi ... 58
Gambar III.12 Activity Diagram Kirim pesan (dalam game) ... 59
Gambar III.13 Activity Diagram Jalan ... 59
Gambar III.14 Activity Diagram Ambil Kartu ... 59
Gambar III.15 Activity Diagram Lihat kartu ... 59
Gambar III.16 Activity Diagram Gunakan kartu dan atau ability ... 60
Gambar III.17 Acitvity Diagram Gerakkan peta ... 60
Gambar III.18 Activity Diagram Buang kartu ... 61
Gambar III.19 Activity Diagram Keluar dari aplikasi ... 61
Gambar III.20 Class Diagram Data ... 62
Gambar III.21 Class Diagram Remote Object ... 63
Gambar III.22 Class Diagram Item ... 64
Gambar III.23 Class Diagram Ability ... 64
Gambar III.24 Class Diagram Combat ... 65
Gambar III.25 Sequence Diagram Masukkan nama ... 66
Gambar III.26 Sequence Diagram Kirim pesan (sebelum permainan) ... 67
Gambar III.27 Sequence Diagram Pilih Avatar ... 67
Gambar III.28 Sequence Diagram Undang pemain ... 68
Gambar III.29 Sequence Diagram Buat Game ... 69
xii
Universitas Kristen Maranatha
Gambar III.31 Sequence Diagram Batalkan Game ... 70
Gambar III.32 Sequence Diagram Keluar dari aplikasi ... 70
Gambar III.33 Sequence Diagram Kirim pesan (dalam permainan) ... 71
Gambar III.34 Sequence Diagram Jalan ... 71
Gambar III.35 Sequence Diagram Ambil kartu ... 72
Gambar III.36 Sequence Diagram Lihat kartu ... 73
Gambar III.37 Sequence Diagram Gunakan kartu dan atau ability ... 73
Gambar III.38 Sequence Diagram Gerakkan peta ... 74
Gambar III.39 Sequence Diagram Buang kartu ... 75
Gambar III.40 Sequence Diagram Keluar dari aplikasi ... 75
Gambar III.41 Storyboard Upkeep Phase 1 ... 76
Gambar III.42 Storyboard Upkeep Phase 2 ... 76
Gambar III.43 Storyboard Move Phase 1 ... 77
Gambar III.44 Storyboard Move Phase 2 ... 77
Gambar III.45 Storyboard Pre-combat Phase 1... 78
Gambar III.46 Storyboard Pre-combat Phase 2... 78
Gambar III.47 Storyboard Pre-combat Phase 3... 79
Gambar III.48 Storyboard Pre-combat Phase 4... 79
Gambar III.49 Storyboard Pre-combat Phase 5... 80
Gambar III.50 Storyboard Pre-combat Phase 6... 80
Gambar III.51 Storyboard Pre-combat Phase 7... 81
Gambar III.52 Storyboard Combat Phase 1 ... 81
Gambar III.53 Storyboard Combat Phase 2 ... 82
Gambar III.54 Storyboard Combat Phase 3 ... 82
Gambar III.55 Storyboard Discard Phase 1 ... 83
Gambar III.56 Storyboard Discard Phase 2 ... 83
Gambar III.57 Storyboard Discard Phase 3 ... 84
Gambar III.58 Storyboard End Phase ... 84
Gambar III.59 Screenshot Menu utama ... 85
Gambar III.60 Screenshot Ruang tunggu ... 86
Gambar III.61 Screenshot Pilih avatar ... 88
Gambar III.62 Screenshot Tampilan permainan ... 89
Gambar IV.1 Flowchart Data ... 91
Gambar IV.2 Flowchart Combat ... 98
Gambar IV.3 Flowchart RemoteObject & Events ... 118
Gambar IV.4 Flowchart Map and Sprite Drawing ... 121
Gambar IV.5 Flowchart Search Last Res Point ... 125
Gambar IV.6 Flowchart Drag Map Position ... 126
Gambar IV.7 Flowchart Transparent Listbox ... 129
Gambar IV.8 Flowchart Sorting Hand ... 132
Gambar V.1 Testing Read Data Test Case 2 ... 136
Gambar V.2 Testing Read Data Test Case 3 ... 136
xiii
Universitas Kristen Maranatha
Gambar V.4 Testing Input Hero Data Test Case 3 ... 137
Gambar V.5 Testing Input Creep Data Test Case 2 ... 138
Gambar V.6 Testing Input Creep Data Test Case 3 ... 139
Gambar V.7 Testing Input Location Data Test Case 2 ... 140
Gambar V.8 Testing Input Location Data Test Case 3 ... 140
Gambar V.9 Testing Input Item Data Test Case 2 ... 141
Gambar V.10 Testing Input Item Data Test Case 3 ... 142
Gambar V.11 Testing Input Ability Data Test Case 2 ... 143
Gambar V.12 Testing Input Ability Data Test Case 3 ... 143
Gambar V.13 Testing Fight Test Case 2 ... 145
Gambar V.14 Testing Fight Test Case 3 ... 145
Gambar V.15 Testing Attacked Test Case 2 ... 147
Gambar V.16 Testing Attacked Test Case 3 ... 147
Gambar V.17 Testing Ability Check Test Case 2 ... 149
Gambar V.18 Testing Ability Check Test Case 3 ... 149
Gambar V.19 Testing Trait Check Test Case 2 ... 150
Gambar V.20 Testing Trait Check Test Case 3 ... 151
Gambar V.21 Testing Check Direction Test Case 2 ... 152
Gambar V.22 Testing Check Direction Test Case 3 ... 152
Gambar V.23 Testing Movement Array Test Case 2 ... 153
Gambar V.24 Testing Movement Array Test Case 3 ... 154
Gambar V.25 Testing Search Last Res Point Test Case 2 ... 155
Gambar V.26 Testing Search Last Res Point Test Case 3 ... 155
Gambar V.27 Testing Sort Cards Test Case 2 ... 157
xiv
Universitas Kristen Maranatha
DAFTAR TABEL
Tabel I.1 Time Schedule ... 4
Tabel III.1 Daftar Avatar ... 24
Tabel III.2 Daftar Lokasi ... 34
Tabel III.3 Daftar Musuh ... 36
Tabel III.4 Daftar Item ... 48
Tabel V.1 Testing ReadData ... 135
Tabel V.2 Testing Input Data Hero ... 137
Tabel V.3 Testing Input Data Creep ... 138
Tabel V.4 Testing Input Locations Data ... 139
Tabel V.5 Testing Input Items Data ... 141
Tabel V.6 Testing Input Abilities Data ... 142
Tabel V.7 Testing Fight ... 144
Tabel V.8 Testing Fight ... 146
Tabel V.9 Testing Ability Check ... 148
Tabel V.10 Testing Trait Check ... 150
Tabel V.11 Testing Check Direction ... 151
Tabel V.12 Testing Movement Array... 153
Tabel V.13 Testing Search Last Resurrection Point ... 154
xv
Universitas Kristen Maranatha
DAFTAR LAMPIRAN
1
Universitas Kristen Maranatha
BAB I
PENDAHULUAN
1.1. LATAR BELAKANG
Aplikasi game komputer dibuat untuk mengisi waktu luang, hiburan atau hobi. Ada berbagai macam jenis game komputer, diantaranya terdapat board game, card game, dan turn-based strategy. Masing-masing jenis game ini, sejak awal mula diciptakannya game komputer, sudah banyak dibuat dengan berbagai macam variasi. Memainkan jenis game yang sama secara terus-menerus akan membuat pemain merasa
cepat jenuh dan beralih ke game lainnya dalam waktu singkat. Diperlukan suatu inovasi
baru setiap saat untuk membuat konsep game yang benar-benar berbeda, agar game tersebut dapat membuat para pemainnya ingin memainkan game tersebut untuk waktu
yang lama, dan membuat game tersebut terkenal di kalangan gamer.
Berawal dari pemikiran tersebut, diciptakan game ini, yang merupakan gabungan konsep ketiga jenis game tersebut di atas. Adanya konsep baru ini diharapkan
dapat menarik perhatian para gamer dan menjadi game yang cukup adiktif untuk dimainkan.
Aplikasi game akan dibuat dengan bahasa pemrograman Visual C# .NET 2005. Teknik komunikasi antar komputer yang akan dipakai adalah .NET Remoting dengan
arsitektur network pure peer-to-peer, yang memiliki kelebihan dibandingkan arsitektur client-server, yaitu apabila server terputus, maka game masih dapat dilanjutkan. Selain itu, setelah mencari sumber di internet, penulis tidak menemukan referensi arsitektur pure peer-to-peer menggunakan .NET Remoting, sehingga penulis tertarik untuk merancangnya. Tampilan permainan akan memanfaatkan teknik GDI+ yang mutlak diperlukan dalam pembuatan game. Rincian data game akan memanfaatkan pembacaan
file teks, melihat kedinamisannya dibandingkan dengan database.
1.2. RUMUSAN MASALAH
Permasalahan dalam aplikasi game ini adalah:
1. Bagaimana cara membuat koneksi pure peer-to-peer menggunakan teknologi .NET remoting ?
2. Bagaimana cara membuat tampilan dengan memanfaatkan OwnerDraw
2
Universitas Kristen Maranatha 3. Bagaimana cara membaca data dari file teks ?
1.3. TUJUAN
Tujuan dari pembuatan aplikasi ini adalah:
1. Membuat koneksi pure peer-to-peer menggunakan teknologi .NET Remoting
2. Membuat tampilan game dengan memanfaatkan OwnerDraw dan GDI+
3. Memakai metode pembacaan data dari file teks
1.4. BATASAN MASALAH
1. Bahasa pemrograman yang digunakan adalah Microsoft Visual C#.NET 2005
2. Sistem operasi yang didukung adalah Microsoft Windows Vista atau Microsoft Windows XP Professional Service Pack 2, yang telah dilengkapi dengan .NET Framework 2.0.
3. Teknik pemrograman network yang digunakan adalah .NET Remoting.
4. Arsitektur network pada aplikasi ini adalah pure peer-to-peer.
5. Game ini berjudul BloodRush.
6. Game ini dapat dimainkan oleh 1 sampai 4 orang. 7. Resolusi monitor minimal adalah 1024 x 768 pixel.
8. Tampilan permain bersifat 2 dimensi.
9. Spesifikasi minimum perangkat keras untuk menjalankan game ini:
a. Processor : setingkat Intel Pentium 3 1.5 GHz
b. Memori : 512 MB
c. Sisa ruang hard disk : 150 MB
d. Local Area Network tersedia
10. Terdapat 19 avatar yang bisa dipilih pemain
11. Terdapat 1 peta permainan
12. Tidak menggunakan intelejensia buatan
13. Tidak terdapat fitur menyimpan permainan
14. Testing dilakukan dengan freeware perangkat lunak NUnit versi 2.4.3 15. Menggunakan gambar dari game Warcraft III dengan seijin Blizzard
3
Universitas Kristen Maranatha 16. Memakai kelas AutoDiscovery untuk mendeteksi adanya peer yang terkoneksi dengan komputer. Kelas ini dibuat dan dipublikasikan oleh
John R. Lewis di websitenya http://aspzone.com dan dapat diperoleh atau dipakai secara umum/gratis. Kelas ini tidak dimodifikasi dan tidak
dibahas lebih lanjut.
17. Pemakaian kursor beranimasi di dalam aplikasi memanfaatkan library yang telah disediakan oleh Windows, yaitu user32.dll. Pemakaian kelas ini tidak dibahas lebih lanjut.
18. Testing pada metode SortCards() langsung terhenti apabila nilai null terdeteksi, sehingga nilai kartu terakhir hasil test belum berubah. Hal ini
bertentangan dengan program yang memanfaatkan nilai null. Hal ini tidak berpengaruh pada praktek permainan, sehingga dibiarkan dan
tidak dibahas lebih lanjut.
1.5. SISTEMATIKA PEMBAHASAN
Organisasi penulisan laporan pembuatan aplikasi ini per bab adalah sebagai
berikut:
1. Pendahuluan
Bab ini berisi latar belakang, rumusan masalah, tujuan, batasan masalah,
sistematika pembahasan, serta time schedule. Bab ini harus menyediakan gambaran mengenai keseluruhan dokumen.
2. Dasar Teori
Bab ini menjabarkan teori keseluruhan dari aplikasi, seperti aturan
permainan, teori penunjang, metode algoritmik yang dipakai dan
protokol komunikasi.
3. Analisa dan Pemodelan
4
Universitas Kristen Maranatha 4. Perancangan
Bab ini menjabarkan tiap metode atau fungsi utama yang terdapat di
dalam aplikasi melalui kata-kata dan flowchart. Cuplikan source code ditampilkan pada bab IV.
5. Pengujian
Bab ini menjabarkan hasil pengujian secara whitebox terhadap tiap metode atau fungsi utama yang ada dan memiliki nilai output yang patut
diuji. Whitebox testing menggunakan aplikasi NUnit versi 2.4.3.
6. Kesimpulan dan Saran
Bab ini berisi kesimpulan dan saran. Kesimpulan berisi
penegasan/pembuktian dan pengetahuan baru yang didapat setelah
pembuatan aplikasi ini. Saran berisi hal baru yang dapat digunakan
untuk mengembangkan karya ilmiah ini.
1.6. TIME SCHEDULE
Tabel I.1 Time Schedule
Jan Feb Mar Apr Mei Jun Jul Agt Sep Okt Nov Des Perencanaan
Pencarian bahan Penyuntingan gambar Desain
158
Universitas Kristen Maranatha
BAB VI
KESIMPULAN DAN SARAN
6.1. KESIMPULAN
Kesimpulan yang didapat dari pembuatan aplikasi ini:
1. Arsitektur network pure peer-to-peer dapat dibuat dengan membuat
sebuah komputer berperan sebagai client sekaligus server.
2. Pemanfaatan OwnerDraw serta GDI+ dalam pembuatan game terbukti
dapat memperindah serta memperhalus tampilan game.
3. Teknik pembacaan data dari file teks terbukti dinamis.
6.2. SARAN
Saran untuk mengembangkan game ini:
1. Jaringan permainan dapat diperluas menggunakan internet.
2. Peta permainan dapat diperbanyak dengan menambah fitur memilih peta
dan menyertakan file lokasi seperti locations.txt.
3. Avatar, item, ability dapat ditambahkan di file teksnya masing-masing. Hal
ini membutuhkan sumber gambar tambahan yang sesuai pula.
4. Keseimbangan permainan masih dapat dimodifikasi dengan merubah
xvi
Universitas Kristen Maranatha
DAFTAR PUSTAKA
1. Rammer, Ingo; Advanced .NET Remoting (C# Edition); Apress, 2002.
2. McLean, Scott, James Naftel, dan Kim Williams; Microsoft .NET Remoting;
Microsoft, 2002.
3. Lewis, John R.; Peer To Peer Auto Discovery;
http://aspzone.com/blogs/john/archive/2003/07/07/163.aspx
4. Gorman, Jason; Use-Cases – An Introduction; Parlez UML, 2006
5. Selby, Martha;Algorithm and Flowcharts;
http://www.eng.iastate.edu/efmd/161algor.htm
6. Chand, Mahesh;Color Transformations and the Color Matrix;
http://www.c-sharpcorner.com/UploadFile/mahesh/Transformations0512192005050129AM/T
ransformations05.aspx
7. GiedriusBan; Extending the ListBox to Show More Complex Items;
http://www.codeproject.com/KB/combobox/exListBox.aspx?df=100&forumid=3