bab iii perancangan server mmog karakter, dan penerapan ai untuk tiap karakter. tiap level pada game...

36
26 BAB III PERANCANGAN SERVER MMOG 3.1 Deskripsi dan Analisis Game Sultan Agung Game Sultan Agung merupakan sebuah game RTS yang mengimplementasikan kisah perang Sultan Agung untuk mempersatukan nusantara dan mengusir VOC dari Batavia. Pada game ini pemain harus menyusun strategi untuk memenangkan perang pada tiap level. Tiap level harus dimenangkan sesuai ketentuan masing-masing level untuk menuju level berikutnya yaitu menguasai daerah lain di nusantara hingga level terakhir untuk menguasai Batavia dan mengusir VOC dari nusantara. A. Interaksi Pengguna Interaksi pengguna pada game Sultan Agung menggunakan keyboard dan mouse sebagai alat kontrol. Keyboard digunakan untuk hal-hal sebagai berikut : memilih menu, mengatur tampilan layar, menampilkan peta, dan dapat digunakan sebagai shortcut untuk fungsi-fungsi dalam game. Mouse digunakan untuk hal-hal sebagai berikut : memilih menu, pemilihan obyek dan karakter, pergerakan karakter, menempatkan obyek, dan mengatur strategi B. Obyek dan Karakter Game Sultan Agung memiliki beberapa obyek dan karakter yang mendukung alur cerita tiap level game. Obyek pada game ini terbagi menjadi 5 (lima) bagian dengan perincian sebagai berikut.

Upload: phunghanh

Post on 28-Apr-2018

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

26

BAB III

PERANCANGAN SERVER MMOG

3.1 Deskripsi dan Analisis Game Sultan Agung

Game Sultan Agung merupakan sebuah game RTS yang mengimplementasikan kisah

perang Sultan Agung untuk mempersatukan nusantara dan mengusir VOC dari

Batavia. Pada game ini pemain harus menyusun strategi untuk memenangkan perang

pada tiap level. Tiap level harus dimenangkan sesuai ketentuan masing-masing level

untuk menuju level berikutnya yaitu menguasai daerah lain di nusantara hingga level

terakhir untuk menguasai Batavia dan mengusir VOC dari nusantara.

A. Interaksi Pengguna

Interaksi pengguna pada game Sultan Agung menggunakan keyboard dan mouse

sebagai alat kontrol. Keyboard digunakan untuk hal-hal sebagai berikut :

memilih menu,

mengatur tampilan layar,

menampilkan peta, dan

dapat digunakan sebagai shortcut untuk fungsi-fungsi dalam game.

Mouse digunakan untuk hal-hal sebagai berikut :

memilih menu,

pemilihan obyek dan karakter,

pergerakan karakter,

menempatkan obyek, dan

mengatur strategi

B. Obyek dan Karakter

Game Sultan Agung memiliki beberapa obyek dan karakter yang mendukung alur

cerita tiap level game. Obyek pada game ini terbagi menjadi 5 (lima) bagian dengan

perincian sebagai berikut.

Page 2: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

27

1. Bangunan terdiri dari keraton, menara bertahan, barak, pandai besi, peternakan,

dan pertanian.

2. Senjata terdiri dari tombak, pedang, panah dan perisai.

3. Kendaraan terdiri dari kuda dan pedati.

4. Lingkungan terdiri dari hutan dan air (laut dan sungai).

5. Sumber daya terdiri dari batu, kayu, emas, dan makanan (peternakan dan

pertanian).

Karakter yang ada pada game ini adalah sebagai berikut :

1. Sultan Agung,

2. Bupati,

3. Prajurit penombak,

4. Prajurit pemanah,

5. Prajurit pedang,

6. Prajurit berkuda, dan

7. Pekerja.

Setiap karakter tersebut mempunyai atribut sebagai berikut.

1 ID, yaitu nomor identitas suatu karakter.

2 Kelas, yaitu kelompok karakter terdiri dari prajurit dan pekerja.

3 Hit point (HP), yaitu nilai yang menyatakan kekuatan karakter.

4 Kecepatan, yaitu nilai untuk kecepatan berlari atau berjalan.

5 Keahlian, yaitu keahlian suatu karakter.

6 Daya hancur, yaitu nilai yang dapat mengurangi HP.

7 Posisi karakter, yaitu posisi karakter pada virtual world.

8 Target posisi, yaitu tujuan pergerakan karakter.

9 Unit reference (UR), yaitu referensi ke unit lain.

C. Level Game

Game ini dimulai dengan sultan Agung yang dinobatkan menjadi raja Mataram,

membangun keraton Mataram, membangun pertanian, pertambangan, dan

peternakan. Level battle pada game ini meliputi pengaturan strategi, perpindahan

Page 3: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

28

karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai

5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan sangat sulit.

Tingkat kesulitan ditentukan berdasarkan jumlah prajurit dan ketersediaan sumber

daya. Pada setiap level terdapat kondisi menang dan kalah dengan ketentuan yang

berbeda pada tiap level.

Pada gameplay terdapat beberapa panel yaitu panel resource, panel karakter, dan

panel bangunan. Berikut ini adalah penjelasan masing-masing panel.

1 Panel resource.

Panel ini menampilkan informasi jumlah resource (sumber daya) yang diperoleh

seperti emas, jumlah batu, jumlah kayu, dan jumlah makanan. Emas dan batu

diperoleh dari hasil pertambangan, kayu diperoleh dari hasil penebangan pohon,

dan makanan dihasilkan dari pertanian dan peternakan. Jumlah masing-masing

resource akan berkurang ketika digunakan untuk membuat bangunan dan

memproduksi prajurit/pekerja. Makananan akan berkurang secara periodik yang

jumlahnya disesuaikan dengan jumlah unit karakter.

2 Panel karakter.

Panel ini menampilkan informasi atribut prajurit atau pekerja yang dipilih oleh

pemain dan menampilkan beberapa command icon (ikon perintah) untuk

pemberian perintah seperti move untuk perpindahan posisi, attack untuk

menyerang, dan stop untuk menghentikan semua perintah. Khusus untuk karakter

pekerja terdapat beberapa command icon tambahan seperti build untuk perintah

membuat bangunan, mine untuk perintah menambang emas dan batu, harvest

wood untuk perintah menebang kayu, dan cancel untuk membatalkan semua

perintah.

3 Panel Bangunan.

Panel ini menampilkan informasi atribut bangunan dan beberapa command icon

