i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis...

46
52 BAB 3 ANALISIS DAN DESAIN APLIKASI GAME THE STEALTH 3.1 Gambaran Umum Perkembangan indrustri game sekarang ini sangat pesat terutama dari segi grafis dan AI-nya. Skripsi kami mengedepankan pada action games pada segi AI- nya. Kami banyak melihat pada sebagian besar game yang dilihat dari segi grafik sangat memukau tetapi dari segi gameplay-nya terutama dari segi AI pada agen- nya kurang memuaskan, tetapi tidak menutup kemungkinan bahwa setiap game yang memiliki AI yang buruk. Kami ingin mencoba menerapkan fuzzy logic ini pada Action Games. Sebenarnya sudah ada game yang menerapkan fuzzy pada game yang mereka buat, hasilnya memang lebih terlihat lebih hidup. The Stealth merupakan judul game yang dibuat pada skripsi ini. Istilah ini The Stealth dipakai karena game ini karena player harus sering bersembunyi untuk menghindari dari patroli musuh. 3.2 THE STEALTH 3.2.1 Notation System Pada umunya, Action Games tidak ada aturan tetap, karena dalam permainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat dari banyaknya pemain, Action Games terdiri dari dua jenis, yaitu single player atau multyplayer dengan media lan atau online.

Transcript of i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis...

Page 1: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

52

BAB 3

ANALISIS DAN DESAIN APLIKASI GAME THE STEALTH

3.1 Gambaran Umum

Perkembangan indrustri game sekarang ini sangat pesat terutama dari segi

grafis dan AI-nya. Skripsi kami mengedepankan pada action games pada segi AI-

nya. Kami banyak melihat pada sebagian besar game yang dilihat dari segi grafik

sangat memukau tetapi dari segi gameplay-nya terutama dari segi AI pada agen-

nya kurang memuaskan, tetapi tidak menutup kemungkinan bahwa setiap game

yang memiliki AI yang buruk. Kami ingin mencoba menerapkan fuzzy logic ini

pada Action Games. Sebenarnya sudah ada game yang menerapkan fuzzy pada

game yang mereka buat, hasilnya memang lebih terlihat lebih hidup.

The Stealth merupakan judul game yang dibuat pada skripsi ini. Istilah ini

The Stealth dipakai karena game ini karena player harus sering bersembunyi

untuk menghindari dari patroli musuh.

3.2 THE STEALTH

3.2.1 Notation System

Pada umunya, Action Games tidak ada aturan tetap, karena dalam

permainan jenis ini setiap pembuat game mempunyai aturan atau cara

yang berbeda-beda. Jika dilihat dari banyaknya pemain, Action Games

terdiri dari dua jenis, yaitu single player atau multyplayer dengan media

lan atau online.

Page 2: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

53

Dari segi kamera atau pandangan ”Action Game” tidaklah seperti

game Strategy Game, Simulator Games, atau Sport Games, yang diam

pada satu sisi saja. Tetapi mempunyai dua katagori First-Person Point-of-

View (FPS) dan 3rd First-Person Point-of-View (3rd FPS).

Pada First-Person Point-of-View (FPS) game, pandangan pemain

hanya sebatas lengan tangan saja. Contoh game FPS yang paling populer

adalah Half-life 2, Rainbow Six, dan Delta Force : Blackhawk Down.

Sedangkan pada 3rd First-Person Point-of-View (3rd FPS) game. Dimana

pemain dapat melihat karakter pemainnya lengkap dengan avatarnya.

Contoh game 3rd FPS yang popular adalah Metal Gear Solid, Splinter

Cell, Princes Of Persia. Sekarang ini banyak “Action Game” yang telah

menggabungkan kedua katagori tersebut.

Dalam sebuah permainan, kecerdasan sebuah “Agen” dan tingkat

kesulitan juga merupakan faktor penting dalam membangun sebuah game.

Pemain akan benar-benar akan terasa berada di dalam permainanya. Tetapi

tidak hanya pada metode permainan dan kecerdasan sebuah “Agen” yang

di lihat, jalan cerita juga sangat mempengaruhi daya tarik game itu sendiri.

3.2.2 Story of THE STEALTH

Game ini hanya tersedia pada single player saja. Sebelum permainan

dimulai, prolouge dari game ini menceritakan sebuah misi dimana ada

beberapa orang ahli computer jenius eropa yang sedang menangani proyek

