11 0 1004 KB
LAPORAN PRAKTIKUM
GAME EDUKASI
MODUL 8
UNITY GAME PROGRAMMING
Oleh : IKHWAN CAESAR AMRI PRADANA
A710170079
Program Studi Pendidikan Teknik Informatika Fakultas Keguruan dan Ilmu Pendidikan Universitas Muhammadiyah Surakarta 2020
Mata Kuliah Prodi Nama NIM Tgl. Praktikum
: Praktikum Game Edukasi : Pendidikan Teknik Informatika : Ikhwan Caesar Amri Pradana : A710170079 : 11 Mei 2020
Acc :
BAB VIII UNITY GAME PROGRAMMING
A. DASAR TEORI Game programmer bertanggungjawab untuk mengubah konsep game (dari game designer) dan asset grafis (dari game artist) menjadi satu program game yang akan dimainkan nanti. Dalam proses itu, programmer
berinteraksi
dengan
kode-kode
dalam
bahasa
pemrograman. Proses interaksi ini disebut dengan istilah programming. Manipulasi objek merupakan bagian inti dari sebuah game, misalnya adalah reaksi objek yang timbul akibat adanya aksi. Untuk menciptakan reaksi yang realistis maka perlu dilakukan manipulasi, misalnya berubah ukuran, terjadi perpindahan koordinat posisi maupun rotasi objek. Untuk itulah perlu dilakukan dengan pemrograman. Kekuatan yang dimiliki hampir semua gameengine adalah bahasa pemrograman. Dengan adanya ini, sistem logika yang berada dibalik game tersebut dapat dijalankan dengan lebih baik dan resource yang digunakan dapat diminimalkan. Seperti yang sudah pernah dijelaskan pada modul 8 bahwa scripting pada Unity dapat dilakukan menggunakan dua bahasa pemrograman, yaitu C# dan Unity Script. Bentuk umum ketika pertama kali membuat Script baru, maka akan terdapat dua fungsi utamaya itu fungsi Start() dan Update(). Pada bab ini akan dibahas cara mengatur dan menjalankan transformasi objek, diantaranya translasi dan rotasi. Belajar bahasa pemrograman merupakan sebuah pembiasan. Pembiasaan dalam menuliskan baris-baris kode yang benar, pembiasaan dalam menggunakan penalaran yang tepat, dan pembiasaan dalam
menggunakan perumusan yang sesuai. Proses-proses tersebut juga akan memberikan keuntungan tersendiri bagi orang-orang yang mempelajari bahasa pemrograman.
Memberikan Script Saat
memberikan
scrip
pada
unity,
sebagai
seorang
programmer, saya percaya bahwa saat yang tepat untuk melakukan coding adalah saat dimana tidak ada jalan lain untuk membuat sebuah solusi, selain dengan coding. Sejauh ini, pendekatan ini cukup ampuh dalam membuat barisan kode yang efisien, yang memang ditujukan untuk suatu hal yang spesifik. Ini pula yang membuat saya nyaman bekerja di dalam Unity, karena tidak semua harus dilakukan dengan coding,
ada
banyak
hal
yang
bisa
dicapai
dengan
menggunakan tool berbasis GUI yang memang lebih intuitif, misalnya seperti animasi ataupun membuat shader. Meski demikian, saat harus melakukan coding, Unity mampu memberikan banyak fleksibilitas dan kedalaman yang mungkin dibutuhkan programmer untuk memenuhi sebuah tujuan. Sesuai nama di dokumentasinya, coding di dalam Unity lebih dikenal dengan istilah scripting. Penamaan ini penting, karena pada dasarnya, kita tidak sedang membuat sebuah sistem kompleks dari dasar, melainkan kita akan menambahkan perilaku dinamis ke dalam sebuah objek yang sudah ada. Scripting merujuk pada sebuah komponen tambahan yang bisa jadi tidak kompleks, namun keberadaannya vital untuk membuat sebuah objek yang dinamis. Sebagai contoh, scripting bisa kita aplikasikan untuk sebuah lampu yang ingin kita nyalakan saat seorang karakter memasuki sebuah
ruangan.
Contoh
sederhana
lain,
kita
butuh
melakukan scripting untuk membuat karakter tersebut berjalan saat sebuah tombol di kontroler ditekan. Hal-hal seperti ini mungkin sulit atau tidak intuitif dilakukan melalui GUI, dan di saat seperti inilah, scripting menjadi solusi yang bisa digunakan.
Manipulasi objek
Manipulasi objek merupakan bagian inti dari sebuah game, misalnya adalah reaksi objek yang timbul akibat adanya aksi. Untuk menciptakan reaksi yang realistis maka perlu dilakukan manipulasi, misalnya berubah ukuran, terjadi perpindahan koordinat posisi maupun rotasi objek. Untuk itulah perlu dilakukan dengan pemrograman. Kekuatan yang dimiliki hampir semua game engine adalah bahasa pemrograman. Dengan adanya ini, sistem logika yang berada dibalik game tersebut dapat dijalankan dengan lebih baik dan resource yang digunakan dapat diminimalkan. Window scene digunakan untuk melihat secara visual game yang kita bangun. Dengan transform tools yang berada pada toolbar Unity, kita bisa melakukan modifikasi kepada Game Object yang kita masukan ke dalam scene. Ada lima tools yang bisa kita gunakan untuk memodifikasi Game Object atau biasa disebut dengan transform tools. Diberi nama transform tools karena komponen Game Object yang akan kita modifikasi adalah komponen transform yang di dalamnya terdapat informasi posisi, rotasi, dan skala/ukuran. Untuk mengakses masing-masing tools yang ada di atas, kita bisa dengan klik tools yang ingin kita gunakan. Selain itu, terdapat juga shortcut untuk mengakses tools tersebut menggunakan keyboard yakni huruf Q, W, E, R dan T untuk mengakses hand tools, position transform tools, rotation transform tools, scale transform tools, dan rectangle transform tools. Berikut adalah fungsi untuk masing-masing transform tools : Hand tools : Digunakan untuk menggerakan posisi sudut pandang di dalam scene. Position transform tools: Digunakan untuk mengubah komponen posisi sebuah Game Object terhadap sumbu x, y, dan z. Terdapat handle yang bisa membantu kita untuk mengubah posisi terhadap satu sumbu saja misalnya sumbu merah bisa kita drag untuk menggerakan terhadap sumbu x saja atau kita bisa drag icon kotak di antara tiga panah (merah,
hijau, dan biru) untuk menggerakan object terhadap komponen x, y, dan z. Rotation transform tools: Digunakan untuk mengubah komponen rotasi pada sebuah Game Object terhadap sumbu x, y, dan z. Sama seperti tools lainnya, terdapat juga ikon sumbu yang akan membantu kita merotasi objek terhadap satu sumbu saja. Scale transform tools: Digunakan untuk mengubah komponen scale/ukuran dari sebuah Game Object terhadap sumbu x, y, dan z. Terdapat juga sumbu bantuan untuk mengubah scale terhadap satu sumbu saja. Rectangle transform tools: Digunakan untuk mengubah komponen dari sudut pandang 2D. Biasanya tools ini akan sangat membantu jika ingin memodifikasi komponen UI dalam game
B. TUJUAN PRAKTIKUM 1. Mahasiswa mengetahui cara pengontrolan dasar sebuah objek menggunakan script. 2. Mahasiswa
mengetahui
menggunakan script.
C. HASIL DAN ANALISA Kegiatan 1 : Translasi Objek
cara
melakukan
transformasi
objek
Gambar 8.1 Translasi Objek
Gambar 8.2 Script Translasi Objek Pada gambar diatas adalah objek terrain dan capsule yang saya buat berdasarkan panduan dari modul praktikum. Objek capsule ini nantinya akan diberi script sehingga dapat digerakkan dengan tombol panah atau tombol WASD pada keyboard.script untuk translasi objek capsule. Script tersebut menggunakan bahasa pemrograman C#. Setelah script selesai dibuat, jangan lupa memasang script tersebut ke dalam objek capsule agar dapat berfungsi dengan baik. Kecepatan gerakan capsule dapat diatur melalui script yaitu dengan cara dikalikan dengan variabel speed. Kegiatan 2 : Collision Detection
Gambar 8.3 Collision Detection
Gambar 8.4 Script Collision Detection
Pada gambardiatas adalah objek cube yang saya buat berdasarkan panduan dari modul praktikum. Objek cube ini akan dibuat tidak bisa menembus objek capsule yang sudah dibuat pada kegiatan 1. Untuk membuat objek capsule tidak dapat menembus objek cube dapat dilakukan dengan cara menghilangkan atau membuat non-active Capsule Collider. Kemudian tambahkan juga komponen Character Controller pada Capsule.script collision detection. Script tersebut merupakan perubahan sedikit dari script pada kegiatan 1. Dimana script dalam fungsi Update() yang digunakan untuk menggerakkan capsule pada kegiatan 1 diganti.
Kegiatan 3 : Rotasi Objek
Gambar 8.5 Rotasi Objek
Gambar 8.6 Script Rotasi Objek
Pada gambar diatas adalah penambahan objek cube baru yang saya buat berdasarkan pada modul praktikum. Objek cube tersebut cukup kecil dengan ukuran skala 0.5 untuk semua koordinat (x, y dan z). Nantinya objek cube tadi dapat dirotasi dengan menggunakan mouse.script yang digunakan untuk merotasi objek cube. Kecepatan rotasi dapat diatur dengan menambahkan variabel global yaitu public float rotationSpeed = 2.0f
Kegiatan 4 : Spawn Objek
Gambar 8.7 Spawn Objek
Gambar 8.8 Script Spawn Objek
Pada gambar diatas adalah spawn objek yang saya buat berdasarkan pada modul praktikum. Capsule dapat melakukan spawn objek, sehingga dapat digunakan untuk menghasilkan peluru. Peluru dibuat dengan objek sphere dan supaya peluru bisa bergerak harus ditambahkan script di dalamnya. Untuk memunculkan peluru dilakukan dengan cara klik kiri pada mouse. Setelah memenuhi jarak tertentu peluru yang telah ditembakkan akan hilang. script peluru yang saya buat berdasarkan pada modul praktikum. Terdapat dua variabel pada script tersebut, yaitu public float speed dan public float life. Hasil dari script ini adalah peluru bergerak ke depan dengan kecepatan tertentu. script launcher peluru yang saya buat berdasarkan pada modul praktikum. Script ini digunakan sebagai launcher peluru saat ditembakkan dengan cara klik kiri pada mouse.
D. TUGAS 1. Lanjutkan project kegiatan praktikum ini dengan menambahkan behavior enemy (berupa Cube) akan hilang ketika terkena beberapa kali tembakan. Jawab :
Gambar 8.9 Menambah Enemy Cube Pada gambar di atas adalah hasil dari tugas pertama ketika player menembakan peluru dan peluru mengenai objek kubus maka objek tersebut akan hilang. Dalam tugas pertama ini mengunakan script dari javascript untuk membuat objek menghilang ketika terkena peluru.
2. Buat supaya Capsule yang bertindak sebagai karakter dapat melompat ketika ditekan tombol space pada keyboard. Jawab :
Gambar 8.10 Tampilan Objek Cube Melompat Pada gambar diatas adalah hasil dari tugas nomor 2 dimana membuat player dapat melompat dengan menekan tombol Space . Dengan begitu player dapat menembak objek yang berada pada posisi tinggi sehingga player dapat menembak dengan mudah. Dan gambar di atas adalah contoh script yang di gunakan untuk membuat objek dapat melompat dan menembak. Untuk memunculkan peluru dilakukan dengan cara klik kiri pada mouse. Setelah memenuhi jarak tertentu peluru yang telah ditembakkan akan hilang.
E. KESIMPULAN DAN SARAN a. Kesimpulan 1) Dalam membuat game di Unity tidak semua harus dilakukan dengan coding, ada banyak hal yang bisa dicapai dengan menggunakan tool berbasis GUI yang memang lebih intuitif, misalnya seperti animasi ataupun membuat shader. 2) coding di dalam Unity lebih dikenal dengan istilah scripting. Scripting merujuk pada sebuah komponen tambahan yang bisa jadi tidak kompleks, namun keberadaannya vital untuk membuat sebuah objek yang dinamis. 3) Bahasa pemrograman pada Unity ada dua, yaitu bahasa C# dan JavaScript.
User
dapat
menggunakan
salah
pemrograman tersebut dalam membuat game.
satu
bahasa
b. Saran Di
harapkan
untuk
latihan
menggunakan
bahasa
pemrograman C# dan JavaScript dalam membuat game. Tidak hanya itu, latihan juga dalam mengatasi error yang terjadi pada script saat membuat game. Serta pahami langkah dalam modul yang di sediakan agar tidak bingung saat melakukan praktikum.
F. DAFTAR PUSTAKA [1] Sukirman. [2017]. Praktikum Game Edukasi. Surakarta : Universitas Muhammadiyah Surakarta [2] Mengenal Komponen pada User Interface. [2016] Diakses pada Minggu, 08 Juli 2018. [3] Dasar Pemrograman pada Unity. [2015]. Diakses pada Minggu, 08
Juli 2018.