0% menganggap dokumen ini bermanfaat (0 suara)
282 tayangan

Modul Game Programming 2a-1

Modul ini membahas tentang mata kuliah Game Programming yang terdiri dari 5 modul. Modul 1 membahas dasar teori game programming, Modul 2 pengenalan game 3D Unity, Modul 3 membuat map dan menambahkan karakter di Unity, Modul 4 praktikum pemrograman game, Modul 5 mengolah objek 3D, membuat asset dan perpindahan antar scene.

Diunggah oleh

Chrisna Boyoh
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
282 tayangan

Modul Game Programming 2a-1

Modul ini membahas tentang mata kuliah Game Programming yang terdiri dari 5 modul. Modul 1 membahas dasar teori game programming, Modul 2 pengenalan game 3D Unity, Modul 3 membuat map dan menambahkan karakter di Unity, Modul 4 praktikum pemrograman game, Modul 5 mengolah objek 3D, membuat asset dan perpindahan antar scene.

Diunggah oleh

Chrisna Boyoh
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 112

MODUL MATA KULIAH

“GAME PROGRAMMING”

MODUL 1 : DASAR TEORI GAME PROGRAMMING


MODUL 2 : PENGENALAN GAME 3D UNITY
MODUL 3 : MEMBUAT MAP & MENAMBAHKAN KARAKTER
(ETHAN) PADA GAME 3D UNITY
MODUL 4 : PRAKTIKUM GAME PROGRAMMING
MODUL 5 :MENGOLAH OBJEK 3D, MEMBUAT ASSET &
PERPINDAHAN ANTAR SCENE

Disusun Oleh:

SULASTRI EKSAN, ST., MT


NIP. 197907202006043002

Program Studi D4 Teknik Informatika


Jurusan Teknik Elektro
Politeknik Negeri Manado
Tahun 2020

i
LEMBAR PENGESAHAN

MODUL
GAME PROGRAMMING

MODUL 1 : DASAR TEORI GAME PROGRAMMING


MODUL 2 : PENGENALAN GAME 3D UNITY
MODUL 3 : MEMBUAT MAP & MENAMBAHKAN KARAKTER
(ETHAN) PADA GAME 3D UNITY
MODUL 4 : PRAKTIKUM GAME PROGRAMMING
MODUL 5 :MENGOLAH OBJEK 3D, MEMBUAT ASSET &
PERPINDAHAN ANTAR SCENE

Disusun Oleh:
SULASTRI EKSAN, ST., MT
Nip. 197907202006043002

Menyetujui,
Ketua Jurusan Teknik Elektro Seketaris Jurusan Teknik Elektro Koordinator Program Studi
D4 Teknik Informatika

Fanny J. Doringin, ST., MT Sonny Kasenda, ST., MT Harson Kapoh , ST. MT


Nip. 19670430 199203 1 003 Nip. 19680416 199512 1 001 Nip. 197101011999031004

i
Kata Pengantar

Dengan mengucapkan syukur kehadirat Tuhan Yang Maha Kuasa, sehingga


penyusun Modul ajar ini dapat terselesaikan. Adapun judul modul ajar ini adalah
“Praktikum Game Programming”

Buku petunjuk praktikum ini disusun sebagai pedoman khususnya bagi


mahasiswa di Jurusan Teknik Komputer dan Informatika, Politeknik Negeri
Manado, dalam memberikan pengenalan, pemahaman serta mengasah kemampuan
dalam bidang Game Programming yang sudah menjadi kewajiban untuk dikenal dan
dipahami sebagai dasar mata kuliah di bidang teknologi informasi. Diharapkan para
mahasiswa nantinya bisa lebih terampil dan memahami segala bentuk teknologi informasi
saat ini.

Bagimanapun penyusun telah berusaha membuat buku ini dengan sebaik-baiknya,


namun tidak ada kesempurnaan dalam sebuah karya manusia. Penyusun menyadari masih
banyak kekurangan dalam penyusunan buku ini. Untuk itu pula segala masukan, kritik dan
saran dari pembaca dapat menjadikan acuan bagi penyusun dalam penyempurnaan dan
pembuatan buku berikutnya.

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.

Manado, November 2020

Penulis

ii
DAFTAR ISI

LEMBAR PENGESAHAN ......................................................................................................... i


