PERACAGA DA IMPLEMATASI 3D MAP EDITOR PADA PERMAIA 3D MAZE Sandi Rizky K1, Imam Kuswardayan2, Siti Rochimah3 Jurusan Teknik Informatika, Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember Email:
[email protected] ABSTRAK Saat ini perkembangan permainan sangatlah pesat. Pemain permainan tidak hanya anak-anak maliankan orang dewasa. amun hanya beberapa permainan yang memberikan kebebasan kepada pemain untuk membuat peta permainan sendiri untuk permainan tersebut. Oleh karena itu, aplikasi ini dibuat untuk menampung daya kreatifitas pemain dari permainan 3D Maze. Sehingga permainan 3D Maze semakin berkembang karena adanya fasilitas ini. Peta permainan dapat dibuat oleh semua pemain. Peta tersebut dapat dimainkan pemain lain. Dengan begitu aplikasi akan lebih dinamis dan kaya dengan materi peta dari pemainnya. Selain itu juga menjadi nilai tambah yang membuat permainan lebih menarik dengan sisi kompetisi pada pembuatan peta. Aplikasi berbasis desktop dan layanan memungkinkan aplikasi 3D Map Editor berkembang dan berkolaborasi dengan sesama aplikasi yang berbasis layanan. Aplikasi dekembangkan dengan XA dan Aplikasi layanan menggunakan WCF. Kata kunci: Editor Peta, WCF, XA, 3D • Menggunakan manipulasi objek 3D dan 1. Pendahuluan pengendalian kamera yang mudah. • Konversi koordinat agar sesuai dengan 1.1 Latar Belakang permainan. Saat ini banyak sekali permainan• Menyediakan variabel standar pada setiap permainan yang populer dan sering dimainkan oleh objek 3D untuk diberlakukan hukum fisika. berbagai kalangan usia. Namun jarang sekali ada • Mengoptimasi penulisan informasi peta dalam permainan yang memberikan kebebasan kepada basis data agar pembacaan dapat dilakukan pemain untuk membuat sebuah rancangan secara efisien. permainan (design level) sendiri, kemudian • Menerapkan jenis maze Perfect Maze pada diunggah dan dimainkan oleh pemain yang lain. peta 3D sehingga peta selalu memiliki solusi. Permainan yang terus berkembang akan 2. Tinjauan Pustaka memanfaatkan pemain sebagai rekan. Permainan tersebut memberikan fasilitas kepada pemain untuk membuat peta rancangan permainan sendiri. 2.1 Konsep Editor Peta Dengan adanya fasilitas ini, permainan akan Editor peta adalah sebuah perangkat semakin besar karena sumber daya peta bisa datang bantuan yang digunakan untuk mempermudah dari pemain yang lain. Dan hal ini juga merupakan seseorang dalam membuat peta. Dengan adanya salah satu daya tarik permainan itu sendiri. bantuan visualisasi objek 3D akan sangat mudah Demi terwujudnya pemain dapat membuat untuk menggunakannya. Pada umumnya jika ingin sebuah rancangan permainan sendiri, maka harus membuat sebuah peta, penyunting akan selalu ada fasilitas yang membuat pemain lebih mudah berhubungan dengan angka mulai dari posisi dalam membuat peta rancangan permainan. Jika hingga variabel yang lain. fasilitas pembuatan peta permainan tidak memiliki pengendalian yang mudah, hampir dipastikan tidak 2.1.1 Standarisasi dalam Pembuatan banyak pemain yang akan membuat peta permainan Editor Peta sendiri. Maka dari itu permainan ini juga akan Pada saat pembuatan peta khususnya dilengkapi dengan “3D Map Editor” yang mudah dalam hal objek 3D, aspek yang cukup penting dijalankan oleh pemain. adalah kendali kamer. Kamera dapat dipindah sesuai keinginan dan dapat melakukan perbesaran 1.2 Tujuan atau pengecilan sehingga sudut pandang pada saat Tujuan dari Tugas Akhir ini adalah sebagai membuat peta tidak hanya satu titik saja. berikut. Fungsi lain yang dibutuhkan yaitu saat • Mengimplementasikan operasi matriks dalam manipulasi objek. Objek dapat dipindah / diputar hal transformasi objek 3D (memutar, dengan cara yang sangat mudah. Mulai dari seleksi memindah). objek, hingga perubahan variabel-variabel dari objek yang terseleksi.
1
Jika editor peta tersebut digunakan untuk membuat sebuah maze, sebaiknya editor peta memiliki fasilitas yang dapat menghasilkan peta secara otomatis yang membantu penyunting dalam membuat pondasi / gambaran awal pada sebuah peta. Adanya fungsi undo dan redo, fungsi ini sangat dibutuhkan pada sebuah aplikasi editor, karena penyunting juga masih bisa melakukan kesalahan saat membuat sebuah peta. Dengan fungsi ini penyunting tidak perlu mengembalikan / mengingat status pada setiap objeknya.
2.4
2.5 Windows Communication Foundation (WCF) WCF[4] merupakan salah satu teknologi baru dari Microsoft yang memungkinkan aplikasi dalam lingkungan terdistribusi berkomuniksi satu sama lain. WCF adalah model pemrograman lengkap untuk membangun aplikasi berorientasi layanan. Teknologi ini memungkinkan pengembang untuk membangun solusi aman, handal, dan mendukung transaksi, yang dapat terintegrasi lintas platform serta mampu beroperasi dengan investasi yang ada.
Perfect Maze
2.2
XA
XNA[3] berasal dari Xbox ew Architecture, merupakan sebuah tools yang untuk malakukan sebuah proses yang dibuat oleh Microsoft untuk memfasilitasi pengembangan video permainan hingga pengolahan memori dan sumber daya.
Perfect Maze[1] adalah salah satu jenis maze yang tidak memiliki perulangan. Perfect Maze juga tidak diperbolehkan memiliki area yang tidak bisa dijangkau. Oleh karena itu maze ini adalah maze yang pasti memiliki solusi.
2.6
LINQ[5] (Language Integrated Query) adalah sebuah komponen yang dimiliki oleh Microsoft .Net Framework yang memiliki kemampuan mengolah suatu himpunan data meggunakan Query, dan dapat digunakan juga pada platform Java, PHP, Javascipt. Himpunan data ini meliputi basis data dan Generic Collection dari .Net seperti List, LinkedList, ArrayList, Queue, dan Array.Tujuannya adalah melakukan filtering dengan menggunakan bahasa Query yang biasa digunakan ketika memproses data pada sebuah basis data.
Gambar 2.1 Perbandingan Maze
2.3
BFS
BFS[2] (Breadth First Search) adalah sebuah algoritma pencarian pada sebuah graf yang dimulai dari simpul akar dan melakukan pencarian pada simpul-simpul tetangga. Kemudian pada setiap simpul terdekat, akan melakukan pencarian lagi pada simpul-simpul tetangga yang belum dikunjungi, dan begitu seterusnya hingga menemukan simpul yang sedang dicari.
2.6.1
Dari Gambar 2.2 Contoh Kasus BFS tersebut maka jika dilakukan BFS untuk mencari simpul D yaitu.
•
LIQ to SQL (DLIQ)
Penyedia ini memberikan hak kepada LINQ untuk menggunakan Query pada basis data SQL Server, termasuk basis data SQL Server Compact. Cara kerja dari penyedia ini tidak seperti penyedia yang lain yang menggunakan engine LINQ itu sendiri. Namu pada DLINQ melakukan konversi dari LINQ Query menjadi SQL Query kemudian dikirim kepada server untuk dilakukan pengolahan data. Selain itu setelah melakukan pemilihan basis data yang digunakan, IDE akan membuat sebuah delegasi kelas dari semua tabel yang ada pada database yang dipilih. Kelas tersebut meliputi atribut dari tabel, primary keys, dan semua relasi antar tabel.
Gambar 2.2 Contoh Kasus BFS
•
LIQ Framework
3. Perancangan Perangkat Lunak
Posisi pada simpul A, cek B masukkan pada antrian, cek C masukkan pada antrian Keluarkan dari antrian simpul B, cek D sesuai dengan yang dicari, output simpul D / indeks dari simpul D.
3.1
Deskripsi Umum
Dalam Tugas Akhir ini, dibuat aplikasi editor peta yang bernama 3D Map Editor. Aplikasi ini merupakan aplikasi pembuat peta untuk permainan Maze 3D (Rizki, 2012). Aplikasi 3D Map Editor digunakan sebagai media pembantu
2
dalam membuat sebuah peta maze 3D, dengan bantuan visualisasi seperti editor peta 3D pada umumnya. Aplikasi 3D Map Editor dapat digunakan baik secara online maupun offline. Mode online dibutuhkan ketika pengguna ingin melakukan unggah atau unduh peta. Kedua aktivitas tersebut dapat dilakukan . setelah pengguna berhasil login kedalam 3D Map Editor. Data pengguna yang dipakai aplikasi 3D Map Editor berasal dari aplikasi Maze 3D, dan data peta permainan Maze 3D didapat dari hasil unggah & publikasi dari 3D Map Editor. Pada saat aplikasi 3D Map Editor berjalan secara offline, maka saat penyimpanan data dapat dilakukan pada basis data lokal. Sehingga aplikasi ini tetap aman dan stabil digunakan meskipun tidak terhubung dengan server.
3.3
Analisi Aktor
Pada sistem ini hanya terdapat satu aktor yang dibutuhkan yaitu pengguna secara umum, dikarenakan tidak perlu adanya kontrol pengguna tertentu dalam aplikasi 3D Map Editor.
3.4
Arsitektur Sistem
Berikut ini merupakan arsitektur yang digunakan untuk membangun aplikasi 3D Map Editor. Secara keseluruhan sistem 3D Map Editor dibagi menjadi enam buah lapisan utama. Lapisan tersebut adalah Lapisan Presentasi, Lapisan Logika Bisnis, Lapisan Model Data Lokal, Lapisan Akses Layanan, Lapisan Layanan dan Lapisan Model Data Layanan. Pada Error! Reference source not found. ditunjukan bagaimana keterhubungan antar lapisan.
Gambar 3.1 Komunikasi Penyimpanan Aplikasi
3.2
Spesifikasi Lunak
Kebutuhan
Perangkat
Pada aplikasi yang akan dibuat, dibutuhkan beberapa fungsi yang dapat membantu berjalannya aplikasi 3D Map Editor. Fungsi-fungsi tersebut adalah sebagai berikut ini. a. Memiliki 3D Manipulasi objek yang mudah. b. Pembuatan peta secara otomatis. c. Memiliki kontrol aksi. d. Memiliki dua model media penyimpanan.
Gambar 3.2 Hubungan Arsitektur Sistem
3.5
Skenario Kasus Penggunaan Pada sistem ini hanya terdapat satu aktor yang dibutuhkan yaitu pengguna secara umum, dikarenakan tidak perlu adanya kontrol pengguna tertentu dalam aplikasi 3D Map Editor.
3
Gambar 3.3 Diagram Kegunaan Tabel 3.1 Deskripsi Diagram Kegunaan o
Kode
ama
1
UC001
Buat Peta
2
UC002
Olah Peta
3
4
UC008
UC009
Publik asi Peta
Simpa n Peta
5
UC010
Buat Item
6
UC011
Olah Item
7
UC017
Tempe l Item
o
ama
UC018
Kendal i Aksi
9
UC020
Pemba ngkita n Peta
10
UC021
Simula si Peta
Keterangan
3D Map Editor dapat membuat peta baru dengan lebar dan tinggi yang sesuai dengan kehendak Olah peta 3D Map Editor meliputi : Salin peta, ubah nama peta, hapus peta, buka peta, unggah peta dan unduh peta. 3D Map Editor dapat melakukan publikasi peta, peta yang telah dipublikasi menyatakan sudah versi akhir dan tidak dapat diubah atau dihapus. dengan syarat terhubung dengan jaringan dan melakukan login. 3D Map Editor menyimpan map pada basis data lokal dan tidak membutuhkan jaringan. Pada saat berada pada menu Editor Map, pengguna dapat membuat sebuah objek baik berupa wall, start point maupun end point. Olah item pada aplikasi 3D Map Editor meliputi : pindah item, putar item, hapus item, ubah properti, salin item, dan gunting item. Menempelkan Item pada peta sesuai dengan catatan item pada saat Salin Item atau Gunting Item.
Kode
8
3.6
Keterangan
Melakukan pembatalan terhadap aksi yang telah dilakukan dan melakukan kembali aksi yang telah dibatalkan. Menghasilkan peta secara otomatis. Peta yang dihasilkan merupakan peta yang memiliki solusi. 3D Map Editor melakukan perhitungan untuk mendapatkan solusi. Untuk membuktikan peta telah memiliki solusi.
Perancangan Perangkat Lunak
Berikut ini adalah perancangan aplikasi 3D Map Editor. Pada subbab ini akan dijelaskan mengenai rancangan data dan juga algoritma yang akan digunakan.
3.6.1
Perancangan Lapisan Presentasi
Berikut ini adalah perancangan presentasi yang digunakan oleh aplikasi 3D Map Editor. Dari, tampak kelas ScreenGame merupakan kelas turunan dari FloatContainer. ScreenGame juga memiliki list dari turunan FloatContainer. Dengan pola seperti ini, dapat diberlakukan pola perancangan composite[10].
4
4. Implementasi 4.1
Implementasi Buat Peta
Buat Peta merupakan langkah awal dalam melakukan inisiasi pada objek-objek yang dibutuhkan selama melakukan pembuatan peta. Terdapat dua bagian saat pembuatan peta. Pertama melakukan cek pada masukkan lebar dan tinggi sesuai dengan batasan dan format yang seharusnya. Kedua melakukan inisiasi pada objek yang dibutuhkan saat pembuatan peta.
Implementasi Salin Peta
4.2 3.6.2
Proses berjalannya Salin Peta hanya berputar pada basis data lokal saja. Untuk melakukan Salin Peta dapat dilakukan langkahlangkah sebagai berikut.
Perancangan Kendali Aksi
Berikut ini adalah perancangan kendali aksi yang digunakan oleh aplikasi 3D Map Editor. Dari Error! Reference source not found., untuk menangani fungsi kendali aksi dapat digunakan pola perancangan commands. Tujuan menggunakan pola tersebut aga setiap aksi yang dilakukan pada saat menyunting map dapat dicatat oleh sistem.
•
• •
4.2.1
Merubah nama peta dengan nama yang baru, sehingga perlu menampilkan renameDialog, dengan mengganti nama form menjadi Copy. Mengambil rincian data peta yang dipilih. Memasukkan data baru pada basis data.
Implementasi Hapus Peta
Penggunaan Hapus Map hanya bisa dilakukan pada peta yang belum dilakukan publikasi. Penanda peta telah dilakukan publikasi salah satunya yaitu dengan melakukan cek pada ID_Map_Server. Penghapusan peta terjadi pada basis data lokal, berikut cara melakukan hapus data menggunakan data model lokal.
4.2.2
3.6.3
Implementasi Buka Peta
Prinsip untuk melakukan Buka Peta sama dengan Hapus Peta, hanya peta yang belum dipublikasi saja yang bisa dibuka. Jika ingin membuka peta yang telah terpublikasi dapat dilakukan dengan cara melakukan Salin Map terlebih dahulu.
Perancangan Model Data
Berikut ini adalah perancangan Data Model yang digunakan oleh aplikasi 3D Map Editor. Perancangan layanan model data ini dapat dilihat pada diagram kelas Error! Reference source not found..
4.2.3
Implementasi Unggah Peta
Untuk melakukan Unggah Peta diperlukan prasarat Login terlebih dahulu. Data pengguna yang telah login akan disimpan pada UserLogin. Terdapat dua kondisi dalam melakukan Unggah Peta. Jika peta sebelumnya terunggah maka secara otomatis data peta pada server akan diperbarui.
4.2.4
Implementasi Unduh Peta
Untuk melakukan Unduh Peta diperlukan prasarat Login terlebih dahulu. Ketika melakukan Unduh Peta, maka server akan mengambil data peta pada server. Setelah itu, 3D Map Editor akan membandingkan hasil dari server dengan basis data lokal,
5
4.2.5
untuk memilih tetangga yang akan dibuat sebuah jalan atau path.
Implementasi Simpan Peta
Proses Simpan Peta adalah peroses yang dilakukan untuk menyimpan data peta pada basis data lokal. Jika nama peta telah ada pada basis data, maka rincian peta akan ditimpa. Jika belum ada, maka peta akan ditambahkan beserta rinciannya.
4.2.6
4.2.13 Implementasi Simulasi Peta Proses ini digunakan untuk mencari jalan keluar dari sebuah maze yang telah dihasilkan saat membuat sebuah peta sebelumnya. Syarat yang dibutuhkan yaitu sudah terdapat startpoint dan endpoint dari peta yang akan disimulasikan. Dengan melakukan backtrack dari hasil BFS, akan menghasilkan jalan keluar dari startpoint menuju endpoint.
Implementasi Buat Item
Implementasi Buat Item dapat digunakan pada pembuatan peta atau pada saat editor peta. Syarat dalam membuat sebuah item adalah tempat kosong yang masih bias digunakan. Oleh karena itu diperlukan untuk mencari tempat yang masih bisa ditempati.
4.2.7
4.3 Implementasi Kendali Aksi Untuk membuat sebuah Kendali Aksi, sangat efektif jika menggunakan pola perancangan command[10]. Dengan mengakat fungsi menjadi sebuah kelas, maka setiap fungsi aksi yang dilakukan dapat disimpan menjadi sebuah objek. Pada aplikasi 3D Map Editor, kelas dasar yang digunakan adalah kelas CommandEditor. Kelas tersebut adalah kelas abstrak yang memiliki dua fungsi yaitu: a) Action adalah fungsi untuk melakukan aksi yang dijalankan; dan b) Cancel adalah fungsi untuk membatalkan dari aksi yang akan dijalankan atau negasi dari fungsi Action.
Implementasi Ubah Properti
Ada beberapa properti yang dimiliki pada setiap itemnya. Pergantian tersebut dapat dilakukan secara bersamaan. Saat melakukan perubahan, aplikasi akan melakukan perulangan untuk semua item yang terpilih.
4.2.8
Implementasi Salin Item
Proses Salin Item adalah proses untuk mengisi clipboard dengan item-item yang dipilih untuk ditempel. Sebelum melakukan proses, clipboard sebelumnya harus direset kembali menjadi kosong, kemudian diisi dengan yang baru.
4.2.9
5. Uji Coba dan Evaluasi Pengujian fungsionalitas fitur aplikasi 3D Map Editor ini dilakukan secara mandiri dengan menyiapkan sejumlah skenario sebagai tolak ukur keberhasilan uji coba. Pengujian aplikasi 3D Map Editor meliputi: • Uji coba proses pembuatan peta baru; • Uji coba proses pengolahan peta; • Uji coba proses penyimpanan peta; • Uji coba proses Pembangkitan Peta; • Uji coba proses melakukan simulasi peta; • Uji coba proses membuat sebuah item; • Uji coba proses pengolahan item; • Uji coba proses pengendalian aksi; dan • Uji coba proses penempelan item. Dengan menjalankan semua skenario, dapat diketahui apakah aplikasi 3D Map Editor sudah berfungsi sesuai dengan yang diharapkan. Dari list pengujian diatas aplikasi 3D Map Editor telah berhasil diuji sesuai dengan keluaran yang diharapkan.
Implementasi Tempel Item
Untuk melakukan proses Tempel Item diperlukan syarat yaitu clipboard ada isinya. Proses ini akan memanggil proxy untuk melakukan duplikasi pada item yang ada pada clipboard. Untuk melakukan proses duplikasi menggunakan proxy.
4.2.10 Implementasi Undo Proses Undo dapat berjalan ketika ada aksi yang telah dilakukan pada saat editor peta. Setelah dilakukan proses Undo, aksi yang dibatalkan akan disimpan pada _trashCommand yang digunakan untuk kasus Redo.
4.2.11 Implementasi Redo Cara kerja dan implementasi Redo hamper sama dengan Undo, namun Undo merupakan syarat untuk melakukan Redo. Proses ini mengembalikan aksi yang ada pada trashCommand.
6.
Penutup
6.1 Kesimpulan Dari hasil uji coba aplikasi 3D Map Editor yang telah dilakukan, penulis mengambil kesimpulan sebagai berikut.
4.2.12 Implementasi Pembangkitan Peta Proses ini untuk menghasilkan peta secara otomatis dan memiliki solusi. Algoritma ini melakukan pengecekan tetangga yang berdekatan mulai dari atas, kanan, kiri, dan bawah. Setelah list tetangga tersebut valid maka dilakukan pengacakan
1. Operasi matriks pada transformasi objek 3D pada XNA 4 dapat menggunakan pustaka milik XNA 4 untuk melakukan manipulasi objek 3D 6
dan pengendalian kamera. 2. Konversi koordinat dapat sesuai dengan permainan dengan cara penyimpanan rincian peta harus berbasis index posisi. Rincian peta ditulis menggunakan DLINQ dengan menyimpan index tiap rincian peta sehingga peta dapat dibaca dengan mudah. 3. Kelas SceneEntity pada Aplikasi 3D Editor digunakan untuk Map menyediakan variabel standar yang digunakan sebagai perhitungan fisika. 4. Perfect Maze merupakan jenis peta maze yang selalu memiliki solusi, karena semua area pasti dapat dijangkau dan tidak memiliki perulangan. Peta dapat dibuktikan dengan menggunakan path finding. Path finding yang diguanakan pada aplikasi 3D Map Editor menggunakan BFS. 5. Pentingnya menggunakan pola perancangan yang tepat seperti salin, gunting, dan temple item menggunakan pattern proxy untuk menghemat kapasitas memori. 6. Proses kendali aksi sangat dibutuhkan untuk mengurangi kesalahan yang terjadi saat melakukan pembuatan peta. Hal ini dapat ditangani dengan menggunakan pola perancangan command. Yang menyimpan setiap aksi fungsi menjadi sebuah objek kelas. 7. Aplikasi 3D Map Editor dinyatakan telah berhasil memenuhi kebutuhan dari perangkat lunak yang diinginkan dan terbukti dari hasil uji coba yang telah dilakukan.
[4]
[5]
[6]
DAFTAR PUSTAKA [1]
[2]
[3]
Shimon Even. 1979. Graph Algorithm, (online), (http://books.google.co.id/books?id=m3 QTSMYm5rkC&pg=PA46&redir_esc=y #v=onepage&q&f=false) BFS. 2010. On the bias of BFS (Breadth First Search), (online), (http://arxiv.org/abs/1004.1729, 3 Januari 2011). Riemer Grootjans. 2010. XNA 4 Game Programming Recipes. 7
WCF. 2010. Windows Comunication Foundation, (online), (http://msdn.microsoft.com/enus/netframework/aa663324) LINQ. 2009. Getting Started in LINQ, (online), (http://msdn.microsoft.com/enus/library/bb397910.aspx) Addison Wesley Longman. 1998. Design Patterns.