Jumat, 03 Juli 2015

Laporan Projek Akhir Produksi Game 4 - Pacman Ball



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

1 komentar: