Pengembangan Non-Player Character (NPC) Menggunakan Unity ML-Agents Pada Karting Microgame - Muhammad Yasir Anshari Haq; Muhammad Aminul Akbar; Tri Afirianto (Fountain of Informatics Journal, 2021)
AbstrakPerkembangan teknologi di bidang gim sekarang sudah sangat pesat terutama pada gim balapan. Gim balapan memiliki tujuan untuk memberikan pemain sebuah pengalaman yang menantang dan menyenangkan dalam sebuah balapan melawan mobil yang dikendalikan oleh gim tersebut atau biasa disebut dengan Non-Player Character (NPC). Pengembangan gim balapan tentunya tidak dapat lepas dari pengembangan NPC sebagai lawan main dari pemain. Pada umumnya NPC dikembangkan menggunakan metode waypoint untuk navigasi dalam melintasi trek balapan. Kekurangan dalam metode waypoint adalah harus diatur secara manual untuk setiap trek dan memakan waktu yang lama untuk mengatur waypoint pada setiap trek. Begitu juga untuk membuat NPC balap yang kompetitif dibutuhkan desain rule base yang kompleks. Peneliti mengusulkan menggunakan metode machine learning untuk mengatasi permasalahan tersebut. Unity3D menyediakan sebuah open-source API bernama Unity ML-Agents yang dapat digunakan untuk melatih NPC. NPC dilatih menggunakan metode reinforcement learning dengan Unity ML-Agents yang bertujuan untuk melatih NPC dengan cara memberikan reward agar mencapai hasil yang optimal. Hasil yang didapatkan dengan memanfaatkan Unity ML-Agents adalah NPC yang dapat melintasi berbagai macam trek dan dapat menghindari tabrakan. NPC yang telah dikembangkan dengan Unity ML-Agents juga mendapatkan waktu total yang lebih sedikit dibandingkan dengan waktu total yang diperlukan pemain untuk menempuh 3 lap putaran pada suatu trek yaitu 55,9 detik dibandingkan dengan 59,4 detik.Kata kunci: gim balapan, non-player character, unity ml-agents, reinforcement learning.Abstract[Non-Player Character (NPC) Development Using Unity ML-Agents in Karting Microgame] Nowadays, the development of game technology is very fast, especially in racing games. The racing game aims to provide players with a challenging and fun experience in a race against cars controlled by the game or commonly known as the Non-Player Character (NPC). Of course, the development of a racing game cannot be separated from the development of NPCs as opponents of the players. In general, NPCs were developed using the waypoint method for navigation across racetrack. The disadvantage of the waypoint method is that it must be set manually for each track, and it takes a long time to set the waypoint for each track. Likewise, making a competitive racing NPC requires a complex rule base design. Researchers suggest using machine learning methods to overcome these problems. Unity3D provides an open-source API called Unity ML-Agents which can be used to train NPCs. NPCs are trained using the reinforcement learning method with Unity ML-Agents which aims to train NPCs by providing rewards to achieve optimal results. The results obtained by utilizing Unity ML-Agents are NPCs that can traverse various kinds of tracks and can avoid collisions. NPCs that have been developed with Unity ML-Agents also get less total time compared to the total time required for a player to take 3 laps on a track, which is 55.9 seconds compared to 59.4 seconds.Keywords: racing game, non-player character, unity ml-agents, reinforcement learning.