senjata nuklir telah diculik oleh kelompok separatis spanyol yang bernama

Page 3: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

54

the Gear. Motif penculikannya menurut CIA yaitu dipaksa untuk membuat

senjata biologis untuk memperkuat kekuatan persenjataan mereka, dan

mungkin masih ada motif lain yang masih belum diketahui. Pusat markas

mereka diketahui ada disebuah pulau bekas colonial spanyol di Barat daya

lautan Inggris.

Untuk menyelamatkan para sandera dan diutus seorang agen rahasia

Inggris dengan code nama ‘Wind’ untuk menyusup diam-diam kedalam

markas tersebut, dan mencari tahu apa yang dilakukan gerakan teroris

tersebut, tanpa terdeteksi kehadirannya.

3.2.3 Sequence of Play

Alur permainan game ini tidaklah sulit, kita harus menyelamatkan

para sandera. Tanpa ketahuan musuh. Tidak ada batas waktu dalam

permainan ini, player hanya cukup bersembunyi, mengendap-endap, dan

menyerang. Permainan selesai jika player mati atau telah selesai

menyelesaikan misi tersebut.

3.2.4 Scoring

Penilaian dalam game ini dilakukan berdasarkan beberapa hal :

• Semaking sedikit kita ketahuan maka score akan semakin besar.

• Semaking sedikit kita membunuh musuh maka score kita akan

bertambah

• Berapa banyak peluru yang dikeluarkan.

Page 4: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

55

• Berapa banyak darah pemain yang masih tersedia setelah misi

selasai. Darah semakin besar maka nilai score akan semakin besar

pula

3.3 BOT (Computer Artificial Intelligence) dalam The Stealth

Dalam permainan ini Bot adalah sebuah “agen” atau nonplayer-character

yang dapat bergerak dan dapat melihat dan mendengar suara atau hal-hal yang

mencurigakan, seperti layaknya manusia. Bot tersebut tidak diam pada di suatu

tempat, tetapi juga bergerak untuk berpatroli. Jika player menebak salah satu

musuh, maka akan terdengar suara letusan peluru yang membuat para penjaga

menjadi waspada. Tidak hanya mendengar suara senjata, meraka dapat

mendengar suara langkah kaki dan melihat.

3.3.1 Melihat Dan Mendengar Layaknya Manusia

Melihat dan mendengar sama halnya pada manusia, hampir semua

metode ini dipakai oleh action game dan Adventure Games. Sebenarnya

konsep melihat sama halnya pada manusia, jika bot tersebut melihat

langsung player maka yang akan dilakukan dapat berupa pengejaran,

penyerang, membunyikan alarm. Tergantung seberapa jauh jarak bot

dengan player, atau jenis senjata yang player dan bot bawa dan lain-lain.

Untuk mendengar, bot tersebut dapat mendengar suara langkah

kaki player, terutama pada saat player berlari. Terutama pada saat player

mengeluarkan suara senjata. Hal tersebut membuat bot curiga, dan

Page 5: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

56

mencari dimana sumber suara tersebut berbunyi. Bisa saja salah satu bot

membunyikan alarm. Supaya para teman-temannya dapat waspada.

3.3.2 Memilik Karakteristik Yang Berbeda Pada Setiap Bot

AI pada game yang kami buat memiliki karakterik yang berbeda

di tiap bot sama halnya pada prajurit, meraka semua kuat dan sudah

terlatih. Tapi tiap prajurit memiliki sifat-sifat yang berbeda-beda tidak

semua prajurit seorang yang pemberani, rajin, juga seorang relah mati

demi perang, ada juga prajurit yang seorang menakut atau pecundang.

Dari situlah kami terpikir untuk menerapkan perbedaan karakter

pada setiap bot.

3.4 Analisis Algoritma

Pada bagian ini kami akan melakukan analisis terhadap algoritma

berdasarkan beberapa metode algoritma yang telah diuraikan pada bab 2. Pada

tahap kami juga akan memberikan alasan mengapa metode ini kami gunakan

pada aplikasi yang akan kami buat. Karena fokus kami pada game action yang

real-time, maka ada beberapa algoritma yang akan kami pakai dalam pembuatan

AI pada game The Stealth kami, yaitu probability, Fuzzy Logic, waypoint.

Page 6: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

57

3.4.1 Probability untuk mendapatkan karakteristik pada setiap Bot

