Modul Game Programming 2a-1
Modul Game Programming 2a-1
“GAME PROGRAMMING”
Disusun Oleh:
i
LEMBAR PENGESAHAN
MODUL
GAME PROGRAMMING
Disusun Oleh:
SULASTRI EKSAN, ST., MT
Nip. 197907202006043002
Menyetujui,
Ketua Jurusan Teknik Elektro Seketaris Jurusan Teknik Elektro Koordinator Program Studi
D4 Teknik Informatika
i
Kata Pengantar
Sekiranya dengan adanya buku ajar ini, diharapkan dapat membantu para peserta didik
(Mahasiswa) dalam memahami prinsip dari Game Programming. Kritik dan saran sangat
diharapkan demi peningkatan kualitas dari buku ajar ini.
Penulis
ii
DAFTAR ISI
iii
3.3 Logika dan Perulangan ........................................................................................... 36
Latihan ...................................................................................................................................... 39
PEMBELAJARAN MODUL 3 Membuat Map dan Menambahkan Karakterk (Ethan) Pada
Game 3D Unity ......................................................................................................................... 40
BAB 1 Membuat Map pada 3D Unity ...................................................................................... 40
BAB 2 Menambahkan Character (Ethan) pada 3D Unity ........................................................ 54
Latihan ...................................................................................................................................... 57
PEMBELAJARAN MODUL 4 Praktikum Pemrograman Game ............................................. 58
BAB 1 Membuat efek Water Basic dan Directional Light pada 3D Unity .............................. 58
BAB 2 Third Person Shooter dan First Person Shooter ............................................................ 62
BAB 3 Mengatur Animasi dan Menambahkan Efek Pada Player ............................................ 68
BAB 4 Augmanted Reality menggunakan Vuforia .................................................................. 85
Latihan ...................................................................................................................................... 93
PEMBELAJARAN MODUL 5 Mengolah objek tiga dimensi, Membuat asset, Perpindahan
antar scene ................................................................................................................................. 94
Latihan .................................................................................................................................... 106
iv
Bab 1 Pendahuluan
Matakuliah Game Programming merupakan matakuliah dasar dalam dua bidang kajian
yang berbeda yaitu rekayasa perangkat lunak dan sistem cerdas. Untuk bidang kajian sistem
cerdas terdapat tambahan materi kecerdasan buatan dalam game didunia semakin pesat. Terdapat
beberapa platform game baru yang memungkinkan para developer untuk “menjual” game yang
dibuat untuk mendapatkan profit atau suatu nilai tertentu. Peralatan untuk bermain game digital
juga semakin canggih dari komputer, smartphone, playstation, perangkat virtual reality dan
berbagai perangkat komputer visi yang baru. Hal tersebut akan merubah pola bermain player dari
segi user experience. Di samping itu perkembangan buatan di dalam komponen game juga
menjadi topik yang menarik diteliti. Berikut adalah beberapa topik yang akan dibahas di mata
kuliah ini :
1. Game Development
2. Game Design Document, Game Evolution
3. Dasar Pemrograman Game dengan Unity C#
4. 2D game di desktop android
5. Game State Machine
6. Markebase & Markerless Augmented Reality Game
1
2. Peta Kedudukan Modul
2
3. Analisis Kebutuhan Modul
Kompetensi Indikator Materi pokok Stategi Alokasi Referensi Evaluasi
Pert
dasar Pembelajaran waktu / acuan
Mahasiswa dapat 1. Cakupan materi dan pokok bahasan 1. Kontrak Perkuliahan - Diskusi 400 1. kontrak kuliah Tanya
menyebutkan 2. Tujuan dan manfaat 2. Ruang lingkup Pemrograman game - Ceramah menit 2. Silabus dan jawab
cakupan materi, 3. Buku-buku yang digunakan 3. Tujuan dan manfaat - tanya jawab RPKPS
pokok bahasan,
tujuan dan manfaat
mempelajari mata Pendahuluan
kuliah Dapat mengenal dan menggunakan Mengenal Tools Air for Android.
1 pemrograman Tools pada Pemrograman game CS 6 Menu bar
game. Component Inspektor
Tool Box
Libraries
Stage
3
4 Menggunakan Dapat membuat program dengan Variabel - ceramah 400 - Rich Shupe “Learning 1. Monitoring
variable melibatkan variable dan operasi - memanggil variable pada sebuah fungsi - tanya jawab menit Action Script 3.0” perkembangan
pada operator matematika - praktik di - Maulana, Irman. Proyek Ujian Tengah
matematika laboratorium “Pemrograman Game Semester 2
Teks dengan Acrion Script 2. Mengingatkan materi
Operasi Teks Dapat membedakan teks static, dynamic - jenis teks dan aplikasinya 3.0 dengan Adobe yang harus dibaca
(string), tipe teks dan teks input beserta aplikasinya Flash CS 6” pada minggu depan.
7 Fungsi Mendeteksi Dapat membuat fungsi Tumbukan - ceramah 400 - Rich Shupe “Learning 1. Monitoring
Tumbukan tumbukan dan aplikasinya - membuat fungsi tumbukan antar objek - tanya jawab menit Action Script 3.0” - perkembanga n Proyek
movie clips - praktik di Maulana, Irman. Ujian Akhir
laboratorium “Pemrograman Game Semester
Fungsi sensor Dapat membuat fungsi sensor tumbukan Sensor dengan Acrion Script
tumbukan dan aplikasinya - menambahkan fungsi sensor tumbukan agar 3.0 dengan Adobe 2.
lebih teliti dalam mendeteksi tumbukan Flash CS 6” Mengingatkan materi
Dapat membuat fungsi setting audio dan Setting Audio yang harus dibaca pada
Membuat Setting aplikasinya - fungsi play, stop, pause dan volume audio minggu depan.
Audio
Dapat membuat fungsi pause game dan Pause Game
aplikasinya - fungsi pause game
Membuat fungsi
Pause
4
8 Perancangan dan Dapat membuat perancangan dan desain Perancangan - ceramah 400 - Rich Shupe “Learning 1. Monitoring
Desain Game Quiz beberapa asset yang diperlukan dalam - storyboard - tanya jawab menit Action Script 3.0” - perkembanga n Proyek
Game Quiz - flow chart - praktik di Maulana, Irman. Ujian Akhir
laboratorium “Pemrograman Game Semester
Desain Asset dengan Acrion Script
- desain menu 3.0 dengan Adobe 2.
- desain button Flash CS 6” Mengingatkan materi
- desain soal yang harus dibaca pada
minggu depan.
9 Programming Game Dapat membuat navigasi antar menu Navigasi Antar Menu - ceramah 400 - Rich Shupe “Learning 1. Monitoring
Quiz dalam game - fungsi navigasi antar halaman - tanya jawab menit Action Script 3.0” - perkembanga n Proyek
- praktik di Maulana, Irman. Ujian Tengah
Dapat membuat fungsi memanggil soal Data XML laboratorium “Pemrograman Game Semester
dari data xml - menulis format soal di xml dengan Acrion Script
- load data xml ke flash 3.0 dengan Adobe 2.
Dapat membuat fungsi salah Flash CS 6”
UJIAN TENGAH SEMESTER
10 Perancangan dan Dapat membuat perancangan dan Desain Perancangan - ceramah 400 - Rich Shupe “Learning 1. Monitoring
Desain Game asset yang - storyboard - tanya jawab menit Action Script 3.0” - perkembanga n Proyek
Arcade diperlukan dalam Game Arcade - flow chart - praktik di Maulana, Irman. Ujian Akhir
Game laboratorium “Pemrograman Game Semester
Desain Asset dengan Acrion Script
- desain menu 3.0 dengan Adobe 2.
- desain button Flash CS 6” Mengingatkan materi
- desain karakter yang harus dibaca pada
minggu depan.
11 Programming Game Dapat membuat fungsi Kontrol karakter - ceramah 400 menit - Rich Shupe “Learning 1. Monitoring
Arcade menggerakkan objek pesawat - fungsi menggerakkan karakter pesawat - tanya jawab Action Script 3.0” - perkembanga n Proyek
- praktik di Maulana, Irman. Ujian Akhir
Dapat membuat fungsi tembakan player Tembakan laboratorium “Pemrograman Game Semester
- membuat fungsi tembakan dengan Acrion Script
Dapat membuat fungsi 3.0 dengan Adobe 2.
kecerdasan player Kecerdasan Buatan Flash CS 6” Mengingatkan materi
- fungsi kecerdasan buatan pada karakter yang harus dibaca pada
musuh minggu depan.
12 Programming Game Dapat membuat fungsi musuh random Random - ceramah 400 1. Monitoring
Arcade - membuat fungsi random musuh - tanya jawab menit perkembanga n Proyek
- praktik di Ujian Akhir
laboratorium
5
13 Dapat membuat fungsi score dan nyawa Score dan Nyawa - Semester
- membuat fungsi perhitungan score dan
nyawa karakter 2.
Dapat membuat fungsi indikator Indikator Tumbukan Mengingatkan materi
tumbukan - fungsi menampilkan efek saat tumbukan yang harus dibaca pada
Dapat membuat fungsi menang kalah Menang Kalah minggu depan.
membuat fungsi kondisi jika menang dan
kalah
14 Perancangan dan Dapat membuat perancangan dan desain Perancangan - ceramah 400 - Rich Shupe “Learning 1. Monitoring
Desain Game asset yang diperlukan dalam game - storyboard - tanya jawab menit Action Script 3.0” - perkembanga n Proyek
Adventure adventure - flow chart praktik di Maulana, Irman. Ujian Akhir
laboratorium “Pemrograman Game Semester
Desain Asset dengan Acrion Script 2.
- desain menu 3.0 dengan Adobe Mengingatkan materi
- desain button Flash CS 6” yang harus dibaca pada
- desain karakter minggu depan.
15 Programming Game Dapat Membuat fungsi navigasi antar Navigasi antar halaman - ceramah 400 - Rich Shupe “Learning 1.
Adventure halaman - fungsi navigasi / pindah halaman - tanya jawab menit Action Script 3.0” - Mengingatkan
- praktik di Maulana, Irman. Jadwal
Dapat Membuat fungsi kontrol karakter Kontrol Karakter laboratorium “Pemrograman Game Presentasi
player - membuat fungsi menggerakkan karakter dengan Acrion Script Proyekk
3.0 dengan Adobe
Dapat Membuat fungsi Kecerdasan Buatan Flash CS 6”
kecerdasan karakter musuh - memberi fungsi kecerdasan buatan musuh
6
4. Capaian Pembelajaran Modul
- Modul 1
Capaian pembelajaran:
Setelah mempelajari materi dalam modul ini, mahasiswa diharapkan mampu:
1. Memahami Dasar teori tentang Game Programming
2. Memahami proses pembuatan Game dan proses pengembangan Game
- Modul 2
Capaian Pembelajaran:
Setelah mempelajari materi dalam modul ini, mahasiswa diharapkan mampu:
1. Mengetahui apa itu aplikasi Game 3D Unity
2. Memahami dasar-dasar pengunaan aplikasi Game 3D Unity
3. Mengetahui dan memahami Bahasa Pemrograman yang di gunakan pada aplikasi
Game 3D Unity
- Modul 3
Capaian Pembelajaran:
Setelah mempelajari materi dalam modul ini, mahasiswa diharapkan mampu:
1. Mengetahui langkah-langkah pembuatan map dan menambahkan karakter pada
aplikasi Game 3D Unity
- Modul 4
Capaian Pembelajaran:
Setelah mempelajari materi dalam modul ini, mahasiswa diharapkan mampu:
1. Memahami pembuatan efek water basic pada aplikasi Game 3D Unity
2. Memahami penggunaan Directional Light pada aplikasi Game 3D Unity
3. Mengetahui perbedaan Third Person Shooter dan First Person Shooter serta cara
pembuatannya pada aplikasi Game 3D Unity
4. Mengetahui pembuatan animasi dan efek karakter pada aplikasi Game 3D Unity
5. Mengetahui pembuatan Augmented Reality menggunakan Vuforia
- Modul 5
Capaian Pembelajaran:
Setelah mempelajari materi dalam modul ini, mahasiswa diharapkan mampu:
1. Memahami pengolahan objek 3 dimensi pada aplikasi Game 3D unity
2. Memahami pembuatan Asset dan Perpindahan Scene pada aplikasi Game 3D Unity
7
5. Petunjuk Pembelajaran
Untuk Mahasiswa
Untuk Dosen
1. Dosen / instruktur harus menguasai sepenuhnya isi modul dan mempunyai daftar bagian
modul yang mungkin sulit bagi peserta didik dan mempersiapkan penjelasan / jawaban
yang diperlukan.
2. Dosen / instruktur harus mempunyai catatan posisi dan kemajuan setiap peserta didik
dan sekaligus memikirkan sumber informasi lain yang dapat disarankan kepada peserta
didik.
3. Dosen / instruktur hendaknya dapat meningkatkan motivasi peserta didik setiap saat
terutama bagi peserta didik yang berhasil
4. Sebelum memberikan verifikasi keberhasilan peserta didik, guru / instruktur harus
mengevaluasi keberhasilan peserta didik dengan memberikan pertanyaan, soal, test dan
sebagainya yang telah dipersiapkan terlebih dahulu.
5. Modul yang digunakan oleh peserta didik harus dimulai secara berurutan.
6. Setiap satu modul selesai, peserta didik harus melaporkannya kepada fasilitator dan
diverifikasi oleh fasilitator melalui tes sederhana, tanya jawab dan sebagainya.
7. Peserta didik ditugaskan untuk membuat rangkuman setiap modul yang telah mereka
pelajari.
8. Peserta didik dapat melanjutkan ke modul berikutnya setelah diverifikasi.
9. Bila peserta didik dapat menyelesaikan seluruh modul dalam satu tingkat dengan waktu
kurang dari yang ditetapkan, maka mereka diberikan modul pengayaan.
10. Modul ini merupakan edisi ketiga dari edisi awal materi kurikulum 2004. Oleh karena
itu, Dosen/ instruktur diharapkan:
a. membuat catatan rinci mengenai kekurangan modul ini
b. Menambahkan materi yang dianggap lebih baik dari yang ada, sesuai dengan
kondisi setempat.
8
PEMBELAJARAN MODUL 1
Dasar Teori Game Programming
Permainan (games) adalah setiap kontes antara pemain yang berinteraksi satu sama lain
dengan mengikuti aturan-aturan tertentu untuk mencapai tujuan tertentu pula (Sadiman, 1993:75).
Game berasal dari kata bahasa inggris yang berarti dasar permainan. Permainan dalam hal ini
merujuk pada pengertian kelincahan intelektual( Intellectual Playability Game) yang juga bisa
diartikan sebagai arena keputusan dan aksi pemainnya. Dalam game, ada target-target yang ingin
dicapai pemainnya.
Menurut Wahono (ilmukomputer.com.2007) mengemukakan game merupakan aktifitas
terstruktur atau semi terstruktur yang biasanya bertujuan untuk hiburan dan kadang dapat
digunakan sebagai sarana pendidikan. Permainan (games) adalah cara bermain dengan mengikuti
aturan-aturan tertentu yang dapat dilakukan secara individu maupun berkelompok guna mencapai
tujuan tertentu. Game berasal dari kata bahasa inggris yang berarti dasar permainan. Permainan
dalam hal ini merujuk pada pengertian kelincahan intelektual( Intellectual Playability Game)
yang juga bisa diartikan sebagai arena keputusan dan aksi pemainnya. Dalam game, ada target-
target yang ingin dicapai pemainnya.
1.2 Sejarah Game
Generasi Pertama (Game Konsol)
Generasi pertama konsol permainan video berlangsung dari tahun 1972, dengan rilis dari
Magnavox Odyssey, hingga 1977, ketika “pong”-style produsen konsol meninggalkan pasar
secara massal karena pengenalan dan keberhasilan mikroprosesor berbasis konsol.
Generasi Kedua (Game Konsol)
Dalam sejarah komputer dan video game, generasi kedua (biasa disebut sebagai awal era
8 bit atau kurang lebih 4 bit era) dimulai pada tahun 1976 dengan merilis Fairchild Channel F dan
Radofin 1292 Advanced Programmable Video sistem. Di era generasi kedua ini yang menjadi
primadona konsol game adalah konsol game ATARI. Beberapa contoh konsol game pada
9
generasi kedua dapat dilihat disamping. Dari ki-ka adalah Fairchild Channel F,Atari 2600,
Magnavox Odyssey ver. 2 , Atari 5200.
Generasi Keenam
Generasi keenam ini ditandai dengan munculnya konsol-konsol game next generation dari
masing-masing perusahaan seperti SONY, SEGA,Nintendo serta munculnya satu lagi konsol
game baru yang diluncurkan oleh Microsoft yang diberi nama Xbox. Perang konsol game ini
akhirnya mengakibatkan jatuhnya perusahaan konsol SEGA yang tidak dapat lagi meneruskan
konsol next generation(Dreamcast) mereka dan lebih memilih untuk berkonsentrasi dibidang
pembuatan game konsol.
Generasi Ketujuh (Perang Konsol Portable)
Dikarenakan semakin canggihnya teknologi di bidang teknologi maka kemudian 3
perusahaan konsol terbesar (Sony, Nintendo, dan Microsoft) mengeluarkan kembali konsol
10
next-generation mereka keluaran terbaru. Sony mengeluarkan konsol next-gen yang diberi
nama PS3(Playstation 3), lalu Nintendo dengan Nintendo Wii kemudian Microsoft dengan
Xbox 360. Pada generasi ini semakin dikembangkan sistem permainan online atau permainan
yang melibatkan banyak pemain yang terhubung dengan konsol mereka dan semakin
ditinggalkannya permainan single player.
Strategy
STRATEGY adalah genre game yg memiliki gameplay untuk mengatur suatu unit atau
pasukan untuk menyerang markas musuh dalam rangka memenangkan permainan. biasanya
di dalam game Strategy, kita dituntut untuk mencari gold untuk membiayai pasukan kita.
Sports
Sports Adalah genre bertema permainan olahraga. Sistem permainan akan berbeda-beda
tergantung jenis olahraga yang menjadi tema game tersebut.
Simulation
Simulasi Adalah genre yang mementingkan realisme. Segala faktor pada game ini sangat
diperhatikan agar semirip didunia nyata. Segala nilai, material, referensi, dan faktor lainnya
adalah berdasarkan dunia nyata. Cara memainkannya juga berbeda, karena biasanya kontrol
yang dimiliki cukup rumit. Genre simulasi meliputi game racing, flight, sampai militer.
11
Tycoon
Tycoon adalah game yg menjadikan kita sebagai seorang bussinesman yang akan
mengembangkan sesuatu Property untuk dikembangkan hingga laku di pasaran.
Racing
Racing Game adalah game sejenis racing yg memungkinkan kita untuk mengendalikan
sebuah kendaraan untuk memenangkan sebuah balapan.
Action Adventure
Action Adventure adalah game berupa petualangan salah seorang karakter yg penuh dengan
penuh aksi yg akan terus ada hingga game tersebut tamat. (Biasanya Action dimasukan
kategori RPG).
Arcade
Arcade game adalah genre game yang tidak terfokus pada cerita, melainkan hanya dimainkan
"just for fun" atau untuk kejar-mengejar point / highscore.
Fighting Game
Fighting adalah genre game bertarung. Seperti dalam arcade, pemain dapat mengeluarkan
jurus-jurus ampuh dalam pertarungannya. Genre fighting biasanya one on one dalam sebuah
arena yang sempit.
12
BAB II Game Engine
2.1 Pengertian Game Engine
Game Engine adalah sebuah perangkat lunak yang dirancang untuk membuat sebuah game.
Sebuah game egine biasanya dibangun dengan mengenkapsulasi beberapa fungsi standar
yang umum digunakan dalam pembuatan sebuah game. Misalnya fungsi rendering,
pemanggilan suara, network, atau pembuatan partikel untuk special effect. Sebagian besar
game egine umumnya berupa library atau sekumpulan fungsi-fungsi yang penggunaannya
dipadukan dengan Bahasa pemrograman.
Sebuah Game Engine Juga biasanya dilengkapi dengan fungsi-fungsi grafis atau komputasi
dasar yang jarang diketahui oleh developer. Game engine membungkus itu semua untuk
menjadikan proses pembuatan menjadi lebih cepat dan mudah. Beberapa game egine yang
memiliki fitur tersebut adalah : TrueVision, Irrlicht dan Ogre3D.
Terdapat juga game egine yang sudah dilengkapi dengan IDE (Integrated Development
Environment) adalah program komputer yang memiliki beberapa fasilitas yang diperlukan
dalam pembangunan perangkat lunak. Tujuan dari IDE adalah untuk menyediakan semua
utilitas yang diperlukan dalammembangun perangkat lunak. Game Egine yang sudah
dilengkapi dengan IDE antara lain : UDK, Crysis, UNITY.
Gambar 1 (Roedavan, Rickman. (2014). Unity Tutorial Game Engine. Penerbit informatika.
Bandung)
13
Gambar 2 (Roedavan, Rickman. (2014). Unity Tutorial Game Engine. Penerbit Informatika.
Bandung
2. Story Board
Story Board adalah sketsa gambar yang disusun berurutan sesuai dengan naskah, dengan
story board kita dapat menyampaikan ide cerita kita kepada orang lain dengan lebih
mudah. Karena kita dapat mengiring khayalan seseorang mengikuti gambar-gambar yang
tersaji, sehingga menghasilkan persepsi yang sama pada ide cerita kita. Story Board pada
game sedikit berbeda dari story board animasi, dimana pada story board game terdapat
goal / mission yang akan dibuat pada game itu sendiri. Kemudian Story Board pada game
menjelaskan tentang alur permainan itu sendiri seperti apa tergantung dari jenis game.
Misalkan game bergenre arcade tidak memiliki alur cerita namun game tersebut menitik
beratkan pada perolehan point. Jadi Story Board yang dibuat yaitu bagaimana pemain
mendapat nilai setinggi mungkin.
14
3. Fungsi Story Board
- Menggambarkan sketsa cerita sebuah game berdasarkan garis besar seperti scene
awam tengah dan akhir.
- Memudahkan proses produksi game.
- Merupakan perencanaan dalam sebuah game design.
15
6. Game Objek
Game Objek adalah objek mendasar di Unity yang mewakili karakter, alat peraga, dan
pemandangan. Game Objek bertindak sebagai komponen yang mengimplementasikan
fungsi nyata dalam sebuah game. (https;//docs.unity3d.com)
16
Gambar 4 Contoh game layout chart (D.Michle Ploor "Slide Presentasi video game design
composition")
8. Flowboard
Flowboard adalah persilangan dari flowchart dan storyboard, dimana storyboard adalah
dokumen linier yang digunakan untuk merencanakan serangkaian gambar sesuai jalan
cerita, dan flowchart digunakan programmer untuk mendokumentasikan algoritma. Jadi
dapat disimpulkan bahwa flowboard mengkombinasikan dua ide tersebut untuk
mendokumentasikan struktur dari game.
17
BAB IV GDLC (Game Development Life Cycle)
GDLC adalah suatu proses pengembangan sebuah game yang menerapkan pendekatan iteratif
yang terdiri dari 6 fase pengembangan, dimulai dari fase inisialisasi/pembuatan konsep,
preproduction, production, testing, beta dan realease.
Dari 6 fase tersebut dapat dikelompokkan menjadi 3 proses utama yaitu:
1. Proses Inisialisasi yang terdiri dari konsep dan design,
2. Proses produksi terdiri dari Pra Produksi, Produksi, dan Pengujian (Alpha dan Beta)
3. Realease
Fase dan Proses GDLC Guidelines dapat dilihat pada gambar dibawh ini :
B. Pra-produksi
Pra-produksi adalah salah satu fase yang penting dalam siklus produksi. Pra-produksi melibatkan
penciptaan dan revisi desain game dan pembuatan prototipe permainan. Desain game berfokus
pada mendefinisikan genre permainan, gameplay, game mekanik/konfensional, alur cerita,
karakter, tantangan, faktor kesenangan, aspek teknis, dan dokumentasi elemennya dalam
Dokumen Desain Game (GDD).
Setelah GDD dibuat, bentuk prototipe dibuat untuk menilai desain game dan keseluruhan ide.
Dalam iterasi pertama siklus produksi, prototipe yang dibuat adalah fondasi dan struktur,
18
sementara pada iterasi berikutnya, prototipe terkait yang akan disempurnakan adalah perincian
dan penyempurnaan formal.
Foundation, prototipe pertama, terkait dengan kriteria kualitas permainan yang menyenangkan.
Foundation digunakan untuk menunjukkan mockup gameplay inti dan kemampuan game.
Kriteria kualitas game yang menyenangkan dilakukan pengujian secara internal, yaitu diuji
melalui kuesioner atau diskusi dengan team internal.
Struktur, penyempurnaan, dan terkait dengan kriteria kualitas fun dan fungsional. Karakteristik
yang paling utama dari struktur adalah menunjukkan gameplay inti dari permainan dan mekanika
inti terkait seperti aritmatika, logika, dan aturan permainan.
Kuesioner dan diskusi digunakan untuk menguji kriteria kualitas fun dan fungsionalitas. Kriteria
kualitas fungsional diuji melalui playtesting, di mana tester diberikan beberapa tugas dan tujuan
untuk mencapai sesuai dengan skenario pengujian.
Pra-produksi berakhir ketika revisi atau perubahan desain game telah disetujui dan
didokumentasikan di GDD.
C. Produksi
Produksi adalah proses inti yang berputar di sekitar penciptaan aset, pembuatan kode sumber, dan
integrasi kedua elemen. Prototipe terkait dalam fase ini adalah perincian dan penyempurnaan
formal.
Rincian Formal adalah struktur yang disempurnakan dengan mekanika dan aset yang lebih
lengkap. Kegiatan produksi yang terkait dengan penciptaan dan penyempurnaan detail formal
adalah menyeimbangkan permainan (terkait dengan kriteria kualitas yang seimbang),
menambahkan fitur baru, meningkatkan kinerja secara keseluruhan, dan memperbaiki bug
(terkait dengan kriteria kualitas fungsional dan internal yang lengkap).
Penyeimbangan permainan yaitu penyesuaian yang terkait dengan kesulitan permainan untuk
membuat kesulitan game yang tepat (Leveling).
Refinement adalah prototipe lengkap yang merupakan subjek dari permainan. Kriteria kualitas
terkait game fun dan dapat diakses. Kegiatan selama penyempurnaan diarahkan untuk membuat
permainan lebih menyenangkan, menantang, dan lebih mudah dipahami. Hanya perubahan kecil
yang diizinkan dalam fase ini.
D. Pengujian
Pengujian dalam konteks ini berarti pengujian internal dilakukan untuk menguji kegunaan
permainan dan pemutaran. Metode pengujian khusus untuk setiap tahap prototipe.
Perincian Formal Pengujian dilakukan menggunakan playtest untuk menilai fungsionalitas fitur
dan kesulitan permainan (terkait dengan keseimbangan).
19
Metode untuk menguji kriteria kualitas fungsional adalah melalui fitur playtesting. Untuk
menguji kriteria kualitas internal yang lengkap, dapat dilakukan melalui playtesting bersamaan
dengan uji fungsi.
Ketika tester menemukan bug, celah, atau kegagalan selama playtesting, penyebab dan skenario
untuk mereproduksi kesalahan perlu didokumentasikan dan dianalisis. Untuk menguji kriteria
kualitas yang seimbang, bermain dengan beberapa perawatan yang berbeda digunakan untuk
mengkategorikan apakah perawatan terlalu sulit, terlalu mudah, atau baik-baik saja.
Perbaikan Pengujian terkait dengan menyenangkan dan kriteria kualitas aksesibilitas. Dalam
penyempurnaan pengujian, kesenangan diuji melalui playtest dan umpan balik langsung dari
sesama pengembang, apakah itu membosankan, membuat frustrasi, menantang, dll. Aksesibilitas
dapat diuji melalui pengamatan perilaku penguji. Jika tester merasa sulit untuk bermain dan
memahami permainan, itu berarti bahwa game tersebut tidak cukup dapat diakses. Output dari
pengujian adalah laporan bug, permintaan perubahan, dan keputusan pengembangan. Hasilnya
akan memutuskan apakah sudah waktunya untuk maju ke fase berikutnya (Beta) atau mengulangi
siklus produksi.
E. Beta
Beta adalah fase untuk melakukan pengujian pihak ketiga atau eksternal yang disebut pengujian
beta. Pengujian beta masih menggunakan metode pengujian yang sama dengan metode pengujian
sebelumnya, karena prototipe terkait dalam pengujian beta adalah perincian dan penyempurnaan
formal. Metode pemilihan tester datang dalam dua jenis: beta tertutup dan beta terbuka. Ditutup
beta hanya memungkinkan individu yang diundang untuk menjadi peserta, sementara beta
terbuka memungkinkan siapa saja yang mendaftar menjadi peserta. Kriteria kualitas dalam beta
terkait erat dengan tahap prototipe saat ini. Dalam pengujian detail resmi, penguji diminta untuk
menemukan bug (terkait dengan kriteria kualitas fungsional dan internal yang lengkap). Dalam
penyempurnaan pengujian, penguji diberi lebih banyak kebebasan untuk menikmati permainan,
karena sasaran lebih diarahkan untuk mendapatkan umpan balik (terkait dengan kriteria kualitas
aksesibilitas dan menyenangkan). Output dari pengujian beta adalah laporan bug dan masukan
pengguna. Sesi Beta ditutup terutama karena 2 alasan, baik jangka beta berakhir atau jumlah
penguji beta yang ditentukan telah memberikan laporan uji mereka. Dari sini, dapat menyebabkan
siklus produksi lagi untuk memperbaiki produk atau terus merilis game jika hasilnya memuaskan.
F. Rilis
Sudah saatnya build game telah mencapai tahap akhir dan siap untuk dirilis ke publik. Rilis
melibatkan peluncuran produk, dokumentasi proyek, berbagi pengetahuan, post-mortems, dan
perencanaan untuk pemeliharaan dan ekspansi permainan.
20
Latihan
1. Buat contoh Storyboard dari salah satu game yang anda tau, dan sesuaikan
dengan format yang ada pada modul
21
PEMBELAJARAN MODUL 2
Pengenalan Game 3D Unity
Project Name berupa nama project Game yang akan dibuat. Location merupakan direktori
dimana projek game akan disimpan. Tombol 3D dan 2D merupakan tombol untuk menentukan
22
apakah game yang akan dibuat merupakan game 3D atau 2D. Hal ini akan berpengaruh pada
antarmuka unity selanjutnya. Kita dapat menggunakan asset game atau standard asset yang
sudah disiapkan oleh Unity yang sebelumnya sudah di install terlebih dulu. Asset packages
memungkinkan kita untuk dapat secara bebas menggunakan standard assets Unity. Jika sudah
siap dengan persiapan project maka tekan “Create Project”.
1.3 Interface 3D Unity
Berikut adalah gambar antarmuka unity yang dibagi kedalam lima bagian utama: Project
Window, Scene View, Hierarchy window, Inspector Window, dan Toolbar:
Project Window
Project window memperlihatkan aset-aset game yang masih mentah dimana kita dapat
melakukan drag and drop aset game berupa gambar, suara, script, model 3d, dan asset lain.
Disamping itu kita juga membuat bisa membuat script,folder, material, dll dengan melakukan
klik kanan:
23
Scene View
Scene view memperbolehkan kita untuk melakukan manipulasi langsung berupa menambahkan
objek ke scene game atau mengedit objek. Scene view dapat memperlihatkan scene game
dengan sudut pandang 2D atau 3D tergantung project yang sebelumnya sudah dipilih.
24
Hierarchy Window
Hierarchy window merupakan representasi teks dari game objek yang terdapat pada Scene
View. Struktur dari beberapa Game objek dalam satu scene diperlihatkan pada hierarchy
window ini. Perhatikan bahwa game object berbeda dengan game asset. Game asset belum
berbentuk game objek. Berikut adalah gambar hierarchy window yang memperlihatkan
struktur game objek:
Inspector Window
25
Inspector window akan memperlihatkan property dari setiap game objek yang ada. Untuk
melihat property salah satu game objek. Pilih dan tekan salah satu game object di hierarchy
window dan lihat propertinya di Inspector Window. Letak inspector window diperlihatkan pada
gambar berikut:
Toolbar
Toolbar menyediakan tools untuk menunjang pengembangan game dengan Unity. Berikut
adalah gambar dari toolbar:
Game View
Game view letaknya disebelah tab Scene. Jika kita klik play button pada toolbar maka akan
diarahkan ke Game View. Game View merupakan tampilan game yang telah dikembangkan.
Pastikan ketika mengedit nilai di Inspector sudah dalam posisi Scene tab dan tidak dalam posisi
“Play”.
26
27
BAB 2 Membuka Projek, Manajemen Asset, Game Object, Aspek Ratio
2.1 Menyimpan dan Membuka Project
Kali ini kita akan mencoba untuk melihat lebih dalam tentang pemrograman dasar yang ada
pada Unity. Terdapat dua bahasa pemrograman yang dapat digunakan dalam unity yaitu, c# dan
javascript. Pada matakuliah ini, hanya bahasa pemrograman c# yang akan diajarkan. Sebelum
itu buat project 2D baru bernama “Latihan2_2D”. PASTIKAN layout editor unity adalah
“Default”. Untuk merubahnya lihat gambar berikut:
Pilih folder project unity (dalam kasus ini folder project unity bernama “Latihan2_2D”) seperti
gambar berikut:
28
Untuk versi unity 5.6 keatas, tidak perlu harus membuka unity. Buka project di windows dan
cari file dengan ekstensi .scene kemudia double klik pada file .scene tersebut.
29
2.3 Game Object Camera 2D
Saat pertama kali membuat project unity, kita akan diberikan satu game objek yaitu “Main
Camera” yang terlihat pada Hierarchy window. JANGAN HAPUS game object “Main Camera”
tersebut.
Pastikan bahwa Inspector property dari game object “Main Camera” tersebut terdapat
Component “Camera”. Perhatikan bahwa property kamera untuk 2D adalah menggunakan
proyeksi ortografis.
Proyeksi tersebut ada pada property “Camera” dengan nama “Projection” dan nilainya adalah
“Orthographic” atau lihat gambar berikut:
Transform dan Camera biasanya disebut dengan istilah property component atau component dari suatu
game object. Component pada unity akan dijelaskan lebih lanjut pada pertemuan selanjutnya.
Jika sudah seperti gambar diatas maka kita sudah siap untuk membuat game 2D. Biasanya kita tidak
perlu merubah property apapun pada “Main Camera” karena sudah dibuat otomatis oleh unity
saat kita membuat project.
2.4 Aspek Ratio
Aspect ratio merupakan perbandingan panjang (width) dan lebar (height) dari resolusi layar
game yang akan dikembangkan. Hal ini penting mengingat beberapa monitor atau perangkat
mobile memiliki beragam aspect ratio. Sebagai contoh, beberapa perangkat mobil
menggunakan aspect ratio 16:9. Aspect ratio 16:9, berarti ukuran resolusi layar game yang
dikembangkan seharusnya 1280x720 atau 1920x1080 (lihat detail:
https://en.wikipedia.org/wiki/16:9 ). Di unity penggunaan aspect ratio ada pada Game tab
disebelah Scene tab pada Scene view. Disana terdapat tulisan “Free Aspect” yang artinya
membebaskan ukuran aspect ratio dari developer yang inginmengembangkan game. Jika ingin
merubah aspect ratio maka klik pada tulisan “Free Aspect” tersebut seperti pada gambar
berikut:
30
BAB 3 C#, Variabel Operasi, Logika Perulangan
3.1 Menghubungkan Game Object dengan C# Script
Untuk membuat game objek baru pada scene view ada beberapa cara yaitu
cara 1:
1. klik GameObjects pada menu tab diatas -> pilih 2D object -> Sprite
5. Lihat Inspector pastikan nilai Transform Position x,y, dan z adalah 0, begitu juga dengan
Rotasi x,y, dan z adalah 0. Nilai scale x,y, dan z pada inspector tetap 1.
6. Isikan nilai “None (Sprite)” dengan “gambar1.png” dengan cara tarik atau drag
“gambar1.png” pada Inspector property “Sprite Renderer” di game objek “My First
GameObject”.
cara 2:
1. Drag gambar “gambar1.png” di project window atau di Assets kedalam Scene
2. Lihat Hierarchy window, dan akan muncul game objek baru dengan nama “gambar1”
Ada beberapa cara untuk menambahkan komponen script atau kode yang berkaitan dengan game
objek (dalam hal ini adalah “My First GameObject”), yaitu:
cara 1:
1. klik “My First GameObject” pada hierarchy window
7. LIhat project window dan terdapat file asset game dengan nama Coba.cs, agar rapi cut didalam
folder Script.
cara 2:
1. Lihat project window dan masuk dalam folder Script
2. Klik kanan -> Create -> C# Script seperti terlihat pada gambar berikut:
4. Tarik ke dalam game object “My First GameObject” atau didalamscene dimana terdapat objek
“My First GameObject ” atau didalam “Add Component” di Inspector “My First GameObject”
Secara default script Coba.cs akan menjadi seperti gambar berikut:
Perhatikan bahwa Coba.cs HARUS sama dengan Coba setelah kata “public class”, jika berbeda,
silahkan ganti nama file atau nama class.
32
Pada dasarnya ketika membuat script “Coba” di Unity, kita sudahmembuat kode Class “Coba”.
Konsep Class tersebut ada pada Pemrograman Berorientasi Object atau Object oriented
programming. Kamu dapat mempelajari konsep pemrograman tersebut secara mandiri dirumah
untuk menguatkan pemrograman game.
Class “Coba” merupakan turunan dari Class “MonoBehaviour” maka jangan lupa tambahkan
header “using UnityEngine;”. Terdapat dua method atau fungsi utama dalam Class “Coba” yaitu
“Start” dan “Update”.
Method Start() -> Method berisi perintah program yang akan dijalan ketika game object yang
terhubung dengan kode “Coba” MULAI aktif.
Method Update() -> Method berisi perintah program yang akan dijalan ketika game object yang
terhubung dengan kode “Coba” SEDANG AKTIF KETIKA FPS (Frame Per Second) JALAN
aktif.
Isikan didalam method Start() kode seperti berikut:
void Start () {
33
Debug.Log ("Hello World");
}
Lalu jalan program dengan menekan tombol Run dan lihat di Console Output seperti pada gambar
berikut: (console letaknya ada disebelah tab Project window)
Pastikan bahwa “Colapse” dan Clear on Play sudah menyala seperti gambar diatas. Untuk
menyalakannya klik pada tulisannya. Tulisan 1 disamping ujung kanan “Hello World” berarti kode
tersebut hanya di outputkan sekali.
Fungsi Debug.Log(“<argumen>”); merupakan fungsi untuk mencetak sesuatu di console. Biasanya
fungsi tersebut digunakan untuk debugging (mencari kesalahan program).
Tipe Data
Beberapa tipe data dasar yang ada pada C# adalah sebagai berikut: byte, sbyte, short, ushort, int,
uint, long, ulong, float, double, decimal, char, string, bool, dan object
(https://msdn.microsoft.com/en- us/library/cs7y5x0x(v=vs.90).aspx ). Namun pada Unity,
terdapat tipe data tambahan seperty Vector2,Vector3, Quartenion, Transform, dll.
Variabel
Pembuatan variable mirip sekali dengan c++ dan Java. Berikut adalah sintaks pendefinisian
34
Pendefinisian variable tanpa men-assign nilai:
<tipe data><spasi><nama_variabel>; Contoh:
int answer; string greeting;
Pendefinisian variable dengan access modifier:
<access modifier><tipe
data><spasi><nama_variabel>=<nilai>; Contoh:
Operasi
Operasi memungkinkan kita untuk melakukan manipulasi aritmatik atau logis pada suatu nilai
atau variable. Beberapa operasi aritmatika yang sering digunakan adalah “+”,”-”,”*”,”/”,dan
“%”. Untuk logika “&&”,”||”,”!”. Untuk hubungan relasi “==”,”!=”,”>”,”<”,”>=”,”<=”. Untuk
operasi bit biner “&”,”|”,”^”. Berikut adalah contoh penggunaan operasi matematika:
int x = 1;
int y = x + 10 * 100; // perkalian dulu
int z = (x + 10) * 100; // penjumlahan dulu krn ada kurung
Berikut adalah tabel ekspresi matematika dengan operator “+” dan “–“ untuk mempersingkat
penulisan kode program:
35
3.3 Logika dan Perulangan
Pengambilan Keputusan
Logika yang dimaksudkan dalam pemrograman adalah tentang pengambilan keputusan. Misalkan kita
memiliki variable score, jika score lebih dari 70 maka pemain akan menang, jika tidak, maka pemain
akan kalah. Dalam pemrograman game konsep pengambilan keputusan ini sangatlah penting dan
biasanya sering digunakan dalamberbagai kasus seperti: mekanikgame, kontrol game, state machine,
dll. Berikut adalah contoh kode program sederhana:
public string score;
// Use this for initialization
void Start () {
if (score > 70) Debug.Log ("Menang");
else
Debug.Log ("Kalah");
}
36
contoh yang lain
if (isNabrak)
Debug.Log ("Menang");
else
Debug.Log ("Kalah");
contoh iternary:
37
} else if (playerState == "walk") { Debug.Log ("player jalan"); status
= 2;
} else {
Debug.Log ("player idle"); status = 0;
}
}
Berikut adalah tabel symbol logika untuk pemrograman c#:
Perulangan
Dalam beberapa situasi mungkin kita diharuskan untuk mengeksekusi beberapa kode program
dalam satu waktu. Jika kita menuliskan setiap kode program secara berulang-ulang, tentu hal
tersebut sangatlah tidak efisien. Terkadang kita juga ingin melakukan perhitungan deret angka
atau menghitung fungsi SUM. Solusi untuk permasalahan tersebut adalah dengan
perulangan/iterasi/ looping. Berikut adalah contoh kode program perulangan:
contoh lain:
int sum=0;
for (int i = 0; i < 10; i++) { sum += 1;
}
38
Debug.Log ("Nilai SUM = "+sum);
Latihan
1. Buat kode c# baru dan beri nama “CobaJalan” pada game object “My First
GameObject”.
2. Pastikan Inspector dari “My First GameObject” seperti gambar berikut: (uncheck
kode Coba agar kode tersebut tidak dieksekusi saat game dijalankan)
3. Isikan di pada Inspector property Coba Jalan (Script), Movespeed dengan nilai: 0.5 ; 1
;2
4. Jalankan unity dan amati apa yang terjadi.
39
PEMBELAJARAN MODUL 3
Membuat Map dan Menambahkan Karakterk (Ethan) Pada Game 3D Unity
2. Salah satu ciri dari tampilan project unity 3D adalah gizmo 3D penunjuk axis X,Y,Z
yang aktif di pojok kanan atas pada Scenee Game.
40
3. Pada Hierarchy Windows, terdapat objek default project 3D yaitu Scene, Main Camera
dan Directional Light. a. Scene
Scene merupakan wadah yang menampung GameObject atau semua hal yang kita
butuhkan. Satu Scene dapat dipandang sebagai satu level atau satu
screen/tampilan dari sebuah object.
b. Main Camera
Adalah Camera utama yang akan menentukan angel/sudut objek game yang akan
ditampilkan ke game windows yang diambil dari scene game.
c. Directional Light
Sebuah objek lighting yang dapat mengatur kecerahan objek yang terdapat pada scene
game.
41
Membuat Terain
4. Buatlah sebuah Terrain / Tanah pada game. dengan cara klik "Game Object" pada
menu bar, pilih "3D Object" lalu pilih Terrain.
6. Kita bisa mengubah ukuran Terrain pada Tab Inspector, pada Terrain Settings seperti
gambar Gear, dibagian "Resolution" Ubah (Terrain Width : 500 | Terrain Length : 500.
42
7. Di Object Terrain, kita juga bia mengubah/membuat kontur tanah seperti pegunungan
dengan cara. klik pada Raise / Lower Terrain pilih "Brushes", dan ubah Brush Size dan
Opacity Seperti digambar. Dan lakukan arsiran/drag pada objek terrain.
ex: *Raise / Lower Terrain : Untuk membuat Terrain menjadi timbul secara tidak rata
*Brush Size : Ukuran Brush
*Opacity : Ketebalan Brush
8. Maka akan terlihat seperti gambar dibawah, jangan lupa kreasikan juga dengan
gabungan dari beberapa brush.
43
9. Lalu klik pada "Smoot Height" dan sesuaikan, lalu arsirlah Terrain agar terlihat halus.
ex: *Smoot Height : Berfungsi untuk meratakan Brush yang tidak beraturan.
44
Membuat Objek 3D Capsule
10. Kita juga dapat menambahkan objek 3d yang lainnya ke terrain, contoh disini akan
menambahkan objek 3D capsule, yaitu dengan cara pilih menu GameObject 3d
Object Capsule.
11. Atur objek capsule di posisi yang pas, dengan menggunakan toolbar Move.
12. Atur Main Camera, agar pas posisinya untuk melihat objek capsule.
45
Menambahkan Asset Package Environment
13. Selanjutnya, kita akan menambahkan asset package dari unity untuk menambahkan efek
detail pada objek terrain.
14. Untuk menambahlan asset Environment, pilih menu Asset Import
Package Environment.
15. Sebuah kotak dialog Importing Package akan muncul, Pilih semuanya, dan Klik
Import.
46
Setting Paint Texture Terrain
16. Setelah Proses Import selesai, kita akan memberika texture rumput pada terrain
menggunakan salah satu objek asset environment yang sdh di import.
17. Klik Objek Terrain, Pada Paint Texture Textures klik "Edit Textures" pilih Add
Texture.
19. Drag gambar yang dipilih dari asset ke Bar "Add Terrain Texture", lalu sesuaikan
kemudian klik Apply.
47
20. Setelah itu, klik add, maka objek terrain yang semula berwarna putih, akan berubah
menjadi hijau rumput.
21. Kemudian Pada Tab "Hierarchy" pilihlah Directional Light.
22. Aturlah Kecerahan dan warnanya di Tab Inspector di bagian light, sesuaikanlah.
23. Kembali ke "Tab Hierarchy" dan Pilihlah Terrain, kemudian pada Tab Inspector
pilihlah "Pain Texture" klik Edit Textures > Add Texture, lalu drag gambar ke Bar
48
"Add Terrain Texture" lalu klik Add.
24. Pilih gambar Textures pada Terrain dan arsir bagian Terrain sesuai keinginan.
49
Setting Paint Details Terrain
25. Masih pada objek Terrain, pada inspector, pilih Paint Details.
26. Klik edit details, pada kotak dialog Add Grass Texture.
27. Pada kotak dialog add grass texture, Klik browse dan pilih objek rumput. Dan klik add.
28. Lakukan Brush ke area terrain, sehingga akan muncul detail rumput di terrain.
50
51
Setting Paint Tree Terrain
29. Masih pada objek Terrain, pada inspector, pilih Paint Trees. Kita akan membuat objek
pohon pada terrain.
30. Klik add tree, pada kotak dialog Add Tree.
31. Pada kotak dialog add Tree, Klik browse dan pilih objek Pohon. Dan klik add.
32. Lakukan Brush ke area terrain, sehingga akan muncul pohon di terrain.
52
33. Atau bisa menggunakan pengaturan Mass Place Tree (Menempatkan pohon secara acak
di terrain).
34. Klik Mass Place Tree, maka akan muncul kotak dialog Place Tree
Ket :
Number Of Tree : Jumlah Pohon yang akan ditempatkan di terrain
53
BAB 2 Menambahkan Character (Ethan) pada 3D Unity
Import Object Character (Ethan)
35. Selanjutnya untuk memudahkan berpetualang di terrain yang kita buat, kita dapat
membuat objek player/character yang bias kita gerakkan untuk menjelajah terrain.
36. Objek character yang digunakan pada tutorial ini mengunakan character Ethan, yang
merupakan Standar Asset Unity.
37. Import Assetnya dengan cara, pada Menu Bar pilih Assets Inport Package Characters.
38. Maka akan tampil Bar "Importing Package" lalu klik Import.
54
ThirdPersonController Prefabs ThirdPersonController
40. Drag ThirdPersonController ke atas Hierarchy,
42. Ketika dijalankan, hasilnya kita dapat mengontrol character ethan dengan tombol arah
panah dan spasi pada keyboard.
55
43. Yang perlu diperhatikan juga yaitu, ubah posisi main camera menjadi child dari
player/character. Dengan cara mendrag posisi main camera pada Hierarcy Project.
Hal tersebut agar main camera akan selalu mengikuti player ketika digerakan.
Jangan lupa simpan Scene Game kamu dengan cara : Pada Menu Bar File > Save Scene
as, lalu beri nama dan klik Save.
56
Latihan
1. Buatlah map hutan menggunakan asset yang tersedia dan tambahkan karakter
ethan
57
PEMBELAJARAN MODUL 4
Praktikum Pemrograman Game
BAB 1 Membuat efek Water Basic dan Directional Light pada 3D Unity
Membuat Terrain
1 . Import Package Terrain asset , atau pada unity 5 , terdapat pada envirorment .
2 . Siapkan Directional ligth , dan main camera , dan import charecter asset / charecter package
58
4 .Beri effect water basic di sekitar bukit
Tambahkan Lighting berikut pada terrain yang telah dibuat pada pertemuan sebelumnya dan
gunakan masing masing pencahayaan.
59
60
A. Point light
Sumber cahaya ini bisa dibayangkan sebagai sebuah bola yang mengeluarkan cahaya yang
tersebar dari seluruh permukaannya ke semua arah. Point light cocok digunakan untuk
mensimulasikan cahaya dari bohlam lampu, obor, dan sumber yang sejenis. Point light bisa
digunakan secara realtime maupun baked.
B. Directional light
Directional light, dengan cahaya seolah berasal dari bawah
Directional light mensimulasikan cahaya yang datang dari sumber jauh di atas, seperti matahari.
Posisi dari sumber cahaya ini tidak berpengaruh pada pencahayaan serta bayangan yang
dihasilkan saat cahaya darinya mengenai objek. Namun, orientasi sudutnyalah yang berpengaruh.
C. Spotlight
Mensimulasikan sumber cahaya yang menyerupai senter. Cahaya yang muncul bisa dibayangkan
seperti kerucut dengan ujung lancipnya dipotong. Sumber cahaya ini akan menyorot sebuah objek
seperti kerucut dengan ujung lancipnya dipotong. Sumber cahaya ini akan menyorot sebuah objek
dan juga menghasilkan bayangan objek tersebut. Kita bisa mengatur jarak tempuh cahaya, berikut
sudut sorot cahaya. Ia bisa digunakan secara realtime ataupun baked.
D. Area light
Posisinya sejajar dengan tempat duduk pada kursi, perhatikan bagian mana yang terang Area light
akan menghasilkan cahaya untuk area tertentu, mengikuti bentuk segi empat. Ukuran segi empat
ini akan mempengaruhi jarak tempuh cahaya. Bayangan yang dihasilkan dari sumber cahaya ini
halus, berkat cahaya yang lembut dan intensitasnya yang berkurang secara mulus di ujung area
pencahayaan. Karena banyaknya informasi yang harus diolah oleh sumber cahaya ini, ia hanya
bisa digunakan secara baked.
61
BAB 2 Third Person Shooter dan First Person Shooter
2. Pada Tab Project > Assets > Standard Assets > Characters > ThirdPersonController >
Prefabs > ThirdPersonController ... lalu drag ke atas terrain, ubah Position di Tab Inspector
62
5. Mainkanlah Game yang
telah anda buat dengan
mengklik tombol play
seperti pada gambar
dibawah.
6.Simpan Scene Game Anda dengan cara : Pada Menu Bar File > Save Scene as, kemudianberi
nama dan klik Save.
1. Klik dan drag aset First Person Controller (jendela project, folder Standard Assets > Prefabs)
ke scene. Di scene akan muncul objek berbentuk silinder yang merepresentasikan pemain game.
63
jika penempatan benar maka ketika tampilan Play dijalankan, anda sudah dapat mengekplorasi
area dengan menggunakan keyboard dan mouse sebagai alat gerak. 2. Selanjutnya menambahkan
senjata. Menambahkan peluncur granat: Buat game objek
“empty”, rename sebagai Launcher, tempatkan di tempat yang sama dengan aset FPS di scene
dengan cara:
Klik FPS di panel Hierarchy, letakkan kursor mouse di Scene, tekan tombol "F" di keyboard. Klik
Launcher di panel Hierarchy lalu pilih menu Game Object > Move to view. Di scene akan terlihat
launcher berpindah tempat ke tempat FPS asset.
Tetapi ketika game dijalankan, objek launcher belum bergerak mengikuti objek FPS.Untuk
mengatasi masalah ini, drag objek Launcher ke dalam Main camera yang dimiliki oleh FPS di
jendela Hierarchy.
64
Klik tombol Play, Ketika menjalankan objek FPS,
perhatikan Scene View, objek Luncher akan ikut bergerak
bersama objek FPS.
function Update()
transform.root.collider );
65
Attach script ini kedalam objek Launcher yang ada di dalam objek FPS. Untuk memastikan
bahwa objek FPS telah memiliki script Missile Launcher, klik objek Launcher di panel
Hierarchy, di panel Inspector akan muncul Properti script Missile Launcher. Disini
terlihat variabel projectile masih kosong.
5. Klik prefab Missile di panel Project, klik Components > Physics > Rigidbody
6. Klik Launcher di panel Hierarcy, drag prefab Missile dari panel Project ke variabel projectile
di panel Inspector.
7. Jalankan game, klik mouse, sekarang anda dapat menembakkan granat berbentuk bulat.
Destroy( gameObject );
Attach script ini ke prefab Missile. Selanjutnya membuat ledakan, buat prefab baru,beri nama
66
Explosion. Efek ledakan akan menggunakan aset Particle standar dari Unity3d. Drag prefab
Explosion dari panel Project Standard Asets > Paticles > Explosion ke panel Hierarchy.
Lakukan seting sesuka anda, kemudian drag Explosion dari panel Hierarchy ke prefab
Explosion yang tadi telah dibuat.
9. Klik prefab Missile di panel project, drag prefab Explosion dari panel Project ke
variabel Explosion (script Projectile) di panel Inspector.
function Start()
attach script Explosion ke prefab Explosion. Jalankan game, sekarang setiap klik mouse, granat
akan muncul dengan efek ledakan.
Menambahkan suara ledakan. Klik prefab Explosion di panel Project. Klik Component > Audio
> Audio Source. Panel Inspector akan menampilkan Audio Source. Klik tanda bulatan kecil di
samping kanan kotak Audio Clip. Pilih Rocket Launcher Impact.
Pengaturan Model
Pengaturan Model yang dibuat sendiri
1. Karakter dibuat dengan blender
67
4. Buka folder Moel dan pasang objek *.blend yang telah dibuat
5. Tambahkan teksturnya dengan cara klik texture pada panel asset dan tarik ke mesh
objek
7. Atur ukuran karakter kontroler sehingga meliputi seluruh tubuh objek *.blend misalkan
radius:2 dan height 14.
objek yang bergerak mengikuti perintah pemain, sambil menjalankan animasi untuk gerakan
tersebut, ataupun jika kita ingin mengotomasi beberapa animasi hingga menjadi animasi
yang kompleks.
1. tamahkan model selanjutnya buka Animator aset tersebut, dan membuat Controller seperti
berikut
68
Ada 3 state di situ, yakni Idle, Walk dan Run. Animasi untuk ketiganya adalah:
Idle: Comp|StandE
Walk: Comp|Walk
Run: Comp|Run
1. Selain state, juga menempatkan 3 transisi, yakni untuk Idle → Walk, Walk → Idle, serta
Any
State → Run. Di setiap transisi ini, kita tempatkan parameter apa yang menjadi pemicu
perubahan state, sekaligus animasi. Parameter bisa ditambahkan di tab Parameter milik
Animator. Kita berikan nama parameter kita State, dan nama ini akan dijadikan acuan untuk
transisi sebagai berikut:
Idle → Walk: tidak ada parameter, otomatis terjadi perpindahan state ke Walk, setelah
animasi Idle selesai
69
Walk → Idle: terjadi saat parameter State bernilai 0 (nol)
2. Untuk mengubah properti transisi ini, kita cukup mengklik panah transisi untuk
menampilkan menu baru. Contohnya seperti berikut
4. Setelah menentukan kondisi yang menyebabkan perubahan state, maka kita bisa dengan
mudah men-trigger perubahan state ini menggunakan Script. Untuk itu, mari kita buat script
baru, kita namakan “orang”
tambahkan berikut:
using UnityEngine;
using System.Collections;
70
public class orang : MonoBehaviour {
Animator animator;
GameObject orang;
void Start () {
animator = GetComponent<Animator>();
walkSpeed_ = walkSpeed;
idle();
void Update () {
if (transform.position.x <= 4) {
run();
} else {
walk();
71
transform.Translate(0, 0, walkSpeed * Time.deltaTime);
}
void run() {
walkSpeed = walkSpeed_ * 2;
animator.SetInteger("State", 2);
void walk() {
walkSpeed = walkSpeed_;
animator.SetInteger("State", 1);
void idle() {
walkSpeed = 0;
animator.SetInteger("State", 0);
Dalam script tadi, kita tempatkan fungsi yang mengubah state, yakni run(), walk() dan idle() .
Saat game dimulai, ia akan masuk ke state idle dengan mengubah properti State milik animator
72
dengan nilai 0. Selanjutnya, dalam update() , fungsi walk() akan dijalankan, dan bila sudah masuk
ke posisi tertentu, fungsi run() akan diaktifkan, di mana state dan kecepatan berjalan diubah.
73
Pengaturan Animasi Player dan Lawan
Tampilkan 3 objek kubus, bola dan silinder
A. Player
Kubus diposisikan sebagai player, Masukkan script erikut:
using UnityEngine;
using System.Collections;
void Update () {
if (Input.GetKey(KeyCode.LeftArrow))
this.transform.Translate(Vector3.forward * movingSpeed *
Time.deltaTime, Space.World);
else if (Input.GetKey(KeyCode.DownArrow))
74
}
B. Lawan statis
Silinder sebagai lawan statis, artinya lawan ini hanya berdiam tetapi memiliki reaksi jika terkena
pukulan
Using UnityEngine;
Using System.collection;
Float multiply;
Float force;
75
If (collider.gameobject.tag==TrigggerTag}{
multiply=collider.gameobject.transform.localScale.x; Force=10*multiply*multiply;// fungsi akan
aktif jika terjadi tumbuan rigidbody dan collider.
This.GetComponent<Rigidbody>().AddExplosionForce(force,transform.position-
(multiply*collider.transform.fordward),multiply,multiply);
C. Lawan dinamis
Tugas : Buatlah game player dan lawan statis sesuai petunjuk VIII C!
Lawan dinamis adalah lawan yang dapat aktif bereaksi terhadap player misalkan mengear
pada radius tertentu.
using UnityEngine;
using System.Collections;
76
void Update() {
maju
77
Menambahkan Efek pada player
1. Buat objek 3d bola beri nama “bola kekuatan”
3. Jadikan “bolakekuatan” sebagai prefabs dengan mendrag dari hierarchy ke panel assets
Gameobject temp;
Bolakekuatan.getcomponent<meshrenderer>().enabled=false;
78
If (input.getkey(keycode.leftcontrol))
{ if
(scale<=maxscale)}
Scale+=0.1f;
}
}
If (input.getkeyup(keycode.leftcontrol)){ if
(temp==null){
temp= (gameobject)
gameobject.instantiate(bolakekuatan,
spawnpoint.transfform.position,
spawnpoint.transfform.rotation);
temp.transform.localscale=newverctor3(scale,scale,scale);
Destroy(temp,2);
If (temp){
Temp.getcomponent<rigidbody>().addrelativeforce(vector3.fordward*1000);
// menembak ke depan
79
}
80
Scooring
1. Buatlah 3 Objek yang berposisi sebagai player, prefab dan sasaran Misal kamera, bola dan
kubus
2. tambahkan game obect empty sebagai child kamera
script 1
using UnityEngine;
using System.Collections;
GameObject shootingball;
GameObject temp;
GameObject camera1;
void Start () {
81
// Update is called once per frame
void Update ()
if (goRight) {
} else {
if (camera1.transform.eulerAngles.y < 0) {
goRight = true;
if (Input.GetKeyUp (KeyCode.Space)) {
temp = (GameObject)
GameObject.Instantiate (Ball,
SpawnPoint.transform.position,
SpawnPoint.transform.rotation);
if (temp) {
82
temp.GetComponent<Rigidbody> ().
using UnityEngine;
using System.Collections;
int score;
HideAgain ();
text3d.GetComponent<TextMesh> ().text =
MyText; score = 0;
void Update () {
83
}
void HideAgain () {
if (other.gameObject.tag == "Ball") {
Destroy (other.gameObject);
score++;
void OnGUI () {
4. isikan parameter text 3d dengan game object 3d text dan My text “Berhasil “
5. isikan parameter spawnpoin dengan game object empty dan Ball dengan prefab bola
84
BAB 4 Augmanted Reality menggunakan Vuforia
Augmanted Reality Dengan Vuforia
85
4. Atur nama company dan nama aplikasi juga pengaturan bundle identifier
86
6. Masukkan ARCamera dan ImageTarget ke dalam scene, delete Main Camera.
87
Vuforia mensuport debugging di PC menggunakan camera webcam.
Tapi jika hardware belum di support Vuforia Anda dapat
menonaktifkan fitur ini.
88
7. Definisikan marker dengan klik
ImageTarget kemudian klik 'No targets
defined. Press here for target
creation !'
Masukkan ke ARCamera
89
Kemudian definisikan marker pada image target. Pada bagian 'Target Manager' klik 'Add
Database'.
Tambahkan
database
90
Setelah selesai download
datasetnya, pilih 'Unity Editor'.
Kemudian Anda akan
mendapatkan file dengan
ekstensi .unitypackage.
Letakkan object yang akan dimunculkan pada AR di atas Image Target. Buat object tersebut
menjadi child dari ImageTarget. Pada contoh ini saya memakai object cube dengan klik
GameObject >> 3D Object >> Cube
91
9. Jalankan project dengan klik File >> Build Settings >> Build. Copy file .apk ke
device Android Anda dan jalankan aplikasinya
Sumber: unity3d.com
92
Latihan
1. Lanjutkan tugas anda dari modul sebelumnya dengan tambahan
- Character (Ethan) dapat menembak dan menimbulkan efek ledakan.
- Tambahkan Directional Light pada map anda
93
PEMBELAJARAN MODUL 5
Mengolah objek tiga dimensi, Membuat asset, Perpindahan antar scene
Langkah 1:
Buatlah Sebuah Objek bola, dengan menekan perintah seperti berikut, GameObject->Create
Other->Cube
94
Langkah 2:
Langkah 3 :
95
Objek Kotak dalam keadaan gelap , dikarenakan belum ada pencahayaan, untuk membuat
pencahayaan sementara agar kita dapat melihat objek secara utuh dengan warnanya, maka
96
praktikan hanya memerlukan menekan tombol built in “light”, seperti dibawah ini
Terdapat 3 cara transformasi yang dapat dilakukan di unity3d, yaitu sebagai berikut:
97
Mari kita lihat yang pertama yaitu Translate
Langkah 1 :
Buatlah Objek “Cube” seperti dibawah ini dan ubahlah posisi x,y,z menjadi “0”
Langkah 2 :
Ubahlah posisi dari “cube” menjadi (2,0,0), akan berubah seperti berikut ini
Langkah 3:
98
Ubahlah posisi dari “cube” menjadi (0,1,0), akan berubah seperti berikut ini
Langkah 4
Ubahlah posisi dari “cube” menjadi (0,0,5), akan berubah seperti berikut ini
Melakukan Rotasi
Langkah 1
Ubahlah rotasi dari “cube” menjadi (20,0,0), akan berubah seperti berikut ini
99
Langkah 2:
Ubahlah rotasi dari “cube” menjadi (0,50,0), akan berubah seperti berikut ini
Langkah 3 :
Ubahlah rotasi dari “cube” menjadi (0,0,50), akan berubah seperti berikut ini
Mengubah Skala
Langkah 1 :
Ubahlah Skala dari “cube” menjadi (3,1,1), akan berubah seperti berikut ini
100
Langkah 2 :
Ubahlah Skala dari “cube” menjadi (1,3,1), akan berubah seperti berikut ini
Langkah 3 :
Ubahlah Skala dari “cube” menjadi (1,3,1), akan berubah seperti berikut ini
Menambahkan Pencahayaan
101
Langkah 1: Pilih “Directional Light”, pada menu GameObject->Light->Directional Light, dimana
akan menghasilkan pencahayaan pada objek yang dituju
Langkah 2 : Untuk dapat mengubah warna lampu dari cahaya,pilihlah Directional Light pada menu
hirarki lalu ubahlah warna pada menu inspector
Membuat Material
Langkah 1 : Buatlah material baru dengan cara tekan, Assets->Create->Material dan namakan
menjadi “Material1”
102
Langkah 2 : Pilih “Material1” lalu masukan texture pada menu inspector
Langkah 3: Pilih “Cube” , dan ubah material pada menu Mesh Renderer dengan material yang kita
sudah buat sebelumnya
Script “Javascript”
Langkah 1:
103
Buatlah file javascript yang akan digunakan untuk penulisan script dengan menggunakan
javascript, dengan menekan Assets->Create->Javascript
Langkah 2: Klik file script pada asset untuk masuk ke dalam editor monoscript untuk melakukan
scripting aplikasi
Langkah 3 :
Langkah 4 :
Save file
Langkah 5:
Drag File script yang sudah dibuat dan arahkan kea rah “cube” di dalam hirarki sehingga inspector
cube ada penambahan script di dalamnya
104
Jalankan aplikasi untuk mencobanya dan perhatikan apa yang terjadi.
105
Latihan
1. Masukan objek 3 dimensi yang sudah disiapkan pada folder praktek5->Latihan1-> , lalu ubahlah
warna materialnya dan save scene dengan nama “latihan1_namapraktikan”
2.Buatlah objek seperti di gambar ini, dan buatlah agar berotasi , save scene dengan nama
“Latihan2_namapraktikan”
3. Buatlah susunan tata surya bima sakti lengkap dengan material dan rotasi masing masing planet
save dengan nama “Latihan3_namapraktikan”.
4. Buatlah agar ketiga scene tersebut dapat diakses satu sama lainya dengan perpindahan scene
CHALLENGE
Buatlah aplikasi seperti berikut dimana ada tiga tombol mewakili warna dan ketika tombol di
pencet maka warna Cube berubah
106
107