• Tidak ada hasil yang ditemukan

DISTRIBUSI DAN SINKRONISASI DATA PADA GAME MMO MALING HUNTER MENGGUNAKAN UNITY3D NETWORK API

N/A
N/A
Protected

Academic year: 2021

Membagikan "DISTRIBUSI DAN SINKRONISASI DATA PADA GAME MMO MALING HUNTER MENGGUNAKAN UNITY3D NETWORK API"

Copied!
6
0
0

Teks penuh

(1)

1

DISTRIBUSI DAN SINKRONISASI DATA PADA GAME MMO

MALING HUNTER MENGGUNAKAN UNITY3D NETWORK API

Iq Reviessay Pulshashi1, Imam Kuswardayan, S.Kom, M.T2 Jurusan Teknik Informatika, Fakultas Teknologi Informasi

Institut Teknologi Sepuluh Nopember, Surabaya Email: iq@aikyucenter.web.id1

ABSTRAK

Salah satu bagian terpenting dari MMORPG adalah distribusi dan sinkronisasi data. Remote Procedure Call (RPC) adalah salah satu teknik dari komunikasi antar proses yang dapat digunakan untuk melakukan distribusi data. RPC adalah teknik untuk memanggil dan mengeksekusi suatu proses pada address space yang berbeda. Unity3D adalah salah satu game engine yang mendukung penggunaan RPC. Tugas akhir ini mengulas bagaimana bentuk distribusi data dan cara sinkronisasi data yang digunakan pada game Maling Hunter. Maling Hunter adalah MMORPG yang dibangun diatas engine Unity3D dan database MySQL untuk penyimpanan datanya. Tugas akhir ini juga mengeksplorasi kemampuan jaringan yang dimiliki Unity3D untuk mendukung skema distribusi dan sinkronisasi data pada game Maling Hunter.

Kata kunci : Game, Massive Multiplayer Online Role Playing Game, MMORPG, Unity3D, RPC, Jaringan, Distribusi Data, Sinkronisasi Data

I. Pendahuluan

Salah satu bagian terpenting dari MMORPG adalah distribusi dan sinkronisasi data yang merupakan jantung dari MMORPG itu sendiri.Bentuk pemrosesan data haruslah dirancang sedemikian rupa sehingga dapat didistribusikan melalui jaringan yang ada secara intensif guna memenuhi kebutuhan sinkronisasi data yang real time pada sisi pemain.

Paper ini mengulas bagaimana bentuk distribusi data dan cara sinkronisasi data yang digunakan pada game Maling Hunter. Maling Hunter adalah berbasis MMO yang dibangun diatas Unity3D dan basis data MySQL untuk penyimpanan datanya. Unity 3D dipilih sebagai engine karena didalamnya telah tertanam fitur-fitur dasar untuk membangun game diantaranya adalah physics engine, collider dan jaringan. Paper ini juga mencoba untuk mengeksplorasi sejauh mungkin kemampuan jaringan yang dimiliki Unity3D untuk mendukung skema distribusi dan sinkronisasi data untuk game Maling Hunter.

Paper ini dibagi menjadi 5 bagian bagian 2-3 membahas konsep jaringan pada Unity3D, tahapan analisis, perancangan dan implementasi skenario distribusi dan sinkronisasi data pada MMORPG Maling

Hunter, bagian 4 adalah ujicoba terhadap kemampuan jaringan, sedangkan bagian terakhir berisi kesimpulan.

II. Konsep jaringan pada Unity3D

Unity3D adalah salah satu game engine yang banyak digunakan untuk membangun game berbasis 3D. Network API adalah salah satu fitur yang dimiliki Unity3D untuk membangun game berbasis multiplayer.

Unity3D memiliki dua metode untuk melakukan sinkronisasi data, yaitu :

1. Remote Procedure Call (RPC)

RPC adalah suatu teknik untuk memanggil subroutine atau prosedur pada remote machine. Terdapat beberapa ketentuan agar RPC dapat dilakukan pada suatu subroutine atau prosedur, yaitu :

- Subroutine atau prosedur harus didefinisikan sebagai RPC dengan cara memberikan tag [RPC] bila bahasa mono digunakan atau @RPC bila bahasa javascript digunakan.

- Remote machine harus memiliki subroutine dengan nama yang sama dan parameter yang sama agar dapat dipanggil secara RPC.

(2)

2 - Script yang memuat subroutine