Kami hanya menggunakan sedikit algoritma probability, karena

nantinya keputusan yang akan diambil oleh komputer yang akan kami buat

bukan berdasarkan nilai probability, tetapi nilai pasti dan nilai yang

fleksibel.

Alasan kami menggunakan probability, karena kami ingin

membuat setiap agen yang ada memiliki sifat, kecepatan, keberanian yang

berbeda-beda. Kami tidak ingin setiap agen yang kami buat semuanya

memiliki sifat, kecepatan, keberanian yang sama, kami ingin AI game

yang akan kami buat mempunyai nilai lebih dibandingkan AI yang telah

ada. Maka nilai probability yang akan kami masukan ke dalam bot

merupakan nilai yang random.

3.4.2 Fuzzy Logic untuk mengambil keputusan

Menurut kami fuzzy logic merupakan sulusi terbaik untuk AI game

action, karena dengan ada system ini AI game yang kami buat lebih

bersifat manusiawi. Mengapa kami memilih fuzzy logic dibandingkan

dengan rule-based AI, finile state machines, neural networks?

Logika fuzzy sangat fleksibel, dapat mengambil keputusan yang

lebih tepat, berfikir lebih manusiawi atau logik. Pada finile state machines

hasil keputusan yang dihasilkan komputer untuk kita tidak 100% akurat

atau sesuai dengan yang user inginkan, contonya pada game yang akan

kami buat.

Page 7: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

58

Tabel 3.1 - Tebel finale state machine untuk bot

State Player near Health > 30 Health <= 30 Health <= 0 Finished

WAIT ATTACK ATTACK ESCAPE DIE DEAD

ATTACK ATTACK ATTACK ESCAPE DIE DEAD

ESCAPE ESCAPE ESCAPE ESCAPE DIE DEAD

DIE DIE DIE DIE DIE DEAD

DEAD DEAD DEAD DEAD DEAD DEAD

berdasarkan tabel di atas kita dapat melihat beberapa kondisi yang pasti

antara bot dengan player. Bot akan terus berada pada posisi WAIT selama

tidak bertemu dengan player. Jika bertemu dengan maka akan berganti ke

posisi ATTACK dan seterusnya. Bagaimana jika kondisi tersebut sebagai

berikut, bot.Health <= 30 dan bot.bullet = infinite dengan player.health <

10 dan player.bullet = 0, jika berdasarkan algoritma finile state machines

sudah pasti bot tersebut langsung pindah ke state ESCAPE. Sebenarnya

sangat disayangkan, karena andai kita berperan sebagai bot, sewaktu

berhadapan dengan musuh dengan kondisi tersebut, kita tidak mungkin

kabur kita akan mengahabisi musuh kita sampai mati. Sangat jelas jika

dilihat secara umum kondisi bot lebih menguntungkan dibandingkan

dengan player.

Jika kita menggunakan fuzzy maka ada beberapa rule yang dapat

digunakan, yaitu sebagai berikut :

IF bot.health< 30 AND player.bullet< = 0 THEN attack

IF bot.health< 30 AND player.bullet> 100 THEN escape

Page 8: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

59

IF bot.health<30 AND player.health>100 THEN CallAlarm

Bagaimana jika kita menggunakan neural networks? Kekurangan

terbesar neural network pada game yang kami buat adalah butuh waktu

pembelajaran. Kami tidak mau pada saat bot bertemu dengan player

berhenti sejenak untuk menunggu hasil training kemudian. Sebenarnya

kami pernah mencoba untuk mengabungkan algoritma finile state

machines dengan neural networks, tujuannya pada saat bot berpapasan

dengan player, state dari WAIT berpindah ke ATTACK, pada saat

bersamaan pula komputer men-training posisi player. Tapi bagaimana jika

player tersebut bertemu 5 bot sekaligus pada saat yang bersamaan. Pada

yang sama juga komputer menjalani 5 proses pada saat yang bersamaan,

Sudah pasti kecepatan CPU-Time berkurang.

Neural network dan fuzzy logic mempunyai karakteristik yang

berbeda. Dan metode tersebut mempunyai kelebihan dan kekurangan

sendiri-sendiri. Sedangkan pada rule-based AI, algoritma ini kurang cocok

di terapkan pada game action terutama pada game kami.

3.4.3 Waypoint Menggurangi Time-Consuming

Pada perkembangan game modern saat ini, waypoint merupakan

