SEMINAR TUGAS AKHIR PERIODE JANUARI 2010
1 Arimas Artadi – 5104 100 062
DESIGN AND IMPLEMENTATION OF FLEX-RANGE LINEAR MOTION
BATTLE SYSTEM ON MULTIPLAYER FIGHTING GAME
Arimas Artadi, Ir. Suhadi Lili
Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi
Sepuluh Nopember
Abstrak - Perkembangan fighting game akhir-akhir ini, tidak banyak mengalami perubahan gaya
permainan. Pada era permainan multiplayer, fighting game belum benar-benar mengadopsi permainan
multiplayer. Permainan dengan banyak pemain cenderung membuat permainan menjadi sederhana.
Flex-Linear-Motion Battle System (F-LMBS) merupakan sebuah sistem pertarungan yang
diterapkan oleh Bandai Tales Studio pada role playing game (RPG). F-LMBS memungkinkan pemain
untuk mengendalikan karakter secara linear terhadap satu lawan, sementara tidak membatasi gerakan
karakter pada lingkungan tiga dimensi.
Dengan menerapkan F-LMBS pada fighting game, memungkin-kan permainan untuk dilakukan
dengan banyak pemain. Karena pada F-LMBS karakter dapat digerakkan secara linear, eksekusi kombo
dan special dapat dilakukan dengan memasukkan kombinasi input.
Kata Kunci: XNA, Game, Flex-Linear-Motion Battle System.
1. Pendahuluan
Fighting game merupakan salah satu jenis game
yang memiliki jumlah penggemar terbesar. Tujuan utama dari game ini adalah mengalahkan lawan yang dikendalikan oleh pemain lain atapun AI.
Seiring dengan perkembangan teknologi, banyak terdapat perubahan pada genre fighting game. Perubahan menonjol yang terjadi pada genre fighting game adalah pada controller mapping sehingga pengendalian karakter menjadi lebih mudah. Dengan controller mapping yang baru pemain dapat melakukan eksekusi jurus-jurus dengan lebih mudah dan lebih tepat.
Disamping perubahan pada controller mapping, fighting game berkembang menjadi lebih nyata dengan mengimplementasikan grafis tiga dimensi serta rugdoll untuk mensimulasikan efek dari setiap serangan ke tubuh karakter. Dengan adanya perkembangan ini perkembangan selanjutnya dari fighting game terfokus pada perkembangan grafik dan perkembangan physics engine untuk menghasilkan sebuah game yang lebih menarik untuk dilihat serta lebih nyata.
Dengan fokus pengembangan seperti pada penjelasan di atas, sistem permainan pada fighting game tidak banyak mengalami perubahan. Permainan
dilakukan pada satu mesin, dan hanya dapat dimainkan oleh satu sampai dua pemain. Untuk mengisi kekurangan ini beberapa produsen fighting game membuat terobosan dengan fighting game yang dapat dimainkan secara multiplayer.
Tetapi secara umum multiplayer fighting game memiliki batasan pada kompleksitas gerakan atau pada sudut pandang kamera.
Makalah ini terdiri dari beberapa bab, yang dijelaskan sebagai berikut:
BAB I. PENDAHULUAN
Bab ini berisi latar belakang masalah, tujuan dan manfaat pembuatan tugas akhir, permasalahan, batasan masalah, metodologi yang digunakan, dan sistematika penyusunan tugas akhir.
BAB II. TINJAUAN PUSTAKA
Bab ini membahas beberapa teori penunjang yang berhubungan dengan pokok pembahasan dan mendasari pembuatan tugas akhir ini.
BAB III. DESAIN DAN IMPLEMENTASI
Bab ini membahas desain dari sistem yang akan dibuat meliputi: desain database, arsitektur, proses, antarmuka perangkat lunak, dan implementasi dari de
SEM sain siste BAB Bab ini m dengan m dan evalu BAB Bab yang dil aplikasi s 2. Flex F-R pertarung dari satu Fitur sistem p umumny mempert Kebebasa kombinas bagaiman Gambar d G Pada kiri, kara lawan ya MINAR TUGA em yang dilaku B IV. UJI CO membahas uji melihat outpu uasi untuk me B V. PENUTU ini berisi ke lakukan serta selanjutnya.. x-Range Linea LMBS di gan pemain d lawan secara r yang membu pertarungan a adalah ke tahankan k an gerak in si input pada na F-R LMB di bawah Gambar Gera a saat pemain akter bergera ang sedang m AS AKHIR PE
ukan pada tah
OBA DAN EV i coba dari ap ut yang dihasil engetahui kem UP esimpulan da a saran untu ar Motion Ba ibangun aga dapat bertarun real time. uat F-R LMB pada fightin emampuan F-kebebasan g ni tidak me fighting gam BS bekerja d akan linear p n menekan to ak mundur da menjadi foku ERIODE JAN hap desain. VALUASI plikasi yang di lkan oleh apli mampuan aplik
ari hasil uji uk pengemban attle System ar pada seb ng melawan l BS berbeda den ng games -R LMBS u gerak kara ngurangi ele me. Untuk ilus dapat dilihat pada F-LMBS ombol kanan an maju terh usnya. Sedang NUARI 2010
2 ibuat ikasi, kasi. coba ngan buah lebih ngan pada untuk akter. emen strasi pada S dan hadap gkan tombol atas d khusus jika lainnya. Gamb Ketika t dapat bergera atas. Geraka menjadi focu Ga Pemain karakternya, Jika jumlah memilih lawa 3. Fighting Pada fig dimainkan da diberikan sam yang sedang diberikan. A dieksekusi m sebelumnya s 4. Framew XNA G pengembang memudahkan Microsoft Wi memperluas Ari dan bawah ti tidak dikom bar Gerakan tombol free r ak dengan beb an ini relatif te us serangan. ambar Mengg dapat men seperti yang t lawan lebih an mana yang g Game ghting game apat berubah-ma. Hal inidilakukan ole Animasi yang melainkan m selesai terlebih work XNA 2.0 Game Studio terintegrasi n pembuatan indows dan Xb tool-tool Mic imas Artadi – dak menghas mbinasikan de
free run pad
run ditekan m bas, seperti pa erhadap lawan ganti fokus se ngganti focu terlihat pada dari satu, p akan dia sera
, gerakan k -ubah walaupu bergantung p eh karakter pa dilakukan ti menunggu a h dahulu. 0 o merupakan yang diran n game ba box360. XNA crosoft Visual 5104 100 062 silkan gerakan engan tombol da F-LMBS maka karakter ada gambar di n yang sedang erangan us serangan gambar 2.7.3 pemain dapat ang. karakter yang un input yang pada gerakan ada saat input dak langsung animasi yang n lingkungan ncang untuk agi platform A Game Studio Studio untuk 2 n l r i g n . t g g n t g g n k m o k
SEMINAR TUGAS AKHIR PERIODE JANUARI 2010
3 Arimas Artadi – 5104 100 062 mendukung XNA Framework, sebuah library berisi
kelas-kelas kode teratur yang fungsinya dikhususkan untuk tujuan pengembangan game. Sebagai tambahan, XNA Game Studio mengikutsertakan tool-tool untuk menggabungkan grafis dan audio content ke dalam game.
XNA Framework dirancang untuk serupa dengan .NET Framework dalam hal pola-pola rancang dan idiom. Dengan XNA Game Studio, pengembang game mampu menggunakan fungsi-fungsi baik dari XNA Framework maupun .NET Framework pada game mereka. Gunakan XNA Framework untuk hal-hal yang bersifat game seperti me-render grafis dan menangani input, lalu gunakan .NET Framework untuk hal-hal yang lebih bersifat general programming.
5. Deskripsi Perangkat Lunak Secara Umum
Sebagaimana telah diuraikan sebelumnya, pada tugas akhir ini akan dibangun sebuah perangkat lunak fighting game yang memiliki fitur multiplayer. Multiplayer pada perangkat lunak ini menggunakan LAN. Pada fighting game ini pemain memberikan kombinasi input untuk menghasilkan sebuah jurus special.
Perangkat lunak ini memiliki beberapa interface untuk berinteraksi dengan pemain. Sehingga pemain dapat memilih karakter yang akan digunakan serta area tempat pertarungan.
Dalam perangkat lunak ini pemain dapat memilih untuk membuat ruangan permainan atau bergabung ke dalam ruang yang telah diciptakan oleh pemain lain.
6. Perancangan dan Arsitektur Aplikasi
Perangkat lunak ini dibangun menggunakan framework XNA 2.0 dan didukung dengan bahasa shader HLSL. Untuk menangani network pada perangkat lunak ini digunakan modul Games for Windows – Lives. Dengan menggunakan modul tersebut perangkat lunak dapat menampung sebanyak maksimum 32 pemain, tetapi untuk perangkat lunak ini jumlah pemain dibatasi sampai maksimum 4 pemain. Topologi yang digunakan pada sistem networking pada game ini adalah client server, seperti yang terlihat pada Gambar 3.1.1.
Gambar Client Server Topologi
Aplikasi ini memiliki usecase sebagai berikut: 1. Membuat sesi permainan online
2. Bergabung pada sesi permainan 3. Memulai sesi permainan 4. Memainkan permainan 5. Merubah setting permainan
Aplikasi dibagi menjadi beberapa package yang masing-masing package seperti yang tergambarkan dalam Gambar di bawah.
Masing-masing package dalam aplikasi ini berfungsi sebagai berikut:
cmp Component Diagram GameBaseComponents + Component + DrawableComponent + Components + Entities
(from Class Model)
GameData + ActionMode + Art + ArtType + CharacterAction + CharacterActionManager + CharacterSkills + CharacterSpecialArts + CharacterStats + ModelAnimationData + Skill + SkillActionSquence + SkillT ype + ContentPipeline + SkillSystem
(from Class Model)
GameMenu + BaseMenuItem + IconicMenuItem + MenuItem + MenuItemSelection + MenuItemState + MenuManager + IMenuControler + ListT able
(from Class Model)
InputManager + Directions + InputManager + KeyboardInput + MouseInput + IInputHelper + InputHandlers
(from Class Model)
IndependentRhythm + IndependentRythm + Program + GameScreen + GameScreenManager + Network
(from Class Model)
«use» «use» «use» «use» «use» «use» «use» «use»
SEMINAR TUGAS AKHIR PERIODE JANUARI 2010
4 Arimas Artadi – 5104 100 062 - GameBaseComponent package ini berfungsi
untuk mensimulasikan komponen-komponen yang terdapat dalam aplikasi. - GameData, package ini berfungsi untuk
menampung dan merepresentasikan data yang dibutuhkan dalam aplikasi.
- InputManager, package ini berfungsi untuk menerjemahkan input dan memberikan input pada fokus aplikasi.
- GameMenu, package ini berfungsi untuk merepresentasikan dan menggambarkan menu pada layar aplikasi.
- IndependentRythm, package ini merupakan package yang mengatur package-package lain yang ada dalam aplikasi ini.
6.1 desain dan implementasi GameData
Pada sebuah fighting game, gerakan karakter harus dapat dipasang-pasangkan dengan gerakan-gerakan lain yang sesuai. Dengan cara seperti ini, kombinasi serangan yang dapat dilakukan oleh karakter dapat ditingkatkan. Agar sebuah gerakan dapat dipasangkan, terdapat beberapa atribut yang harus ada pada kelas yang menyimpan data animasi. Antara lain:
- Id animasi. - Akhir animasi. - Animasi syarat.
Implementasi dari kelas animasi adalah sebagai berikut.
private float baseArtDamage; private float movementSpeed; private float mpConsume;
private int
numberOfanimationSequence; private int priority; private String requiredArt; private String processingClass; private String collisionId; private ArtType artType;
privateModelAnimationData animationData;
Sedangkan tiga atribut pada penjelasan di atas terdapat dalam kelas animationData.
6.2 Desain dan implementasi GameComponent Untuk mendukung pergerakan kamera yang dapat berganti posisi dengan dinamis, pada kelas kamera terdapat behavior. Atribut ini menentukan
apakah fungsi yang digunakan untuk merubah posisi dari sebuah kamera.
Teknik perhitungan posisi kamera yang dilakukan adalah seperti berikut.
Menentukan apakah fungsi yang digunakan dirubah atau tidak.
Menentukan jarak dan vector antara dua karakter. Menentukan titik tengah dari dua karakter
Menentukan letak kamera terhadap titik tengah vector antara dua karakter
6.3 Desain dan implementasi Network
Pada sebuah game yang memiliki fitur network, sinkronisasi gerakan, posisi dan rotasi yang dilakukan oleh karakter yang sedang dimainkan harus dijaga. Setiap kali dilakukan update, maka data mengenai gerakan, posisi dan rotasi harus dikirimkan dan dilakukan sinkronisasi. Jika cara ini dilakukan, data yang harus dikirim perdetiknya akan menjadi besar, karena dalam satu detik dapat terjadi beberapa kali update data.
Untuk mengurangi jumlah data yang harus dikirim dan disinkronisasi, pengiriman data dilakukan ketika karakter mendapatkan input baru, atau ketika sudah terjadi update sebanyak beberapa kali.
Lakukan update pada input dan karakter
Jika karakter mendapatkan input baru yang berbeda dengan input sebelumnya.
Kirimkan data baru ke server Kembalikan counter ke nol Jika tidak
Tambahkan nilai counter dengan satu Jika counter telah mencapai nilai tertentu
Kirimkan data baru ke server Kembalikan counter ke nol
7. Uji Coba User Interface
Uji coba ini dilakukan untuk melihat apakah fungsi-fungsi dasar dari menu yang ada pada perangkat lunak ini berjalan sebagaimana mestinya atau tidak. Hasil uji coba ditunjukkan dengan gambar-gambar Graphical User Interface.
SEM
Uji coba
‐ Uj ‐ Uj ‐ Uj Hasi Gambar d 8. Uji Cujicoba
karakter
sepenuh
keyboar
karakter
MINAR TUGAa ini meliputi
ji coba menu a ji coba menu p ji coba lobi pe il dari uji cobdibawah. Coba Permai
Pada bagia
yang dilak
r dalam per
hnya dikenda
rd
. Kendali
r adalah seba
Tombol
Up
merupakan
mengendalik
sesuai tombo
Tombol
R1
run
yang m
tombol
Up
d
Tombol
A
:
dasar.
Tombol
B
:
kritikal,
s
damage
ting
Tombol
X
bertahan.
AS AKHIR PEi:
awal permaina pemilihan ser ermainan. a ini, seperti inanan ini akan
kukan dalam
rmainan. G
alikan denga
yang dapat
agai berikut:
p, Down,
tombol
kan karakte
ol yang ditek
1
: Merupak
merubah fung
dan
Down
.
Merupakan
Merupakan t
serangan
y
ggi tetapi ger
: Merupaka
ERIODE JAN an rver yang terlihatn dibahas h
m menggerak
erakan kara
an mengguna
dilakukan p
Right, Le
arah un
r untuk be
kan.
kan tombol
gsi gerakan p
tombol seran
tombol seran
yang mem
rakan lambat
an tombol un
NUARI 2010 5 padahasil
kkan
akter
akan
pada
ft
:
ntuk
erlari
free
pada
ngan
ngan
miliki
.
ntuk
Contoh n yang diberika Dow mak kem Tom telah A – mak kem deng Uji coba pemain dapa permainan in Percobaa sebagai berik A-A kom A-A mela Hasil d kombinasi se 9. Kesimpu Dari ha implementasi yang dilaku sebagai berik Ari notasi input y an pemain ada wn – A – A, kna, pemain mudian menek mbol A ditek h dilepas. – A + Down, kna, pemain mudian menek gan tombol Do a dilakukan at melakukan ni. an dilakukan kut: A-A, sehingg mbo pertama A-Down+A, akukan kombo dari percobaa perti pada Ga ulan asil pengama i, dan proses ukan, penulis kut: imas Artadi – ang digunaka alah sebagai b notasi input menekan to kan tombol kan ketika to notasi input n menekan kan tombol A own. untuk mema serangan ko dengan mema ga karakter sehingga o kedua. an ini adal ambar dibawah atan selama uji coba per s mengambil 5104 100 062 an dalam inpu berikut: t ini memiliki ombol Down A dua kali ombol Down t ini memiliki tombol A A bersamaan astikan bahwa ombinasi pada asukkan input r melakukan karakter lah serangan h. perancangan rangkat lunak l kesimpulan 2 t i n . n i , n a a t n r n , k nSEMINAR TUGAS AKHIR PERIODE JANUARI 2010
6 Arimas Artadi – 5104 100 062 1. Pencocokkan animasi berdasarkan animasi yang
sedang berlangsung dapat membantu dalam menghasilkan kombinasi yang berbeda, bergantung pada animasi yang sedang berlang-sung saat itu.
2. Fungsi perhitungan letak kamera yang dapat dirubah, menyebabkan kamera dapat bergerak dengan dinamis dan dapat mengikuti gerakan karakter meskipun jarak kedua karakter jauh. 3. Dengan melakukan delay pada saat pengiriman
data serta hanya mengirimkan jika terjadi perubahan input, data yang diperlukan ketika melakukan permainan multiplayer menjadi lebih terjamin. Hal ini terlihat dari tidak adanya gerakan yang terputus ketika permainan dilakukan.
4. Sinkronisasi antara komputer yang didapatkan permainan dapat dilakukan secara multiplayer
dengan dua sampai empat pemain.
Dalam pembuatan makalah ini, terdapat beberapa kemungkinan pengembangan aplikasi yang dilakukan, yaitu:
1. Collision detection tidak sepenuhnya tepat, terkadang obyek dinyatakan berbenturan walaupun tidak benar-benar berbenturan. Untuk menutupi kekurangan ini dapat dilakukan dengan menggunakan OBB pada algoritma collision detection. Hal ini tentu berpengaruh pada beban kerja processor.
2. Effect dapat digunakan untuk menyembunyikan benturan yang kurang wajar. Selain itu effect akan menyebabkan game terlihat lebih menarik.
3. Perpindahan kamera yang halus seperti pada sistem perangkat lunak ini akan menyebabkan karakter pemain tidak terlihat untuk beberapa waktu. Untuk mengatasi hal ini perpindahan kamera dapat dipercepat. 4. Perpindahan kamera yang cepat akan
menyebabkan tampilan tidak indah. Untuk memperbaiki penampilan dapat digunakan post processing effect seperti blur.
10. Daftar Pustaka
Ferraris, Jonathan. Quadtrees, <URL : http://www.gamedev .net/reference/programming/fea tures/quadtrees/ >
Gank Of Four. Singleton Design Pattern in C#
and VB .NET, <URL :
http://www.dofactory.com/Patterns/ PatternSingleton.aspx>
Gank Of Four. Observer Design Pattern in C#
and VB .NET, <URL
http://www.dofactory.com/Patterns/ PatternObserver.aspx>
Gank Of Four. Strategy Design Pattern in C#
and VB .NET, <URL
http://www.dofactory.com/Patterns/ PatternStrategy.aspx>
Rabin, Steve. Introduction to Game