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 1 Arimas Artadi 5104 100 062
tombol atas dan bawah tidak menghasilkan gerakan khusus jika tidak dikombinasikan dengan tombol lainnya. Gambar Gerakan free run pada F-LMBS sain sistem yang dilakukan pada tahap desain. BABB IV. UJI COBA DAN EVALUASI Ketika tombol free run ditekan maka karakterr dapat bergerak dengan bebas, seperti pada gambar di atas. Gerakan ini relatif terhadap lawan yang sedang menjadi focus serangan. Bab ini membahas uji coba dari aplikasi yang dibuat dengan melihat outpu yang dihasilkan oleh aplikasi, dan evaluasi untuk mengetahui kemampuan aplikasi. BABB V. PENUTUP Bab ini berisi kesimpulan dari hasil uji coba yang dilakukan serta saran untuk pengembangan aplikasi selanjutnya.. 2. Flex-Range Linear Motion Battle System F-R LMBS dibangun agar pada sebuah pertarungan pemain dapat bertarung melawan lebih dari satu lawan secara real time. Fitur yang membuat F-R LMBS berbeda dengan sistem pertarungan pada fighting games pada umumnya adalah kemampuan F-R LMBS untuk mempertahankan kebebasan gerak karakter. Kebebasan gerak ini tidak mengurangi elemen kombinasi input pada fighting game. Untuk ilustrasi bagaimana F-R LMBS bekerja dapat dilihat pada Gambar di bawah Gambar Mengganti fokus serangan Pemain dapat mengganti focus serangann karakternya, seperti yang terlihat pada gambar 2.7.3. Jika jumlah lawan lebih dari satu, pemain dapat memilih lawan mana yang akan dia serang. 3. Fightingg Game Pada fighting game, gerakan karakter yang dimainkan dapat berubah-ubah Hal ini bergantung pada gerakan yang sedang dilakukan oleh karakter pada saat input diberikan. Animasi yang dilakukan tidak langsungg dieksekusi melainkan menunggu animasi yang sebelumnya selesai terlebih walaupun input yang diberikan sama. dahulu. Gambar Gerakan linear pada F-LMBS Padaa saat pemain menekan tombol kanan dan kiri, karakter bergerak mundur dan maju terhadap lawan yang sedang menjadi fokusnya. Sedangkan 2 4. Framework XNA 2.0 XNA Game Studio merupakan lingkungann pengembang terintegrasi yang dirancang untuk memudahkan pembuatan game bagi platform Microsoft Windows dan Xbox360. XNA Game Studio memperluas tool-tool Microsoft Visual Studio untuk 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 fungsifungsi 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. cmp Component Diagram GameBaseComponents + Component + DrawableComponent + Components + Entities IndependentRhythm + IndependentRythm + Program + GameScreen + GameScreenManager + Network InputManager + Directions + InputManager + KeyboardInput + MouseInput + IInputHelper + InputHandlers GameData + ActionMode + Art + ArtType + CharacterAction + CharacterActionManager + CharacterSkills + CharacterSpecialArts + CharacterStats + ModelAnimationData + Skill + SkillActionSquence + SkillType + ContentPipeline + SkillSystem GameMenu + BaseMenuItem + IconicMenuItem + MenuItem + MenuItemSelection + MenuItemState + MenuManager + IMenuControler + ListTable Masing-masing package dalam aplikasi ini berfungsi sebagai berikut: 3 Arimas Artadi 5104 100 062
- GameBaseComponent package ini berfungsi untuk mensimulasikan komponenkomponen 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 gerakangerakan 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; private ModelAnimationData 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. 4 Arimas Artadi 5104 100 062
Uji coba ini meliputi: Uji coba menu awal permainan Uji coba menu pemilihan server Uji coba lobi permainan. Hasil dari uji coba ini, seperti yang terlihat pada Gambar dibawah. Contoh notasi input yang digunakan dalam input yang diberikan pemain adalah sebagai berikut: Down A A, notasi input ini memilikii makna, pemain menekan tombol Down kemudian menekan tombol A dua kali. Tombol A ditekan ketika tombol Down telah dilepas. A A + Down, notasi input ini memilikii makna, pemain menekan tombol A, kemudian menekan tombol A bersamaan dengan tombol Down. Uji coba dilakukan untuk memastikan bahwaa pemain dapat melakukan serangan kombinasi padaa permainan ini. Percobaan dilakukan dengan memasukkan input sebagai berikut: 8. Uji Coba Permainan Pada bagian ini akan dibahas hasil ujicoba yang dilakukan dalam menggerakkan karakterr dalam permainan. Gerakan karakter sepenuhnya dikendalikan dengan menggunakan keyboard. Kendali yang dapat dilakukan pada karakterr adalah sebagai berikut: Tombol Up, Down, Right, Left : merupakan tombol arah untuk mengendalikan karakter untuk berlari sesuai tombol yang ditekan. Tombol R1 : Merupakan tombol free run yang merubah fungsi gerakan pada tombol Up dan Down. Tombol A : Merupakan tombol serangan dasar. Tombol B : Merupakan tombol serangan kritikal, serangan yang memiliki damage tinggi tetapi gerakan lambat. Tombol X : Merupakan tombol untuk bertahan. A-A-A, sehingga karakter r melakukan kombo pertama A-A-Down+A, sehingga karakterr melakukan komboo kedua. Hasil dari percobaan ini adalah serangann kombinasi seperti pada Gambar dibawah. 9. Kesimpulan Dari hasil pengamatan selama perancangan, implementasi, dan proses uji coba perangkat lunak yang dilakukan, penulis mengambil kesimpulan sebagai berikut: 5 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 berlangsung 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: 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 Development. 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/ > 6 Arimas Artadi 5104 100 062