sebagai berikut.

Keraton mempunyai command icon worker produce untuk memproduksi

pekerja dan meeting point untuk area berkumpul pekerja.

Page 4: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

29

Barak mempunyai command icon untuk produksi prajurit tombak, prajurit

panah, prajurit pedang, dan prajurit berkuda, dan command icon meeting

point untuk area berkumpul prajurit.

Menara bertahan mempunyai command icon untuk aktifasi penyerangan

otomatis ketika ada musuh yang datang.

Pandai besi mempunyai command icon untuk produksi tombak, pedang,

panah dan perisai.

Peternakan mempunyai command icon untuk produksi sapi dan kuda.

Pertanian mempunyai command icon untuk penanaman dan panen padi.

Gambar 3.1 Panel game Sultan Agung.

D. Detil Level

Level-level yang ada pada game Sultan Agung ini adalah sebagai berikut.

1 Level 1: Invasi Lasem.

Panel resource

Panel karakter

dan bangunan

Informasi unit

Page 5: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

30

Pada level ini menggambarkan perjuangan Sultan Agung untuk menguasai Lasem

yang terjadi tahun 1614.

2 Level 2: Invasi Blambangan.

Pada level ini menggambarkan perjuangan Sultan Agung untuk menguasai

wilayah lain di jawa Timur yaitu Blambangan yang terjadi tahun 1615.

3 Level 3: Invasi Tuban.

Pada level ini mengimplementasikan invasi Mataram untuk memperluas

wilayahnya dengan menundukkan Tuban yang terjadi tahun 1616.

4 Level 4: Invasi Pasuruan.

Pada level ini menggambarkan invasi Mataram ke Pasuruan terjadi pada tahun

1617.

5 Level 5: Pemberontakan Pajang.

Pada level ini menggambarkan perjuangan Sultan Agung dalam penumpasan

pemberontakan Pajang terhadap Mataram terjadi tahun 1617.

6 Level 6: Invasi Madura.

Pada level ini menggambarkan invasi Mataram untuk memperluas wilayahnya

dengan menguasai Madura terjadi tahun 1619.

7 Level 7: Invasi Surabaya.

Pada level ini menggambarkan keinginan Sultan Agung untuk mempersatukan

nusantara di bawah kerajaan Mataram dengan menguasai Surabaya tahun 1624.

8 Level 8: Penyerangan Batavia I.

Pada level ini menggambarkan penyerangan mataram ke Batavia untuk mengusir

VOC dari bumi nusantara melalui jalan laut terjadi tahun 1628.

9 Level 9: Penyerangan Batavia II.

Pada level ini menggambarkan penyerangan terakhir Mataram ke Batavia untuk

mengusir VOC dari bumi nusantara melalui jalan darat terjadi tahun 1629.

Pengguna dapat memenangkan permainan jika kondisi semua bangunan musuh telah

dimusnahkan.

Page 6: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

31

E. Mode Game

Mode game yang akan diterapkan pada game Sultan Agung ini terdiri dari Mode

Legenda yaitu game single user yang dimainkan secara berurutan dari level 1 sampai

level 9 yang bercerita tentang sejarah perjuangan Sultan Agung dalam

mempersatukan nusantara. Mode Pilihan yaitu game single user dengan level yang

dapat dipilih oleh user. Mode Jaringan yaitu mode game multi user yang dimainkan

melalui jaringan LAN. Dalam mode jaringan, yang menjadi musuh adalah user lain

yang ikut bergabung dalam game ini.

F. Efek Visual dan Efek Suara

Pada game ini ditambahkan efek visual dan efek suara agar permainan tampak lebih

nyata dan menarik. Beberapa efek visual yang ditambahkan pada game ini antara

lain :

efek ledakan,

efek bayangan,

efek kabut, dan

efek gelombang air.

Efek suara yang ditambahkan dalam game ini meliputi :

suara pedang,

suara panah,

suara tombak,

derap kuda,

karakter mati, dan

karakter berjalan/berlari.

3.2 Model MMOG

A. Model Jaringan MMOG

Server MMOG yang akan dibuat, dirancang untuk dapat melayani minimal 1000

pengguna dan dapat dimainkan di jaringan lokal (LAN) maupun di jaringan global

(internet), seperti tampak pada Gambar 3.2.

Page 7: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

32

Server

Player 1 Player 2 Player 3 Player n

Gambar 3.2 Model jaringan MMOG.

B. Model Aplikasi MMOG

Model aplikasi MMOG menggambarkan hubungan interaksi pengguna dengan

aplikasi game client dan administrator dengan aplikasi game server, antara game

client dengan game server dihubungkan dengan jaringan seperti tampak pada

Gambar 3.3.

Administrator bertugas untuk mengaktifasi game server, melakukan setting

konfigurasi game dan memonitor jalannya game. Pengguna yang ikut bergabung ke

dalam game MMOG terlebih dahulu harus melakukan lobby koneksi ke game server.

Jika permintaan koneksi diterima, maka game server akan mengirimkan inisialisasi

data ke game client, selanjutnya pengguna dapat ikut bermain game online yang

dapat berinteraksi dengan pengguna lainnya secara real time.

Game server mempunyai peranan penting dalam menangani proses lobby pengguna,

simulasi game dan komunikasi. Data hasil simulasi game server akan dikirim terus

menerus secara periodik ke game client sehingga kondisi pada game client akan

selalu diperbaharui sesuai dengan kondisi game server. Dengan cara seperti ini, maka

pengguna yang memainkan game dapat berinteraksi dengan pengguna lainnya secara

real time.

Page 8: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

33

Gambar 3.3 Model aplikasi MMOG.

Server memiliki tugas untuk menjalankan keseluruhan simulasi yang terjadi pada game.

Sedangkan, client memiliki tugas utama untuk memvisualisasikan permainan sebagai

fasilitas untuk interfacing dengan pengguna.

3.3 Arsitektur Server MMOG

Arsitektur yang akan digunakan pada aplikasi server MMOG ini adalah arsitektur

client-server yaitu semua proses komunikasi terpusat pada satu server. Setiap client

hanya dapat mengirim pesan ke server, server melakukan agregasi keadaan dan

mengirimkan kembali ke semua client. Arsitektur client-server memiliki beberapa

keuntungan antara lain mempercepat proses komunikasi, menghemat bandwidth, dan

konsistensi data yang tinggi. Arsitektur client-server juga sangat memungkinkan

terjadinya delay yang lama akibat banyaknya antrian, terjadinya kemacetan transmisi

