PEMBUATAN GAME FIGHTER COPO DENGAN
BAHASA PROLOG
ABSTRAKSI
Game sebagai media hiburan telah berkembang dengan pesat
seiring dengan berkembangnya juga teknologi. Salah satu unsur yang berperan
penting dalam sebuah game adalah kecerdasan buatan. Dengan kecerdasan buatan,
diharapkan elemen-elemen dalam game dapat berperilaku sealami mungkin layaknya
manusia, salah satu contoh game yang menggunakan kecerdasan buatan adalah
Fighter game.
Fighter game adalah permainan video game yang
memperlihatkan pertarungan dua tokoh meskipun ada
beberapa game yang menciptakan pertandingan dengan jumlah kontestan lebih dari
dua, tetapi pada dasarnya kondisi yang diciptakan adalah pertarungan disebuah
arena atau tempat secara langsung. atau petarungan yang berusaha saling mengalahkan.
Gerakan tokoh dalam sebuah faighter game sangat penting untuk menunjukkan
tindakan atau karakter yang dimainkan. Saat ini banyal fighter game yang
menampilkan pertarungan berbasis seni beladiri. Gerakan-gerakan fighter adalah
pukulan dan tendangan.
I.
PENDAHULUAN
Jika kita menyimak kilas balik sejarah pembuatan game dan
mesinnya, ternyata cukup menarik untuk diperhatikan. Mungkin tidak banyak
orang-orang yang mengetahui siapa pelopor mesin game atau bagaimana persaingannya
antar perusahan game. Lewat kilas balik kita bisa terheran-heran,
terkagum-kagum dan tersenyum lucu melihat bentuk-bentuk mesin game bahkan
gamenya sendiri.
Memang tidak sedikit orang-orang khususnya orang tua dan guru
yang berpikiran kolot meremehkan bahkan menganggap game itu tidak berguna sama
sekali. Padahal mereka tidak sadar akan kesalahan mereka yang berakibat fatal
karena hanya memandang game dengan sebelah mata bahkan tertutup mata mereka
secara keseluruhan.
Dewasa ini, banyak orang – orang bahkan mungkin anda
menganggap game itu terkesan kekanak – kanakan. Tapi jika anda berfikiran
seperti itu, itu sebetulnya merupakan sesuatu kesalahan yang sangat besar dan
fatal. Tahukah anda bahkan ada orang yang berumur lebih dari enam puluh tahun
yang masih bermain game? Padahal jikalau seandainya kita pikir, itu merupakan
usia yang sangat tua bahkan lansia untuk bermain game. Tetapi di Indonesia ini
kamipun bingung dan bimbang kenapa masih saja ada orang yang menganggap game
itu kekanak – kanakan. Mungkin itu karena mereka cuma mengambil dampak negatif
saja dari game tersebut. Padahal sebetulnya, game itu sangat penting peranannya
dalam kehidupan sehari – hari anda,Contohnya, dikehidupan sehari-hari
banyak sekali terjadinya perkelahian dan menimbulkan banyak korban, untuk
berupaya mencegah kejadian itu terus terulang makanya kami membuat game fighter
untuk melampiaskan perkelahiannya didalam virtual game agar tidak menimbulkan
korban
Secara tidak langsung game
dapat menumbuhkan dan melatih kreatifitas,daya ingat,inovasi,misalnya pada saja
seseorang yang biasa memainkan game strategi,ketika dia dihadapkan dengan suatu
masalah di kehidupannya maka secara tidak langsung naluri gamers dirinya akan
dipanggil untuk menentukan strategi apa yang dipakai dalam menghadapi masalah
yang dihadapinya agar masalahnya dapat diselesaikan dengan cepat dan efisien
juga tidak menimbulkan kerugian bagi dirinya dan orang lain.
Dalam rangka
memperoleh informasi dan mendapatkan data yang diingkan,penulis telah melakukan
interview dengan para gamer,penulis juga mengambil beberapa referensi dari buku-buku dan tutor pemrograman.
Bahasa
pemrograman yang digunakan dalam pembuatan video game ini adalah Bahasa
pemrograman Prolog,text editor yang digunakan adalah Strawbery prolog 2.9
-
Membuat media
hiburan
-
Melatih
kreatifitas,daya ingat,dan inovasi
-
Merubah sudut
pandang orang tentang game bahwa tidak selamanya bermain video game itu
bernilai negatif,banyak nilai-nilai positifnya jika kita tidak memandang
sebelah mata
II.
Pembahasan
2.1 Algoritma
Algoritma
greedy merupakan jenis algoritma yang menggunakan pendekatan penyelesaian
masalah dengan mencari nilai maksimum sementara pada setiap langkahnya. Nilai
maksimum sementara ini dikenal dengan istilah local
maximum. Pada kebanyakan kasus, algoritma greedy tidak akan menghasilkan
solusi paling optimal, begitupun algoritma greedy biasanya memberikan solusi
yang mendekati nilai optimum dalam waktu yang cukup cepat
Pada
game Fighter copo ini mengguna AI (Artificial Intelegence) dengan menerapkan
algoritma greedy dinama AI akan mencari poin sebanyak-banyaknya dengan tujuan
menjatuhkan lawan,AI akan mergerak maju sampai mencapai batas jarak untuk
melancarkan serangan
Yang dilakukan AI :
1.
Pengecekan Status Jarak, jika si
AI akan mebergerak terus sampai mencapai batasan melancarkan serangan.
2.
Pengecekan HP, jika HP dari lawan
masih ada maka AI akan terus melancarkan serangan sampai HP lawan benar-benar
habis.
Berikut ini
adalah algoritma yang digunakan untuk Command Skill secara umum:
1.
Inisialisai Target.
2.
Pemberian nilai animasi dan efek
suara.
Berikut ini
adalah algoritma yang digunakan untuk Command Skill yang bersifat offensif,
yaitu Skill yang mengurangi HP(Target), mengurangi MP(Target),Penghitungan efek
Skill yang tergantung dari SPR(Caster) dikurangi SPR(Target) atau STR(Caster)
dikurangi DEF(Target) :
-
Penghitungan point dari efek
Skill(Tendang dan Pukul).
-
Penambahan atau pengurangan HP
atau MP.
-
Pengecekan HP, jika HP melebihi
MaxHP, maka HP sama dengan MaxHP. Jika HP kurang dari 0, maka HP sama dengan 0.
-
Pengecekan MP, jika MP melebihi
MaxMP, maka MP sama dengan MaxMP. Jika MP kurang dari 0, maka MP sama dengan 0.
2.2 RULES
Ada beberapa aturan dalam permainan ini, antara lain :
1. Permainan
terdiri dari beberapa option yaitu easy,normal,hard,setiap option AI
memiliki kecepatan,kekuatan,dan
serangan yang berbeda-beda tergantung pada lvl yang dipilih
2. Diawal
permainan kedua petarung dibekali HP yang sama .
3. Pemain
ataupun komputer harus melancarkan serangan berupa pukulan atau tendangan
dengan tujuan memperoleh poin sebanyak-banyaknya guna meraih kemenangan
4. pemain dan
komputer(AI) diberi kesempatan melancarkan serangan untuk mendapatkan poin
hingga HP=0,juka ada petarung yang Hpnya=0 maka pertarungan selesai
5.Di akhir pertarungan kemenangan diberikan kepada
petarung yang memiliki poin terbanyak dan berdiri paling akhir.
2.3 GOAL
Tujuan (goal) untuk menyelesaikan permainan ini adalah mencari Pemenang
dalam pertarungan satu lawan satu.
Terdapat beberapa kondisi yang mungkin terjadi pada
permainan ini, yaitu :
1. KONDISI
MENANG
Kondisi menang terjadi apabila petarung memperoleh
poin terbanyak dan berdiri paling akhir dalam pertandingan.
2. KONDISI
KALAH
Kondisi kalah dapat terjadi karena HP=0 dan poin yang
diperoleh tidak lebih banyak dari lawan.
2.4 TEKNIK
PEMBUATAN
Dalam pembuatan game fighter copo ini
menggunakan text editor strawberry prolog, adapun tampilan text editor
strawberry prolog adalah berikut:
Sebelum kita masuk pada step codingan terlebih dahulu
kita harus menyiapkan beberapa file image yang dibutuhkan dan menyimpannya pada
satu folder agar mudah untuk memanggilnya dan adapun extension imagenya adalah
bmp.
Setelah
selesai menyiapkan file-file yang dibutuhkan masuk pada step codingan pada step
ini terbagi dari beberapa bagian yaitu pertama kita akan memasukan sintak yang
akan memanggil image yang telah kita simpan di folder sintaknya sebagai
berikut:
G_bc is bitmap_image("gambar\\bg_score.bmp",_), %ini gambar score menang
G_bclose is bitmap_image("gambar\\bg_score_lose.bmp",_), %ini gambar score
kalah
G_title is bitmap_image("gambar\\latar103.bmp",_),
%ini
gambar awal
Sintaks diatas memanggil file image bg_score.bmp yang tersimpan pada folder
gambar
Kemudian
step selanjutnya mendeklarasikan nilai variabel yang dibutuhkan
G_x1:=30, %posisi x jagoan
G_y1:=355, %posisi y jagoan
G_x1lawan:=650, %posisi x lawan
G_y1lawan:=355, %posisi y lawan
Sintak diatas menentukan posisi jagoan dan posisi lawan pada sumbu x dan y
Selanjutnya
membuat fungsi yang nantinya akan kita panggil sintaknya seperti dibawah ini
func_20(init):-
G_x1:=30, %posisi x jagoan
G_y1:=355, %posisi y jagoan
G_x1lawan:=650, %posisi x lawan
G_y1lawan:=355, %posisi y lawan
G_waktu:=30, %lamanya waktu dalam 1/detik
G_darah1:=320, %ini nyawa jagoan
G_darah2:=300, %ini nyawa lawan
G_jarak:=0. %ini jarak kedua permain
Lalu
mebuat fungsi tampilan option
win_func(init):-
button(_,_,mulai_game(_),"MULAI",275,400,250,40),
button(_,_,about(_),"TENTANG",275,450,250,40),
button(_,_,keluar_game(_),"KELUAR",275,500,250,40)
sintak diatas
berfungsi membuat beberapa button mulai,tentang dan keluar dengan ukuran yang
telah ditetapkan diatas tampilannya sebagai berikut :
membuat
fungsi menubar,bantuan dan about
menu_bar(init):-
menu( pop_up, _, _, menu_pilihan(_),"&Pilihan"),
menu( normal, _, _, menu_bantuan(_), "&Bantuan"),
menu( normal, _, _, menu_tentang(_), "&Tentang").
menu_bantuan(press):-
message("cara bermain","Tekan tombol Kanan untuk berjalan kekanan, tombol kiri untuk berjalan
kekiri, dan tombol Q untuk memukul,tombol W untuk menendang",i).
menu_tentang(press):-
message("Fighter COPO","FIGHter copo adalah arena pertarungan para kesatria Copo demi menjadi
kesatria copo sejati",i).
sintak diatas berfungsi membuat text yang terdapat pada button bantuan dan
tentang,text ini akan tampil bila terdapat action pada button-button tersebut,tampilannya
sebagai berikut :
setelah semuah step kita selesaikan selanjutnya kita membuat fungsi tingkat
kesulitan pada game sintaknya seperti berikut:
%---------------- Easy --------------------%
win_func3(press):-
close_window(G_layar1_1),
G_level := 1,
mulai_game1(_).
%----------------
Normal--------------------%
win_func4(press):-
close_window(G_layar1_1),
G_level := 2,
mulai_game112(_).
%----------------
Hard --------------------%
win_func5(press):-
close_window(G_layar1_1),
G_level := 3,
mulai_game112(_).
sintak tersebut berfungsi membuat fungsi option yang
mana nanti akan dipanggil dari fungsi awal,tampilannya sebagai berikut :
Setelah itu kita dapat membuat fungsi timer seperti berikut
%------------------------ FUNGSI TIMER
HABIS--------------------------------- %
time_check(end):-
(G_waktu=0->
close_window(G_layar2),
window(G_layar2_1,_,win_func_hasil(_),"Fighter Dragon",250,100,610,430)).
Sintak timer ini berfungsi sebagai penghenti jalannya
fungsi yang dipanggil bila waktu sama dengan null
Kemudian pada fungsi lawan gerak kita gunakan sintak sebagai berikut
lawan_berkurang(end):-
(G_x1lawan >= 650 ->
G_x1lawan := 650),
(G_jarak>200->
G_x1lawan:=G_x1lawan-50,update_window(_)
),
%jika
jarak lebih dari 200
(G_jarak=<200->
G_x1lawan:=G_x1lawan+50,tendangmusuh1(_),update_window(_)
),
(G_jarak=<130->
G_x1lawan:=G_x1lawan+50,pukulmusuh1(_),update_window(_)
), %jika
jarak kurang dari 190
(G_darah1=<0->
%G_darah1:=320,
%G_darah2:=300,
%G_x1lawan:=650,G_x1:=30,
close_window(G_layar2),
G_Hcond := 2,
window(G_layar2_1,_,win_func_hasil(_),"Fighter Dragon",250,100,610,430)
%message("LOSE","PERMAINAN
BERAKHIR\nAnda dinyatakan KALAH",s)
),
(G_darah2>=600->
%G_darah2:=300,
%G_darah1:=320,
%G_x1lawan:=650,G_x1:=30,
%message("WINNER","PERMAINAN
BERAKHIR\nAnda dinyatakan MENANG",i)
close_window(G_layar2),
G_Hcond := 1,
window(G_layar2_1,_,win_func_hasil(_),"Fighter Dragon",250,100,610,430)
).
Tampilannya sebagai berikut :
Dalam pembuatan game ini agar dapat berjalan dengan baik maka kita harus
menyatukan semuah file yang dibutuhkan ke dalam satu folder baik itu file image
maupun file codingan.
III.
Penutup
3.1 Kesimpulan
Game telah mengalami perkembangan yang
pesat, baik game online ataupun video game sama-sama memiliki peminat yang
besar. Game memang mempunyai banyak manfaat bagi pelajar untuk menunjang daya
pikirnya. Namun bila dalam pemakaian tidak dikontrol dapat mengakibatkan
kebiasaan dan menimbulkan manfaat buruk nantinya.
3.2 Saran
Berdasarkan pembahasan masalah yang ada diatas, disarankan bagi pelajar agar :
1. Mengurangi intensitas bermain game
2.
Mencari kesibukan
lain agar terlepas dari kecanduan bermain game
3.
Meningkatkan
prestasi akademik
4.
Berhati-hatilah
dengan radiasi media visual video game, karena bisa mengganggu kerja tubuh dan
otak
5.
Pintar memilih
waktu dan jenis permainan, yang lebih edukatif
IV. Daftar pustaka