Academia.eduAcademia.edu

main-bab-6.pdf

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.