BAB
6
Game Engine Unity 3D
6.1
Tujuan
• Mahasiswa mengenal game engine 3D bernama Unity.
• Mahasiswa memahami Graphical User Interface Unity 3D.
6.2
Sekilas Unity 3D
Unity merupakan game engine atau perangkat lunak yang dapat digunakan untuk
membuat game berbasis tiga dimensi (3D). Meski begitu, game engine ini juga dapat
digunakan untuk pengembangan game yang memiliki environment dua dimensi (2D).
Bahkan game engine ini juga mendukung untuk dilakukan deployment secara multiplatform, artinya game yang dibuat dengan Unity ini dapat dijalankan pada berbagai
sistem operasi antara lain PC, Mac & Windows stand alone, Android, iOS, Tizen, Xbox,
PS, HTML5, dan Smart TV. Dengan demikian, hanya dengan sekali build menggunakan
game resource yang sama, hasilnya dapat didistribusikan ke berbagai platform. Hal
ini akan membuat Developer game semakin mudah untuk mengembangkan game ke
berbagai platform tanpa harus dipusingkan dengan dependensi lain.
Game engine Unity dibangun mulai tahun 2004 atas dasar kepedulian terhadap indie
game developer yang tidak mampu membeli perangkat lunak untuk membuat game
dengan harga yang cukup mahal. Akan tetapi, baru tahun 2009 software ini baru benarbenar bisa dipakai secara publik. Game engine ini juga dapat diunduh secara gratis
melalui website resmi Unity dengan alamat http://unity3d.com. Ada beberapa tipe
lisensi penggunaan perangkat lunak ini, antara lain seperti dikutip dari website resminya
31
BAB 6. GAME ENGINE UNITY 3D
32
terlihat pada gambar 6.1. Personal artinya dapat digunakan secara gratis, sementara
versi Plus, Pro, dan Enterprise hanya dapat digunakan jika sudah membayar. Tentu saja
fitur dari masing-masing lisensi tersebut memiliki perbedaan.
Gambar 6.1: Lisensi Unity
Unity juga sudah mendukung untuk pengembangan game online, hanya saja perlu instalasi tambahan untuk dapat dijalankan pada browser berupa Unity Web Player.
Kelebihan lain dari Unity adalah dukungan bahasa pemrograman yang menjadikan game semakin powerfull. Bahasa pemrograman tersebut antara lain C#, dan JavaScript.
Dimana ketiga bahasa pemrograman tersebut terdokumentasikan dengan baik pada petunjuk halaman manual online web resmi Unity.
User Interface Unity
Versi terbaru dari Unity pada saat modul ini dibuat adalah 5.4.4f1 dengan tampilan
secara default seperti pada gambar 6.2. Secara umum tampilannya terbagi menjadi 6
window editor, antara lain: Project Window, Scene View, Hierarchy Window, Inspector
Window, Toolbar, dan Game View.
1. Project Window.
Merupakan tempat menampung seluruh asset dari project yang sedang dibuka.
Panel sebelah kiri menunjukkan struktur project secara hirarki. Saat folder dipilih,
maka panel sebelah kanannya akan menampilkan isi dari folder tersebut. Kolom
pencarian asset juga terdapat didalamnya sehingga akan memudahkan ketika jumlah assetnya cukup banyak, bahkan pencarian pun dapat dilakukan berdasarkan
tipe maupun label asset. Tampilan layout project window ini dapat diubah dari
(secara default) ”Two column layout” menjadi ”One column layout” pada bagian
pojok kanan atas.
2. Scene view
Merupakan tempat melakukan editing dan manipulasi seluruh game object yang
dibuat, mulai dari objek itu sendiri, hingga koordinat posisi masing-masing game
BAB 6. GAME ENGINE UNITY 3D
33
Gambar 6.2: Default user interface Unity
object. Terdapat perspective sumbu koordinat x, y dan z yang memungkinkan
pengguna untuk melihat dari berbagai sudut pandang yang berbeda.
3. Hierarchy window
Berisi daftar game object yang dapat dilihat parenting system dari objek tersebut.
Sehingga akan terlihat bahwa objek tersebut satu unit (induk) dengan objek yang
mana. Untuk melakukan itu dapat melalui drag-and-drop, misalnya saja objek
”main camera” akan disatukan dengan suatu objek untuk membuat game FPS
(First Person Shooter ), tinggal drag ”main camera” tersebut dan drop pada objek
yang diinginkan.
4. Inspector window
Project game dengan Unity dibuat dengan macam-macam game object misalnya
sound, Mesh, Script dan elemen grafik yang lain seperti cahaya. Melalui Inspector
window, seluruh informasi yang terdapat pada suatu game object akan terlihat
secara lebih jelas. Seluruh properties yang menempel dalam suatu game object
tersebut akan ditampilkan.
5. Toolbar
Terdiri atas 7 kontrol dasar dimana semuanya merujuk pada masing-masing bagian
editor yang berbeda, antara lain Transform Tools & Transform Gizmo Toggles
(digunakan untuk Scene View), Tombol Play/Pause/Step (untuk game view),
BAB 6. GAME ENGINE UNITY 3D
34
Cloud Button (membuka Unity Services Window), Account Drop-down, Layers
Drop-down, dan Layout Drop-down.
6. Game view
Merupakan tampilan hasil render dari kamera game yang merepresentasikan final
game yang akan dipublish. Sehingga akan terlihat tampilan awal game yang sudah
dibuat.
Pemrograman pada Unity
Bahasa pemrograman merupakan salah satu fitur yang dimiliki oleh kebanyakan game
engine, sehingga hal ini menjadikan game yang dibuat menjadi lebih powerfull. Begitu
juga dengan Unity, dukungan bahasa pemrograman juga dimiliki game engine ini, antara
lain :
1. C# (dibaca C-sharp), standar bahasa pemrograman yang mirip dengan Java atau
C++.
2. UnityScript, bahasa pemrograman yang dirancang khusus untuk Unity yang dimodelkan dari JavaScript.
Dengan bahasa pemrograman atau scripting ini, seluruh behavior pada game dapat
dilakukan modifikasi properties, manipulasi, memunculkan event dan input aktivitas yang
dilakukan pada game. Secara default, editor script asset pada Unity dilakukan dengan
perangkat lunak bernama MonoDevelop. Akan tetapi, editor tersebut dapat diganti
sesuai keinginan melalui menu Edit → Preferences → External Tools → External
Tool Editor → pilih editor eksternal yang sudah terinstall di komputer. Editor
eksternal misalnya Microsoft Visual Studio maupun editor bahasa pemrograman lain
yang mendukung C# atau JavaScript.
Terdapat dua fungsi utama pada pemrograman game menggunakan Unity, baik C#
maupun JavaScript, yaitu fungsi start() dan fungsi update(). Fungsi start() akan
dipanggil hanya sekali yaitu sebelum gameplay dimulai. Sehingga pada fungsi start() ini
sangat cocok digunakan untuk memuat seluruh resource game yang akan digunakan.
Sementara, fungsi update() merupakan tempat meletakkan kode yang menangani frame
update untuk game object. Fungsi update() ini akan dipanggil secara terus menerus
hingga game berhenti dijalankan.
BAB 6. GAME ENGINE UNITY 3D
6.3
6.3.1
35
Kegiatan Praktikum
Kegiatan 1: Membuat dan menjalankan project baru
1. Bukalah program Unity dan buat project game baru, kemudian beri nama dan
tentukan lokasi folder penyimpanan game tersebut serta pilih format game dalam
platform 3D.
2. Tambahkan game object baru berupa ”Plane” dengan cara : pilih menu Game
object → 3D Object → Plane.
3. Tambahkan game object lain misalnya ”Cube” dengan cara yang hampir sama
dengan cara sebelumnya.
4. Jalankan project tersebut dengan cara menekan tombol play pada bagian atas
toolbar
. Untuk menghentikan, tekan tombol play sekali lagi.
5. Lakukan eksperimen terhadap object ”Main camera” untuk mengatur posisi kamera, misalnya translasi pergesaran terhadap sumbu x, y, atau z dan rotasi kamera
tersebut. Jalankan dan amati serta lakukan analisis terhadap hasilnya.
6. Tambahkan game object 3D lain seperti Sphere, Capsule, Cylinder, Quad, Ragdoll,
dll. Atur koordinat posisi masing-masing objek dan jalankan project.
7. Simpanlah file tersebut dengan nama tertentu, maka dibagian project window akan
terlihat file baru yang dinamakan scene yang terdiri dari objek game dan dapat
digunakan untuk membuat menu utama, level, dll.
6.3.2
Manipulasi Objek Game
1. Manipulasi suatu objek game misalnya dilakukan untuk merubah ukuran (mengatur
scale), mengatur koordinat posisi (translasi) atau melakukan rotasi objek dan
merubah warna objek.
2. Pilih salah satu objek, misalnya Cube, kemudian ubah ukuran salah satu sisi Cube
, kemumenjadi lebih panjang dengan cara memilih tombol Scale
dian tarik salah satu sisinya.
3. Pilih objek Cylinder yang sudah ditambahkan, lakukan rotasi terhadap Cylinder
sebesar 90 derajat terhadap sumbu X.
4. Cara lain untuk memanipulasi skala dan rotasi serta posisi game objek yaitu menggunakan properties objek tersebut pada bagian Inspector window.
BAB 6. GAME ENGINE UNITY 3D
36
Gambar 6.3: Inspector window untuk mengubah properties objek
5. Berikan warna lain pada Cube menggunakan Material baru dengan cara pilih menu
Assets → Create → Material → ganti nama misalnya ”hijau”.
6. Perhatikan bagian Inspector window, ubah warnanya menjadi hijau atau warna
yang lain.
7. Pasang material warna tersebut pada objek Cube sehingga warnanya berubah menjadi hijau dengan cara memilih objek Cube → Mesh Renderer (inspector window) → Materials → pilih material warna yang baru dibuat.
6.3.3
Kegiatan 3: Scripting sederhana
1. Buat scene baru dari menu File → New scene, kemudian simpan file tersebut
dengan nama tertentu.
2. Sama seperti kegiatan sebelumnya, tambahkan Plane dan Cube yang terlihat oleh
kamera.
3. Tambahkan script baru pilih menu Assets → Create → C# script. Pilih Javascript jika bahasa pemrograman yang digunakan adalah JavaScript.
4. Berikan nama script tersebut misalnya ”inputUser”, lalu bukalah file tersebut dengan cara double click. Maka akan terbuka file tersebut dengan IDE MonoDevelop.
5. Pada bagian fungsi start(), tambahkan script → Debug.Log ("Belajar game
edukasi dengan Unity");
6. Pasang script tersebut pada objek Cube dengan cara memilih Objek Cube → Add
Component (bagian Inspector window) → Script → Pilih script yang baru saja
dibuat.
7. Jalankan project dan perhatikan bagian Console window. Maka tulisan ”Belajar
game edukasi dengan Unity” akan terlihat dibagian log tersebut.
BAB 6. GAME ENGINE UNITY 3D
37
8. Tambahkan script berikut pada bagian fungsi update() → Debug.Log ("Fungsi
update()");. Perhatikan bagian Console window dan amati apa yang terjadi.
6.3.4
Kegiatan 4: Input Keyboard dengan Script
1. Modifikasi script yang dibuat pada kegiatan 6.3.3 dengan menghapus seluruh perintah pada fungsi update(), dan tambahkan secript berikut kedalam fungsi update()
tersebut sehingga menjadi seperti berikut.
1
2
3
4
✈♦✐❞ Update () {
✐❢ (Input.GetKeyDown("right"))
print("keyboard panah kanan dipencet");
}
2. Jalankan project dan tekan panah kanan dari keyboard Anda, perhatikan bagian
Console window.
3. Tambahkan kondisi saat tombol keyboard panah kiri, atas dan bawah dipencet
seperti pada langkah sebelumnya.
6.4
Tugas
1. Buatlah scene baru, atau menggunakan scene pada kegiatan sebelumnya kemudian
buat script baru atau modifikasi script kegiatan diatas untuk menggerakkkan objek
suatu objek, misalnya Cube.
2. Lakukan hal yang sama seperti pada tugas 1 tetapi untuk menggerakkan kamera
utama menggunakan input keyboard selain yang sudah digunakan pada tugas 1.