Pengguna

Game Client

Game Server Administrator

Page 9: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

34

dan loss data. Sehingga kebanyakan aplikasi MMOG yang menerapkan arsitektur

client-server menggunakan dedicated server dan membutuhkan manajemen server.

Arsitektur seperti tampak pada Gambar 3.4 menunjukan hubungan antara game client

dengan game server melalui komponen network. Game client terdiri dari komponen

user interface, AI, graphics, sound, dan network yang semuanya saling berhubungan

melalui komponen logic engine. Pada game server tidak hanya terdiri dari komponen

network dan logic engine saja, tetapi ditambahkan juga komponen AI. Komponen AI

ditambahkan karena game seringkali menggunakan estimasi logika di dalam game

server untuk menjaga game client dapat disinkronisasikan dengan layak.

Dalam tesis ini tidak semua komponen dibahas, pembahasan yang rinci ditekankan

pada komunikas jaringan antara server dan client.

:User Interface

:Graphics:Audio

:Network

:Artificial Intelligence

Logic Engine

Client

:User Interface

:Graphics:Audio

:Network

:Artificial Intelligence

Logic Engine

Client

:NetworkLogic Engine

:Artificial Intelligence

Server

Gambar 3.4 Arsitektur client-server MMOG[14]

.

Page 10: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

35

3.4 Spesifikasi Kebutuhan

Spesifikasi kebutuhan server MMOG terdiri dari 3 (tiga) kelompok yaitu kebutuhan

jangkauan (scope) dan kompleksitas aplikasi, kebutuhan resource eksternal, dan

kebutuhan fungsional.

A. Scope dan Kompleksitas Aplikasi

Scope aplikasi server MMOG meliputi :

1. aplikasi server MMOG digunakan untuk melayani kebutuhan game RTS supaya

dapat dimainkan oleh banyak pengguna secara bersama-sama di level global

(internet),

2. aplikasi server MMOG dirancang untuk dapat melayani minimal 1000 pengguna

dalam waktu bersamaan,

3. simulasi game dilakukan di server, oleh karena itu aplikasi server MMOG

membutuhkan AI.

B. Kebutuhan Resource Eksternal

Kebutuhan resource eksternal meliputi :

1. antarmuka pengguna, yaitu menggunakan mode teks (console) dimana pengguna

berinteraksi dengan aplikasi server menggunakan keyboard untuk menuliskan

command line,

2. perangkat keras, yaitu dianjurkan menggunakan komputer dedicated server

dengan multi-processor Intel Pentium Xeon 3.0 Ghz, memory 1 GHz, dan

Gigabit ethernet card,

3. sistem operasi, yaitu aplikasi berjalan dilingkungan sistem operasi Windows.

C. Kebutuhan Fungsional

Fungsi-fungsi yang dibutuhkan oleh aplikasi server MMOG adalah sebagai berikut :

1. fungsi untuk melakukan konfigurasi sistem yang terdiri dari inisialisasi network

dan inisialisasi game settings,

2. fungsi untuk mekanisme lobby yang terdiri dari fungsi untuk melakukan joint ke

game server, otorisasi koneksi, dan fungsi untuk loading data,

Page 11: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

36

3. fungsi untuk simulasi game yang terdiri dari simulasi AI, simulasi virtual world,

update network, dan fungsi untuk sinkronisasi,

4. fungsi untuk melakukan komunikasi yang terdiri dari fungsi untuk merespon

pesan yang datang, membentuk daftar pesan jaringan, dan fungsi untuk

mengirimkan pesan.

Kebutuhan fungsi-fungsi tersebut akan diperinci menggunakan diagram use case dan

sequence yang akan dibahas pada sub bab tersendiri.

3.5 Use Case dan Sequence Diagram

A. Use Case Setup Konfigurasi

Gambar 3.5 Use case setup konfigurasi.

Setup konfigurasi berfungsi untuk melakukan inisialisasi awal pada saat game

dijalankan. Fungsi ini terdiri dari proses inisialisasi network dan inisialisasi game

setting yang dilakukan oleh administrator.

Table 3.1 Use case inisialisasi network.

Use Case Name : Inisialisasi network

Player (Actor) Context (Role) : Administrator

Preconditions : Aplikasi server telah dijalankan

Triggers : Administrator menuliskan perintah setIP pada comman line (console).

Main Course of Action :

- Administrator memilih network interface yang akan digunakan untuk komunikasi data dengan

cara menuliskan alamat IP.

- Sistem akan melakukan inisialisasi network dengan membuat socket, binding ke port tertentu

dan registrasi ke alamat multicast group.

Exceptional Courses of Action :

- Inisialisasi network gagal jika alamat IP yang diberikan tidak terdapat pada salah satu network

interface

Inisialisasi network

Administrator

Inisialisasi game setting

Page 12: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

37

Gambar 3.6 Sequence inisialisasi network.

Pada saat game dijalankan, sistem akan membuat instan kelas NetworkManager,

kemudian administrator memberikan alamat IP ke dalam sistem, selanjutnya dibuat

instan kelas NetworkInterface, ServerInterface, dan Socket. Instan kelas

ServerInterface melakukan inisialisasi pada instan kelas Socket yaitu melakukan

pendefinisian alamat IP, melakukan binding soket pada port tertentu, dan melakukan

registrasi pada alamat IP multicast.

Tabel 3.2 dan Gambar 3.7 menjelaskan proses inisialisasi game setting oleh

administrator. Administrator memberikan nama file map dalam format eXtensible

Markup Language (XML), kemudian sistem akan membaca file map tersebut dan

menyimpannya pada kelas GameSettings. Kemudian instan kelas Program akan

: Administrator : NetworkManager : NetworkInterface : ServerInterface : Socket : Ip

&getInstance( )

init()

init( )

setAddress()

bind()

joinMulticastGroup()

setSourceIP(string)

*getSocket( )

*getSocket( )

*getServerInterface( )

Ip(string)

getIp( )

create

create

create

Page 13: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

38

membuat instan kelas Game dengan parameter yang ada pada instan kelas

GameSettings.

Tabel 3.2 Use case inisialisasi game.

Use Case Name : Inisialisasi game setting

Requirements Explored :

Player (Actor) Context (Role) : Administrator

Preconditions : Aplikasi server telah dijalankan

Triggers : Administrator menuliskan perintah start diikuti dengan nama file map

Main Course of Action :

- Administrator melakukan inisialisasi game setting pada saat server akan