Kata Pengantar ............................................................................................................................ ii
DAFTAR ISI.............................................................................................................................. iii
Bab 1 Pendahuluan ...................................................................................................................... 1
1. Deskripsi Matakuliah dan Modul ........................................................................................... 1
2. Peta Kedudukan Modul .......................................................................................................... 2
3. Analisis Kebutuhan Modul .................................................................................................... 3
4. Capaian Pembelajaran Modul ................................................................................................ 7
5. Petunjuk Pembelajaran ........................................................................................................... 8
PEMBELAJARAN MODUL 1 Dasar Teori Game Programming ............................................. 9
BAB 1 Definisi, Sejarah dan Jenis Game ................................................................................... 9
1.1 Definisi Game ........................................................................................................... 9
1.2 Sejarah Game ............................................................................................................ 9
1.3 Jenis Game.............................................................................................................. 11
BAB II Game Engine ................................................................................................................ 13
2.1 Pengertian Game Engine ........................................................................................ 13
2.2 Siklus Pembuatan Game Menggunakan Game Engine .......................................... 13
BAB III Proses Pengembangan Game ...................................................................................... 14
3.1 Elemen Pembentuk Game ...................................................................................... 14
BAB IV GDLC (Game Development Life Cycle) ................................................................... 18
Latihan ...................................................................................................................................... 21
PEMBELAJARAN MODUL 2 Pengenalan Game 3D Unity .................................................. 22
Bab 1 Pengenalan Aplikasi 3D Unity ....................................................................................... 22
1.1 Download dan Install .............................................................................................. 22
BAB 2 Membuka Projek, Manajemen Asset, Game Object, Aspek Ratio ............................... 28
2.1 Menyimpan dan Membuka Project......................................................................... 28
2.2 Manajemen Asset Game ......................................................................................... 29
2.3 Game Object Camera 2D ........................................................................................ 30
2.4 Aspek Ratio ............................................................................................................ 30
BAB 3 C#, Variabel Operasi, Logika Perulangan .................................................................... 31
3.1 Menghubungkan Game Object dengan C# Script .................................................. 31
3.2 Variabel dan Operasi .............................................................................................. 34

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

1. Deskripsi Matakuliah dan Modul

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

Menyisipkan konten informasi pada stage :


Teks, gambar, audio, video
Dasar Penulisan Dapat menulis action script 3.0 Penulisan AS 3.0 - ceramah 400 menit - Rich Shupe Tanya
Action dengan benar - menulis script pada frame flash - tanya jawab “Learning jawab
2
Script 3.0 pada - praktik di Action Script
Flash Koordinat flash laboratorium 3.0” - Maulana,
Irman.
“Pemrograman Game
3 Mengenal system Dapat memahami system koordinat - koordinat x dan y dengan Acrion Script
koordinat layar pada layar / stage area kerja adobe flash - kedudukan koordinat objek 3.0 dengan Adobe
cs 6. Flash CS 6”
Variabel, Tipe Data, Konstanta,
Mengenal Variabel, Dapat membuat contoh program dengan Fungsi dan Class
Tipe Data, menggunakan variabel, tipe data, fungsi - tata cara penulisan
Konstanta, Fungsi serta class - prosedur dan logika
dan Class
Memanggil objek
Mengenal Objek Dapat memanggil objek - memberi instance name pada objek
Properties properties pada fungsi - memanggil instance name pada program
Menggunakan Dapat membuat fungsi menggunakan Operator matematika
Operator operator matematika - menggunakan operator pada fungsi
Matematika pada
Flash

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.

Pernyataan Kondisi, Dapat membuat fungsi yang Kondisi dan Perulangan


operator logika dan mengandung pernyataan kondisi, - fungsi kondisi dan perulangan dan
perulangan operator logika dan perulangan aplikasinya
5 Membuat Dapat membuat movie clip, Button dan Movie Clips dan Button - ceramah 400 - Rich Shupe “Learning 1. Monitoring
movie clips, memberi instance name serta - membuat movie clips - tanya jawab menit Action Script 3.0” - perkembangan Proyek
Button dan memanggilnya dalam fungsi - membuat button - praktik di Maulana, Irman. Ujian Tengah
pemberian - memberi instance name laboratorium “Pemrograman Game Semester
instance name dengan Acrion Script
3.0 dengan Adobe 2.
Dapat memberi nama linkage pada Linkage Flash CS 6” Mengingatkan materi
Menggunakan movie clips serta - cara memberi nama linkage yang harus dibaca pada
Linkage memanggilnya dalam fungsi - memanggil linkage ke dalam fungsi
6 Menggerakkan Dapat mengontrol / menggerakkan Kontrol Movie Clips minggu depan.
movie clips dengan movie clips dengan keyboard, mouse - fungsi kontrol objek movie clips
keyboard , mouse dan button berdasarkan koordinat x dan y
dan button - memberi fungsi button

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

Dapat Membuat fungsi score Score dan Nyawa