solusi terbaik terutama untuk Game 3D, dengan mengunakan metode ini

game yang kami buat menjadi lebih cepat prosesnya tidak banyak

memakan waktu. Algoritma ini sangat membantu sekali dalam game kami.

Kami menggunkan data-based search untuk solusi game kami. Karena

dalam game yang kami buat sudah terdapat algoritma fuzzy logic yang

Page 9: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

60

cukup komplek, yang kami takutkan adalah jika menggunakan algoritma

path finding ini membuat proses CPU-time menjadi bertambah dan

mengakitbatkan program menjadi lambat.

3.5 Pengolahan Data

Pada tahap ini akan dideskripsikan proses rekayasa aplikasi, bagaimana

sebuah agen dapat melihat, mendengar, dapat berfikir dan bertindak, serta

memiliki karakteristik tersendiri pada tiap agen.

3.5.1 Algoritma AI umum

3.5.1.1 Algoritma Melihat

Pada proses melihat kami menggunakan membuat 2 sensor

yang saling berhubungan. Sensor pertama untuk menditeksi

keberadaan player. Dan sensor kedua untuk menditeksi obstacle.

Tujuan kami membuat dua sensor karena sensor pertama

menembus semua obstacle. Karena dapat menembus obstacle

termasuk tembok penghalang, tidak mungkin jika player

bersembunyi di belakang tembok, lalu musuh dapat melihat player

atau bisa dibilang tembus pandang. Setiap sensor memberikan nilai

balik yang berbeda, sensor pertama nilai integer, jarak antara

player dengan bot, dan sensor kedua untuk memberikan nilai

integer jarak antara bot dengan obstacle termasuk player. Jika

Page 10: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

61

nilai sensor pertama sama dengan nilai sensor kedua maka player

terlihat.

Gambar 3.1 – sensor menditeksi jarak player

Gambar 3.2 – sensor menditeksi jarak obstacle

Sensor yang kami buat merupakan sebuah vector, vector yang

menebak lurus ke depan.

var trace_dist; vec_set(trace_dist, vector(1000, 0, 0)); vec_rotate(trace_dist,vector(bot.rotation,0,0)); vec_add(trace_dist.x, bot.x);

Gambar 3.3 – bot tidak dapat melihat player

Page 11: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

62

Gambar 3.4 – bot melihat player

sensor_1 = c_trace (bot.x, trace_dist.x, ignore_me | IGNORE_MAPS); sensor_2 = c_trace (bot.x, trace_dist.x, ignore_me); IF(sensor_1 == sensor_2) // gambar 3.4 {

break; }

Gambar 3.5 – pada posisi ini melihat player

Pada gambar 3.5 diatas, jika kita hanya menggunakan vector lurus

ke depan maka bot tidak dapat meliha player yang ada di

depannya, padahal hal tersebut sudah pasti terlihat pada manusia.

Gambar 3.6 – bot tidak dapat melihat player

Page 12: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

63

Supaya bot padat melihat player kami menambahkan variabel

temp_alpha, yang bertujuan untuk memperluas pandangan.

Semakin jauh pandangan bot maka semakin besar nilai alpha-nya.

Maka pada algoritma diatas kami tambahkan menjadi

vec_rotate(trace_dist,vector(bot.rotation,0,0));

menjadi

vec_rotate(trace_dist, vector( (bot.rotation – 30 ) + temp_alpha , 0, 0));

temp_alpha + = 1; IF(temp_alpha > 60 ) {

temp_alpha = 0; }

Cara kerja algoritma di atas seperti radar berputar teurs sampai

melihat player.

3.5.1.2 Algoritma Suara

Pada point ini kami membagi dua, mendengar suara senjata

dan suara langkah kaki. Pada dasarnya untuk mendengar hanya

menggunakan rumus trigonometri biasa.

3.5.1.2.1 Suara Senjata

untuk dapat mendengarkan suara senjata ( suara

tembakan player) maka digunakan rumus

(Xe-Xp)² + (Ye-Yp)² + (Ze-Zp)² = distance², IF( distance < 1000){

Searching(); } Xe = koordinat X pada Enemy

Page 13: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

64

Xp = koordinat X pada Player

Ye = koordinat X pada Enemy

Yp = koordinat Y pada Player

Distance = Jarak antara koordinat X,Y,Z Player dengan

Enemy

3.5.1.2.2 Suara Langkah Kaki Player