diaktifkan dengan cara menuliskan nama file map setelah perintah start. File

map tersebut menggunakan format dokumen XML yang menyimpan

parameter-parameter game setting yaitu description, mapPath, tilesetPath,

techPath, dan factionTypeName.

- Sistem akan melakukan pembacaan game setting sebelum server diaktifkan.

Alternate Courses of Action :

Exceptional Courses of Action :

- Program akan dihentikan jika file map yang dimasukan tidak ditemukan

Gambar 3.7 Sequence inisialisasi game.

: Administrator : Program : GameSettings : Game

init( )

map file name

loadScenarioInfo(string, ScenarioInfo)

loadGameSettings(ScenarioInfo, GameSettings)

create

create

setState(ProgramState)

Page 14: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

39

B. Use Case Lobby

Gambar 3.8 Use case lobby.

Lobby berfungsi sebagai jembatan yang menghubungkan pertama kali antara

pengguna dengan game server. Berhasil tidaknya pengguna bergabung ke dalam

game tergantung berhasil tidaknya proses lobby antara kedua belah pihak.

Fungsi lobby mempunyai 3 (tiga) proses utama yaitu proses joint game, connection

authorization, dan loading data. Pertama kali pengguna melakukan proses joint

game untuk meminta koneksi ke game server, kemudian server memberikan otorisasi

koneksi. Ketika proses koneksi dengan server berhasil, maka server mengirimkan

game settings, selanjutnya game client melakukan loading data sesuai dengan

parameter-parameter yang ada pada game settings. Pada saat loading data selesai

maka pengguna sudah dapat bergabung ke dalam game.

Tabel 3.3 Use case input IP server.

Use Case Name : Input IP server

Requirements Explored :

Player (Actor) Context (Role) : Pengguna

Preconditions : Pengguna telah memilih menu joint pada game client

Triggers :

Main Course of Action :

Pengguna menuliskan alamat IP server sebagai tujuan pengiriman data.

Alternate Courses of Action :

- Pengguna dapat memilih tombol back untuk kembali ke menu utama.

- Pengguna dapat memilih tombol connected untuk menghubungkan dengan

server.

Exceptional Courses of Action :

Connection Authorization

Input IP Server

Pengguna

Join Game

Loading Data Receive Game Settings<<include>>

<<extend>>

<<extend>>

Page 15: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

40

Tabel 3.4 Use case joint game.

Use Case Name : Joint game

Requirements Explored :

Player (Actor) Context (Role) : Pengguna

Preconditions : Pengguna telah memilih menu joint pada game client

Triggers :

Proses joint game akan diikuti oleh proses connection authorization untuk memverifikasi pengguna

dan loading data pada saat otorisasi diterima oleh server.

Main Course of Action :

Pengguna memilih tombol connect untuk melakukan hubungan dengan server.

Alternate Courses of Action :

Pengguna dapat memilih tombol back untuk kembali ke menu utama.

Exceptional Courses of Action :

Jika dalam 10 detik tidak ada respon dari server, maka koneksi ke server gagal.

Tabel 3.5 Use case connection authorization.

Use Case Name : Connection authorization

Requirements Explored :

Player (Actor) Context (Role) : Pengguna

Preconditions : Pengguna telah menekan tombol connect pada game client

Triggers :

Main Course of Action :

- Pengguna mengirim message identitas pengguna ke server.

- Jika ada respon, maka pengguna akan menunggu paket game settings dari server.

Alternate Courses of Action :

Exceptional Courses of Action :

Jika dalam 10 detik tidak ada respon dari server, maka koneksi ke server gagal.

Tabel 3.6 Use case loading data.

Use Case Name : Loading data

Requirements Explored :

Player (Actor) Context (Role) : Pengguna

Preconditions : Paket game settings telah diterima oleh pengguna

Triggers :

Main Course of Action :

Membaca data-data yang dibutuhkan game sesuai dengan game settings yang diterima pengguna

kemudian menyimpannya dalam struktur data.

Alternate Courses of Action :

Exceptional Courses of Action :

Loading data gagal jika data-data yang dibutuhkan game tidak ditemukan atau tidak sesuai dengan

game settings

Page 16: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

41

Gambar 3.9 Sequence lobby.

Tabel 3.7 Use case receive game settings.

Use Case Name : Receive game settings

Requirements Explored :

Player (Actor) Context (Role) : Pengguna

Preconditions : Jika otorisasi diterima oleh server

Triggers :

Main Course of Action :

Pengguna menerima game settings yang dikirim server, kemudian data-data yang

ada pada game settings dijadikan sebagai parameter untuk proses loading data.

Alternate Courses of Action :

Exceptional Courses of Action :

Jika penerimaan game settings gagal, maka proses loading data tidak dilakukan.

: Pengguna : MenuStateJoinGame : ClientInterface : ServerInterface : Game

IP server

mouseClick( )

init( )

connect(Ip, int)

waitForConnection( )

sendMessage(nmtIntro)

sendMessage(nmtLaunch)

create

load( )

isConnect( )

connect=true

connect=false

game settings

game settings

authorization

Page 17: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

42

C. Use Case Simulasi

Gambar 3.10 Use case simulasi game.

Simulasi berfungsi sebagai game lojik yaitu proses berulang yang memperbaharui

status game secara terus-menerus selama berlangsungnya game. Proses simulasi pada

server meliputi :

update AI, untuk memperbaharui AI sesuai dengan AI rule pada saat itu,

update world, untuk memperbaharui unit dan resource,

update network, untuk memperbaharui network message yang digunakan sebagai

parameter untuk update simulasi game, dan

update system ticked, yaitu fungsi untuk melakukan sinkronisasi game server dan

game client yang terdiri dari dari 3 (tiga) proses system ticked yaitu tick AI, tick

world, dan tick network seperti terlihat pada Gambar 3.11.

Gambar 3.11. Use case system ticked.

AI Rule

Give Network Command

Update AI

Update World

Update Network

Update System Ticked

Game(from game)

<<extend>>

<<include>>

Update Unit

Update Resource

<<include>>

<<include>>

Tick AI

Tick World

Tick Network

SystemTicked

Tick Game System

<<include>>

<<include>>

<<include>>

Page 18: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

43

Tabel 3.8 Use case update AI.

Use Case Name : Update AI

Requirements Explored :

Player (Actor) Context (Role) : Sistem

Preconditions :

Simulasi game sedang berlangsung dan sistem menerima perintah unit dari client.