RPC harus ditempelkan pada game object yang memiliki network view agar dapat dikirimkan. Teknik RPC pada Unity 3D berbeda dengan teknik RPC pada standar IPC (inter-process communication). Suatu subroutine atau prosedur yang dipanggil secara RPC tidak dapat memberikan nilai balik seperti pada standar IPC, hal ini dikarenakan RPC pada Unity 3D akan memanggil semua game object yang memiliki script dengan subroutine atau prosedur yang sama secara deklarasi nama dan parameter. Sehingga bila terdapat kebutuhan untuk mendapatkan nilai balik dari suatu subroutine atau prosedur yang dipanggil secara RPC, maka teknik “doors invocation” dapat digunakan.“Doors invocation” adalah suatu teknik untuk mendapatkan nilai balik dari RPC dengan cara melewatkan nilai balik suatu metode RPC menjadi parameter RPC pada arah yang berlawanan.

2. State Syncronization

State synchronization adalah mekanisme sinkronisasi data yang disediakan oleh Unity 3D yaitu dengan cara melakukan observasi state dari suatu game object dan melakukan sinkronisasi data secara terus menerus dengan network API yang dimilikinya. Beberapa kelas yang dapat diobeservasi oleh Unity 3D yaitu transform, animation, rigidbody dan monobehaviour. Untuk melakukan state synchronization, dua metode dapat dipilih, yaitu unreliable atau reliable delta compressed tergantung pada kebutuhan sinkronisasi data dan perhitungan bandwidth pada komunikasi data.

Unity3D memiliki beberapa elemen jaringan, yaitu :

1. Network View

Adalah komponen yang disediakan oleh Unity3D yang menyediakan mekanisme komunikasi data melalui jaringan. Baik RPC maupun State Synchronization harus dapat menemukan komponen network view dengan id dan scope yang sama pada sisi server dan client.

2. Network Player

Adalah suatu struktur data pada Unity3D Network API yang digunakan untuk identifikasi node pada jaringan.

3. Network Class

Unity 3D melakukan enkapsulasi seluruh network API pada kelas bernama

Network.Beberapa fungsi penting dari kelas ini antara lain : Network.InitializeSecurity, Network.InitializeServer, Network.Connect, Network.Disconnect dan Network.Instantiate. III. Analisis, Perancangan dan

Implementasi

Game Maling Hunter terdiri atas empat modul, dimana masing-masing modul memiliki spesifikasi kebutuhan distribusi dan sinkronisasi data sebagai berikut :

- Modul Gameplay Engine

Gambar III.1 Spesifikasi Kebutuhan Modul Gameplay Engine

- Modul Mission Generator

Gambar III.2 Spesifikasi Kebutuhan Modul Mission Generator

- Modul Battle System

Gambar III.3 Spesifikasi Kebutuhan Modul Battle System

- Modul Networking

o Sinkronisasi animasi karakter pemain dalam dunia Maling Hunter

(3)

3 o Sinkronisasi animasi karakter pemain

dalam arena pertempuran

o Kebutuhan respon interaksi input tanpa adanya bullet time effect dengan waktu respon maksimal dalam persepsi lokal pemain adalah 1 detik.

Arsitektur yang dipakai pada game Maling Hunter adalah single half autoritative server,yaitu server akan menangani seluruh perhitungan dan validasi yang terjadi dalam game kecuali perhitungan langkah pemain AI yang akan dilakukan pada komputer client yang pertama. Hal ini dilakukan karena :

- Client pada Unity3D hanya dapat membentuk satu koneksi dengan server, sehingga arsitektur multiple server tidak memungkinkan untuk diterapkan. - Perhitungan Adaptive AI yang

cukup berat untuk ditangani oleh satu server yang menangani segalanya.

Karena perhitungan AI dilakukan pada sisi client, maka hal ini merupakan celah keamanan pertama yang teridentifikasi pada saat pengembangan game.

Gambar III.4 Arsitektur Game Maling Hunter

Implementasi distribusi data pada game Maling Hunter sepenuhnya menggunakan metode RPC dengan teknik Door Invocation. Sedangkan metode sinkronisasi data yang diterapkan adalah sebagai berikut :

- Reliable

Metode ini diterapkan untuk skenario use case modul Gameplay Engine, Mission

Generator dan Battle System. Dengan metode ini penggunaan bandwidth dapat berkurang secara signifikan karena data hanya dikirimkan pada saat terjadi aksi yang terdapat pada use case masing-masing modul dan bila data dinyatakan invalid secara periodik. Sinkronisasi data secara periodik dilakukan pada data yang berukuran besar namun tidak cukup signifikan bila dilakukan update secara terus menerus. Sinkronisasi data secara periodik dilakukan setiap 60 detik dengan asumsi data pada server merupakan data paling baru. Data yang disinkronisasikan secara periodik meliputi data karakter keseluruhan (inventory, skill), daftar misi yang diproses dan daftar tim penyelesaian misi.

