Implementasi Pathfinding Dengan Algoritma A Pada Game Funny English Menggunakan Unity 3D Berbasis Graf Navmesh
ImplementasiPathfindingdenganAlgoritma A* padaGame
Funny EnglishMenggunakan Unity 3D Berbasis Graf
Navmesh
Riwinoto 1, Alfian2
PoliteknikNegeriBatam
JurusanTeknik Multimedia Jaringan
Parkway Street, Batam Centre, Batam 29461, Indonesia
E-mail: 1 [email protected], 2 [email protected]
Abstrak
Penggunaan bahasa Inggris telah men jadi bagian dalam keh idupan sehari-hari. Di Indonesia, mata pelajaran bahasa
Inggris telah masuk kedalam kurikulu m pendidikan dasar. Salah satu aspek penting dalam proses pembelajaran
bahasa Inggris adalah pengenalan kosakata. Game Funny English dikembangkan dengan Un ity 3D 4.34 bertujuan
mempermudah pengenalan kosakata bahasa Inggris yang disajikan dalam bentuk objek 3D serta audio pengucapan
objek tersebut. Untuk men ingkatkan minat anak dalam bermain, maka ditambahkan fitur artificial intelligence (AI)
didalam game. Penerapan artificial intelligence pada non-playable character (NPC) yang tindakannya tidak dapat
dikendalikan pemain, misalnya dalam hal mencari rute untuk menuju ke suatu tempat, diharapkan dapat menambah
kesenangan bermain dan menambah variasi gameplay.
Kata kunci: Game edukasi, bahasa Inggris, NPC, kecerdasan buatan, Uni ty 3D, pencarian rute, Navmesh
Abstract
English as language has become a part of everyday life. In Indonesia, English has become a subject in preliminary
school’s curriculu m. An important element in the process of learning English is vocabulary. Game Funny English
developed with the purpose to facilitate English vocabulary in the form of 3D objects as well as audio pronunciation
of those objects. To increase children's interest in play ing the game , artificial intelligence (AI) feature has been
added in the game. Application of AI on a non-playable character (NPC) which cannot be controlled by the player,
for examp le when searching for a route to go somewhere, is expected to enhance player’s gaming experience and
various gameplay.
Keywords: Educati on g ame, English, NPC, Artificial Intelligence, Uni ty 3D, pathfindi ng, Navmesh
1
Pendahuluan
Berdasarkanstatistik
[1]
BahasaInggrisadalahbahasaketiga
yang
digunakansebagaibahasautamadenganlebihdari
335
jutapengguna.BahasaInggrismerupakanbahasaasingno
morsatu yang diajarkan di lebih 100 negara di dunia
[2].Di
Indonesia
sendiri,
bahasaasingterutamabahasaInggrismerupakanbahasain
ternasional
yang
sangatpentingkegunaannyadalampergaulan global [3].
DibutuhkanbeberapaelemenuntukmempelajaribahasaI
nggris, yaitukosakata (vocabulary), tatabahasa
(grammatical), aturan-aturan (rules),danpengucapan
(pronounciation). Pembelajarankosakata(vocabulary)
bahasaInggris,
merupakanelemendasar
yang
harusdiajarkankarenamemilikiperan
yang
krusialuntuktahappembelajaranselanjutnya,
terutamabagianak-anak.Berbedadengan orang dewasa
yang
telahmemilikikosakatabahasautama
yang
lebihbanyak,
menurutreferensi
[4],
menyatakanbahwaanakakan mengalamikendalaketika
mempelajaribahasaasingkarenaterbenturbahasautama
(mother’s
tongue)
yang
ada
di
lingkunganru mahsertamasihsedikitnyaju mlahpemben
daharaan kata yang merekaketahui.
Beberapapenelitiantelahdilakukanuntukmenu mbuhke
mbangkan minatanakdalammempelajaribahasaInggris.
Menurutpenelitianoleh[5],
metodebelajaruntukmempelajaribahasaInggrismenggu
nakan
media
bonekajaridankartunbergambar.Menurutreferensi [6]
penelitian
yang
dilakukan menggunakanmetodeberceritadanbernyanyis
ertamelakukangerakan-gerakansesuaidengan kata-kata
dalamliriklagu.Penelit ian[7],
telahmembangunaplikasipembelajaranbahasaInggrisu
ntukanak
TK
berbasis
mult imed ia,
danmenyarankanpenggunaangamedalampengembanga
nnya.
Salah
satuGamedengantemaedukasiBahasaInggrisyaitugame
Home
Sweet
Homeo leh
[8].
Game inimengenalkan kosakatabahasaInggrismelalu iob
jek-objek
yang
adadilingkunganrumahsepertiruangkeluarga
(living
room), dapur (kitchen), kamartidur (bedroom)
dankamarmandi
(bathroom).
Gamedandikembangkan menggunakansoftware Adobe
Flash dengan Action Script 3.0.danberbasis 2D.
Penulis [9] pada tahun 2012 telah mengembangkan
Game Funny English menggunakan Blender 3D. Pada
penelitian tersebut, objek yang dikembangkan adalah
benda mati dan kurang interaktif dengan pemain
sehingga mengurangi minat bermain. Oleh karena itu
game tersebut perlu dikembangkan dengan
ditambahkan objek dan karakter lain sehingga lebih
interaktif dengan lingkungan agar game lebih menarik.
Menurut [10, 11], d ibutuhkan adanya AI (artificial
intelligence)agar game leb ih menarik.AI didalam
Gamedapat diterapkan pada NPC(non-playable
character). NPC adalah karakter yang mampu
berinteraksi dengan objek didalam dunia Game dan
tindakannya tidak dapat dikendalikan oleh pemain.
Tindakan NPC yang tidak dapat diprediksi salah
satunya adalah pergerakannya dari suatu tempat
ketempat lain.Dengan diterapkannyaAI pada NPC
sehingga membuat NPC mampu mengotomasikan rute
pergerakannya didalam game.
NPC dapat mencari rute untuk bergerak dari posisi
sekarang menuju posisi tujuannya dengan pathfinding.
Beberapa metode pathfinding seperti Metode
Breadth-first search dan Depth-first search adalah
metode pencarian rute tanpa menghitung jarak yang
harus ditempuh. Sedangkan A lgorit ma Dijkstra dan
Algorit ma A-star sudah memperhitungkan jarak yang
harus ditempuh dalam mencapai tujuan. Saat in i
banyak game modern menggunakan algorit ma A-star
karena Algorit ma A-star menjamin akan menemukan
rute terpendek [12].
Untuk dapat melakukan pathfinding pada lingkungan
pengembangan game, dibutuhkan suatu graf khusus
pada peta game yang memiliki informasi costuntuk
berpindah dari suatu titik ke t itik lain. Pada penelitian
ini, penulis menggunakan model graf Navigation Mesh
(Nav mesh) pada peta game agar dapat dikenali dan
dilakukan ko mputasi path oleh sistem game. Penelitian
oleh [13] menyimpulkan bahwa metodepath
findingmerupakanmetode yang sangatpentingdalam
game
3D
untukmenunjangcarabergerakobjek,
terutamaobjek yang digerakkanoleh AI.Algorit ma A*
danNavigation
Mesh
diperlukansupayadapatmelakukanarahpergerakankete
mpattujuandengansangatcepat.
Dilihat dari pernyataan-pernyataan diatas, maka
penulis akan mengembangkan fitur NPC dengan AI
yang mempunyai kemampuan yang secara otomatis
mencari rute/pathfinding. Dengan adanya fitur ini,
diharapkan game dapat lebih menarik minat pemain.
2
TeoriPendukung
A. Algorit ma A*
Algorit ma A* adalah jenis algorit ma pencarian rute
yang dapat mencari rute terpendek antara 2 tit ik pada
weighted graph. Pada weighted graph,rute terpendek
sama dengan rute dengan nilai (cost) terkecil[14].
Gambar1 Weighted Graph
Algorit ma
A*
menggunakanmetodeheuristikuntukmengurangi area
pencariandimanahanya area yang menjanjikansaja
yang akandiuji [15].
Fungsiheuristikh(n)adalahdasaralgoritma
A*
untukmengestimasicost min imu m darisuatutitikn
ketitiktujuan.
Pencarianrutedenganmempertimbangkansuatunilai/co
sttertentudinamakandenganpathscoring.Pathscoringda
patditulisdalamru musberikut:
f= g +h
(1)
Berikut adalah pseudo code untuk algorit ma A*[13].
Tabel1 Pseudo Code Algoritma A*
function A*(start,goal)
closedset := the empty set
openset := {start}
came_fro m := the empty map
g[start] := 0
h[start] := heuristic_cost(start, goal)
f[start] := g[start] + h[start]
bersebelahan.heuristic_costmerupakanfungsi
yang
menghasilkansuatunilai
cost
perkiraanberdasarkankriteriatertentu.
while openset is not empty
x := the node in openset having the lowest
f[] value
B. Unity3D
if x = goal
Unity 3D merupakanGame engine Multi-platform
dengan IDE terintegrasi yang dikembangkanoleh
Unity
Technologies.Unity
3Dd igunakanuntukmengembangkan video games
untuk plug-in web, plat form desktop, console, dan
mobile
devices,
dantelahdigunakanolehjutaanpengembang.
return reconstruct_path(came_fro m,
came_fro m[goal])
remove x fro m openset
add x to closedset
foreach y in neighbor_nodes(x)
if y in closedset
add y to openset
Unity
3Dadalahlingkunganpengembangangame:
Sebuahaplikasirender
yang
terintegrasidengansejumlahtools
yang
dapatdigunakanuntukmenciptakan konten 3D yang
interaktif, mensupporthasilpengerjaandalamberbagai
format,sertaribuanAsset yang berkualitasdansiappakai
yang tersediapadaAsset Storedankomunitaspengguna
[16].
tentative_is_better := t rue
C. Navigation mesh (Nav mesh)
continue
tentative_g_score
dist_between(x,y)
:=
g[x]
+
if y not in openset
else if tentative_g_score
Funny EnglishMenggunakan Unity 3D Berbasis Graf
Navmesh
Riwinoto 1, Alfian2
PoliteknikNegeriBatam
JurusanTeknik Multimedia Jaringan
Parkway Street, Batam Centre, Batam 29461, Indonesia
E-mail: 1 [email protected], 2 [email protected]
Abstrak
Penggunaan bahasa Inggris telah men jadi bagian dalam keh idupan sehari-hari. Di Indonesia, mata pelajaran bahasa
Inggris telah masuk kedalam kurikulu m pendidikan dasar. Salah satu aspek penting dalam proses pembelajaran
bahasa Inggris adalah pengenalan kosakata. Game Funny English dikembangkan dengan Un ity 3D 4.34 bertujuan
mempermudah pengenalan kosakata bahasa Inggris yang disajikan dalam bentuk objek 3D serta audio pengucapan
objek tersebut. Untuk men ingkatkan minat anak dalam bermain, maka ditambahkan fitur artificial intelligence (AI)
didalam game. Penerapan artificial intelligence pada non-playable character (NPC) yang tindakannya tidak dapat
dikendalikan pemain, misalnya dalam hal mencari rute untuk menuju ke suatu tempat, diharapkan dapat menambah
kesenangan bermain dan menambah variasi gameplay.
Kata kunci: Game edukasi, bahasa Inggris, NPC, kecerdasan buatan, Uni ty 3D, pencarian rute, Navmesh
Abstract
English as language has become a part of everyday life. In Indonesia, English has become a subject in preliminary
school’s curriculu m. An important element in the process of learning English is vocabulary. Game Funny English
developed with the purpose to facilitate English vocabulary in the form of 3D objects as well as audio pronunciation
of those objects. To increase children's interest in play ing the game , artificial intelligence (AI) feature has been
added in the game. Application of AI on a non-playable character (NPC) which cannot be controlled by the player,
for examp le when searching for a route to go somewhere, is expected to enhance player’s gaming experience and
various gameplay.
Keywords: Educati on g ame, English, NPC, Artificial Intelligence, Uni ty 3D, pathfindi ng, Navmesh
1
Pendahuluan
Berdasarkanstatistik
[1]
BahasaInggrisadalahbahasaketiga
yang
digunakansebagaibahasautamadenganlebihdari
335
jutapengguna.BahasaInggrismerupakanbahasaasingno
morsatu yang diajarkan di lebih 100 negara di dunia
[2].Di
Indonesia
sendiri,
bahasaasingterutamabahasaInggrismerupakanbahasain
ternasional
yang
sangatpentingkegunaannyadalampergaulan global [3].
DibutuhkanbeberapaelemenuntukmempelajaribahasaI
nggris, yaitukosakata (vocabulary), tatabahasa
(grammatical), aturan-aturan (rules),danpengucapan
(pronounciation). Pembelajarankosakata(vocabulary)
bahasaInggris,
merupakanelemendasar
yang
harusdiajarkankarenamemilikiperan
yang
krusialuntuktahappembelajaranselanjutnya,
terutamabagianak-anak.Berbedadengan orang dewasa
yang
telahmemilikikosakatabahasautama
yang
lebihbanyak,
menurutreferensi
[4],
menyatakanbahwaanakakan mengalamikendalaketika
mempelajaribahasaasingkarenaterbenturbahasautama
(mother’s
tongue)
yang
ada
di
lingkunganru mahsertamasihsedikitnyaju mlahpemben
daharaan kata yang merekaketahui.
Beberapapenelitiantelahdilakukanuntukmenu mbuhke
mbangkan minatanakdalammempelajaribahasaInggris.
Menurutpenelitianoleh[5],
metodebelajaruntukmempelajaribahasaInggrismenggu
nakan
media
bonekajaridankartunbergambar.Menurutreferensi [6]
penelitian
yang
dilakukan menggunakanmetodeberceritadanbernyanyis
ertamelakukangerakan-gerakansesuaidengan kata-kata
dalamliriklagu.Penelit ian[7],
telahmembangunaplikasipembelajaranbahasaInggrisu
ntukanak
TK
berbasis
mult imed ia,
danmenyarankanpenggunaangamedalampengembanga
nnya.
Salah
satuGamedengantemaedukasiBahasaInggrisyaitugame
Home
Sweet
Homeo leh
[8].
Game inimengenalkan kosakatabahasaInggrismelalu iob
jek-objek
yang
adadilingkunganrumahsepertiruangkeluarga
(living
room), dapur (kitchen), kamartidur (bedroom)
dankamarmandi
(bathroom).
Gamedandikembangkan menggunakansoftware Adobe
Flash dengan Action Script 3.0.danberbasis 2D.
Penulis [9] pada tahun 2012 telah mengembangkan
Game Funny English menggunakan Blender 3D. Pada
penelitian tersebut, objek yang dikembangkan adalah
benda mati dan kurang interaktif dengan pemain
sehingga mengurangi minat bermain. Oleh karena itu
game tersebut perlu dikembangkan dengan
ditambahkan objek dan karakter lain sehingga lebih
interaktif dengan lingkungan agar game lebih menarik.
Menurut [10, 11], d ibutuhkan adanya AI (artificial
intelligence)agar game leb ih menarik.AI didalam
Gamedapat diterapkan pada NPC(non-playable
character). NPC adalah karakter yang mampu
berinteraksi dengan objek didalam dunia Game dan
tindakannya tidak dapat dikendalikan oleh pemain.
Tindakan NPC yang tidak dapat diprediksi salah
satunya adalah pergerakannya dari suatu tempat
ketempat lain.Dengan diterapkannyaAI pada NPC
sehingga membuat NPC mampu mengotomasikan rute
pergerakannya didalam game.
NPC dapat mencari rute untuk bergerak dari posisi
sekarang menuju posisi tujuannya dengan pathfinding.
Beberapa metode pathfinding seperti Metode
Breadth-first search dan Depth-first search adalah
metode pencarian rute tanpa menghitung jarak yang
harus ditempuh. Sedangkan A lgorit ma Dijkstra dan
Algorit ma A-star sudah memperhitungkan jarak yang
harus ditempuh dalam mencapai tujuan. Saat in i
banyak game modern menggunakan algorit ma A-star
karena Algorit ma A-star menjamin akan menemukan
rute terpendek [12].
Untuk dapat melakukan pathfinding pada lingkungan
pengembangan game, dibutuhkan suatu graf khusus
pada peta game yang memiliki informasi costuntuk
berpindah dari suatu titik ke t itik lain. Pada penelitian
ini, penulis menggunakan model graf Navigation Mesh
(Nav mesh) pada peta game agar dapat dikenali dan
dilakukan ko mputasi path oleh sistem game. Penelitian
oleh [13] menyimpulkan bahwa metodepath
findingmerupakanmetode yang sangatpentingdalam
game
3D
untukmenunjangcarabergerakobjek,
terutamaobjek yang digerakkanoleh AI.Algorit ma A*
danNavigation
Mesh
diperlukansupayadapatmelakukanarahpergerakankete
mpattujuandengansangatcepat.
Dilihat dari pernyataan-pernyataan diatas, maka
penulis akan mengembangkan fitur NPC dengan AI
yang mempunyai kemampuan yang secara otomatis
mencari rute/pathfinding. Dengan adanya fitur ini,
diharapkan game dapat lebih menarik minat pemain.
2
TeoriPendukung
A. Algorit ma A*
Algorit ma A* adalah jenis algorit ma pencarian rute
yang dapat mencari rute terpendek antara 2 tit ik pada
weighted graph. Pada weighted graph,rute terpendek
sama dengan rute dengan nilai (cost) terkecil[14].
Gambar1 Weighted Graph
Algorit ma
A*
menggunakanmetodeheuristikuntukmengurangi area
pencariandimanahanya area yang menjanjikansaja
yang akandiuji [15].
Fungsiheuristikh(n)adalahdasaralgoritma
A*
untukmengestimasicost min imu m darisuatutitikn
ketitiktujuan.
Pencarianrutedenganmempertimbangkansuatunilai/co
sttertentudinamakandenganpathscoring.Pathscoringda
patditulisdalamru musberikut:
f= g +h
(1)
Berikut adalah pseudo code untuk algorit ma A*[13].
Tabel1 Pseudo Code Algoritma A*
function A*(start,goal)
closedset := the empty set
openset := {start}
came_fro m := the empty map
g[start] := 0
h[start] := heuristic_cost(start, goal)
f[start] := g[start] + h[start]
bersebelahan.heuristic_costmerupakanfungsi
yang
menghasilkansuatunilai
cost
perkiraanberdasarkankriteriatertentu.
while openset is not empty
x := the node in openset having the lowest
f[] value
B. Unity3D
if x = goal
Unity 3D merupakanGame engine Multi-platform
dengan IDE terintegrasi yang dikembangkanoleh
Unity
Technologies.Unity
3Dd igunakanuntukmengembangkan video games
untuk plug-in web, plat form desktop, console, dan
mobile
devices,
dantelahdigunakanolehjutaanpengembang.
return reconstruct_path(came_fro m,
came_fro m[goal])
remove x fro m openset
add x to closedset
foreach y in neighbor_nodes(x)
if y in closedset
add y to openset
Unity
3Dadalahlingkunganpengembangangame:
Sebuahaplikasirender
yang
terintegrasidengansejumlahtools
yang
dapatdigunakanuntukmenciptakan konten 3D yang
interaktif, mensupporthasilpengerjaandalamberbagai
format,sertaribuanAsset yang berkualitasdansiappakai
yang tersediapadaAsset Storedankomunitaspengguna
[16].
tentative_is_better := t rue
C. Navigation mesh (Nav mesh)
continue
tentative_g_score
dist_between(x,y)
:=
g[x]
+
if y not in openset
else if tentative_g_score