3D LAN Tower Defence PC Game dengan Menggunakan Unreal Development Kit dan UnrealScript
Oleh: Michael Ade Soewondo NIM: 612005048
Skripsi Untuk melengkapi persyaratan memperoleh Gelar Sarjana Teknik Elektro
FAKULTAS TEKNIK ELEKTRONIKA DAN KOMPUTER UNIVERSITAS KRISTEN SATYA WACANA SALATIGA 2012
3D LAN Tower Defence PC Game dengan Menggunakan Unreal Development Kit dan UnrealScript
Oleh: Michael Ade Soewondo NIM: 612005048
Skripsi ini telah diterima dan disahkan Sebagai salah satu persyaratan guna mencapai SARJANA TEKNIK ELEKTRO
FAKULTAS TEKNIK ELEKTRONIKA DAN KOMPUTER UNIVERSITAS KRISTEN SATYA WACANA SALATIGA
Disahkan oleh : Pembimbing I
Pembimbing II
Handoko, M.Eng
Hartanto K. Wardana,MT.
Tgl.
Tgl.
INTISARI Teknologi komputer grafis telah mengalami perkembangan yang sangat pesat dalam kurun waktu 1 dekade terakhir. Salah satu industri yang sangat dipengaruhi oleh perkembangan teknologi komputer grafis adalah industri game. Berangkat dari kesadaran ini, penulis mempunyai mimpi untuk ikut mengambil bagian dalam industri game dengan membuat game sebagai topik skripsi sebagai langkah awal. Game dibuat dengan menggunakan game engine Unreal Development Kit (UDK) yang tersedia gratis. UDK dipilih karena memiliki beberapa kelebihan, diantaranya fiturnya yang lengkap sebagai game engine, komunitas yang cukup besar, dan free license untuk pemakaian non komersial. UDK juga dipilih dengan pertimbangan penulis akan memberikan evaluasi terhadap game engine tersebut. Game yang telah berhasil dibuat adalah game berjenis tower defence yang dapat dimainkan secara multiplayer hingga maksimal 4 pemain. Evaluasi game engine menunjukkan bahwa UDK memang adalah game engine terbaik yang bebas digunakan dengan tujuan non komersial. Dari hasil pengujian, menunjukkan adanya korelasi antara performa benchmark suatu graphic card dengan frame rate game, dimana semakin tinggi nilai benchmark, maka semakin tinggi pula frame rate yang dihasilkan.
i
KATA PENGANTAR
Skripsi ini disusun untuk melengkapi salah satu syarat untuk guna mencapai gelar Sarjana Teknik Elektro di Fakultas Teknik Elektronika dan Komputer Universitas Kristen Satya Wacana. Pelaksanaan skripsi ini merupakan kesempatan yang berharga bagi penulis untuk belajar menuangkan ide dan kreativitas yang bermanfaat bagi perkembangan diri penulis maupun merupakan sumbangan bagi masyarakat di mana penulis berada, secara khusus bagi perkembangan ilmu di bidang elektro komputasi. Diharapkan dengan adanya skripsi ini mahasiswa menjadi termotivasi untuk memdalami teknik pemrograman grafis bahkan hingga fakultas dapat mengembangkan engine grafisnya sendiri. Segala puji syukur kepada Tuhan Yesus Kristus untuk setiap kasih, berkat, hikmat, dan talenta yang telah diberikan. Apa yang telah dicapai penulis sejauh ini tentu tidak terlepas dari bimbingan dan dorongan dari berbagai pihak. Oleh karena itu dalam kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar – besarnya kepada: 1.
Bapak Handoko, M.Eng sebagai pembimbing I dan Bapak Hartanto K Wardana, MT sebagai pembimbing II. Terima kasih atas dukungan, koreksi, dan sumbangan pemikiran yang membantu penulis dalam menyusun skripsi ini.
2.
Bapak Andreas AF, MT dan Bapak Drs. Harsono selaku wali studi untuk bimbingan dan pengarahan selama menentukan rencana studi dan skripsi.
3.
Staff administrasi khususnya Mas Witjak dan Mbak Tin.
4.
Seluruh keluarga besar, papi, mami, dan adik yang telah banyak memberikan dukungan moril maupun materiil. ii
5.
Special thanks to John P Doran From Digipen Singapore who helped me to understand Unrealscript.
6.
Teman Elektro: Ore, Tjiong, Patria, Yabert dan semua yang tidak dapat penulis sampaikan satu-persatu. Terima kasih telah membantu memberi masukan ketika penulis sedang mengerjakan skripsi ini.
7.
Teman-teman PEDRO yang selalu setia menemani penulis bermain sebagai hiburan saat penulis mengalami kepenatan dalam mengerjakan skripsi. Akhir kata penulis berharap semoga skripsi ini dapat bermanfaat bagi mereka
yang membutuhkan, meskipun masih jauh dari sempurna. Penulis menantikan kritik dan saran untuk skripsi ini agar dapat dikembangkan guna mencapai hasil terbaik.
Salatiga, Januari 2012 Penyusun
iii
DAFTAR ISI
Halaman INTISARI ………………………………………………………………………….
i
KATA PENGANTAR …………………………………………………………….
ii
DAFTAR ISI ………………………………………………………………………
iv
DAFTAR TABEL ………………………………………………………………… vii DAFTAR GAMBAR …………………………………………………………….. viii
BAB I PENDAHULUAN …………………………………………………………. 1 1.1 Latar Belakang ………………………………………………………..
1
1.2 Maksud dan Tujuan …………………………………………………..
3
1.3 Batasan Masalah ………………………………………………………
3
1.4 Gambaran Tugas ………………………………………………………. 5 1.5 Garis Besar Penulisan …………………………………………………
6
BAB II DASAR TEORI …………………………………………………..……….. 8 2.1 Game Engine ………………………………………………..………… 8 2.1.1 Apa itu Game Engine …………………………………………. 8 2.1.2 Komponen Game Engine ……………………..…….………… 9 2.2 Unreal Development Kit ……………………………………………… 12 2.2.1 UnrealScript …………………………………………………… 12 2.2.1.1 Istilah-Istilah Bahasa………………………………….. 13 2.2.1.2 Hirarki Bahasa………………………………………….. 14 2.2.1.3 Contoh Kode……….…………………………………… 15 iv
2.2.2 UnrealEd …………………………………………………….... 16 2.2.2.1 Kismet……..……….…………………………………. 17 2.2.2.2 Archetype….……….…………………………………. 18 2.2.2.3 Matinee…………….…………………………………. 21 2.2.2.4 Material Editor…….………………………………….. 23 2.2.2.5 Cascade…………….…………………………………. 24 2.2.2.6 AnimSet Editor…….…………………………………. 28 2.2.2.7 AnimTree Editor….…………………………………… 31 2.2.2.8 Lightmass………….………………………………….. 34 2.2.2.9 Navigation Mesh….…………………………………..
36
2.3 SpeedTree ……………………………………………………………. 38
BAB III PERANCANGAN SISTEM ……………………………………………. 41 3.1 Cerita Dalam Game ……………….…………………………………
41
3.2 Mekanisme dalam game …………………………………………….
42
3.3 Kontrol ……………………………...………………………………..
42
3.4 Map/Peta ...…………………………………………………………… 43 3.5 HUD (Heads Up Display) ……………………………………………. 44 3.6 Menu Utama ……………….………………………………………… 45 3.7 Sistem Gameplay ………………….…………………………………
46
3.7.1 Sistem Wave Spawner atau Wave Generator…………………..
47
3.7.2 Sistem Penghitung kerusakan markas………………………….. 50 3.7.3 Sistem Tower ……………………………….………………….. 53 3.7.4 Sistem HUD dan Menu……………………...………………….. 55
v
3.8 Sistem Multiplayer …………………………………………………… 56 3.9 Class Diagram ………………………………………………………… 58
BAB IV PENGUJIAN DAN ANALISIS ………………………………………… 61 4.1 Penilaian terhadap UDK ...…………………………………………… 61 4.1.1 Pembelajaran …………………………………………………… 61 4.1.2 Kecepatan Pengembangan……………………………………… 63 4.1.3 Fleksibilitas ..…………………………………………………… 64 4.1.4 Stabilitas ..……………………………………………………… 65 4.1.5 Dokumentasi .…………………………………………………… 65 4.1.6 Lisensi ……..…………………………………………………… 66 4.1.7 Kemampuan Berkompetisi……………………………………… 68 4.2 Usability Testing ………..……………………………………………
69
4.3 Compatibility Testing ………….…………………………………….
70
BAB V KESIMPULAN DAN SARAN ………………………………………….. 73 5.1 Kesimpulan …………………………………………………………… 73 5.2 Saran …………………………………………………………………. 74
DAFTAR PUSTAKA …………………………………………………………….. 75
vi
DAFTAR TABEL
Halaman Tabel 3.1 Kontrol Pada Game……………………………………………………… 42 Tabel 4.1 Kemampuan yang dibutuhkan dalam pengembangan……………..…… 62 Tabel 4.2 Kelebihan dan kekurangan pada pembelajaran……………...………… 62 Tabel 4.3 Kelebihan dan kekurangan pada kecepatan pengembangan…………... 63 Tabel 4.4 Kelebihan dan kekurangan pada fleksibilitas …………………………
64
Tabel 4.5 Kelebihan dan kekurangan pada stabilitas ……………………………
65
Tabel 4.6 Kelebihan dan kekurangan pada dokumentasi ………………………… 66 Tabel 4.7 Kelebihan dan kekurangan pada lisensi ………………………….…… 67 Tabel 4.8 Kelebihan dan kekurangan pada kemampuan berkompetisi………..…
69
Tabel 4.9 Hasil usabillity testing ……………………..…………………………
69
Tabel 4.10 Hasil compatibility testing …………………………………………… 71
vii
DAFTAR GAMBAR Halaman Gambar 2.1 Tampilan Kismet Editor…………………………………………….
18
Gambar 2.2 Tampilan Unreal Editor memperlihatkan rumah hasil archetype….
20
Gambar 2.3 User Interface dari Matinee...……………………………………….
21
Gambar 2.4 Screenshot Material Editor………………………………………….
24
Gambar 2.5 User Interface Unreal Cascade.……………………………………..
25
Gambar 2.6 Screenshot dari AnimSet Editor .…………………………………..
31
Gambar 2.7 Tampilan AnimTree Editor………………………………..………..
32
Gambar 2.8 Contoh animasi kompleks dengan AnimTree.……………………..
34
Gambar 2.9 Perbandingan hasil bayangan dengan dan tanpa lights..…………..
35
Gambar 2.10 Contoh visualisasi ruangan dengan sistem pencahayaan langsung.
36
Gambar 2.11 Cahaya menembus jendela terlihat menarik…..…………………..
36
Gambar 2.12 Contoh Ambient Occlusion.……………………………………….. 37 Gambar 2.13 Navigation mesh pada Unreal Editor……………………………… 38 Gambar 2.14 User Interface dari SpeedTree………………...…………………….. 39 Gambar 2.15 Interaksi antara mesh dengan SpeedTree……………………….….. 40 Gambar 3.1 Konsep awal map……………………………..…………………….. 43 Gambar 3.2 Custom HUD ………………………………...……………………..
45
Gambar 3.3 Main Menu …………………………………..……………………..
45
Gambar 3.4 Diagram alir sistem wave spawner……………….………………..
48
Gambar 3.5 Contoh pemrograman visual dengan Kismet .……………………..
50
Gambar 3.6 Diagram alir sistem penghitung kerusakan markas………………..
51
Gambar 3.7 Diagram alir sistem tower…………………...……………………..
55
Gambar 3.7 Model relasi server-client…………………...……………………..
57
viii
Gambar 3.9 Class Diagram dari game …………………….…………………….. 58 Gambar 4.1 Hasil benchmark dari cpubenchmark.net……..……………………..
ix
72