- Unreliable

Metode ini diterapkan untuk melakukan sinkronisasi data secara realtime untuk menghindari bullet time effect yang diakibatkan oleh waktu tunda pengiriman melalui jaringan. Data yang disinkronkan menggunakan metode ini meliputi data lokasi, posisi, rotasi dan animasi karakter pemain. Selain itu, teknik prediksi juga dilakukan pada animasi karakter untuk memperhalus animasi pergerakan karakter.

Gambar III.5 Metode Sinkronisasi Data

IV. Uji Coba

Uji coba terhadap aplikasi ini dilakukan menggunakan komputer dengan spesifikasi berikut :

1. 1 Komputer Server

Tipe : Standalone Spesifikasi :

- Prosesor : Intel Core 2 Duo E7400 2,8 Ghz

- RAM : 2 Gb

(4)

2. 4 Komputer Client

Tipe : Standalone Spesifikasi :

- Prosesor : Intel Core 2 Duo E7400 2,8 Ghz

- RAM : 2 Gb

- LAN : Hingga 100 Mbps Uji coba dibagi menjadi dua bagian, yaitu uji coba fungsional dan uji coba non fungsional. Uji coba fungsionalitas dilakukan untuk melihat apakah fungsi

aplikasi telah berjalan sebagaimana mestinya. Uji coba fungsionalitas meliputi semua kebutuhan fungsional seluruh modul yang ada pada game Maling Hunter. Sedangkan coba non fungsionalitas dilakukan untuk melihat performa dari aplikasi serta ekplorasi kemampuan jaringan dari Unity3D.

Uji coba fungsional terdiri atas pengujian kebenaran implementasi

- Use Case Login Pemain - Use Case Pembuatan Karakter - Use Case Chatting

- Use Case Beli Item (Barang) - Use Case Jual Item (Barang)

- Use Case Menggunakan Item (Barang) - Use Case Melihat Daftar Misi

- Use Case Pengambilan Pembuatan Tim

- Use Case Penyelesaian Misi - Use Case Inisialisasi Pertempuran - Use Case Mulai Pertempuran - Use Case Selesai Pertempuran - Use Case Pertempuran

Sedangkan uji coba non fungsional terdiri atas pengujian terhadap :

- Uji coba metode sinkronisas

Uji coba ini dilakukan untuk menentukan metode mana yang lebih tepat dalam membangun game multiplayer dengan multiple scene.

Gambar IV.1 Hasil Uji Coba Sinkronisasi Data

- Uji coba stabilitas atau performa server 4 : Standalone

: Intel Core 2 Duo

: Hingga 100 Mbps Uji coba dibagi menjadi dua bagian, yaitu uji coba fungsional dan uji coba non Uji coba fungsionalitas dilakukan untuk melihat apakah fungsi-fungsi dasar aplikasi telah berjalan sebagaimana mestinya. itas meliputi semua kebutuhan fungsional seluruh modul yang ada Sedangkan Uji coba non fungsionalitas dilakukan untuk melihat performa dari aplikasi serta ekplorasi kemampuan jaringan dari Unity3D.

Uji coba fungsional terdiri atas implementasi use case : Pembuatan Karakter

Beli Item (Barang) Jual Item (Barang)

Menggunakan Item (Barang) Melihat Daftar Misi

Pengambilan Misi dan Penyelesaian Misi

Inisialisasi Pertempuran Mulai Pertempuran Selesai Pertempuran

Sedangkan uji coba non fungsional Uji coba metode sinkronisasi data Uji coba ini dilakukan untuk menentukan metode mana yang lebih tepat dalam membangun game multiplayer dengan multiple scene.

Hasil Uji Coba Sinkronisasi Data

performa server

Uji coba ini dilakukan dengan tujuan untuk menguji stabilitas server dalam menangani request

akan dikonfigurasikan untuk menangani 12 client yang dibuka secara bersamaan selama satu jam.

Gambar IV.2 Hasil Uji Coba Stabilitas atau Performa Server

- Uji coba reliabilitas

Uji coba waktu respon pada kondisi server high load

menguji reliabilitas

yang cepat dalam kondisi

Server akan dikonfigurasikan untuk menangani 12 clientyang dibuka secara bersamaan dan melakukan