Untuk suara langkah kaki dibagi menjadi 2 katagori yaitu,

1. Langkah kaki berlari

2. Langkah kaki berjalan-menggendap

Untuk suara langkah kaki yang membuat bot

mendengar yaitu pada saat Player berlari, untuk dapat

mendengar suara langkah kaki, maka digunakan rumus

(Xe-Xp)² + (Ye-Yp)² + (Ze-Zp)² = distance²; IF(distance < 200 && player.status == run){

Searching(); }

3.5.2 Probability

Pada point ini kami hanya mengambil nilai random pada variabel

tertentu. Yaitu variabel diligent., mental, dan speed. Tiap variabel

mempunyai tujuan yang berbeda-beda. Diligent merupakan variabel yang

digunakan untuk berpatroli. Mental variable yang digunakan untuk

Page 14: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

65

keberanian menghadapi musuh. Sedangkan speed digunakan untuk

kecepatan responsive, berjalan, dan berlari.

Characteristic = random(5)+1;

• Lazy = nilai random 1 dan 2

• Diligent = untuk nilai random 3, 4, dan 5

mental = random(5)+1;

• Weak Soldier = nilai random 1

• Soldier = untuk nilai random 2, 3, dan 4

• Strong Soldier = hanya nilai random 5

speed = random(3)+1;

berdasarkan nilai random variabel diatas akan kami masukan kedalam

fuzzy nantinya.

3.5.3 Patroli Dan Metode Pencarian

pada metode ini kami menggunakan dua algoritma untuk dapat

berpatroli dengan random. Kami menggunkan funsi scan yang berguna

untuk meditek apakah ada objek di sekitar daerah tesebut, dan berikutnya

kami menambahkan alogitama sensor 1 yang telah di jelaskan di atas,

tujuan menbahkan sensor adalah supaya padat menditek obstacle.

Page 15: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

66

Gambar 3.7 – bot men-scan node

Kami penjabaran alogritma berdasarkan gambar di atas, yitu sebagai

berikut :

function scan(distance,radius,tilt){ var temp; temp.pan = radius; temp.tilt = tilt; temp.z = distance; scan_entity (bot, temp); } if( scan(300,120,60) > 0 && sensor_1 > 100 ){

c_move(bot,vector(5*time,0,0)); // play "walk" frames animation

} else{

bot.rotation += 3; // play "stand" frames animation

}

Gambar 3.8 – Pandangan dari atas

Page 16: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

67

Gambar 3.9 – Pandangan dari samping

Pada gambar 3.8 dan gambar 3.9, kami memperlihatkan bagaimana

proses yang tejadi pada funsi scan.

Pancarian yang kami gunakan menggunakan algoritma data-based

search. Dengan metode komputer tidak perlu lagi menghitung jarak

terpendek untuk menuju node yang dituju. Pada gambar dibawah

merupakan contoh dimana bot mencari posisi player berada.

Gambar 3.10 – Label Pada Node

Page 17: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

68

Gambar 3.11 – Bot Mencari Posisi Player

Gambar 3.12 – Bot Mencari Posisi Player

Tabel 3.2 – Complit Tabel Node

Page 18: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

69

Pertama-tama kami memberikan label pada tiap node

(gambar3.12), lalu tiap node diberikan fungsi scan untuk menditeksi

beberadaan player dan menditeksi keberadaan bot, bot akan mendekati

posisi node yang terdekat dengan player. Pada gambar 3.11, bot bergerak

mendekati player sesuai pada tabel 3.2.

Lalu bagaimana bot dapat bergerak ke node A pada awal-awalnya

kenapa tidak ke node D padahal lebih dekat? (gambar 3.10 dan 3.11).

Sebelum masuk pada tabel, node tersebut men-scan bot seperti pada

gambar 3.12, lalu dicari mana nilai jarak yang terpendek dari semua

kemungkinan yang ada.

3.5.4 Fuzzy

Pada bagian ini merupakan point terpenting dalam pembuatan

game kami, dalam game yang kami buat fuzzy merupakan otak dari agen.

Dengan adanya fuzzy maka AI yang kami terapkan maka agen lebih

terlihat logis dalam mangambil keputusannya. Fuzzy yang kami terapkan

menggunakan Rule Evaluation.

Ada 5 variabel yang kami gunakan dalam fungsi fuzzy, yaitu sebagai

berikut :

1. Mental, yang merupakan input berdasakan nilai random