dan nyawa - - fungsi score dan nyawa
16 Programming Game Dapat Membuat fungsi naik Levelling - ceramah 400 - Rich Shupe “Learning 1. Monitoring
Adventure level, menang dan kalah - membuat fungsi naik level, kalah dan - tanya jawab menit Action Script 3.0” - perkembanga n Proyek
menang - praktik di Maulana, Irman. Ujian Akhir
Dapat Membuat fungsi collision Tumbukan “Pemrograman Game Semester
laboratorium
detection / tumbukan - fungsi tumbukan musuh dengan player dan dengan Acrion Script
senjata 3.0 dengan Adobe 2.
Dapat Membuat fungsi tambah senjata Inventory Flash CS 6” Mengingatkan materi
Dapat publish game ke format desktop - fungsi tambah senjata player yang harus dibaca pada
dengan ekstensi .exe dan .swf Publish game minggu depan.
- publish ke format PC dan android
Dapat publish game ke format android
dengan ekstensi .apk
UJIAN AKHIR SEMESTER

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

1. a) Bacalah modul dengan seksama, terutama bagian instruksi.


b) Pahami tujuan anda mempelajari modul, sasaran yang diharapkan, tingkat
penguasaan yang diharapkan serta waktu yang ditargetkan.
c) Kerjakanlah tugas dan latihan yang terdapat di dalamnya dengan jujur tanpa melihat
kunci jawaban sebelum anda mengerjakannya.
d) Gunakan teknik membaca cepat dalam mempelajari modul.
e) Laporkan kemajuan anda kepada guru / instruktur sebelum anda melanjutkan ke
modul selanjutnya.
2. Anda diperbolehkan bertanya kepada guru / instruktur jika dianggap perlu.
3. Usahakan menyelesaikan setiap modul lebih cepat dari waktu yang ditetapkan
4. Jika ada bagian yang belum anda pahami, cobalah terlebih dahulu mendiskusikan
dengan teman yang sedang mengerjakan bagian yang sama, sebelum anda bertanya pada
guru / instruktur. Kalau perlu, anda harus berusaha mencari tahu jawabannya pada
sumber yang lain.
5. Tingkat pemahaman minimal yang diharapkan sebesar 70%, jika tingkat penguasaan
anda kurang dari 70%, pelajari materi / bagian – bagian dari modul yang belum anda
kuasai, atau mintalah remediasi dan saran – saran dari guru / instruktur. Ikuti ketentuan
yang berlaku dalam setiap modul sebelum anda melanjutkan ke bagian lain atau ke
modul berikutnya.

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

BAB 1 Definisi, Sejarah dan Jenis Game


POKOK BAHASAN :
1. Konsep Pengertian Game Programming
2. Sejarah Game Programming
3. Jenis Game
TUJUAN BAHASAN :
Setelah mempelajari materi dalam bab ini, mahasiswa diharapkan mampu:
1. Mengenal dan memahami definisi game programming.
2. Mengenal sejarah dan jenis game

1.1 Definisi Game

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 Ketiga (Konsol Penyimpanan Lebih Besar)


Generasi ketiga dimulai pada tahun 1983 dengan dipasarkannya Jepang Family Computer
tau lebih dikenal dengan nama FAMICOM(kemudian dikenal sebagai Nintendo Entertainment
System di seluruh dunia). Walaupun konsol generasi sebelumnya juga menggunakan 8-bit
processor, pada akhir generasi inilah konsol rumah yang pertama kali diberi label oleh mereka
“bit”. Ini juga masuk ke mode sebagai sistem 16-bit seperti Mega Drive / Genesis dipasarkan
untuk membedakan antara generasi konsol. Di Amerika Serikat, generasi ini di game ini terutama
didominasi oleh NES / Famicom. Di era ini pulalah terjadi perang konsol game yang pertama
antara perusahaan konsol Nintendo dengan SEGA.
Generasi Keempat
(Konsol gambar yang lebih tajam dan animasi yang lebih halus)
Generasi keempat atau biasa disebut dengan era 16 bit,pada generasi ini NES mendapat
sambutan hangat di seluruh dunia, dan sebuah perusahaan bernama Sega mencoba menyaingi
Nintendo. Pada tahun 1988, Sega merilis konsol next-generation mereka, Sega Mega Drive (yang
juga dikenal dengan Sega Genesis). Konsol ini menyajikan gambar yang lebih tajam dan animasi
yang lebih halus dibanding NES. Konsol ini cukup berhasil memberi tekanan, tetapi NES tetap
bertahan dengan angka penjualan tinggi. Dua tahun berselang, pada 1990, Nintendo kembali
menggebrak dengan konsol next-gen mereka, SNES (Super Nintendo Entertainment System).
Selama 4 tahun, Nintendo dan Sega menjadi bebuyutan, meskipun ada beberapa produsen seperti
SNK dengan NeoGeo-nya, NEC dengan TurboGrafx-16 dan Phillips CD-i, tapi kedua konsol
mereka begitu handal dan populer.