Triggers : Sistem akan melakukan update data pada unit

Main Course of Action :

- Sistem akan melakukan pembaharuan perintah pada unit sesuai dengan perintah yang diterima

dari client.

- AI rule akan di set pada unit sesuai dengan perintah yang diberikan yaitu move, stop, attack,

patrol, unit construct building, dan harvest.

Alternate Courses of Action :

Exceptional Courses of Action :

Tabel 3.9 Use case update world.

Use Case Name : Update world

Requirements Explored :

Player (Actor) Context (Role) : Sistem

Preconditions :

Simulasi game sedang berlangsung dan terjadi perubahan game state.

Triggers : Sistem akan melakukan pembaharuan pada unit dan resources

Main Course of Action :

Sistem akan melakukan komputasi pada unit dan resources sesuai dengan AI rule masing-masing

unit.

Alternate Courses of Action :

Exceptional Courses of Action :

Tabel 3.10 Use case update network.

Use Case Name : Update network

Requirements Explored :

Player (Actor) Context (Role) : Sistem

Preconditions :

Simulasi game sedang berlangsung dan sistem menerima perintah unit dari client.

Triggers : Sistem akan melakukan update AI dan update world

Main Course of Action :

- Sistem menerima message command dari client.

- Sistem melakukan filter message command.

- Sistem menampung message command ke dalam nework command list.

- Sistem memproses message command dan memberikannya ke unit-unit yang bersangkutan.

- Sistem melakukan pengiriman kembali semua message command yang ada pada network

command list ke semua client dengan cara multicast.

- Sistem menghapus semua message command yang telah dikirimkan ke client.

Alternate Courses of Action :

Exceptional Courses of Action :

Jika message yang diterima bukan termasuk paket dalam network message atau message berisi -1

atau null, maka message tersebut akan diabaikan oleh sistem.

Page 19: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

44

Tabel 3.11 Use case update system ticked.

Use Case Name : Update sistem ticked

Requirements Explored :

Player (Actor) Context (Role) : Sistem

Preconditions :

Simulasi game sedang berlangsung.

Triggers :

Sistem akan melakukan sinkronisasi pada proses update AI, update world, dan update network

Main Course of Action :

- Simulasi game di set sebanyak 40 fps (frame per second).

- Jumlah update tick untuk pengulangan simulasi dilakukan dengan cara mengambil frekuensi

clock komputer dibagi dengan 40. Set clock terakhir dengan clock sekarang. Set jumlah

simulasi dengan 0.

- Sistem melakukan simulasi apabila clock sekarang dikurangi clock terakhir sama dengan

jumlah update tick, kemudian nilai jumlah simulasi ditambah dengan 1.

- Simulasi terus berulang sampai jumlah simulasi bernilai 40, kemudian jumlah simulasi di set

dengan 0 untuk proses simulasi pada detik berikutnya.

- Update tick AI dan world sama seperti di atas.

- Khusus untuk update tick network tergantung dari administrator berapa kali update network

untuk setiap detiknya, jika administrator menginginkan 4 kali update network setiap detiknya

atau setiap 250 ms (milli second), maka periode update network dilakukan setiap 10 frame.

Alternate Courses of Action :

Exceptional Courses of Action :

Gambar 3.12 Sequence simulasi game.

: Program : Game AI World Network Ticked System

load( )

init( )

tick( )

update( )

update( )

update( )

update( )

isRun( )=false

timer system

loop( )

end( )

Page 20: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

45

D. Use Case Komunikasi

Komunikasi berfungsi sebagai media penghubung interaksi game client dengan game

server. Ada dua proses utama pada fungsi komunikasi yaitu message process yang

terdiri dari proses send message dan receive message dan proses build network

command yaitu membuat kumpulan network command yang diterima untuk diproses

oleh unit-unit yang bersangkutan dan diperbaharui pada saat proses simulasi,

kemudian kumpulan network command tersebut dikirim kembali secara multicast ke

semua game client.

Gambar 3.13 Use case komunikasi.

Fungsi send command pada game client seperti tampak pada Gambar 3.13 dilakukan

oleh pengguna dengan terlebih dahulu memilih obyek kemudian memberikan

perintah kepada unit berupa menghentikan pergerakan unit, membuat bangunan,

mengumpulkan resource, perpindahan ke lokasi unit, menyerang, atau patroli,

kemudian perintah tersebut dikirim ke server. Game server akan menerima pesan

yang dikirim client, membentuk network command, melakukan update ke unit-unit

Move to location

Gather resources

Patrol location

Attack unit

Unit contruct building

Stop movement

Select objectPengguna

Give unit an order

Manipulate resources

Send command

<<include>>

<<extend>>

<<include>>

<<extend>>

<<extend>>

<<include>>

<<include>>

<<include>>

<<include>>

<<extend>>

<<include>>

<<include>>

<<include>><<include>>

<<extend>>

<<include>>

<<extend>>

Page 21: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

46

yang bersangkutan, dan mengirimkan network command secara multicast ke semua

game client seperti tampak pada Gambar 3.14 dan Gambar 3.15.

Gambar 3.14 Use case build network command.

Gambar 3.15 Sequence komunikasi client-server.

Receive commands

ServerInterface(from network_interface)

Send network command

Build network command Give network command

<<include>>

: Pengguna : Commander : ClientInterface : ServerInterface

command order

tryGiveCommand( )

pushNetworkCommand( )

getCommand( )

sendCommands( )

addCommand()

buildCommand( )

*getCommand(int)

giveNetworkCommand( )

sendCommand()

update( )

update( )

giveNetworkCommand( )

getCommand( )

Page 22: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

47

Tabel 3.12 Use case receive commands.

Use Case Name : Receive commands

Requirements Explored :

Player (Actor) Context (Role) : Server interface

Preconditions :

Pengguna telah mengirimkan message command.

Triggers :

Main Course of Action :

- Server interface akan selalu mendengarkan pesan yang datang.

- Jika ada pesan dari client, maka server akan melakukan filter message, jika pesan valid maka

pesan tersebut akan dimasukan ke network command list.

Alternate Courses of Action :

Exceptional Courses of Action :

Jika message yang diterima bukan termasuk paket dalam network message atau message berisi -1

atau null, maka message tersebut akan diabaikan oleh sistem.

Tabel 3.13 Use case build network command.

Use Case Name : Build network command

Requirements Explored :

Player (Actor) Context (Role) : Server interface

Preconditions :