2. Gun Analysis, yang merupakan input berdasarkan senjata player

dan senjata agen yang sedang aktif

3. Distance antara pemain dengan enemy

Page 19: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

70

4. HP ( Heatlh Point ), merupakan kesehatan agen dengan player

5. Decision Maker, keputusan yang akan diambil oleh agen

Player

Me

Mental

Gun Analysis

Heath Point (HP)

Distance

Rule Based DecisionMaker

Weak Solder

Solder

Strong Solder

Gambar 3.13 - Fuzzy Interface System

Berdasarkan fuzzy interface system di atas maka pemetaan input-ouput

sebagai berikut

• Variabel Mental, terdapat dua input berdasarkan nilai random

Mental : Weak Soldier = nilai random 1

Soldier = untuk nilai random 2, 3, dan 4

Strong Soldier = hanya nilai random 5

Variabel HP, terbagi menjadi beberapa variabel, yaitu : Near

Death, Serius, Uninjured

Page 20: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

71

HP untuk weak Soldier

Near Death = 0 - 20

Serius = 20 - 50

HP untuk Soldier

Near Death = 0 - 20

Serius = 20 - 80

Uninjured = 80 - 100

HP untuk Strong Soldier

Near Death = 0 - 50

Serius = 50 - 100

Uninjured = 100 - 200

• Variabel Gun Analysis, pada variabel terbagi menjadi 2, senjata

yang gunakan oleh player dan senjata yang digunakan oleh bot.

Player’s Gun : Weak Gun (Walther) = 1

Medium Gun (Ump) = 2

Hard Gun (AK) = 3

My Gun : Weak Gun (Bareta) = 1

Medium Gun (Ingram) = 2

Hard Gun (Ak47) = 3

• Variabel Distance, terbagi menjadi beberapa input yaitu : Near,

Average , Far.

Page 21: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

72

Distance : Near = 100 - 500

Average = 500 - 1000

Far = 1000 - 2000

• Variabel Decision Maker, yaitu Attack, Call Assisted, Defend,

Escape.

Berdasarkan variabel di atas, lalu kami membuat semua rule yang

mungkin. Terdapat 243 rule-based (terdapat pada halaman lampiran),

maka dengan banyaknya rule yang berbeda tetapi mempunyai decision

maker yang sama. Maka kami mengeliminasi rule yang ada sebagai

berikut.

Tabel 3.3 - Mental Pada Weak Soldier

HP DISTANCE DECISION MAKER

IF Near Death AND Near OR Average THEN Defend

IF Near Death AND Far THEN Escape

IF Serius AND Near OR Average THEN Defend

IF Serius AND Far THEN Attack

HP PLAYER GUN DECISION MAKER

IF Uninjured AND Weak Gun OR Medium Gun THEN Call Assisted

IF Uninjured AND Hard Gun THEN Escape

Page 22: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

73

Tabel 3.4 - Mental Pada Soldier

HP DISTANCE DECISION MAKER

IF Near Death AND Near OR Average THEN Defend

IF Near Death AND Far THEN Attack

IF Serius - - THEN Attack

IF Uninjured AND Average OR Near THEN Attack

IF Uninjured AND Far THEN Call Assisted

Tabel 3.5 - Mental Pada Strong Soldier

HP HP DECISION MAKER

IF Near Death OR Serius THEN Attack

HP DISTANCE DECISION MAKER

IF Uninjured AND Average OR Near THEN Attack

IF Uninjured AND Far THEN Call Assisted

Page 23: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

74

3.6 Arsitektur Grafik

Pada pembuatan aplikasi game ini, kami gunakan adalah 3d Game Studio

sebagai engine kami.

External tools (3DMAX, Photoshop CS )

WED Level Editor MED Model Editor Paint Program

SED Script Editor/ TextPad

Block,Prefab(WMP)

Light,Sound,

Path

Sub-level

(WMB)

Model(MDL,3DS)

Terrain(HMP)

Sprite,Decal

(BMP...)

Textures (BMP,DDS,TGA,WAD)

Compiler

Compiled BSP Level(WMB)

Script,Shader

User-Interface

Finished Game(EXE)

gambar 3.14 – High-end Game production pipeline

Pada perancangan karakter dan skin, menggunakan program external yaitu

program 3dmax, sedangkan untuk membuat skin dan texture menggunakan

program Photoshop.

Pada perancangan map pada tiap level, menggunakan program WED

(World Editor Design) atau yang telah di sediakan engine itu sendiri.

Page 24: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

75

3.7 Perancangan Aplikasi

Pada tahapan ini kami akan dideskripsikan proses aplikasi, termasuk

dalam bagian ini adalah deskripsi proses perancangan diagram, hiraki menu,

rancangan level atau scenario, dan STD ( state transition diagram ).

3.7.1 Hirearki Menu

The Stealth

New Game

Credits

Control

Quit

Gambar 3.15 - Hirearki Menu

Page 25: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

76

3.7.2 Rancangan Level dan scenario

Start

Prologue

Map 1 - Forest

Map 2 - Warehouse

Map 3 - Square

Map 4 – Warahouse II

Map 5 - Boss

Map 6 – safe hostage

Ending

Quit

Selesai

Gambar 3.16 - State Transition Diagram

Scenario pada game ini sebagai berikut :

Map 1 – Forest

Pada Map 1, player diberi kebebasan untuk bergerak, menembak,

dan berjalan berkeliling. Dan juga terdapat bot yang sangat mudah untuk

Page 26: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

77

dihadapi. Tujuan pada map 1, supaya player dapat berdapatasi dengan

environment pada game ini. Player bergerak sampai menuju gudang,

setelah itu baru masuk ke map berikutnya.

Map 2 – Warehouse I

Pada map ke 2, player harus berhadapan dengan beberapa teroris.

Player harus jalan berdiam-diam jangan sampai terlihat dan terdengan

teroris.

Map 3 – Square

Tidak berbeda jauh pada map 2, player masi juga harus berhati-

hati, karena musuh jauh lebih banyak. Dan kemungkina mati jika di serang

lebih besar. Ada beberapa hostage yang harus di temukan. Setelah

ditemukan maka player dapat meneruskan ke state berikutnya

Map 4 – Warehouse II

Pada map 4, player harus membunuh beberapa musuh tanpa musuh

tersebut memanggil bala bantuan. Karena untuk dapat masuk ke state

berikutnya, satu dari antara teroris yang membawa kunci untuk dapat

membuka pintu dan masuk ke state berikutnya.

Map 5 – Boss

Map ini tertutup dan tidak ada jalan keluar. Player akan berhadap

dengan boss pada game ini. Pada point ini player menghindar dari

serangan boss, dan hanya dapat bersembunyi dibalik box hanya pada

beberapa saat saja. Pada state ini hanya akan ada satu pemenang, antara

player atau boss. Pintu akan terbuka jika boss tersebut telah dilumpuhkan.

Page 27: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

78

Setelah boss telah dilumpuhkan maka player dapat menyelamatkan

hostage yang terkurung dalam penjara. Setelah menolong mereka maka

permaina selesai.

3.7.3 Rancangan Aplikasi pada Player

Gambar 3.17 – Diagram Rancangan Aplikasi pada Player

Page 28: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

79

3.7.4 Rancangan Aplikasi pada Bot

Mulai

Probability

Menunggu dan mencari player

Delay

Fuzzy Logic

Bagaimana Kondisi

both setalah pertarung

Both dihapus dari program

Selesai

Mati

Hidup

ActionKondisi Player ?

Mati

Hidup

Gambar 3.18 – Diagram Rancangan Aplikasi pada Bot

Page 29: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

80

3.7.5 STD Menu Utama

Windows

Layar Menu Utama

New Game Control Credits Exit

User menjalan aplikasi

Pilih New Game . Pilih Control . Pilih Credits . Pilih Exit .

Keluar dari program

Gambar 3.19 –STD pada menu utama

Page 30: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

81

3.7.6 STD New Game

Gambar 3.20 –STD pada menu New Game

3.8 Rancangan Model

Pada tahap perancangan karakter terdiri dari 3 tahan.

Tahap Pertama – perancangan

Page 31: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

82

3.8 Rancangan Model

Pada tahap perancangan karakter terdiri dari 3 tahan.

Tahap Pertama – perancangan

Pada tahapan ini karater dibuat dari balok-balok yang terdiri banyak vertex (pada

gambar 3.21). Lalu dari vertex tersebut dibuat sedemikian rupa dan diperhalus

oleh tool-tool yang telah tersedia pada setiap program 3d design, pada karakter

yang kami buat kami menggunakan program 3dmax sebagai alat bantu kami.