Generasi Kelima (Konsol Portable)


Generasi kelima atau disebut juga dengan era konsol 32 bit. dimana konsol game yang
paling populer pada generasi ini adalah Sony Playstation.

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.

1.3 Jenis Game


RPG (Role Playing Game)
RPG adalah salah satu game yg mengandung unsur experience atau leveling dalam gameplay
nya. Biasanya dalam game ini kita memiliki kebebasan untuk menjelajah dunia game tersebut,
dan kadang kala dalam beberapa game, kita dapat menentukan ending dari game tersebut.

FPS (First Person Shooting)


FPS adalah game yg tembak menembak yg memiliki ciri utamanya adalah penggunaan sudut
pandang orang pertama yg membuat kita dibelakang senjata.

Third Person Shooter


TPS adalah game yg mirip dengan FPS yaitu memiliki gameplay tembak menembak hanya
saja sudut pandang yg digunakan dalam game ini adalah orang ketiga.

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.

2.2 Siklus Pembuatan Game Menggunakan Game Engine

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

BAB III Proses Pengembangan Game


3.1 Elemen Pembentuk Game
1. Story / Story Line
Story Line adalah jalan cerita dari sebuah game yang sangat berperan penting dalam tahap
awal pembuatan sebuah game.
Story game dibuat oleh seorang produser game untuk membuat plot/alur cerita dalam
proses produksi game. Story line yang bagus akan membuat gamers menjadi ingin lebih
tahu tentang cerita dalam game tersebut.

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.

4. Kerangka Story Board


Scene………… Judul Scene…………. Sceneeee
Image
Lokasi ………….
Aksi ……………

5. Contoh Story Board


Scene 1 Mematikan Panel Listrik 1/5

Lokasi Di depan tuas panel listrik


Aksi Pemain berjalan mendekati tuas panel listrik sampai
muncul penunjuk bertuliskan “Tekan S untuk
mematikan panel listrik”. Jika penunjuk tersebut
muncul, maka pemain dapat mematikan panel listrik
dengan mendekan keyboard “S”, saat panel mati, lampu
penerangan yang menerangi para pekerja yang sedang
melakukan penebangan hutan akan mati dan penebangan
hutan akan dihentikan. Pada saat itu juga akan muncul
NFC yang akan berpatroli.

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)

7. Game Layout Chart


Game Layout Chart merupakan blueprint game yang akan dibuat, mendefinisikan
bagaimana game bekerja. Chart dibuat dengan sederhana dan muda dipahamim serta
menggambarkan keseluruhan area game. Keuntungan game layout chart adalah agar para
designer bisa mengeksplorasi bagaimana game akan bekerja.

Gambar 3 Contoh Game Layout chart dalam permainan level

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.

9. FSM (Finite State Machine)


Untuk mengetahui behavior apa saja yang dimiliki oleh setiap karakter yang ada di game,
adapun FSM yang dibuat adalah untuk setiap karakternya.

10. Design Level


Dokumen ini merekam cerita skala besar dari game yang akan dibuat, dan bagaimana
kemajuan dari setiap satu level ke level selanjutnya. Dokumen ini berisi tentang garis
besar pengalaman player dalam memainkan 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 :

Gambar 5 Fase dan proses GDLC

Penjelasan Fase dan Proses GDLC :


A. Inisiasi
Adalah proses awal yang berupa pembuatan konsep kasar dari game, mulai dari menentukan
game seperti apa yang akan dibuat, mulai dari indentifikasi dari trending, topik,, target user dari
game yang akan dibuat. Output dari tahap initation adalah konsep game dan deskripsi permainan
yang sangat sederhana.

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

Bab 1 Pengenalan Aplikasi 3D Unity


1.1 Download dan Install
1. Download Minimal versi Unity 5.3 atau Unity terbaru di:
https://unity3d.com/get- unity/download?ref=personal atau
https://store.unity.com/
2. Instal Unity yang sudah di download. Jika ditanya tentang standard asset. Instal atau
centang juga standar asset Unity.
3. Pertama kali instalasi pilih personal edition JANGAN PROFESIONAL.
4. Untuk launch unity pertama kali HARUS ONLINE dan akan ditanya juga tentang
profil dan email. Isikan terserah dengan email yang BENAR.
5. Setelah memasukkan email, maka akan muncul pesan di email untuk validasi.
6. Setelah di klik tautan pada email untuk validasi, Unity akan bisa digunakan
baik online ataupun OFFLINE.

