PENGIMPLEMENTASIAN JAVA DENGAN GOLDEN-T GAME ENGINE DALAM PEMBUATAN ROLE PLAYING GAME “ SATRIA GARUDA”
Disusun sebagai salah satu syarat kelulusan Jenjang Diploma Tiga dan gelar Ahli Madya Jurusan Teknik Informatika
Disusun oleh: YUSAN MEDHIEKA PUTRA 07.01.2460
JURUSAN TEKNIK INFORMATIKA SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER A M I K O M YOGYAKARTA 2010
NASKAH PUBLIKASI TUGAS AKHIR
PENGIMPLEMENTASIAN JAVA DENGAN GOLDEN-T GAME ENGINE DALAM PEMBUATAN ROLE PLAYING GAME “ SATRIA GARUDA” disusun oleh YUSAN MEDHIEKA PUTRA N.I.M 07.01.2460 Telah disetujui oleh Dosen Pembimbing Tugas Akhir Pada Tanggal 10 Mei 2010 Dosen Pembimbing,
HANIF AL-FATTA, M.KOM NIK 190302096
Ketua Jurusan Teknik Informatika
Sudarmawan, MT NIK. 190302035
IMPLEMENTION OF JAVA AND GOLDEN-T GAME ENGINE IN MAKING ROLE PLAYING GAME “ SATRIA GARUDA” IMPLEMENTASI JAVA DENGAN GOLDEN – T GAME ENGINE DALAM PEMBUATAN ROLE PLAYING GAME “ SATRIA GARUDA” Yusan Medhieka Putra Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA
ABSTRACT Role playing game is a game where there is an imaginary character and created a story line. Players control the actions of the characters in the game, to reach the goal with atuaran - existing rules and requirements - requirements / quest that must be met, using an engine, programmers will be easier to build an RPG game. In this final project created a game that implements the Java engine to make GTGE and Garuda Satria game with RPG type game, with a character named Garudea a duty to eradicate demons and monsters who control the State Askaban, Garudea also have to practice to improve its ability to be able to defeat devil, robbers ,monsters ,demons and palace guards. By using GTGE engine is expected to produce a game with the type Playimg Role Game, and facilitate in making the Games RPG programmers that can be used for entertainment and recreation facilities for those who play the games created. Keywords: Games, Role Playing, RPGs, GTGE
1. PENDAHULUAN Perkembangan komputer saat ini sangatlah pesat , hampir semua bidang pekerjaan dan aktifitas manusia sudah menggunakan komputer, bukan hanya sebagai alat untuk menyelesaikan pekerjaan saja , dewasa ini komputer juga dimanfaatkan untuk sarana entertainment dan hiburan, salah satunya adalah Game. Perkembangan game juga mengikuti perkembangan komputer yang sangat pesat, game menjadi salah satu sarana hiburan dan sarana rekreasi yang menjadi favorit masyarakat luas, game telah digemari berbagai kalangan baik anak – anak , remaja maupun orang tua, sehingga muncul beberapa tipe game baik yang bersifat entertainment maupun edukatif. Salah satu tipe game yang digemari saat ini adalah game yang bertipe Role ( RPG), dimana pemain bisa mengontrol satu atau lebih karakter yang ada dalam game, selain itu dalam permainan ini pemain akan melakukan peningkatan kemampuan statistic karakter seperti kekuatan, kekuatan magis, keterampilan menggunakan pedang dan sejenisnya serta mengumpulkan barang-barang seperti baju besi , obat, ramuan dan sebagainya, serta pemain akan dibawa masuk ke dunia khayalan yang ada di dalam game RPG tersebut. Golden-T Game Engine ( GTGE ) adalah engine / library JAVA yang digunakan dalam membangun sebuah game desktop, dengan engine ini memudahkan dalam pengembangan dan pembuatan game, termasuk dalam pengembangan dan pembuatan Role Playing Game. 2. Landasan Teori Dalam penyusunan tugas akhir ini penulis menggunakan beberapa metode, adapun metode tersebut sebagai berikut: •
Metode Pengumpulan Data
Metode Kepustakaan Pengumpulan data yang diperoleh dengan cara membaca dan mempelajari permasalahan yang ada dari buku – buku yang berhubungan dengan masalah yang dihadapi. Metode Pengambilan data
Pengumpulan gambar, sprites, musik dan suara dilakukan dengan cara mengambil data dari internet dan lain - lain. •
Analisa
Penentuan ruang lingkup masalah Pembahasan Game ini berkaitan dalam pembuatan dan perancangan Demo Game RPG “Satria Garuda” yang terdiri dari beberapa quest/misi permainan dan dalam tiga level Game dengan tujuan hiburan. Penentuan tujuan penelitian Dalam tugas akhir ini akan dibahas bagaimana membangun sebuah Role Playing Game “ Satria Garuda” menggunanakan bahasa pemrograman Java dan engine GTGE. Penentuan manfaat penelitian 1. Untuk diri saya pribadi: •
Menambah wawasan , pengetahuan, dan kemampuan diri dalam mengembangkan aplikasi Game dengan Java.
2. Untuk Orang lain: Dapat dijadikan sarana hiburan bagi semua orang yang memainkan game ini. 3. Hasil Penelitian Langkah – langkah membuat game Awal mula membuat game dengan GTGE adalah mensubclass Game class (Game class berada di package com.golden.gamedev), atau dengan kata lain setiap game merupakan turunan dari Game class. Setiap turunan Game class wajib melaksanakan 3 tugas, yakni : •
Contoh kode sederhana pada java
public class Hello { /**
* My first java program */ public static void main (String[] args){ // menampilkan string “Hello world” pada layar System.out.println(“Hello world!”); } }
•
Inisialisasi Variabel Game
file :: YourGame.java // GTGE API import com.golden.gamedev.Game; // Java Foundation Classes (JFC) import java.awt.Graphics2D;
public class YourGame extends Game {
public void initResources() { // initialization of game variables } public void update(long elapsedTime) { // updating the game variables } public void render(Graphics2D g) { // rendering to the screen } }
•
Menampilkan Mode Windowed
public static void main(String[] args) { GameLoader game = new GameLoader();
game.setup(new YourGame(), new Dimension(640,480), false); game.start(); } }
•
Menampilkan Mode Fullscreen
public static void main(String[] args) { GameLoader game = new GameLoader(); game.setup(new YourGame(), new Dimension(640,480), true); game.start(); } }
class :: GameLoader
Syntax: public void setup(Game game, Dimension d, boolean fullscreen); public void start(); dimana : game d
= objek game (subclass dari Game class) = ukuran game
fullscreen = gunakan mode fullscreen atau tidak (windowed mode)
Misal: menginisialisasi YourGame.java dengan ukuran 640x480, mode fullscreen GameLoader game = new GameLoader(); game.setup(new YourGame(), new Dimension(640,480), true); game.start();
•
Menampilkan Mode Applet
file :: YourGameApplet.java // GTGE import com.golden.gamedev.Game; import com.golden.gamedev.GameLoader;
public class YourGameApplet extends GameLoader { protected Game createAppletGame() { return new YourGame(); } }
Untuk melekatkan game ke halaman html Anda, tambahkan applet tag berikut file :: webpage (.html,.php,...)
Syntax:
dimana : your_game_lib = jar dari game (.jar) GTGE_lib
= pustaka GTGE (.jar)
width
= lebar game
height
= tinggi game
Misalnya menampilkan YourGame.java ke halaman html dengan ukuran 640x480 menggunakan GTGE v0.2.0
4. Design Aplikasi Untuk memudahkan dalam dalam pembuatan dan pengimplementasian / coding , terlebih dahulu dibuat model menggunakan UML ( Unified Model Language ) , sehingga interaksi yang ada pada system bisa terlihat , dan perrmasalahan yang komplek menjadi sederhana, dan mendapat banyak pandangan tentang program yang akan dibangun.
Diagram Use Case Diagram ini menggambarkan interaksi antara pengguna dengan system, dalam hal ini adalah player dan game, diagram Use Case game Satria Garuda sebagai berikut.
( Gambar 4.1 : Use Case Diagram ) Dari diagram diatas dapat dilihat aktivitas yang bisa dilakukan player sebagai berikut. • Mulai bermain. • Mengendalikan Karakter / actor dalam game
• Setting Game • Melihat menu Game • Melihat Instruksi Game.
Diagram Activity. Diagram Aktivitas memudahkan kita dalam memahami langkah – langkah aliran kerja, diagram ini memodelkan langkah kerja ( workflow ),dari use case sehingga dapat diketahui siapa yang bertanggung jawab atas masing – masing aktivitas dan obyek – obyek yang digunakan dalam aliran kerja, secara garis besar project ini memiliki alur kerja seperti di bawah ini.
( Gambar 4.1: Activity Diagram) Berdasarkan diagram diatas Berjalannya Game Satria Garuda diawali dengan masuk mainform, kemudian player akan diminta memilih akan langsung bermain atau mensetting game/ SETTING GAME terlebih dahulu atau tidak, setelah itu akan masuk ke form permainan dan player akan diberikan pilihan untuk NEW GAME untuk bermain dengan permainan yang
baru, atau LOAD GAME untuk melanjutkan game yang tersimpan, setelah masuk permainan pemain bisa melihat statistik karakter, keluar permainan, maupun menyimpan game permainan.
Sequence Diagram Diagram ini menggambarkan tentang fungsionalitas dari masing – masing Use Case dan interaksi yang terjadi antar obyek dalam system, fungsionalitas pada project ini yang akan digambarkan dengan sequence diagram adalah sebagai berikut:
Sequence Diagram Pada Use Case Play
( Gambar 4.1 Sequence Diagram Untuk Use Case Play ) Diagram diatas menjelaskan pada saat pemain menjalankan aplikasi GameLoader akan memanggil GameEngine, Game Engine berfungsi untuk menginisialisasi game object, yang ada pada Game, Ketika pertama kali dijalankan GameEngine akan mengarahkan ke Game Object Title, kemudian game object title akan meminta Player untuk memilih option button , untuk masuk kedalam game Player meilih option Game Mode, setelah pilihan dilakukan Title akan mengirimkan message ke GameEngine yang kemudian akan diinisialisasi sebagai GAMEMODE,
maka GameEngine akan menjalankan Game obyek PanelGame sebagai GAMEMODE.
Sequence Diagram Menjalankan Karakter Pada Use Case Mengendalikan Karakter
( Gambar 4.1: Sequence Diagram Menjalankan Karakter Pada Use Mengendalikan Karakter) Diagram diatas menjelaskan ketika Player telah memilih GAMEMODE pada GameEngine, kemudian akan diinisilaisasi dan dijalankan game obyek PanelGame, ketika Even Keyboard terjadi, PanelGame sebagai GameObject akan menginisialisasi tombol keyboard apa yang akan ditekan, setelah itu game obyek akan mengirimkan message kepada Main_Aktor tentang event keyboard yang terjadi, kemudian methode isOccupied(int TileX,int TileY) pada GameMap akan dicek oleh Main_Aktor apakah arah event yang diberikan Player dapat dilewati oleh Karakter jika bisa maka Main_Aktor akan menjalankan method walkTo( int dir,int vert, int horiz);
Sequence Diagram Untuk Karakter Menyerang Pada Use Case Mengendalikan Karakter
( Gambar 2.1: Diagram Sequence Untuk Karakter Menyerang pada Use Case Mengendalikan Karakter). Diagram diatas merupakan aktifitas karakter ketika player memilih option GAMEMODE pada GameEngine, maka GameEngine akan menjalankan GameObyek PanelGame, ketika Player memberikan event keyboard Spasi PanelGame akan megirim Message kepada Main_Aktor untuk mendapatkan
posisi
koordinat
X
dan
Y
Main_Aktor,
kemudian
PanelGame akan menambahkan Kelas Senjata_hero yang merupakan turunan dari kelas Sprite kedalam SpriteGroup SenjataHeroGroup.
Sequence Diagram Untuk Use Case Melihat Menu
( Gambar 2.1 : Sequence Diagram untuk Use Case Melihat Menu)
Ketika
GameLoader
menjalankan
GameEngine
yang
akan
menginisialisasi GameObyek = TITLE, dan menjalankan Title class yang merupakan GameObyek. Sequence Diagram Pada Use Case Setting
( Gambar 2.1 : Diagram sequence untuk Use Case Setting ) Game loader akan memanggil GameEngine dan mengarahkan ke GameObyek Title, ketika player memilih button option setting maka GameEngine akan menginisialisasi GameObyek Setting,
GameObject
Setting kemudian memberikan input button setting suara , setting show fps, dan button option back, ketika option button back dipilih GameEngine akan menginisialisasi GameObyek title. Sequence Diagram Untuk Use Case Melihat Instruksi Game
( Gambar 2.1: Sequence Diagram Untuk Use Case Melihat Instruksi Game). GameLoader akan menjalankan GameEngine, dan GameEngine akan menginisialisasi GameObyek Title, ketika player memilih option Instruksi, maka Title akan mengirim message option kepada GameEngine dan menginisialisasi GameObject Instruksi, dan ketika tombol kembali pada GameObject
Instruksi
dipilih
GameEngine
akan
menginisalisasi
GameObject Title.
Diagram Class Diagram Class, menggambarkan hubungan/ relasi dan interaksi yang yang terjadi antar class yang ada pada game Satria Garuda, diagram ini membantu programmer untuk mendapatkan struktur system sebelum menuliskan kode program, diagram class dalam game Satria Garuda sebagai berikut:
Antarmuka Aplikasi Hasil dari pengimplemantasian akan dilakukan pengujian, tampilan awal pada saat game dijalankan adalah sebagai berikut:
( Gambar2.1: Tampilan Awal Game Satria Garuda ) Dalam tampilan awal player akan diberikan beberapa pilihan menu , yaitu : 1. Permainan Baru, menu ini digunakan untuk masuk ke dalam Game Mode dengan atribut pemain yang baru. 2. Lanjutkan permainan , menu ini digunakan untuk masuk ke game mode dengan atribut pemain yang telah disimpan, pemain akan melanjutkan permainan yang pernah dimainkan. 3. Pengaturan, digunakan untuk megatur suara, apakan akan dihidupkan atau dimatikan, dan menu untuk mengaktifkan atau menonaktifkan FPS.
4. Cara Bermain, menu ini digunakan untuk menjalankan mode instruksi, sehingga pemain tahu cara memainkan game, dan controller yang digunakan.
UJICOBA APLIKASI Setelah
komponen-komponen
diimplementasikan
dan
diuji
secara
individual. Pengujian lebih lanjut dilakukan untuk memastikan perilaku yang benar dan tidak ada konflik penggunaan sumber daya bersama. Berikut adalah hasil dari pengujian game Tabel Pengujian Game No
Fungsi
Hasil uji
1
Masuk GameLoader
Berhasil
2
Dialog Karakter
Berhasil
3
Mengambil Bonus
Berhasil
4
Healt Point bertambah atau berkurang
Berhasil
5
Skill bertambah
Berhasil
6
Jumlah Panah Bertambah
Berhasil
7
Bertarung
Berhasil
8
Next level
Berhasil
9
Game over
Berhasil
10
Bergerak ke kanan ( tombol → )
Berhasil
11
Bergerak ke kiri
( tombol ←)
Berhasil
12
Bergerak ke atas
( tombol ↑)
Berhasil
13
Bergerak ke bawah ( tombol ↓)
Berhasil
14
Mengeluarkan panah ( tombol space )
Berhasil
KESIMPULAN Berdasarkan perencanaan , perancangan dan implementasi yang dilakukan dapat diambil kesimpulan sebagai berikut. •
Dalam pembuatan game Satria Garuda , cerita merupakan unsur yang harus disiapkan sebelum melakukan implementasi, karena dalam game RPG alur cerita yang membangun sebuah game sehingga game menjadi menarik , dan quest – quest yang ada dalam game menjadi bervariasi.
•
Pemakain Golden T Game Engine yang berisi fungsi – fungsi siap pakai memudahkan programer dalam implementasi, karena programer tidak perlu membuat method sendiri untuk memutar suara, mengatur sprite, dan fungsi – fungsi dalam pembuatan game yang lain.
Saran Game ini masih bisa dikembangkan lebih jauh lagi, karena pembuatan game ini masih dalam bentuk Role Playing Game yang sederhana, untuk pengembangan game ini lebih lanjut dapat ditambahkan sebagai berikut. Penambahan fasilitas untuk multiplayer sehingga permainan akan lebih menarik karena melibat orang banyak dalam permainan, karena untuk saat ini dalam GTGE belum tersedia fungsi untuk multiplyer, untuk pengembangan game selanjutnya GTGE bisa dipadukan dengan engine yang lain yang sudah memiliki fasilitas untuk multiplayer.
DAFTAR PUSTAKA Avestro, Joyce.2007.JENI Pengenalan Pemrograman 1.JARDIKNAS Avestro, Joyce.2007,JENI Pengenalan Pemrograman 2.JARDIKNAS Hariyanto,Bambang.2004.Rekayasa System Berorientasi Obyek.Bandung:Informatika Tuerah Paulus (2004). “Powerful Game Engine”. From http://goldenstudios.or.id/products/GTGE/index.php (diakses tanggal 05 April 2010) Soliq.2006.Pemodelan Sistem Informasi Berorientasi Objek dengan UML.Surabaya:Graha Ilmu