Setelah server menerima message commands

Triggers : Sistem akan memberikan semua perintah ke unit-unit yang bersangkutan

Main Course of Action :

- Sistem mengambil message command yang ada di network command list, kemudian message

tersebut di buat perintah unit (unit command).

- Setiap message command yang telah diubah menjadi unit command langsung diberikan ke unit

yang bersangkutan.

Alternate Courses of Action :

Exceptional Courses of Action :

Tabel 3.14 Use case send network command.

Use Case Name : Send network command

Requirements Explored :

Player (Actor) Context (Role) : Server interface

Preconditions :

Setelah server memberikan semua message command ke semua client.

Triggers :

Main Course of Action :

Sistem mengirim semua message command yang ada di network command list ke semua client

dengan cara multicast.

Alternate Courses of Action :

Exceptional Courses of Action :

Page 23: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

48

3.6 Spesifikasi Perancangan

3.6.1 Perancangan Protokol Komunikasi

A. UDP

Transfer data yang diterapkan pada aplikasi server MMOG ini menggunakan

protokol UDP dengan alasan sebagai berikut.

Aplikasi server MMOG ini membutuhkan kinerja tinggi.

Server yang akan dibuat, dirancang untuk melayani client dengan jumlah

minimal 1000 client.

Paket yang dipertukarkan pada aplikasi MMOG ini berukuran kecil.

Pada aplikasi MMOG ini urutan dan kehilangan paket tidak terlalu berpengaruh

pada proses simulasi game, karena server MMOG ini dirancang untuk selalu

mengirimkan game state setiap 250 ms (setiap ¼ detik).

B. Komunikasi Data

Lalu-lintas komunikasi yang dirancang pada aplikasi MMOG ini menggunakan

unicast (peer-to-peer) dan multicast (one-to-many). Semua pengiriman paket data

dari client ke server menggunakan komunikasi unicast, sedangkan pengiriman paket

secara unicast dari server ke client hanya terjadi pada saat proses lobby. Komunikasi

multicast hanya digunakan oleh server yaitu pada saat pengiriman paket game state

ke semua client.

Pada Gambar 3.16 setiap client mengirim data ke server secara unicast, jika asumsi

terdapat 1000 client maka jumlah paket yang diterima server adalah sebanyak 1000

paket. Sedangkan server hanya mengirim paket satu kali secara multicast, sehingga

jika terdapat 1000 client yang telah teregistrasi ke alamat IP multicast group, masing-

masing client tersebut akan menerima paket yang sama. Pengiriman paket data

secara multicast tersebut akan menghemat pemakaian bandwidth.

Page 24: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

49

Server

Client

Client

ClientMulticast Group

Gambar 3.16 Komunikasi data unicast dan multicast.

C. Tipe Pesan Jaringan

Semua komunikasi data yang dirancang antara game server dan game client

diidentifikasi dengan tipe pesan jaringan (network message type) sebagai berikut.

1. nmtInvalid, yaitu tipe pesan kosong atau pesan yang tidak termasuk dalam daftar

pesan pada aplikasi ini, pesan tersebut akan diabaikan oleh sistem.

2. nmtConnect, yaitu tipe pesan yang digunakan untuk ping sebelum membuat

koneksi dengan server pada saat proses lobby.

3. nmtIntro, yaitu tipe pesan yang dikirim client pada saat koneksi dengan server

berhasil.

4. nmtLaunch, yaitu tipe pesan yang dikirim server setelah menerima pesan

nmtIntro, dalam tipe pesan ini akan dikirim juga game settings ke client.

5. nmtReady, yaitu tipe pesan yang dikirim client setelah menerima pesan

nmtLaunch, sebagai tanda client siap menerima semua game state yang ada di

server.

6. nmtFactionList, yaitu tipe pesan yang dikirim server berikut semua game state

client yang ada di server.

7. nmtReqNewFaction, yaitu tipe pesan yang dikirim client untuk meminta faksi

baru (game state untuk pemain baru).

Komunikasi

unicast

Komunikasi

multicast

Page 25: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

50

8. nmtNewFaction, yaitu tipe pesan yang berisi faksi baru yang dikirim ke client

setelah mengirim pesan nmtReqNewFaction.

9. nmtCommandList, yaitu kumpulan pesan perintah unit yang diterima dan dikirim

oleh server/client.

10. nmtQuitFaction, yaitu tipe pesan yang dikirim client ketika memutuskan

hubungan dengan server (keluar dari game).

11. nmtQuit, yaitu tipe pesan yang dikirim server ke semua client pada saat server

keluar dari game.

Tipe pesan jaringan tersebut merupakan bagian dari data pesan jaringan bertipe

integer dengan panjang data 1 byte dan diletakan pada byte pertama data pesan

jaringan.

Tipe perintah jaringan pada unit diidentifikasi dengan network command type bertipe

integer yang panjangnya 2 byte. Berikut ini adalah network command type.

1. nctGiveCommand, yaitu tipe perintah untuk diberikan langsung kepada unit.

2. nctCancelCommamd, yaitu tipe perintah untuk membatalkan semua perintah

pada unit.

3. nctSetMeetingPoint, yaitu tipe perintah untuk menentukan posisi area bertemu

pada unit.

Tipe perintah pada unit (command type id) diidentifikasi dengan nomor berikut.

1. stop, perintah untuk menghentikan pergerakan.

2. move, perintah untuk memindahkan unit ke posisi tertentu.

3. attack, perintah untuk menyerang musuh.

4. attack stopped, perintah untuk menghentikan serangan.

5. build, perintah untuk membuat bangunan.

6. harvest, perintah untuk mengumpulkan resource.

7. repair, perintah untuk memperbaiki bangunan yang rusak.

8. produce, perintah untuk memproduksi unit.

Page 26: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

51

3.6.2 Perancangan Proses

A. Lobby

Proses lobby dimulai dengan client melakukan ping ke server, jika dalam rentang

waktu tertentu (pada aplikasi ini rencana timeout adalah 10 detik) tidak ada respon

dari server maka proses lobby gagal. Jika ada jawaban dari server berupa pesan

nmtConnect, maka server sedang running dan client akan mengirimkan pesan

nmtIntro. Jika server menerima pesan nmtIntro, maka server akan mengirimkan

game settings ke client, selanjutnya ketika server menerima pesan nmtReady, maka

server akan mengirimkan semua game state ke client. Berikut ini adalah gambar

proses komunikasi lobby.

nmtConnect

Time out

nmtIntro