menerus, kemudian client 13 dan 14 dijalankan. Client

flood chatting kepada client14 dan waktu tunda akan dicatat, kemudian client13 dan 14 dijalankan untuk menguji sinkronisasi animasi karakter dan bullet time effect

terjadi.

- Uji coba error handling Uji coba error handling

untuk melihat apakah sistem telah berhasil menangani alur tidak normal pada game yang disebabkan

koneksi pemain terputus

Gambar IV.3 Hasil Uji Coba Error Handling

Hasil uji coba yang didapatkan untuk uji coba fungsional :

- Use Case Login Pemain Dapat diterima

- Use Case Pembuatan Karakter Dapat diterima

- Use Case Chatting

Uji coba ini dilakukan dengan tujuan untuk menguji stabilitas server dalam request dari client, server akan dikonfigurasikan untuk menangani 12 client yang dibuka secara bersamaan

Hasil Uji Coba Stabilitas atau Performa Server

reliabilitas

Uji coba waktu respon pada kondisi high load, dilakukan untuk berupa waktu respon yang cepat dalam kondisi high load. dikonfigurasikan untuk menangani 12 clientyang dibuka secara bersamaan dan melakukan request terus menerus, kemudian client 13 dan 14 13 akan melakukan kepada client14 dan waktu tunda akan dicatat, kemudian 4 dijalankan untuk menguji sinkronisasi animasi karakter bullet time effect yang mungkin Uji coba error handling

error handling digunakan untuk melihat apakah sistem telah berhasil menangani alur tidak normal pada game yang disebabkan karena koneksi pemain terputus.

Hasil Uji Coba Error Handling

Hasil uji coba yang didapatkan untuk in Pemain

(5)

5 Dapat diterima, walaupun terkadang pesan yang dikirim terlambat karena beban server yang tinggi.

- Use Case Beli Item (Barang) Dapat diterima

- Use Case Jual Item (Barang) Dapat diterima

- Use Case Menggunakan Item (Barang) Dapat diterima

- Use Case Melihat Daftar Misi Dapat diterima

- Use Case Pengambilan Misi dan Pembuatan Tim

Dapat diterima

- Use Case Penyelesaian Misi Dapat diterima

- Use Case Inisialisasi Pertempuran Dapat diterima

- Use Case Mulai Pertempuran Dapat diterima

- Use Case Selesai Pertempuran Dapat diterima

- Use Case Pertempuran Dapat diterima

Sedangkan pada uji coba non fungsional, hasil yang didapatkan adalah sebagai berikut :

- Uji coba metode sinkronisasi data Metode sinkronisasi state syncronization memiliki keterbatasan dalam hal multi scene, sehingga metode RPC dipilih untuk memenuhi kondisi multi scene. - Uji coba stabilitas atau performa server

Berdasarkan hasil pengujian stabilitas server, threading yang dimiliki Unity3D cukup handal dalam menangani proses yang cukup besar, dengan catatan tidak terdapat suatu coroutine pada proses diserver yang dapat menghambat jalannya proses threading itu sendiri. - Uji coba reliabilitas

Berdasarkan hasil uji coba reliabilitas server, ketidakmampuan client untuk terkoneksi pada multiple server menghambat pengembang untuk melakukan load balancing dalam arsitekturnya. Pada game Maling Hunter hal ini cukup terasa saat jumlah client mencapai 12, kemampuan respon untuk chatting berkurang, bahkan penulis pernah mendapati waktu terlama untuk mengirimkan satu pesan chatting hingga 10 detik.

- Uji coba error handling

Berdasarkan hasil uji coba, skenario penanganan kesalahan akibat terputusnya hubungan antara client dan server dapat diterima.

V. Kesimpulan

Berdasarkan hasil uji coba yang telah dilakukan dapat disimpulkan:

- Metode sinkronisasi data state syncronization memberikan kinerja yang lebih baik daripada menggunakan RPC, namun masih belum cocok untuk digunakan dalam lingkungan multiscene.

- Pembatasan koneksi client hanya pada satu server saja menyebabkan proses load balancing dengan melakukan distribusi proses tidak dapat dilakukan. - Mode sinkronisasi data unreliable

memberikan hasil yang lebih baik dari pada mode reliable, namun mode sinkronisasi data unreliable membutuhkan resource yang cukup besar sehingga dapat menurunkan performa server.

(6)

6

VI. Daftar Pustaka

[1] ___, ___. Inter-Process Communication. <URL:

http://linuxgazette.net/104/ramankutty. html> Diakses tanggal: 2 Juli 2010 [2] ___,___. Message Passing. <URL:

