Seminar on Intelligent Technology and Its Applications 2009
ISSN 2085 – 9732
Optimalisasi Java Sebagai Media Pembuatan Game Zuper Pantriers 3D Berbasis M3G 1)
Maslikah
2)
Andy Rachman
1) Jurusan Teknik Informatika ITATS, Surabaya 60117, email:
[email protected] 2) Jurusan Teknik Informatika ITATS, Surabaya 60117, email:
[email protected]
Abstrak – Ketidakpuasan pengguna game pada teknologi mobile dengan tampilan 2D memberi inspirasi kepada para developer game yang telah sukses menggunakan teknologi 3D pada PC (Personal Computer) untuk mengembangkan dan memadukan teknologi 3D dengan teknologi mobile ke perangkat lain yaitu handphone. Tujuan dari perancangan dan pembuatan game ini adalah untuk mengimplementasikan pemrograman grafis 3D dengan menggunakan kemampuan handphone dan memanfaatkan M3G (Mobile 3D Graphics) sehingga menghasilkan permainan (game) dengan tampilan 3D yang lebih menarik. Untuk pembuatan game ini digunakan bahasa pemrograman J2ME yang mempunyai M3G sebagai API yang dapat memuat objek 3D ke dalam aplikasi. Objek 3D yang digunakan dalam aplikasi dibuat dengan menggunakan pemodel 3D 3DSMAX. Kata Kunci: Game, M3G, API, Handphone, Java. 1. PENDAHULUAN Pada masa sekarang ini kebutuhan game sebagai sarana penyegaran (refreshing) semakin terasa di tengah kesibukan manusia di dunia. Mulai dari anak – anak sampai orang dewasa banyak yang menggemari game, benar adanya bahwa game merupakan kebutuhan pokok apabila kita dilanda kepenatan yang amat sangat. Game atau permainan sangat beragam jenisnya, mulai dari game anak tradisional seperti dakon sampai yang menggunakan teknologi canggih seperti game strategi dalam komputer yang sedang tren saat ini. Kehadiran game dalam teknologi mobile membenarkan bahwa orang membutuhkan penyegaran kapan saja. Pada awalnya game – game yang diterapkan pada teknologi mobile ini hanya berupa game dengan tampilan 2D (2 Dimensi) saja, tentu saja hal ini menimbulkan ketidakpuasan pada pengguna. Dengan tampilan 2D orang merasa tidak bebas menjelajahi dunia yang ada dalam game tersebut, pemain hanya mengacu pada plot yang sudah ditentukan oleh pembuat game. Dengan teknologi 2D, maka seorang pemain hanya bisa melihat dari sudut pandang tertentu saja. Misalkan pada suatu game yang bersetting di tempat parkir, pemain akan hanya melihat dari sudut pandang atas (seperti dari satelit), wajah tukang parkir maupun bagian dalam mobil tidak dapat terlihat dengan jelas.
Hal ini tentu sangat berbeda sekali jika kita menggunakan teknologi 3D (3 Dimensi), sebagai pemain kita akan dapat memainkan game dari berbagai macam sudut pandang sehingga wajah tukang parkir akan terlihat dan bentuk mobil juga semakin mendekati yang sebenarnya bukan hanya berbentuk kotak dan dapat berjalan. Jika kita menggunakan teknologi 3D, game akan terasa lebih menyenangkan karena game itu sendiri akan terasa lebih hidup dan realistis karena mendekati keadaan nyata. Dalam hal ini tampak jelas keunggulan teknologi 3D dibandingkan dengan 2D. Kehadiran teknologi 3D disambut hangat oleh penggemar game. Hal ini dibuktikan dengan suksesnya game – game 3D yang hadir pada PC (Personal Computer). Hal tersebut diatas memacu developer game untuk mengembangkan teknologi 3D ke perangkat lain misalnya memadukannya dengan teknologi mobile seperti ponsel. Fungsi ponsel sendiri saat ini telah mengalami perkembangan teknologi, tidak hanya sebagai alat komunikasi saja , tetapi dapat juga berfungsi layaknya computer. Sehingga bukan tidak mungkin untuk menerapkan teknologi game 3D pada ponsel. Tujuan dilakukan penelitian ini adalah untuk memanfaatkan teknologi M3G pada handphone dalam menciptakan obyek game 3D sehingga obyek game lebih realistis, lebih interaktif. Dari latar belakang diatas terdapat permasalahan yang muncul, yaitu : 1. Bagaimana merancang keluaran dan antar muka sistem yang mudah dimengerti oleh pengguna. 2. Bagaimana merancang model 3D yang sesuai dengan kemampuan memori ponsel mengingat kemampuan memori ponsel yang terbatas. 3. Bagaimana memuat objek 3D pada aplikasi. 4. Bagaimana menggerakkan banyak obyek sekaligus dengan resolusi yang terbatas. 5. Bagaimana agar aturan permainan bisa diterapkan pada permainan sebagaimana mestinya. 6. Bagaimana menampilkan nilai tertinggi yang sesuai dengan nama pemainnya. Agar permasalahan dalam penelitian ini tidak terlalu melebar, maka diberikan batasa-batasa sebagai berikut : 1. Pada penelitian ini, game yang dibuat hanya khusus untuk pemain tunggal (single player).
Seminar on Intelligent Technology and Its Applications 2009
2.
Program hanya dapat dimainkan pada handphone yang mendukung MIDP 2.0 dengan konfigurasi CLDC. 2. TINJAUAN PUSTAKA
2.1 Bahasa Pemrograman Java Java merupakan bahasa pemrograman berorientasi objek yang dibuat oleh Sun Microsystem pada tahun 1991. Sun merilis versi awal Java secara resmi pada awal 1996 yang kemudian terus berkembang hingga muncul JDK(Java Developer’s Kit)1.1 kemudian JDK 1.2 yang mengandung banyak peningkatan dan perbaikan sehingga mulai versi ini Java disebut Java2. Perubahan yang utama adalah adanya Swing yang merupakan teknologi GUI (Graphical User Interface) yang mampu menghasilkan aplikasi window yang menarik. Pada tahun – tahun berikutnya (1998 – 1999) lahirlah teknologi J2SE (Java 2 Standart Edition), J2EE (Java 2 Enterprise Edition) dan J2ME (Java 2 Micro Edition). J2ME diarahkan untuk diaplikasikan pada piranti kecil seperti ponsel dan PDA (Personal Digital Assistant). Untuk mendukung pelbagai macam piranti ini, maka J2ME diorganisasikan ke dalam konfigurasi dan profil yang mendefinisikan sebuah kelas Java API (Application Programming Interface) yang dapat digunakan oleh aplikasi. Seperti aplikasi Java umumnya yang menggunakan JVM (Java Virtual Machine), dalam J2ME digunakan pula virtual machine yang disebut K Virtual Machine. K Virtual Machine adalah virtual machine yang sangat kecil dalam kebutuhan memorinya. Huruf K dalam K Virtual Machine adalah singkatan dari kilobyte, untuk menggambarkan berapa virtual machine ini bekerja pada total memori yang sedemikian kecil mulai dari 40 kilobyte hingga rata – rata sekitar 80 kilobyte. Untuk mendukung pelbagai jenis produk ponsel dan PDA (Personal Digital Assistant) yang sesuai dengan lingkup J2ME, Sun memperkenalkan konfigurasi. Dengan konfigurasi kita dapat menentukan beberapa hal yang perlu diperhatikan dalam pengembangan aplikasi yang berjalan di perangkat mobile (ponsel, PDA), misalnya memori, display, konektifitas jaringan dan kemampuan pemrosesannya. J2ME mempunyai dua konfigurasi yaitu : 1. CLDC (Connected Limited Device Configuration) Konfigurasi ini digunakan untuk aplikasi Java pada ponsel, PDA, dan pager. Spesifikasi CLDC mengidentifikasikan piranti yang mempunyai karakteristik sebagai berikut : a. Untuk menjalankan Java dibutuhkan memori 128 kilobytes. b. Untuk alokasi memori runtime dibutuhkan memori 32. c. Antarmuka pengguna sangat terbatas. d. Konektifitas jaringan, biasanya wireless, terbatas dan akses yang terputus – putus.
ISSN 2085 – 9732
e.
Konsumsi daya rendah, sering menggunakan baterai yang dapat diisi ulang. 2. CDC (Connected Device Configuration) Konfigurasi ini digunakan untuk aplikasi Java pada piranti dengan ukuran memori 2 Megabytes atau lebih. Spesifikasi CDC mengidentifikasikan piranti yang mempunyai karakteristik sebagai berikut : a. Untuk menjalankan Java dibutuhkan memori 512 kilobytes. b. Untuk alokasi memori runtime dibutuhkan memori 256. Profil merupakan ekstensi dari konfigurasi yang menyediakan kepustakaan bagi pengembang untuk menulis aplikasi untuk jenis piranti tertentu yang dituju. Sebagai contoh MIDP (Mobile Information Device Profile) mendefinisikan API untuk komponen antarmuka pengguna, jaringan, input, timer, ukuran layar dan keterbatasan memori. 2.2. Mobile 3D Graphic Mobile 3D Graphics yang juga dikenal sebagai JSR – 184 merupakan API yang dipakai untuk melakukan rendering terhadap objek 3D. Beberapa aplikasi yang dikenali oleh M3G API meliputi, games, visualisasi peta, pesan animasi, screen savers. M3G API ini memerlukan perangkat J2ME yang mendukung profil MIDP 2.0 dan konfigurasi CLDC 1.1. M3G API ini didefinisikan dalam package javax.microedition.m3g yang memungkinkan dilakukannya rendering terhadap grafik 3D.Kelas – kelas yang terdapat pada M3G yaitu : Tabel 1. Kelas-kelas pada M3G 1 AnimationControll Mengontrol posisi, er kecepatan dan tekanan urutan animasi. 2
AnimationTrack
3
Appearance
4
Background
5
Camera
6
CompositingMode
Menggabungkan keyframe sequences dengan animation controller dan animatable property. Sekumpulan komponen objek yang mendefinisikan atribut rendering dari mesh atau sprite 3D. Mendefinisikan apakah dan bagaimana membersihkan viewport. Scene graph node yang mendefinisikan posisi dari viewer pada scene dan projection dari 3D ke 2D. Tampilan komponen atribut composting per
Seminar on Intelligent Technology and Its Applications 2009
7
Fog
8
Graphics3D
9
Group
10
Image2D
11
IndexBuffer
12
KeyframeSequence
13
Light
14
Loader
15
Material
16
Mesh
17
MorphingMesh
18
Node
19
Object3D
20
PolygonMode
– pixel terenkapsulasi. Tampilan komponen atribut terenkapsulasi untuk fogging. Singleton 3D graphics context yang dapat dibentuk di target rendering. Sebuah node scene graph yang menyimpan node – node yang tidak dipanggil sebagai children. Gambar 2D yang dapat digunakan sebagai tekstur, background atau image sprite. Sebuah kelas abstrak yang mendefinisikan bagaimana untuk menghubungkan verteks ke objek geometri form. Mengenkapsulasi data animasi sebagai sequence of time – stamped, vector – valued keyframes. Node scene graph yang menghadirkan light source yang berbeda – beda. Melakukan download node scene graph dan node komponen sama seperti keseluruhan scene graph. Tampilan komponen atribut material terenkapsulasi untuk lighting computations. Node scene graph yang menampilkan objek 3D sebagai permukaan poligonal. Node scene graph yang menampilkan vertex morphing polygon mesh. Kelas dasar abstrak untuk semua node scene graph. Kelas dasar abstrak untuk semua objek yang menjadi bagian dari 3D world. Tampilan komponen atribut poligon
ISSN 2085 – 9732
terenkapsulasi. Objek RayIntersection berisi method – method yang ada pada group. 22 SkinnedMesh Node scene graph yang menampilkan animasi skeletally polygon mesh. 23 Sprite3D Node scene graph yang menampilkan gambar 2D dengan posisi 3D. 24 Texture2D Tampilan komponen tekstur image 2D terenkapsulasi dan kumpulan atribut yang menerapkan tata cara bagaimana image dapat diaplikasikan pada submeshes. 25 Transform Floating point matriks 4 x 4 yang menampilkan transformasi. 26 Transformable Kelas dasar abstrak untuk node dan tekstur 2D yang mendefinisikan methods umum untuk memanipulasi node dan transformasi tekstur. 27 TriangleStripArray Mendefinisikan array dari triangle strips. 28 VertexArray Array vektor integer yang menampilkan posisi vertek, normal, warna dan koordinat tekstur. 29 VertexBuffer VertexBuffer merupakan acuan bagi VertexArray yang mengandung posisi, warna, normal dan koordinat tekstur untuk kumpulan vertiks. 30 World Node grup spesial yang merupakan top level dari kumpulan scene graph. Dalam dunia 3D sistem koordinat yang dikenal adalah sistem koordinat 3D. 21
RayIntersection
(a)
(b) Gambar 2.1. Sistem koordinat 3D
(c)
Seminar on Intelligent Technology and Its Applications 2009
3. HASIL DAN PEMBAHASAN Permainan Zuper Pantriers menceritakan tentang tugas seorang Office Boy (OB) yang harus mengantarkan burger untuk orang kantor (OK) dengan limit waktu tertentu. Setting permainan ini berada pada sebuah ruangan kantor yang terdiri atas empat ruangan. Pada saat permainan dimulai, pemain akan dihadapkan pada level 1 dengan limit waktu yang tersedia adalah 1 menit dan dengan jumlah burger yang harus diantarkan adalah 2 buah. Burger harus diantarkan secepat mungkin kepada OK sebelum waktunya habis dengan cara menekan tombol panah atas, kiri , kanan dan bawah. Dan ketika akan memberikan burger kepada OK maka tombol yang ditekan adalah tombol angka lima. Setiap level bertambah, jumlah burger yang diantarkan akan semakin bertambah, begitu juga dengan waktu yang tersedia akan ditambah. Untuk penambahan waktu tersebut, terlepas dari jumlah burger yang harus diantarkan, waktu yang ditambahkan untuk tiap kenaikan level adalah konstan atau tetap. Sehingga pemain akan semakin kesulitan tiap pergantian level, dimana jumlah burger yang harus diantarkan semakin banyak, sementara waktu yang ditambahkan sudah tidak sebanding. Permainan akan berakhir jika pemain kehabisan waktu. Pada permainan ini level maksimal yang ada adalah level 5, jadi jika kita telah mencapai level 5 dan telah mengantarkan semua burger yang diminta maka kita telah memenangkan permainan Zuper Pantriers ini.
ISSN 2085 – 9732
utama Zuper Pantriers. Ketika tombol menu ditekan maka akan muncul pilihan players yang dapat dipilih dengan menggunakan tanda panah atas dan bawah, setelah terpilih maka selanjutnya tekan tombol select yang letaknya berbeda – beda pada tiap – tiap ponsel
Gambar 2.3. Flowchart Permainan Zupan Gambar 2.2. Sistem Permainan Zuper Pantries
Ketika pertama kali permainan ini di start maka yang harus dilakukan adalah memilih player mana yang ingin kita pakai sebagai karakter utama OB. Ada tiga macam karakter yang dapat dipilih sebagai player utama yaitu sue, anita dan natasha. Selanjutnya permainan dapat langsung dimulai. Setelah permainan selesai dimainkan kita dapat memilih restart untuk memainkan permainan ini kembali tanpa harus keluar dari aplikasi terlebih dahulu dengan cara memilih player kembali. Gambar di bawah ini merupakan perancangan tampilan menu
Setting arena yang akan dipakai dalam permainan ini adalah sebuah kantor yang terbagi atas empat ruangan, dimana disana terdapat meja kerja, rak buku, tempat sampah, tembok(batas), burger permintaan serta tak ketinggalan juga OB dan OK. Dalam hal ini pembuatan objek 3D meja kerja, rak buku sampah, tembok (batas), OB serta OK dirancang dengan verteks seminimal mungkin dengan tujuan agar ukuran aplikasi permainan tidak terlalu besar dan sesuai dengan kemampuan memori ponsel. Gambar di bawah ini merupakan denah ruangan kantor Zuper Pantriers, pada setiap ruangannya terdapat meja kerja,
Seminar on Intelligent Technology and Its Applications 2009
rak buku dan juga tempat sampah. Posisi awal OB setiap awal permainan ditunjukkan oleh tanda silang warna merah.
DAFTAR REFERENSI [1]
[2]
[3] [4] [5] [6] [7]
[8]
Gambar 2.4. Denah Ruangan Kantor Zuper Pantries Dari desain sistem yang ada diatas maka dapat dihasilkan suatu permainan seperti dibawah ini ;
(a)
(b)
(c)
Gambar 2.5. menu utama (a) permainan selesai (b) dan permainan selesai/menang (c)
4. KESIMPULAN Dari penelitian diatas maka dapat diambil suatu kesimpulan antara lain : 1. Dengan dihadirkannya tiga macam pilihan players maka pemain dapat memilih karakter utama yang akan dimainkan sesuai dengan selera masing – masing. 2. Ketika pemain memperoleh score yang melebihi hiscore (nilai tertinggi) yang sudah ada maka pemain dapat menyimpan namanya agar tercantum sebagai pemegang hiscore terbaru. 3. Peforma permainan (proses rendering objek 3D) berbeda pada merk dan tipe ponsel yang berbeda. 4. Game Zuper Pantriers hanya dapat berjalan pada ponsel yang memiliki sistem konfigurasi CLDC 1.1 dan profil MIDP 2.0.
ISSN 2085 – 9732
Aditya Hartanto, Antonius, Pemrograman Mobile JAVA dengan MIDP 2.0, Andy Yogyakarta, Yogyakarta, 2004. Dwi Prasetyo, Didik, Tip dan Trik Pemrograman Java 2, PT. Elex Media Komputindo, 2004. http://www.fivedots.coe.psu.ac.th/~ad/jg http://www.forum.nokia.com http://www.gamasutra.com http://www.java.sun.com Rickyanto, Isak, ST, Dasar Pemrograman Berorientasi Objek dengan JAVA 2 ( JDK 1.4 ), Andy Yogyakarta, Yogyakarta, 2003. Suyoto, Dr, Membuat Sendiri Aplikasi Ponsel, Gava Media, Yogyakarta, 2005.