nmtLaunch

Game settings

nmtReady

nmtFactionList

All game state

nmtConnect

nmtReqNewFaction

nmtNewFaction

New game state

Client Server

Gambar 3.17 Proses lobby.

B. Pemutusan Koneksi

Setiap kali client ingin memutuskan koneksi dengan server, maka client tersebut

akan mengirimkan pesan nmtQuitFaction ke server yang berisi nomor indeks client,

server akan menghapus game state client dengan nomor indeks tersebut, selanjutnya

Page 27: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

52

mengirimkan kembali pesan nmtQuitFaction tersebut ke seluruh client. Jika client

menerima pesan nmtQuitFaction dengan nomor indeks yang sama dengan nomor

indeks client, maka client langsung keluar dari game, sebaliknya jika nomor indeks

pada pesan nmtQuitFaction tidak sama dengan nomor indeks client, maka client

hanya akan menghapus game state client dengan nomor indeks tersebut.

Jika pemutusan koneksi dilakukan oleh server, maka server akan mengirim pesan

nmtQuit ke seluruh client, sehingga semua client akan keluar dari game.

C. Perintah Unit Jaringan (Network Unit Command)

Pengguna dapat memberikan perintah terhadap satu atau beberapa unit (maksimal 16

unit) sekaligus. Setiap perintah terdiri dari nomor indeks unit, tipe perintah, posisi

unit, tipe unit, dan target unit. Tipe perintah yang ada dalam game ini terdiri dari :

stop, perintah untuk menghentikan pergerakan,

move, perintah untuk memindahkan unit ke posisi tertentu,

attack, perintah untuk menyerang musuh,

attack stopped, perintah untuk menghentikan serangan,

build, perintah untuk membuat bangunan,

harvest, perintah untuk mengumpulkan resource,

repair, perintah untuk memperbaiki bangunan yang rusak, dan

produce, perintah untuk memproduksi unit.

Jika pengguna memberikan perintah untuk beberapa unit sekaligus, maka setiap

perintah tersebut akan dimasukan ke dalam buffer network command list, selanjutnya

client mengirim pesan nmtCommandList yang berisi perintah-perintah unit ke

server. Perintah-perintah yang diterima server akan diberikan ke masing-masing unit

yang bersangkutan. Selanjutnya pesan nmtCommandList tersebut di kirim ke semua

client secara multicast dalam periode tertentu (pada aplikasi ini perintah unit dikirim

setiap 250 ms). Perintah-perintah yang berhasil dikirim oleh server selanjutnya

dihapus dari buffer network command list. Berikut ini adalah gambar proses

penerimaan perintah unit jaringan pada server.

Page 28: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

53

Gambar 3.18 Proses perintah unit jaringan.

D. Sinkronisasi

Sinkronisasi bertujuan untuk memelihara konsistensi sistem antara server dengan

client sebagai akibat adanya perbedaan kualitas komunikasi data pada setiap client

sehingga latency yang dihasilkan juga berbeda-beda untuk setiap client. Teknik

sinkronisasi yang akan diterapkan pada aplikasi server ini adalah bucket synchronize.

Bucket synchronize adalah teknik sinkronisasi yang intinya adalah menyetarakan

latency antara server dengan client dengan cara membagi masing-masing frekuensi

clock sistem dengan jumlah fps (frame per second) simulasi.

MMORTS dengan jumlah pengguna banyak (ratusan hingga ribuan pengguna),

menggunakan latency berkisar antara 250 – 500 ms (milli second). Latency < 250 ms

memungkinkan terjadi overhead yang menyebabkan banyaknya antrian dalam

network. Latency > 500 ms akan menyebabkan delay yang lama yang

memungkinkan terjadinya loss data.

Pada aplikasi server MMOG ini simulasi yang dirancang berulang setiap 40 fps atau

dalam setiap detik terjadi 40 kali simulasi. Update komunikasi network yang

diterapkan pada game ini adalah setiap 250 ms atau setiap detik terjadi 4 kali update

network sehingga periode update network dilakukan setiap 10 frame. Karena clock

komputer client berbeda-beda, maka dilakukan sinkronisasi sebagai berikut.

Server mendengarkan

perintah unit yang datang

Menerima perintah unit

memasukan perintah unit ke

buffer

memberikan setiap perintah ke unit

yang bersangkutan

Mengirim kembali semua perintah

yang ada di buffer ke semua client

Menghapus semua perintah yang ada

di buffer

Page 29: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

54

1. Cari nilai update tick untuk iterasi simulasi dengan cara membagi nilai frekuensi

clock sistem dengan jumlah fps simulasi yaitu 40, set nilai last tick (clock

terakhir) dengan this tick (clock saat ini), dan inisialisasi nilai frame dengan 0.

2. Untuk setiap detik lakukan looping simulasi dengan pengecekan clock dengan

latency (update tick) yang dihasilkan, jika this tick – last tick >= update tick,

maka :

tambahkan nilai frame dengan 1,

tambahkan nilai last tick dengan update tick, dan

jika nilai frame adalah kelipatan 10, maka lakukan update network.

3. Setiap nilai frame berjumlah 40, maka set nilai frame dengan 0 untuk simulasi

detik berikutnya.

Dengan teknik sinkronisasi di atas, maka akan mendapatkan keselarasan latency

antara server dengan client sehingga komunikasi yang terjadi akan terasa real time.

E. Dead Reckoning

Dead reckoning bertujuan untuk menyelaraskan pergerakan unit antara server

dengan client sebagai akibat adanya perbedaan latency network yang dihasilkan

masing-masing client dan adanya kehilangan informasi dalam periode frame tertentu

di client, karena tidak setiap informasi frame dikirim oleh server. Hal tersebut dapat

menyebabkan perbedaan waktu pergerakan antara server dengan client.

Dead reckoning digunakan untuk memprediksikan pergerakan unit ke posisi

berikutnya tanpa dipengaruhi oleh kualitas network sehingga diharapkan pergerakan

unit akan berjalan mulus dan menyamai pergerakan unit di server.

Pada aplikasi ini server hanya mengirim informasi posisi unit setiap 250 ms,

sehingga akan ada informasi yang hilang setiap 250 ms yang menyebabkan

pergerakan unit di client tidak smooth (patah-patah). Untuk mengatasi hal ini di

client menerapkan teknik dead reckoning dengan parameter yang diterima client

berupa posisi awal unit dan posisi tujuan unit, selanjutnya prediksi berikutnya