http://www.hku.hk/cc/sp2/workshop/ht ml/message_passing/message_passing. html> Diakses tanggal: 2 Juli 2010 [3] Unity Support,___. Unity – Network

Refference Guide. <URL:http://unity3d.com/support/doc umentation/Components/Network%20 Reference%20Guide.html>. Diakses tanggal : 30 Juni 2010. [4] ___,___. IPC:Shared Memory. <URL: http://www.cs.cf.ac.uk/Dave/C/node27 .html>. Diakses tanggal : 2 Juli 2010 [5] ___,___. Remote Procedure Call.

<URL:

http://kambing.ui.ac.id/bebas/v06/Kuli ah/SistemOperasi/BUKU/SistemOpera si-4.X-1/ch17s06.html>. Diakses tanggal : 2 Juli 2010

[6] Smed,Jouni. 2005. Realizing Bullet Time Effect in Multiplayer Games with Local Perception Filters. Department of Information Technology, Univercity of Turku. Finland

[7] Hamilton, Graham. 1993. The Spring Nucleus: A Microkernel for Objects. USENIX Association. Barkeley, CA, USA.

[8] Ramtiga,___.Raising a Middleworld to its Golden Age. <URL:

http://www.ramtiga.com>. Diakses tanggal : 2 Juli 2010

[9] Unity3D Forum,___.Multiple Simultaneous Levels. <URL:

http://forum.unity3d.com/viewtopic.ph p?t=28900> . Diakses tanggal : 2 Juli 2010

[10] ___,___. Syncronization. <URL:

http://www2.cs.uregina.ca/~hamilton/c

ourses/330/notes/synchro/synchro.html

> Diakses tanggal : 2 Juli 2010 [11] Roelofs, Gregory Robert. 2002.

Compensating for network latency in a multi-player game. US Patent 6475090. San Jose, CA

[12] Fennell Jr., Temple W. W. 1997. Method of managing multi-player game playing over a network. US Patent 5695400. Charlottesville, VA [13] Chen, Kuan-Ta, Huang, Polly dan Lei,

Chin-Laung.2005. Game Traffic Analysis: An MMORPG

Perspective. Department of Electrical Engineering, National Taiwan

University. Taiwan, ROC [14] Georgia Tech. Introduction to

Programming with Threads. <URL:

http://www.cc.gatech.edu/classes/AY2 005/cs4210_spring/Lectures/16-Doors.ppt>. Diakses tanggal : 2 Juli 2010

[15] ___,___, Data Distribution. <URL:

http://www.mcs.anl.gov/~itf/dbpp/text/ node85.html>. Diakses tanggal 10 Juli 2010

Gambar

Gambar III.1 Spesifikasi Kebutuhan Modul  Gameplay Engine
Gambar IV.2 Hasil Uji Coba Stabilitas atau Performa  Server

Referensi

Dokumen terkait

Ketiga novel itu adalah Pasar (P), Mantra Pejinak Ular (MPU), serta Wasripin dan Satinah (WdS).Novel-novel Kuntowijoyo ini merupakan gambaran bagi orang yang tidak

Adapun Laporan Kinerja Instansi Pemerintah (LKjIP) ini merupakan media pertanggungjawaban yang dibuat secara periodik berisikan informasi mengenai kinerja instansi

Detektiv sme pridobivati informacije neposredno od osebe, na katero se podatki nanašajo, lahko pa tudi od drugih oseb, ki imajo podatke in so jih pripravljeni posredovati

kerja yang dapat dikerjakan di mesin frais CNC; (2) metode pemasangan benda kerja; (3) urutan proses pemesinan pada setiap proses pemesinan; dan (4) alat potong

Pada penelitian ini pengaruh status gizi dan defisiensi seng terhadap durasi diare akut cair pada tiap kelompok tidak dapat dianalisis karena gizi kurang pada tiap

Faktor penghamat dalam implementasi manajemen kesiswaan di madrasah ini ialah dana yang sudah direncanakan oleh pihak madrasah tapi tetap diluar dengan apa yang diharapkan masih

Menimbang : Perlunya mengangkat dan menetapkan TIM JURI Lomba Karya Tulis Kategorial Sekolah Minggu, Remaja/Pemuda dan kaum Bapak Dalam Rangka Perayaan

Lebih jauh lagi, Baitul Hilal Teluk Kemang juga sangat berkontribusi bagi pengembangan ilmu falak dan pelaksanaan ru’yat al-hilāl di Malaysia, antara lain dengan terus