1.2 Membuat Projek


Dibeberapa versi unity sebelum 5.6, ketika pertama kali membuka project unity (setelah
instalasi unity) diwajibkan untuk online. Daftarkan diri kamu dengan cara sign up dan
kemudian tunggu email verifikasi dari unity. Setelah itu, sign in unity dan isi survey. Pilih edisi
“personal” untuk versi unity yang gratis. Jika ingin versi unity yang berbayar pilih edisi
“profesional”. Setelah itu buat project baru dengan klik tab “NEW” pada sebelah kanan atas.
Lalu klik “New Project”. Setelah itu akan muncul gambar seperti dibawah ini:

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:

Mekanisme membuka project


Ketika project sudah dibuat maka secara otomatis akan terbentuk beberapa folder seperti:
Assets, Library, dan ProjectSettings serta beberapa file solution Microsoft Visual Studio (.sln).
Jadi untuk membuka project Unity dilakukan dengan cara klik “open” pada sebelah kanan atas
unity sesaat setelah aplikasi unity dibuka.

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.

Mekanisme menyimpan scene


Pada unity menyimpan project dilakukan berdasarkan apa yang sudah dibuat pada Scene View.
Sebagai contoh, kita sudahmenambahkan beberapa game object seperti burung, musuh, papan score,
dan lingkungan pegunungan pada scene view. Programmer bermaksud untuk membuat beberapa
game object tadi menjadi kesatuan utuh untuk scene game level 1. Maka kemudian programmer
menyimpan scene tersebut dengan nama level1.scene dan kemudian membuat scene baru untuk
mulai mengerjakan scene level 2. Dengan contoh tersebut, maka kita dapat memahami bahwa satu
project game dapat berisi banyak scene. Cara untuk menyimpan scene yaitu: File -> Save Scenes
atau CTRL+S.

2.2 Manajemen Asset Game


Saat ini kita akan fokus pada folder Assets dari project unitysaja. Pada pertemuan sebelumnya,
sudah ditambahkan sebuah gambar dan nantinya jika dilihat pada folder Asset tadi, maka file
gambar tersebut akan muncul. Demikian juga apabila kita membuat folder di Project Window
unity, maka didalam folder Asset akan tertambah folder tersebut.
Asset game berbeda dengan game object. Biasanya minimum asset game untuk game 2D adalah
beberapa file scene, gambar, tipe font, prefabs, dan suara. Untuk mempermudah penataan asset-
aset game tersebut, biasanya programmer membuat folder-folder sesuai dengan tipe asetnya.
Misalkan folder “Images” berisi kumpulan asset-aset gambar yang nantinya akan menjadi game
object.

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

2. Lihat pada hierarchy window maka akan muncul “New Sprite”

3. Rename dengan cara klik kanan->rename atau tekan F2 pada keyboard

4. Rename dengan nama “My First GameObject”.

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”

3. Rename dengan nama “My First GameObject”.

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

2. Lihat pada Inspector bagian bawah kemudian Add Component

3. Tuliskan “New Script”


31
4. Klik “New Script” lalu akan muncul box seperti gambar berikut:

5. Isikan nama script “Coba” dan pilih Language “C sharp”

6. Create and Add

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:

3. Beri nama “Coba” atau rename “Coba”

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).

3.2 Variabel dan Operasi


Selamat kita sudah dapat menjadi programmer game, tahap selanjutnya adalah memahami
beberapa konsep seperti tipe data, penggunaan variable dan operasi. Pemorgraman C#
merupakan bahasa pemrograman yang mirip dengan C++ dan Java. Library standard C#
bergantung pada jenis .NET framework yang digunakan.

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

variable: Pendefinisian variable dengan men-assign nilai:

<tipe data><spasi><nama_variabel>=<nilai>; Contoh:

int answer = 42;


string greeting = "Hello, World!";

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:

public int a = 55; private float b = 2.5f;

Pendefinisian variable konstanta:

const <tipe data><spasi><nama_variabel> Contoh:

const int speedLimit = 55;


const double pi = 3.14159265358979323846264338327950;

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:

public bool isNabrak;


// Use this for initialization
void Start () {
Debug.Log (isNabrak?"Menang":"Kalah");
}
contoh percabangan:

public int level;


// Use this for initialization
void Start () { switch (level) { case 1:
Debug.Log ("Sekarang di level 1"); break;
case 2:
Debug.Log ("Sekarang di level 2"); break;
case 3:
Debug.Log ("Sekarang di level 3"); break;
}
}
contoh percabangan dengan if:

public string playerState; int status;


// Use this for initialization
void Start () {
if (playerState == "run") { Debug.Log ("player lari"); status = 1;

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:

for (int i = 0; i < 10; i++) {


Debug.Log ("Enemy_" + i + "_Spawn");
}

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

Pengenalan Dasar Unity 3D 2018


Unity 3D adalah sebuah game engine yang berbasis cross-platform. Unity dapat digunakan
untuk membuat sebuah game yang bisa digunakan pada perangkat komputer, ponsel pintar
android, iPhone, PS3, dan bahkan X-BOX.
Unity adalah sebuah sebuah tool yang terintegrasi untuk membuat game, arsitektur bangunan
dan simulasi. Unity bisa untuk games PC dan games Online. Untuk games Online diperlukan
sebuah plugin, yaitu Unity Web Player, sama halnya dengan Flash Player pada Browser.
Unity tidak dirancang untuk proses desain atau modelling, dikarenakan unity bukan tool untuk
mendesain. Jika ingin mendesain, pergunakan 3D editor lain seperti 3dsmax atau Blender.
Banyak hal yang bisa dilakukan dengan unity, ada fitur audio reverb zone, particle effect, dan
Sky Box untuk menambahkan langit.
Pada tutorial ini akan menjelaskan tentang pembuatan Terrain, Paint Texture, Paint Grass,
Paint Trees, Objek 3D, Standar Asset Unity dan Character Player TPS.

BAB 1 Membuat Map pada 3D Unity


Membuat Document 3D Unity

1. Buatlah Project 3D baru di Unity, dan berinama untuk project tersebut.

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.

5. Maka akan tampil Object 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.

18. Maka akan tampil Bar "Add Terrain 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.

39. Pada Project windows, pilih Assets Standard Assets Characters

54
ThirdPersonController  Prefabs  ThirdPersonController
40. Drag ThirdPersonController ke atas Hierarchy,

41. Jangan lupa untuk mengubah posisi character, sesuaikan inspectornya.

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

3 . Tambahkan imajinasi anda sendiri dengan membuat object seperti bukit

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

Third Person Shooter


1.Buatlah Terrain

2. Pada Tab Project > Assets > Standard Assets > Characters > ThirdPersonController >
Prefabs > ThirdPersonController ... lalu drag ke atas terrain, ubah Position di Tab Inspector

3. Pada Tab Hierarchy, drag dan


pindahkan "Main Camera" ke
Object
ThirdPersonController yang
ada di Tab Hierarchy.

4. Pada Main Camera,


pindahkan ke dekat Object
ThirdPersonController, sesuai
dengan tampilan kamera yang
kamu lihan di pojok kanan
bawah.

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.

First Person Shooter


Membuat game fps
Karakter FPS yang akan digunakan adalah aset standar yang telah disediakan oleh Unity3d.

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.

3. Membuat objek granat sederhana: Buat


prefab baru, rename sebagai Missile. Kemudian buat objek bola (klik menu
GameObject > Create Other > Sphere). Objek bola ini akan ditampilkan di jendela
Hierarchy dan Scene View. Drag objek bola ini dari panel Hierarchy ke prefab
Missile yang ada di panel project. Hapus objek Sphere di panel Hierarchy.
4. Membuat kode peluncur granat: Buat dokumen Javascript baru, beri nama
MissileLauncher, isikan kode berikut: var projectile : Rigidbody;

var speed = 20;

function Update()

if( Input.GetButtonDown( "Fire1" ) )

var instantiatedProjectile : Rigidbody = Instantiate(projectile,


transform.position, transform.rotation ); instantiatedProjectile.velocity
=transform.TransformDirection( Vector3( 0, 0, speed )
); Physics.IgnoreCollision( instantiatedProjectile. collider,

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.

Menambahkan efek ledakan.


Buat javascript baru, beri nama Projectile. Isikan kode berikut:

var explosion : GameObject;

function OnCollisionEnter( collision : Collision )

var contact : ContactPoint = collision.contacts[0];

var rotation = Quaternion.FromToRotation( Vector3.up, contact.normal );


var instantiatedExplosion : GameObject = Instantiate( explosion,
contact.point, rotation );

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.

10. Buat script baru, rename dengan Explosion, isikan kode:

var explosionTime = 1.0;

function Start()

Destroy( gameObject, explosionTime );

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

2. Dalam pembuatan karakter menggunakan blender gunakan tekstur yang diproyeksikan


dengan UV. Model , animasi dan tekstur diimpor kedalam unity

3. Mengimpor dengan cara Asset-Import package-custom package

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

6. Tambahkan komponen karakter kontroler dengan cara Component-physicscharacter-


controler

7. Atur ukuran karakter kontroler sehingga meliputi seluruh tubuh objek *.blend misalkan
radius:2 dan height 14.

BAB 3 Mengatur Animasi dan Menambahkan Efek Pada Player


Pengaturan Animasi
FSM (Finite State Machine) yang mengatur bagaimana perubahan state animasi milik sebuah
objek terjadi. Sebuah Animator akan menghubungkan berbagai Animation Clip dalam diagram
pohon. Dalam Unity kemudian memiliki kebebasan untuk mengarahkan bagaimana Animation
Clip ini terhubung, serta apa urutan kejadiannya. Lebih lanjut bahkan Animation Clip ini bisa
di-trigger melalui script jika dibutuhkan.

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)

Any State → Run: terjadi saat parameter State bernilai 2

2. Untuk mengubah properti transisi ini, kita cukup mengklik panah transisi untuk
menampilkan menu baru. Contohnya seperti berikut

3. Mengatur State sebagai parameter transisi

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 {

public float walkSpeed;

float walkSpeed_; //penampung nilai walkSpeed awal

Animator animator;
GameObject orang;
void Start () {

animator = GetComponent<Animator>();

walkSpeed_ = walkSpeed;

idle();

void Update () {

// model orang baru bergerak setelah frame ke


10 if (Time.frameCount > 10) {

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;

public class PlayerBehaviour : MonoBehaviour { public


float movingSpeed = 15; //kecepatan bergerak

void Update () {

//Jika keyboard di tekan

if (Input.GetKey(KeyCode.LeftArrow))

this.transform.Translate(Vector3.left * movingSpeed * Time.deltaTime, Space.World);


else if(Input.GetKey(KeyCode.RightArrow)) this.transform.Translate(Vector3.right
* movingSpeed * Time.deltaTime,

Space.World); else if (Input.GetKey(KeyCode.UpArrow))

this.transform.Translate(Vector3.forward * movingSpeed *
Time.deltaTime, Space.World);
else if (Input.GetKey(KeyCode.DownArrow))

this.transform.Translate(Vector3.back * movingSpeed * Time.deltaTime, Space.World);

74
}

B. Lawan statis
Silinder sebagai lawan statis, artinya lawan ini hanya berdiam tetapi memiliki reaksi jika terkena
pukulan

Tambahkan script berikt:

Using UnityEngine;

Using System.collection;

Public class TargetObject : MonoBehavoiur {

Public string TriggerTag ;

Float multiply;

Float force;

// digunakan untuk inialisasi


Void start () {

// update di lakukan satu kali tiap frame


Void Update (){
Void OnTriggerEnter(Collider collider){

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.

Tambahkan scrip berikut pada objek bola :

using UnityEngine;

using System.Collections;

public class AICharacterBehaviour : MonoBehaviour {


public GameObject target; //target yang dikejar public
float movingSpeed = 2f; //kecepatan berpindah public
float turnSpeed = 0.05f; //kecapatan berbelok

76
void Update() {

Vector3 gapPosition = target.transform.position - this.transform.position; //Gap antara


posisi AI dengan target

gapPosition = new Vector3(gapPosition.x, 0, gapPosition.z); //Nilai gap y dibuat 0 agar AI


mengabaikan posisi atas dan bawah (Y) dari target dan hanya mengikuti arah ke kanan dan ke
kiri (X dan Y)

Quaternion lookRotation = Quaternion.LookRotation(gapPosition); //Rotasi untuk look


atau melihat target this.transform.rotation = Quaternion.Lerp(this.transform.rotation,
lookRotation,
turnSpeed); //Membuat rotasi berubah secara smooth menggunakan fungsi lerp dari rotasi awal
ke rotasi tujuan lookRotasion

this.transform.Translate(Vector3.forward * movingSpeed * Time.deltaTime); //Bergerak

maju

77
Menambahkan Efek pada player
1. Buat objek 3d bola beri nama “bola kekuatan”

2. Tambahkan tag “kekuatanplayer”

3. Jadikan “bolakekuatan” sebagai prefabs dengan mendrag dari hierarchy ke panel assets

4. Pada “player” Klik game object create empty child

5. Atur posisinya didepan player

6. Tambahkan script pada player


: Using unityengine;
Using systemcollections;

Public class kekuatan : monobehaviour { // deklarasi variable bola kekuatan

Public gameobject bolakekuatan:

Public gameobject Spawnpoint:

Gameobject temp;

Float scale =1 , maxscale=10;

Void strart (){

Bolakekuatan.getcomponent<meshrenderer>().enabled=false;

// deteksi trigger kekuatanplayer pada penekanan tombol . keydown scale 0 kemuadian


selama keypres bertambah0.1f per frame rate. Kekutan ditembakkan setelah tombol ctrl
dilepas. Semakin lama tombol ditena maka kekuatan semakin besar

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
}

7. Drag game object empety sebagai spawnpoin

Drag prefab sebagai bola kekuatan

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

3. script 1 untuk kamera kemuadian scrip 2 untuk kubus

script 1

using UnityEngine;

using System.Collections;

public class scrip1 : MonoBehaviour {

public GameObject SpawnPoint;

public GameObject Ball;

GameObject shootingball;

GameObject temp;

GameObject camera1;

bool goRight = true;

// Use this for initialization

void Start () {

camera1 = GameObject.Find ("Main Camera");

81
// Update is called once per frame

void Update ()

if (goRight) {

camera1.transform.Rotate (0, 0.3f, 0);


if (camera1.transform.eulerAngles.y > 0) {
goRight = false;
}

} else {

camera1.transform.Rotate (0, -0.3f, 0);

if (camera1.transform.eulerAngles.y < 0) {

goRight = true;

if (Input.GetKeyUp (KeyCode.Space)) {

temp = (GameObject)

GameObject.Instantiate (Ball,

SpawnPoint.transform.position,

SpawnPoint.transform.rotation);

Destroy (temp, 5);

if (temp) {

82
temp.GetComponent<Rigidbody> ().

AddRelativeForce (Vector3.forward * 100);

using UnityEngine;

using System.Collections;

public class script2 : MonoBehaviour {

public GameObject text3d;

public string MyText;

int score;

// Use this for initialization


void Start () {

HideAgain ();

text3d.GetComponent<TextMesh> ().text =
MyText; score = 0;

// Update is called once per frame

void Update () {

83
}

void HideAgain () {

text3d.GetComponent<MeshRenderer> ().enabled = false;

void OnTriggerEnter (Collider other) {

if (other.gameObject.tag == "Ball") {

Destroy (other.gameObject);

score++;

text3d.GetComponent<MeshRenderer> ().enabled = true;


Invoke ("HideAgain", 3);

void OnGUI () {

GUILayout.BeginArea (new Rect (10, 10, 400, 200));


GUILayout.Label ("Score : " + score.ToString ());
GUILayout.EndArea ();

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

6. berikan tag Ball pada bolla.

84
BAB 4 Augmanted Reality menggunakan Vuforia
Augmanted Reality Dengan Vuforia

1. Buat project baru

2. Ubah project ke Android

3. pengaturan pada player setting

85
4. Atur nama company dan nama aplikasi juga pengaturan bundle identifier

5. Import Vuforia SDK dengan double klik centang semua


elemen import

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.

Disable 'Don't use play mode' jika error

88
7. Definisikan marker dengan klik
ImageTarget kemudian klik 'No targets
defined. Press here for target
creation !'

Anda akan diarahkan ke website


Vuforia. Login untuk masuk ke akun
Anda. Pertama klik 'Add License Key'
pada 'License Manager' untuk membuat
lisensi.

License manager pada


Vuforia

Pada lisensi ada kode yang harus Anda


letakkan di code Anda. Copy semua kode
tadi kemudian masukkan di ARCamera
pada project Anda

Masukkan ke ARCamera

89
Kemudian definisikan marker pada image target. Pada bagian 'Target Manager' klik 'Add
Database'.

Tambahkan
database

Masukkan nama database,


kemudian upload marker.
Marker yang Anda Upload akan
ditampilkan dan diberi rating

90
Setelah selesai download
datasetnya, pilih 'Unity Editor'.
Kemudian Anda akan
mendapatkan file dengan
ekstensi .unitypackage.

8. Import file dataset dengan


double click file dataset dengan ekstensi .unitypackage yang Anda dapatkan dari Vuforia.
Kemudian tentukan dataset
yang digunakan pada
ImageTarget

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

Konfigurasi ARCamera untuk me load


dataset

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

Dimana hasil dari aktivitas diatas adalah sebagai berikut

94
Langkah 2:

Pilih Main Camera di jendela hirarki

Langkah 3 :

Pilih “Align With View” pada menu GameObject

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

Melakukan Transformasi Objek

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 :

Tulislah script seperti dibawah ini:

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

Anda mungkin juga menyukai