dilakukan oleh AI dengan menggunakan algortima path finding yaitu A* (A star).

Penerapan dead reckoning pada aplikasi server MMOG ini adalah sebagai berikut.

Page 30: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

55

Ketika pengguna memberikan perintah tertentu pada unit, sistem akan

mengirimkan perintah tersebut ke server.

Jika dalam waktu tertentu (pada game ini menggunakan 2000 ms) tidak ada

respon dari server karena ada masalah komunikasi jaringan, maka game client

akan menjalankan perintah tersebut dengan bantuan fungsi dead reckoning pada

unit tersebut, sehingga proses simulasi di client berjalan dengan normal. Hal ini

akan menyebabkan perbedaan posisi unit di server dengan di client.

Ketika komunikasi terjalin kembali antara server dengan client, maka server akan

menyesuaikan posisi unit dengan posisi unit di client.

Dengan teknik seperti di atas pergerakan unit di client akan smooth walaupun sangat

dimungkinkan terjadinya ketidakkonsistenan antara server dengan client, tetapi hal

tersebut tidak terlalu berpengaruh karena update posisi setiap 250 ms atau setiap ¼

detik.

3.6.3 Perancangan Tipe Data

Tipe data yang dirancang secara lengkap dapat dilihat pada tabel-tabel tipe data

berikut ini.

Tabel 3.15 Tipe data NetworkCommand.

No Datagram Tipe Data Panjang

(byte) Keterangan

1 networkCommandType int16 2 Jenis perintah jaringan

2 unitId int16 2 Nomor identitas unit

3 commandTypeId int16 2 Nomor identitas perintah

4 positionX int16 2 Posisi horizontal unit

5 positionY int16 2 Posisi ke dalaman unit

6 unitTypeId int16 2 Nomor identitas tipe unit

7 targetId int16 2 Nomor identitas target unit

Total panjang data 14

Page 31: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

56

Tabel 3.16 Tipe data NetworkResource.

No Datagram Tipe Data Panjang

(byte) Keterangan

1 amount int16 2 Jumlah resource yang dikumpulkan

2 posX int16 2 Posisi X resource

3 posY int16 2 Posisi Y resource

4 balance int16 2 Jumlah ketersedian resource

Total panjang data 8

Tabel 3.17 Tipe data NetworkUnit.

No Datagram Tipe

Data

Panjang

(byte) Keterangan

1 unitId int16 2 Nomor identitas unit

2 unitTypeId int16 2 Nomor identitas tipe unit

3 posX int16 2 Posisi X unit

4 posY int16 2 Posisi Y unit

5 Hp int16 2 Jumlah hit point

6 commandTypeId int16 2 Nomor identitas tipe perintah

7 commandPosX int16 2 Perintah ke posisi X

8 commandPosY int16 2 Perintah ke posisi Y

9 commandUnitTypeId int16 2 Nomor identitas tipe unit

10 commandTargetId int16 2 Perintah ke target unit

Total panjang data 20

Tabel 3.18 Tipe data NetworkFaction.

No Datagram Tipe Data Panjang

(byte) Keterangan

1 index int8 1 Nomor index pemain

2 teamIndex int8 1 Nomor indek team

3 startLocationIndex int8 1 Nomor index lokasi

pemain

4 resourceCount int8 1 Jumlah resource pemain

5 unitCount int16 2 Jumlah unit pemain

6 resources NetworkResource[5] 40 Detil resource yang

tersedia

7 storeResources NetworkResource[5] 40 Detil resource yang

dikumpulkan

8 units NetworkUnit[80] 1600 Detil unit pemain

Total panjang data 1686

Page 32: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

57

Tabel 3.19 Tipe data pesan jaringan

No Tipe Pesan Jaringan Datagram Tipe Data Total

(byte)

1 nmtInvalid - - 1

2 nmtIntro ip char[15]

80 name char[64]

3 nmtConnect - - 1

4 nmtLaunch

description char[256]

1281

mapPath char[256]

tilesetPath char[256]

techPath char[256]

factionTypeName char[256]

5 nmtReady - - 1

6 nmtFactionList

factionCount int8

6748 restFactionCount int16

factions NetworkFaction[4]

7 nmtReqNewFaction - - 1

8 nmtNewFaction

factionIndex int8

6 teamIndex int8

locationIndex int8

startUnitId int16

9 nmtCommandList commandCount int8

898 commands NetworkCommand[64]

10 nmtQuitFaction factionIndex int16 3

11 nmtQuit - - 1

3.6.4 Perancangan Class Diagram

Class diagram yang dibuat pada sub bab ini dibatasi hanya untuk game server,

sedangkan untuk game client dapat dilihat pada dokumen game Sultan Agung,

penerbit LSKK STEI-ITB tahun 2008[11]

.

Page 33: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

58

A. Program Utama

Gambar 3.19 Class diagram program utama.

B. Simulasi Game

Gambar 3.20 Class diagram simulasi game.

Page 34: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

59

C. Network Manager

Gambar 3.21 Class diagram network manager.

D. Network Interface

Gambar 3.22 Class diagram network interface.

Page 35: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

60

E. Network Message

Gambar 3.23 Class diagram network message.

Page 36: BAB III PERANCANGAN SERVER MMOG karakter, dan penerapan AI untuk tiap karakter. Tiap level pada game ini mempunyai 5 tingkat kesulitan yaitu sangat mudah, mudah, normal, sulit dan

61

F. Socket

Gambar 3.24 Class diagram socket.

3.6.5 Perancangan Antarmuka Pengguna

Perancangan antarmuka pengguna untuk aplikasi server MMOG ini adalah

menggunakan perintah tertulis (command language) dengan alasan untuk

meningkatkan kinerja sistem. Interaksi antara pengguna dengan sistem dilakukan

dengan cara menuliskan baris perintah pada console. Di bawah ini adalah rancangan

menu untuk antarmuka pengguna :

1. maps, menu untuk melihat daftar map,

2. info, menu untuk melihat statistik semua pemain,

3. lang, menu untuk melihat dan mengaktifkan bahasa,

4. setIP, menu untuk memilih network interface yang akan digunakan,

5. start, menu untuk mengaktifkan server,

6. stop, menu untuk menghentikan server,

7. add, menu untuk menambahkan dummy pemain pada server,

8. units, menu untuk menampilkan informasi semua unit,

9. help, menu untuk menampilkan menu-menu yang ada di server,

10. quit, menu untuk keluar dari aplikasi server.