PERANCANGAN DAN IMPLEMENTASI SERVER MMOG PADA GAME REAL TIME STRATEGY (Studi Kasus: Game Sultan Agung)
TESIS Karya tulis sebagai salah satu syarat untuk memperoleh gelar Magister dari Institut Teknologi Bandung
Oleh
Mohamad Arief Hidayat NIM : 23206316 Program Studi Teknik Elektro
SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT TEKNOLOGI BANDUNG 2008
PERANCANGAN DAN IMPLEMENTASI SERVER MMOG PADA GAME REAL TIME STRATEGY (Studi Kasus: Game Sultan Agung)
Oleh
Mohamad Arief Hidayat
Bandung, Juli 2008
Menyetujui
Pembimbing I,
Dr. Ir. Arry Akhmad Arman
Pembimbing II,
Dr. Ary Setijadi Prihatmanto
ABSTRAK PERANCANGAN DAN IMPLEMENTASI SERVER MMOG PADA GAME REAL TIME STRATEGY (Studi Kasus: Game Sultan Agung) Oleh
Mohamad Arief Hidayat NIM : 23206319 PROGRAM STUDI TEKNIK ELEKTRO Aplikasi interaktif online dalam bentuk game merupakan layanan hiburan digital yang digemari oleh berbagai kalangan masyarakat. Perkembangan teknologi game pada berbagai aspek dan tersedianya fasilitas infrastruktur internet menyebabkan banyak para penyedia layanan internet menyediakan konten-konten yang interaktif dan real time. Salah satunya aplikasi interaktif yang akan mendominasi ke depan adalah massively multiplayer online game (MMOG), bukan saja hanya untuk layanan hiburan, tetapi aplikasi MMOG sudah menjadi bagian bisnis online yang menguntungkan. MMOG adalah sebuah tipe game multiplayer yang dimainkan di tingkat global (internet) yang dapat diakses oleh banyak pengguna secara masal dan real time. Oleh karena itu, MMOG membutuhkan satu atau beberapa server untuk melayani banyak pengguna. Tujuan dari tesis ini adalah untuk merancang dan mengimplementasikan aplikasi server MMOG pada game real time strategy (RTS). Tahapan yang dilakukan dalam penyusunan tesis ini diawali dengan studi literatur MMOG, jaringan komputer, dan penerapan artificial intelligence (AI) pada game komputer. Kemudian dilanjutkan dengan analisis sistem, desain server MMOG menggunakan arsitektur client-server, implementasi serta pengujian sistem. Hasil utama dari tesis ini adalah terbentuknya sebuah aplikasi server MMOG yang mampu melayani minimal 1000 pengguna pada saat yang bersamaan. Sehingga antara penguna yang memainkan game RTS dapat saling berkomunikasi melalui server MMOG. Dengan menerapkan aplikasi server MMOG diharapkan game RTS dapat dimainkan oleh banyak pengguna secara masal dan real time melalui media internet. Sehingga game RTS yang dimainkan secara online dapat dijadikan alternatif untuk hiburan i
digital. Selain itu aplikasi yang dibuat ini dapat dikembangkan menjadi bisnis online yang menguntungkan.
Kata kunci : server, massively multiplayer online game, real time strategy.
ii
ABSTRACT DESIGNING AND IMPLEMENTATION OF MMOG SERVER ON REAL TIME STRATEGY GAME (Case Study: Sultan Agung Game) By
Mohamad Arief Hidayat NIM : 23206319 ELECTRICAL ENGINEERING STUDY PROGRAM Interactive online application in the form of game represents a digital entertainment service that popular by various of society circles. Development of game technology on various of aspects and existence of facilities of internet infrastructure are causing many of internet service providers are providing the interactive and real time contents. One of its the interactive application which will dominate to the future is the massively multiplayer online game (MMOG), just not only for entertainment service, but MMOG application has become a part of profitable online business. MMOG is a type of multiplayer game which is played at global level or internet which accessible by many users with massive and real time. Therefore, MMOG needs one or several servers to give services to many users. The purpose of this thesis is to design and implement the application of MMOG server on real time strategy (RTS) game. Step performed within arranging this thesis began with literature study of MMOG, computer network, and applying artificial intelligence (AI) on computer game. Then next steps are analysis of system, MMOG server designing using client-server architecture, implementation and test system. The main result of this thesis is a MMOG server application that can serve 1000 users or more at the same moment. So, between users which are playing the RTS game can communicate each other via MMOG server. By applying the application of MMOG server, it is expected that it will be playable for many users with massive and real time through the internet media. So, RTS game that played with online can be alternative for digital entertainment. Meanwhile, the created application can developed to appoint profitable online business.
Keywords : server, massively multiplayer online game, real time strategy. iii
PEDOMAN PENGGUNAAN TESIS
Tesis S2 yang tidak dipublikasikan, terdaftar dan tersedia di Perpustakaan Institut Teknologi Bandung, dan terbuka untuk umum dengan ketentuan bahwa hak cipta ada pada pengarang. Referensi kepustakaan diperkenankan dicatat, tetapi pengutipan atau peringkasan hanya dapat dilakukan seizin pengarang dan harus disertai dengan kebiasaan ilmiah untuk menyebutkan sumbernya. Memperbanyak atau menerbitkan sebagian atau seluruh tesis haruslah seizin Direktur Program Pasca Sarjana, Institut Teknologi Bandung. Perpustakaan yang meminjam tesis ini untuk keperluan anggotanya harus mengisi nama dan tanda tangan peminjam dan tanggal pinjam.
iv
KATA PENGANTAR Puji syukur penulis panjatkan ke hadirat Allah SWT, yang atas rahmat, karunia dan ijin-Nya sehingga penulis dapat menyelesaikan tesis ini. Juga atas setiap petunjuk yang telah diberikan-Nya ketika penulis menghadapi berbagai masalah selama proses pembuatan tesis ini. Selama melaksanakan tesis ini, penulis mendapat bantuan dan dukungan dari berbagai pihak. Untuk itu, penulis ingin mengucapkan terima kasih kepada: 1. Bapak Dr. Ir. Arry Akhmad Arman, selaku pembimbing I yang telah memberikan bimbingan, arahan, dan saran kepada penulis dalam melaksanakan tesis ini; 2. Bapak Dr. Ary Setijadi Prihatmanto, selaku pembimbing II yang telah memberikan bimbingan dalam penyelesaian tesis ini; 3. Ibu Dr. Ir. Aciek Ida W.D., MT yang telah memberikan bantuan dan arahan dalam penulisan tesis ini;
4. Seluruh keluarga yang senantiasa memberikan semangat dan do’a kepada penulis; 5. Isteri dan anakku tercinta atas dukungannya selama pengerjaan tesis ini; 6. Seluruh dosen Program Studi Teknik Elektro yang telah memberikan banyak sekali bantuannya; 7. Seluruh staf karyawan Tata Usaha dan Laboratorium yang telah memberikan banyak sekali bantuannya; 8. Seluruh teman-teman seangkatan Magister Teknik Elektro, yang selalu memberi semangat dan dorongan untuk menyelesaikan tesis ini; 9. Bapak Kepala LPMP Jawa Barat dengan ketulusan hatinya memotivasi penulis menyelesaikan kuliah ini; 10. Teman-teman LPMP Jawa Barat dengan ketulusan hatinya memotivasi penulis menyelesaikan kuliah ini; 11. Semua pihak lain yang membantu, yang tidak dapat penulis sebutkan satu persatu.
v
Penulis menyadari bahwa tesis ini bukanlah tanpa kelemahan, untuk itu kritik dan saran sangat diharapkan. Akhir kata, semoga tesis ini dapat bermanfaat bagi para pembacanya.
Bandung, Juli 2008 Penulis
vi
DAFTAR ISI
Halaman ABSTRAK .................................................................................................................... i ABSTRACT ................................................................................................................ iii PEDOMAN PENGGUNAAN TESIS ........................................................................ iv KATA PENGANTAR ................................................................................................. v DAFTAR ISI .............................................................................................................. vii DAFTAR GAMBAR ................................................................................................... x DAFTAR TABEL ...................................................................................................... xii DAFTAR SINGKATAN .......................................................................................... xiii BAB I. PENDAHULUAN ........................................................................................... 1 1.1
Latar Belakang .......................................................................................... 1
1.2
Identifikasi Masalah .................................................................................. 2
1.3
Tujuan dan Manfaat .................................................................................. 3
1.4
Batasan Masalah........................................................................................ 3
1.5
Metodologi Penelitian ............................................................................... 4
1.6
Sistematika Penulisan................................................................................ 6
BAB II. TINJAUAN PUSTAKA ................................................................................ 7 2.1
MMOG ...................................................................................................... 7
2.1.1 Arsitektur MMOG..................................................................................... 7 2.1.2 Karakteristik MMOG ................................................................................ 9 2.2
Jaringan Komputer .................................................................................... 9
2.2.1 Model Open Systems Interconnection (OSI)........................................... 10 2.2.2 Alamat IP ................................................................................................ 11 2.2.3 UDP ......................................................................................................... 13 2.2.4 Antarmuka Soket (Socket Interface) ....................................................... 15 2.3
AI pada Game Komputer ........................................................................ 18
2.3.1 Rule-based AI.......................................................................................... 18 vii
Halaman 2.3.2 Algoritma A* Pathfinding....................................................................... 20 2.4
UML ........................................................................................................ 22
2.4.1 Use Case Diagram .................................................................................. 22 2.4.2 Class Diagram ........................................................................................ 23 2.4.3 Sequence Diagram .................................................................................. 25 BAB III. PERANCANGAN SERVER MMOG ......................................................... 26 3.1
Deskripsi dan Analisis Game Sultan Agung ........................................... 26
3.2
Model MMOG ........................................................................................ 31
3.3
Arsitektur Server MMOG ....................................................................... 33
3.4
Spesifikasi Kebutuhan ............................................................................. 35
3.5
Use Case dan Sequence Diagram ........................................................... 36
3.6
Spesifikasi Perancangan .......................................................................... 48
3.6.1 Perancangan Protokol Komunikasi ......................................................... 48 3.6.2 Perancangan Proses ................................................................................. 51 3.6.3 Perancangan Tipe Data ........................................................................... 55 3.6.4 Perancangan Class Diagram ................................................................... 57 3.6.5 Perancangan Antarmuka Pengguna......................................................... 61 BAB IV. IMPLEMENTASI DAN PENGUJIAN SERVER MMOG......................... 62 4.1
Implementasi Server MMOG.................................................................. 62
4.1.1 Aktifitas Server MMOG ......................................................................... 64 4.1.2 Penggunaan Pustaka ................................................................................ 65 4.2
Pengujian Server MMOG ....................................................................... 66
4.2.1 Aspek-aspek Pengujian ........................................................................... 66 4.2.2 Skenario Pengujian.................................................................................. 66 4.2.3 Hasil Pengujian ....................................................................................... 69 4.3
Analisis.................................................................................................... 69
4.3.1 Analisis Bandwidth ................................................................................. 69 4.3.2 Analisis server MMOG ........................................................................... 70 viii
Halaman BAB V. KESIMPULAN DAN SARAN ................................................................... 73 5.1
Kesimpulan ............................................................................................. 73
5.2
Saran-saran .............................................................................................. 73
DAFTAR PUSTAKA ................................................................................................ 75
ix
DAFTAR GAMBAR Halaman Gambar 1.1
Bagan alur sistematika penelitian………………….…………
5
Gambar 2.1
Arsitektur peer-to-peer…………………………….…………
8
Gambar 2.2
Arsitektur client-server…………………………….…………
8
Gambar 2.3
Arsitektur distributed-server……………………….………...
9
Gambar 2.4
Prinsip kerja model OSI……………………………………..
11
Gambar 2.5
Format alamat IP…………………………………………….
12
Gambar 2.6
Netid dan hostid……………………………………………...
12
Gambar 2.7
Format paket UDP…………………………………………...
14
Gambar 2.8
Format pseudo-header (IP header)…………………………..
15
Gambar 2.9
Proses encapsulation dan decapsulation paket UDP………..
15
Gambar 2.10
Tipe-tipe socket………………………………………………
16
Gambar 2.11
Iterasi komunikasi client-server menggunakan protokol UDP
18
Gambar 2.12
Contoh tech tree pada game RTS…………………………….
19
Gambar 2.13
Contoh A* pathfinding pada sebuah peta…………………….
21
Gambar 2.14
Contoh use case diagram…………………………………….
23
Gambar 2.15
Contoh class diagram…………………………………….…..
24
Gambar 2.16
Contoh sequence diagram…………………………………....
25
Gambar 3.1
Panel game Sultan Agung……………………………………
29
Gambar 3.2
Model jaringan MMOG………………………..……………..
32
Gambar 3.3
Model Aplikasi MMOG…………………..………………………
33
Gambar 3.4
Arsitektur client-server MMOG……………………………...
34
Gambar 3.5
Use case setup konfigurasi….………………………………...
36
Gambar 3.6
Sequence inisialisasi network…………………………….…...
37
Gambar 3.7
Sequence inisialisasi game…………………………………….
38
Gambar 3.8
Use case lobby…………………………………………………
39
Gambar 3.9
Sequence lobby………………………………………………...
41
Gambar 3.10
Use case simulasi game…………………………………..…...
42
x
Halaman Gambar 3.11
Use case system ticked………………………………………..
42
Gambar 3.12
Sequence simulasi game……………………………….……..
44
Gambar 3.13
Use case komunikasi………………………………………….
45
Gambar 3.14
Use case build network command………………………..…..
46
Gambar 3.15
Sequence komunikasi client-server………………………..….
46
Gambar 3.16
Komunikasi data unicast dan multicast………………………....
49
Gambar 3.17
Proses lobby………………………………………………………
51
Gambar 3.18
Proses perintah unit jaringan…………………………….……
53
Gambar 3.19
Class diagram program utama………………………..………
58
Gambar 3.20
Class diagram simulasi game………………………….……..
58
Gambar 3.21
Class diagram network manager……………………….…….
59
Gambar 3.22
Class diagram network interface……………………….…….
59
Gambar 3.23
Class diagram network message……………………….…….
60
Gambar 3.24
Class diagram socket…………………………………….…...
61
Gambar 4.1
Antarmuka game server……………………...……………..…
62
Gambar 4.2
Antarmuka game client…………………………….…………
63
Gambar 4.3
Aktifitas main program…………………………….…………
64
Gambar 4.4
Aktifitas simulasi game…………………………….………...
64
Gambar 4.5
Aktifitas update network……………………….……………..
65
Gambar 4.6
Bandwidth meter pengiriman seluruh game state….…………
69
Gambar 4.7
Bandwith meter pengiriman command…………….…………
70
xi
DAFTAR TABEL Halaman Tabel 2.1
Perhitungan nilai F, G, H pada setiap titik…………………….
21
Tabel 2.2
Daftar titik yang ditandai pada setiap iterasi………………….
22
Tabel 3.1
Use case inisialisasi network ……………………...……..……
36
Tabel 3.2
Use case inisialisasi game……………………………………..
38
Tabel 3.3
Use case input IP server…………………………..…………...
39
Tabel 3.4
Use case joint game…………………………….……………...
40
Tabel 3.5
Use case connection authorization…………..………………...
40
Tabel 3.6
Use case loading data………………………………………….
40
Tabel 3.7
Use case receive game settings………………………………...
41
Tabel 3.8
Use case update AI…………………………………………….
43
Tabel 3.9
Use case update world…………………………………………
43
Tabel 3.10
Use case update network………………………………………
43
Tabel 3.11
Use case update system ticked…………………………………
44
Tabel 3.12
Use case receive commands…………………………………...
47
Tabel 3.13
Use case build network command……………………………..
47
Tabel 3.14
Use case send network command…………….………………..
47
Tabel 3.15
Tipe data NetworkCommand…………………………………..
55
Tabel 3.16
Tipe data NetworkResource……………………………………
56
Tabel 3.17
Tipe data NetworkUnit…………………………………………
56
Tabel 3.18
Tipe data NetworkFaction……………………………………..
56
Tabel 3.19
Tipe data pesan jaringan……………………………………….
57
Tabel 4.1
Pengujian koneksi……………………………………………...
66
Tabel 4.2
Pengujian penambahan pemain………………………………..
67
Tabel 4.3
Pengujian pemutusan hubungan……………………………….
67
Tabel 4.4
Pengujian simulasi game………………………………………
68
Tabel 4.5
Pengujian fungsi dead reckoning………………………………
68
xii
DAFTAR SINGKATAN
Singkatan
Nama
Pemakaian pertama kali pada halaman
AI
Artificial Intelligence……………………………………….....
1
GPU
Graphics Processor Unit………………………………………
1
RPG
Role Playing Game……………………………………………
1
MMOG
Massively Multiplayer Online Game………………………….
1
MUD
Multi User Dungeon…………………………………………..
2
RTS
Real Time Strategy………………………………..…………....
2
UML
Unified Modeling Language………………………….……….
3
UDP
User Datagram Protocol…………………………...............….
3
OSI
Open Systems Interconnection...................................................
10
IP
Internet Protocol………………………………………………
11
TCP
Transmission Control Protocol………………………………..
13
ICMP
Internet Control Message Protocol……………………………
16
OSPF
Open Shortest Path First………………………………………
16
OOAD
Object Oriented Analysis and Design…………………………
22
HP
Hit Point……………………………………………………….
27
UR
Unit Reference…………………………………………...…….
27
XML
eXtensible Markup Language............................................................
37
xiii