LAPORAN PRAKTIKUM PEMOGRAMAN GAME GAME AUTO AI (ARTIFICIAL INTELLIGENT)
PENYUSUN:
NAMA
: MUHAMMAD KHALID
NIM
: 150504075
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS SAMUDRA 2018
LEMBAR PENGESAHAN
LAPORAN PRAKTIKUM PEMOGRAMAN GAME
PRODI TEKNIK INFORMATIKA (ARTIFICIAL INTELLIGENT) GAME AUTO AI(ARTIFICIAL
Diajukan sebagai salah satu syarat kelulusan Praktikum Pemograman Game Semester VI T.A 2018/2019
Oleh :
NAMA
Muhammad Khalid
NIM
NILAI
150504075
Disetujui
Koordinator PraktikumI
PengasuhMataKuliah PengasuhMataKuli ah Praktikum Pemograman Game
AhmadIhsan.ST,M.T NIDN. 0018068504
AhmadIhsan.ST,M.T NIDN.0018068504 NIDN.0018068 504
BAB I PENDAHULUAN 1.1 Latar Belakang
Meluasnya penggunaan dan pemakaian teknologi baru seperti Internet, jaringan sosial dan telepon seluler dapat mempengaruhi proses pendidikan di sekolah dan perguruan tinggi. Teknologi ini memiliki peran penting terhadap pendidikan yang membuat komunikasi menjadi lebih baik, pelaksanaan sistem informasi menjadi lebih aktual, serta berguna sebagai media pembelajaran [1]. Selain itu terdapat sistem yang mendukung pembelajaran individual, kolaboratif, manajemen konten, manajemen kegiatan, formal, informal, dan pekerjaan [2]. Salah satu sistem pendidikan yang paling umum dan didukung oleh teknologi informasi adalah E-learning. Salah satu perangkat lunak yang menerapkan Elearning didalam media hiburan dengan suatu interaksi pengguna disebut dengan game edukasi. Dalam pembuatan game, pasti memerlukan suatu perancangan yang sesuai dengan tujuan pembuat. Khususnya untuk game edukasi, tujuan yang dimaksud ialah bagaimana membuat pengguna menjadi lebih mengerti mengenai suatu wawasan atau pembelajaran ketika sedang atau telah bermain.Salah satu perancangan yang dimaksud ialah menentukan elemen-elemen yang harus ada. Menurut MarkoUrh [3], salah satu contoh elemen yang penting ialah adanya tantangan yang terukur dan seimbang sesuai level. Dalam hal ini, adanya kecerdasan buatan atau AI merupakan salah satu unsur yang diperlukan dalam pembentukan game khususnya game edukasi.
AI dipakai di pembuatan game. Game yang menarik adalah game yang bisa memberikan pengalaman yang interaktif [1]. Game itu menarik dikarenakan beberapa hal : grafis, gameplay experience, replayability value, dan artificial intelligence (AI) nya. AI yang menarik adalah AI yang bisa bersaing dengan pemain, bukan mengalahkan pemain [2]. Kualitas AI yang ada pada game sekarang masih rendah, sehingga pemain game lebih memilih bermain multi player melawan musuh yang dikendalikan oleh manusia, karena kualitas AI-nya masih rendah.
1.2Tujuan dan Manfaat
1. Menggunakan game engine Unity 3D untuk merancang dan membuat game dengan grafis 3D. 2. Sebagai sarana alternatif media hiburan masyarakat. 3. Menumbuhkan minat untuk berkreasi dalam bentuk video game. 4. Menambah wawasan mengenai cara pembuatan game dengan aplikasi Unity 3D. 1.3Alat dan Bahan
1. Laptop/PC 2. Software Unity 3D
BAB II DASAR TEORI 2.1 Game
Game berasal dari kata bahasa Inggris yang memiliki arti dasar Permainan. Permainan dalam hal ini merujuk pada pengertian “kelincahan intelektual” (intellectual playability). Game juga bisa di artikan sebagai arena keputusan dan aksi pemainnya. Ada target - target yang ingin dicapai pemainnya. Kelincahan intelektual, pada tingkat tertentu, merupakan ukuran sejauh mana game itu menarik untuk dimainkan secara maksimal. Game diartikan sebagai suatu aktivitas terstruktur atau juga digunakan sebagai alat pembelajaran. Game juga merupakan permainan komputer yang dibuat dengan teknik dan metode animasi. Jika ingin mendalami penggunaan animasi haruslah memahami pembuatan game, atau jika ingin membuat game, maka haruslah memahami teknik dan metode animasi, sebab keduanya saling berkaitan (Adi, 2009). Ada dua jenis game, yaitu game online dan game offline. Pengertian game offline sendiri adalah permainan yang dapat dilakukan oleh satu sampai dua orang, sedangkan game online adalah permainan yang dapat dimainkan oleh lebih dari dua orang. Pada dasarnya pengertian dari game offline dan game offline sendiri hampir sama, tetapi yang membedakan yaitu pada game offline tidak perlu digunakan koneksi jaringan internet karena game ini tidak dilengkapi dengan fitur yang memungkinkan untuk koneksi dengan internet, dan pada game online diperlukan koneksi jaringan internet untuk dapat bermain dengan seluruh gamers yang ada di dunia ini yang memainkan permainan yang sama dan bermain dalam waktu yang sama. Berdasarkan teknologi grafis, game dibagi menjadi dua yaitu: game 2 dimensi dan game 3 dimensi. Game 2 dimensi adalah game yang hanya mempunyai satu sisi sudut pandang dan game jenis ini termasuk game yang ringan. Sedangkan game 3 dimensi merupakan game dengan grafis yang baik. Kebanyakan game dengan grafis ini memiliki perpindahan sudut kamera hingga
360 derajat sehingga user bisa melihat ke segala arah dalam dunia game. Game ini hanya mampu dijalankan di spesifikasi komputer yang lumayan tinggi agar tampilan 3 dimensi game tersebut ditampilkan secara sempurna. 2.2 Game Engine
Game engine merupakan sebuah sistem yang dirancang untuk penciptaan dan pengembangan video game. Ada banyak mesin permainan yang dirancang untuk bekerja pada video game konsol dan komputer pribadi. Fungsionalitas inti biasanya disediakan oleh mesin permainan mencakup mesin rendering (renderer) untuk grafis 2D atau 3D, mesin fisika atau deteksi tabrakan (dan tanggapan tabrakan), suara, script, animasi, kecerdasan buatan, jaringan, streaming, memori manajemen,
threading,
dukungan
lokalisasi,
dan
grafik
adegan.
Proses
pengembangan game sering dihemat oleh di menggunakan kembali sebagian besar / mengadaptasi mesin permainan yang sama untuk membuat game yang berbeda. 2.2.1 Unity 3D
Unity3D adalah perangkat lunak pembuat game 3D dan 2D.Fitur Unity3D telah cukup efektif jika dibanding dengan memakai program framework. Program framework membuat para pengembang game memulai dari awal untuk membuat sistem-sistem yang akan digunakan pada game. Terutama game 3D yang mempunyai sistem framework yang kompleks. Keunggulan perangkat lunak framework ini mempunyai kelebihan untuk dijadikan game ke semua platform. Akan tetapi dengan melihat bahwa Unity3D juga dapat membuat game ke cukup banyak platform game. Platform-platform tersebut antara lain: PC, android, IOS, Flash, PS3, Xbox, Wii U, Blackberry 10, Windows Phone dan Web Player. Dalam hal logika pemrograman, Unity 3D memakai berbagai bahasa pemrograman. Bahasa pemrogaraman tersebut antara lain: c#, java script, boo. Pemrograman adalah hal paling penting dalam pembuatan game karena seluruh kegiatan dalam game tidak lepas dari pemrograman yang dibuat oleh pengembang game.
Pengembangan game dalam tugas akhir ini dikerjakan hanya oleh satu orang. Oleh dari itu, semua aktivitas pengembangan game seperti: pembuatan grafis game, pembuatan user interface, pemrograman akan dilakukan sendiri. Untuk
melakukan
hal-hal
tersebut,
diperlukan
manajemen
waktu
yang
efektif.Oleh karena itu, dalam tugas akhir ini dipakai sebuah visual scripting bernama Playmaker, guna untuk menghemat waktu pengerjaan programming. 2.2.2 Fitur-Fitur Unity
1. Rendering Graphic Engine yang dipakai ialah Direct 3D “Windows, Xbox 360”, OpenGL (Mac, Windows, Linux, PS3), OpenGL ES (Android, iOS), dan Proprietary APIs (Wii). Unity juga mendukung kemampuan untuk bump mapping, Reflection Mapping, Parallax Mapping, Screen Space Ambient Occlusion (SSAO). Unity sanggup menggunakan format desain dari 3ds Max, Maya, Blender, dll. model 3D tersebut sanggup ditambahkan ke game project dan diatur oleh GUI. 2. Scripting Script game engine pada versi 5.0.2f1 menggunakan Mono Develop 4.0.1, sebuah implementasi Open Source dari .NET Framework. kamu bisa memakai Script dalam bentuk (JavaScript, C#, dan Boo). 3. Asset Tracking Unity juga menyertakan Server Unity Asset, sebuah solusi terkontrol untuk developer game Assets dan Script. 4. Platform Sudah di jelaskan tadi bahwa Unity ini berbasis Multi Platform yang bisa dipakai oleh oleh banyak Sistem Operasi. Unity juga mengizinkan spesifikasi rendah untuk memakai software ini, alasannya ialah Unity menyediakan Kompresi Texture dan pengaturan resolusi di setiap platform yang di dukung.
5. Assets Store Assets Store ialah sebuah resource yang hadir di WEB resmi Unity3D, terdiri dari lebih dari 4,400 koleksi assets packages, 3D model, material, Audio, Scripting, dll.
Assets Store diluncurkan pada November 2010, kamu bisa
mengaksesnya di www.assetstore.unity3d.com 6. Physic Unity juga mempunyai support build-in untuk PhysX physics engine (sejak Unity 3.0) dengan penambahan kemampuan untuk simulasi real-time cloth pada arbitrary dan skynned meshes, thrick ray cets, dll. 2.3 Artificial Intelligence (AI) Dalam Game
Salah satu unsur yang berperan penting dalam sebuah game adalah kecerdasan buatan. Dengan kecerdasan buatan, elemen-elemen dalam game dapat berperilaku sealami mungkin layaknya manusia. Game AI adalah aplikasi untuk memodelkan karakter yang terlibat dalam permainan baik sebagai lawan, ataupun karakter pendukung yang merupakan bagian dari permainan tetapi tidak ikut bermain (NPC = Non Playable Character). Peranan kecerdasan buatan dalam hal interaksi pemain dengan permainan adalah pada penggunaan interaksi yang bersifat alami yaitu yang biasa digunakan manusia untuk berinteraksi dengan sesama manusia. Contoh media interaksi ialah:
Penglihatan (vision)
Suara (voice), ucapan (speech)
Gerakan anggota badan (gesture) Untuk pembentukan Artificial Intelligence pada game ternyata digunakan
pula algoritma, yaitu jenis pohon n-ary untuk suatu struktur. Implementasi pohon (tree) ini biasa disebut game tree. Berdasarkan game tree inilah sebuah game disusun algoritma kecerdasan buatannya. Artificial intellegence yang disematkan dalam
sebuah
game
yang
membentuk
analisis
game
tree
biasanya
merepresentasikan kondisi atau posisi permainan dari game sebagai suatu node, dan merepresentasikan langkah yang mungkin dilakukan sebagai sisi berarah yang
menghubungkan node kondisi tersebut ke anak (child) sebagaimana representasi suatu pohon (tree). Namun, biasanya representasi langsung tersebut mempunyai kelemahan, yaitu representasi data pohon akan menjadi sangat lebar dan banyak. Mungkin bagi sebuah mesin komputer mampu melakukan kalkulasi sebanyak apapun masalah, namun game tree yang lebar dan besar memberikan beberapa masalah, antara lain konsumsi proses memori, kapasitas penyimpanan yang cukup besar dan kinerja yang kurang pada konsol game berspesifikasi rendah.
BAB III METODOLOGI PERCOBAAN 3.1 Membuat Project Baru
Buka Software Unity.
Klik New Project.
Beri nama project dengan nama GameAI, lalu Create Project.
3.2 Membuat Arena
Klik pada menubar GameObject, pilih 3D Object lalu klik Cube.
Atur panjang, lebar dan tinggi Cube pada Scale pada X, Y dan Z menjadi persegi panjang lalu Duplicate menjadi 4 bagian untuk pembatas, kemudian atur panjang, lebar dan tinggi untuk Alas. Selanjutnya klik Create pada Hierarchy lalu pilih Create Empty, ubah namanya menjadi Arena. Kemudian Drag Cube tadi kedalam paket Arena.
3.3 Membuat Pemain dan Musuh
Klik pada menubar GameObject, pilih 3D Object lalu klik Capsule
Atur panjang, lebar dan tinggi Capsule pada Scale pada X, Y dan Z lalu Duplicate.
Pada masing-masing capsule buat Create Empty, kemudian ubah namanya menjadi Pemain lalu drag masing-masing ke paket tersebut.
Pada masing-masing capsule tambahkan 3D Text untuk berikan nama capsule dengan cara klik kanan pada capsule di Hierarchy kemudian pilih 3D Object => 3D Text.
Klik pada New Text, ubah nama text menjadi pemain dan musuh.
3.4 Menambahkan Script Pemain
Untuk menambahkan Tab Project, Pilih Windows pada pada menubar => pilih project maka tab Project akan ditambahkan.
Pada tab Project pada Assets klik kanan => pilih Create => Folder. Ubah nama folder menjadi Script.
Kemudian pada folder script tersebut klik kanan => pilih Create => pilih C#Script untuk menambahkan script. Ubah nama C#Script menjadi Pemain.
Lalu buka C#Script Pemain dengan cara double klik atau klik+enter maka dengan otomatis Develop Unity akan terbuka.
Lalu Copy kan Script dibawah ini untuk C#Script Pemain.
using UnityEngine; using System.Collections; public class Pemain : MonoBehaviour { public float speed = 2.0f; public GameObject kontrol; void Start () { } void Update () { if (Input.GetKey (KeyCode.RightArrow)) { Vector3 newPosition = kontrol.transform.position; newPosition.x++; kontrol.transform.position = newPosition; } if (Input.GetKey (KeyCode.LeftArrow)) { Vector3 newPosition = kontrol.transform.position; newPosition.x--; kontrol.transform.position = newPosition; } if (Input.GetKey (KeyCode.UpArrow)) { Vector3 newPosition = kontrol.transform.position; newPosition.z++; kontrol.transform.position = newPosition; } if (Input.GetKey (KeyCode.DownArrow)) { Vector3 newPosition = kontrol.transform.position; newPosition.z--; kontrol.transform.position = newPosition; } } }
Kemudian pada Hierarchy klik capsule Alfa, lalu klik dan drag script Pemain letakkan pada Inspector.
Kemudian Hierarchy klik dan drag capsule Pemain lalu letakkan pada GameObject Kontrol maka saat game unity dijalankan maka mengerakkan capsule Alfa menggunakan arah pada keyboard.
3.5Menambahkan Script Musuh
Pada folder script klik kanan => pilih Create => pilih C#Script untuk menambahkan script. Ubah nama C#Script menjadi Musuh.
Lalu buka C#Script Musuh dengan cara double klik atau klik+enter maka dengan otomatis Develop Unity akan terbuka.
Lalu Copy kan Script dibawah ini untuk C#Script Musuh.
using UnityEngine; using System.Collections; public class Musuh : MonoBehaviour { public float speed = 20; public float rotateSpeed = 10;
public float leftRight= 4; public float inFront= 7; public float direction =1; void Start () { } void Update () { if (!Physics.Raycast (transform.position, transform.forward, inFront)) { transform.Translate (Vector3.forward * speed * Time.smoothDeltaTime); } else { if(Physics.Raycast (transform.position, -transform.right, leftRight)) { direction= 1; } else if(Physics.Raycast (transform.position, transform.right, leftRight)) { direction= -1; } transform.Rotate(Vector3.up,90 * rotateSpeed * Time.smoothDeltaTime * direction); } }
}
Kemudian pada Hierarchy klik capsule Beta, lalu klik dan drag script Musuh letakkan pada tab Inspector.
Kemudian Hierarchy klik dan drag capsule Betadan saat game unity dijalankan maka capsule Betaakan bergerak secara otomatis mengelilingi arena.
3.6 Membuat Penghalang
Klik pada menubar GameObject, pilih 3D Object lalu klik Cube.
Atur panjang, lebar dan tinggi Cube pada Scale pada X, Y dan Z menjadi persegi dan persegi panjang lalu Duplicate menjadi 7 bagian letakkan secara acak. Selanjutnya klik Create pada Hierarchy lalu pilih Create Empty, ubah namanya menjadi Penghalang. Kemudian Drag Cube-cube tadi kedalam paket Penghalang.
3.7 Menambahkan Script Penghalang
Pada folder script klik kanan => pilih Create => pilih JavaScript untuk menambahkan script. Ubah nama JavaScript menjadi Penghalang.
Lalu buka JavaScript Musuh dengan cara double klik atau klik+enter maka dengan otomatis Develop Unity akan terbuka.
Lalu Copy kan Script dibawah ini untuk JavaScript Penghalang. var Alfa: Transform; var safe : boolean = false; function Update(){ transform.LookAt(Alfa.position); var hit: RaycastHit; if(Physics.Raycast(transform.position, transform.forward, hit)){
if(hit.collider.gameObject.transform.tag == "Alfa"){ safe = false; } else { safe = true; } } }
Kemudian pada Hierarchy klik Penghalang, lalu klik dan drag script Penghalang letakkan pada tab Inspector.
Kemudian pada Hierarchy klik dan drag capsule Alfa lalu letakkan pada Gameobject Pemain.
Maka saat game unity dijalankan maka penghalang akan menghalangi capsule Alfa.
Langkah selanjutnya Klik dan Drag script Penghalang lalu letakkan pada capsule Beta, tujuannya agar capsule Beta mengejar capsule Alfa.
3.8. Menambahkan Warna Capsule
Klik kanan pada folder Pattern => Cerate => Material. Kemudian ubah nama material tersebut dengan Merah dan Biru.
Kemudian ke Inspector, pada main maps, klik pada kolom yang berwarna putih, klik dan pilih warna merah dan biru.
Setelah itu, klik capsule Alfa, klik dan drag material warna tadi ke inspector capsule Alfa untuk warna merah, dan warna biru untuk capsuleBeta.
3.9. Menambahkan Texture
Pada tab Project klik kanan Assets pilih Folder, lalu ubah nama menjadi Tekstur.
Kemudian tambahkan texture gambar ke unity dengan cara: Pilih texture gambar yang ingin dipakai pada Document, kemudian Klik dan Drag texture gambar tersebut ke Folder Tekstur yang berada pada tab Project.
Cara mengaplikasikannya dengan caraPilih semua Pembatas pada folder Arena pada Hierarchy, kemudian klik dan drag texture gambar letakkan pada pembatas di tab Inspectornya.
Kemudian pilih semua penghalang pada folder Penghalang pada Hierarchy, kemudian klik dan drag texture gambar dan letakkan pada Penghalang di Inspectornya.
4.0. ALGORITMA GAME AUTO AI
1. Mulai 2. Menginputkan 5 buah cube sebagai arena dan 2 capsule sebagai player 3. Menginputkan 5 buah penghalang sebagai rintangan untuk player ketika bergerak melewati cover box tersebut. 4. Menginput scrit pemain , musuh , jalan dan penghalang 5. Menginputkan camera untuk mengikuti arah pergerakan dari player. 6. Menginput warna pemain , dan texture pada arena dan penghalang 7. Menampilkan hasil output game auto ai diantaranya adalah 2 pla yer yang bergerak, 1 player digerakan menggunakan keyboard sedangkan player 1 lagi bergerak otomatis mengikuti player yang dimainkan . 8. Selesai.
4.1. FLOWCAHARTGAME AUTO AI
BAB IV HASIL DAN ANALISA 4.1 Hasil Praktikum
Gambar 4.1
Gambar 4.2
4.2 Analisa
Pada praktikum pembuatan Game sederhana ini dapat dianalisa bahwa pembuatan game ini menggunakan aplikasi Unity. Pada game ini Objeck 3D yang digunakan berupa capsule dan cube yang digabungkan dan diatur menjadi satukesatuan. Kemudian capsule-capsule tersebut dimasukkan script kedalamnya sehingga capsule Pemain maupun capsule Musuh dapat dimainkan. Pada capsule Musuh dimasukkan 2 buah script, yaitu script Musuh dan Script Penghalang (JavaScript), mengapa ?Karena script Musuh berfungsi untuk membuat capsule bergerak bebas sedangkan script Penghalang digunakan untuk menghalang Pemain atau mengarah ke capsule Pemain. Sehingga apabila kedua script tersebut digabungkan maka akan menghasilkan capsuleMusuh dan akan mengejar capsulePemain.
BAB V KESIMPULAN 1. Pembuatan game pada praktikum ini adalah salah satu game yang memiliki kecerdasan buatan yang terdapat pada capsule pemain dan capsule musuh serta Penghalang yang hanya bisa dimainkan oleh satu orang saja. 2. Game ini adalah game yang dimana capsule Musuh akan mengejar capsule Pemain dengan menggerakkan capsule Alfa menggunakan keyboard. 3. Salah satucara untuk membuat game ini yaitu dengan menggunakan game engine Unity 3D. Unity 3D adalah sebuah ekosistem alat pengembangan video game yang terdiri dari rendering engine yang hebat serta sudah terintegrasi lengkap dengan alat-alat yang memudahkan alur kerja dalam membuat konten interaktif tiga dimensi (3D) maupun dua dimensi (2D). 4. Game AI merupakan game yang mempunyai kecerdasan buatan yang bertujuan akhir yang sama yakni mendapatkan suatu kecerdasan sistem yang dapat menunjukkan perilaku intelektual seperti perilakulayaknya manusia. 5. Dalam game ini tidak memiliki tujuan khusus, karena game yang dibuat
hanya untuk memenuhi praktikum pemrograman game agar mahasiswa memahami konsep daripada software Unity itu sendiri dan sebagai sarana hiburan bagi yang memainkan.
DAFTAR PUSTAKA Blackman, S., 2011.“ Beginning 3D Game Development with Unity ”. Apress, New York. Henry, Samuel., 2005. “ Panduan Praktis Membuat Game 3D”. GRAHA ILMU, Yogyakarta. Mukhammad, Yanuar 2013.“ Membuat Game 3D dengan Unity 3D”.Skripsi. Universitas Gadjah Mada.