Laporan Project Pacman Ball
(Game Pacman Modifikasi dengan
Karakter Bola Pacman)
Nama : Nyimas Ariny Sabilarrusyda
Kelas : 2 D4 Game Technology
NRP : 4210131019
A. Tujuan
Laporan
1. Mahasiswa
memahami projek akhir yang dibuatnya
2. Mahasiswa
menjadi lebih memahami tentang AI penemuan jarak terdekat
3. Mahasiswa
mampu mengimplementasikannya menjadi sebuah game seperti Pacman
B. Alat dan
Bahan
1. Laptop
dengan OS Windows
2. Unity 5.0
3. Blender
C. Dasar
Teori
Konsep dasar pembuatan game seperti
Pacman adalah NavMesh dan Collider. NavMesh digunakan untuk mencari jarak
terpendek. Ini digunakan pada NPC. NavMesh merupakan salah satu cara pembuatan
AI pencarian jarak terpendek termudah, karena pembuatan arena sendiri telah
disediakan di Unity.
Collider digunakan untuk mendeteksi
sentuhan antar objek yang terjadi saat permainan di-play. Dalam game pacman,
ini terjadi antar Player dengan Poin dan NPC dengan Player.
D. Proses
Pembuatan
1. Rancang
arena. Disini wall yang berupa labirin di tengah-tengah dibuat dengan
menggunakan file Blender. Sedangkan ground dan dinding pelindung di sekitarnya
dibuat dari Unity.
Lalu
sediakan objek Player, NPC dan poin. Tambahkan juga UI yang berisi score,
tombol back dan win text. Tampilan hierarki yang dihasilkan sebagai berikut :
2. Lalu
jadikan Ground dan semua Wall adalah static Navigation . Jadikan Ground sebagai
walkable sedangkan wall menjadi not walkable. Jika walkable maka pilih juga
Generate OffMeshLinks.
3. Buat script-script
yang diperlukan :
a. Script
pacman, yang diggunakan pada player
b. Script
rotate, yang digunakan untuk merotasi poin secara otomatis
c. Script
target untuk NPC agar dapat mengejar Pacman (player)
d. Script
CameraController agar camera mengikuti pergerakan player dengan perbedaan jarak
tertentu
Script Pacman (player) :
Code ini berisi fungsi start, FixedUpdate, OnTriggerEnter dan SetCountText. Start untuk pengkondisian awal, FixedUpdate berguna untuk selalu mengupdate kondisi yang diperlukan, OnTriggerEnter berguna untuk mendeteksi collider yang terjadi antara objek-objek yang telah didefinisikan, dan SetCountText berguna untuk menampilkan tulisan dan membuat kondisi ketika telah menang.
Script rotate :
Code ini hanya berisi satu fungsi yaitu fungsi Update. Fungsi ini berisi perotasian objek secara otomatis. Code ini dimasukkan pada prefab coin.
Script cameraController :
Code ini untuk objek main camera. Disini terdapat dua fungsi, Start dan LateUpdate. Di Start, adalah pengisian variabel offset dengan jarak antara kamera dengan posisi objek yang dituju. Sedangkan di LateUpdate, pengisian posisi kamera dengan posisi player ditambah posisi variabel offset.
Script target :
Code ini adalah code yang dimasukkan ke NPC (atau di projek ini bernama Ghost). Disini NPC mencari jarak terpendek menuju player dengan memakai NavMesh. NPC pun diberikan NavMesh Agent agar dapat tersambung dengan sistem NavMesh ini. Berikut tampilan inspectornya :
4. Setelah game jadi, tambah satu scene lagi untuk menjadi menu. Disini saya membuat menu sederhana, seperti gambar berikut ini :
E. Analisa dan Kesimpulan
Pembuatan NPC yang memiliki AI penemuan jarak terpendek yang paling mudah adalah dengan menggunakan NavMesh ini. Karena memang sistemnya telah disediakan di Unity, hanya saja script-nya buat sendiri.
Menurut saya, game ini telah memenuhi kriteria tugas yang diajukan. GamePlay game Pacman Ball ini seperti :
a. Pemain bertugas untuk mengambil semua poin yang ada
b. Pemain harus menghindari NPC
c. Jika terkena NPC maka pemain akan berada di posisi (0,0,0). Ini berlaku hingga 3x (health player : 3)
d. Ketika telah terkena NPC 3x, maka gameOver dan kembali ke menu
e. Jika pemain berhasil mengambil semua poin, maka pemain menang dan akan muncul tombol back to menu