Gambar 3.21 –Rancangan awal pada karakter

Page 32: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

83

Tahap kedua – pembuatan Bones

Pada tahapan ini kami membuat tulang pada setiap pergelangan yang

memungkinkan karakter bergerak seperti manusia, seperti pada gambar 3.22.

Disinilah kami membuat seluruh pergelangan, pada tahap ini merupakan tahapan

terpenting dalam pembuatan karater untuk menuju ke tahap berikutnya

Gambar 3.22 – Pembuatan Bones

Gambar 3.23 – Penyatuan karakter dengan bones

Page 33: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

84

Tahap Ketiga – pembuatan Animasi

Pada tahap ini, animasi setiap karakter dibuat berdasarkan frame. Setiap gerakan

satu gerakan terdapat antara 10 sampai dengan 30 frames tergantung apakah

gerakan tersebut komplek atau simple. Dibawah terdapat contah gambar tiap

frames gerakan saat karakter tertembak dan mati. Pada contoh gambar 3.24, pada

contoh tersebut kami hanya memperlihatkan frame by frame yang dominannya

saja.

Gambar 3.24 – Animasi frame by frame

Page 34: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

85

Tahap keempat – pembuatan Skin

Pada tahap ini merupakan tahap finishing. Pada tahan ini kami membuat kulit

pada setiap karakter agar terlihat realistis. Gambar 3.25 merupakan contoh skin

yang akan ditempel ke seluruh tubuh karakter.

Gambar 3.25 – Skin pada karakter

Page 35: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

86

Berdasarkan tahapan diatas maka kita dapatkan hasil final seperti gambar dibawah

ini.

Gambar 3.26 – kerakter teroris

Berikut adalah rancangan – rancangan Character, Item, dan Map dari The

Stealth yang akan direkayasa.

Page 36: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

87

3.8.1 Perancangan Player

Gambar 3.27 – Player

3.8.2 Perancangan Bot

Gambar 3.28 – Teroris 1 dam Terosris 2

Page 37: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

88

Gambar 3.29 – Boss 1

Gambar 3.30 – Boss 2

Page 38: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

89

3.8.3 Perancangan Hostage

Gambar 3.31 – Hostage

3.8.5 Perancangan Senjata

Gambar 3.32 – Senjata Player

Page 39: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

90

Gambar 3.33 – Teroris

3.8.6 Perancangan Item

Gambar 3.34 – Item Information

Gambar 3.35 – Item Heal

Page 40: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

91

3.8.7 Perancangan Map

Gambar 3.36- Map 1 - Forest

Gambar 3.37 - Map 2 – Warehouse I

Page 41: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

92

Gambar 3.38 - Map 3 – Square

Gambar 3.39 - Map 4 – Warehouse II

Page 42: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

93

Gambar 3.40 - Map 5 – Boss

Gambar 3.41 - Map 6 – Safe Hostage

Page 43: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

94

3.9 Rancangan Layar

Berikut adalah rancangan – rancangan layar dari The Stealth yang akan

direkayasa.

3.9.1 Rancangan Menu Utama

Gambar 3.42 - Rancangan Menu Utama

Page 44: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

95

3.9.2 Rancangan Prologue

Gambar 3.43 - Rancangan Prologue

3.9.3 Rancangan Layar 1st FPS

Gambar 3.44 - Rancangan 1st Persont

Page 45: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

96

3.9.4 Rancangan Layar 3nd FPS

Gambar 3.45 - Rancangan 3rd Persont

Pada gambar 3.44 dan 3.45 terdapat bar di kiri atas seperti pada gambar di

bawah.

Gambar 3.46 – Bar Peluru dan Bar Health

Pada gambar bar peluru menunjukan isi peluru yang masi tersisa dan pada

bar heatlh menujukan kesehatan player pada saat bermain. Jika bar health

berkurang lalu menipis maka kesehatan player semakin berkurang dan

dapat mati dengan mudah.

Page 46: i. BAB 3 - thesis.binus.ac.idthesis.binus.ac.id/Asli/Bab3/2007-3-00194-IF-Bab 3.pdfpermainan jenis ini setiap pembuat game mempunyai aturan atau cara yang berbeda-beda. Jika dilihat

97

3.9.5 Rancangan Game Over

Gambar 3.47 - Rancangan layar Game Over

3.9.6 Rancangan Ending

Gambar 3.48 - Rancangan Ending