i. bab 3 - thesis.binus.ac.idthesis.binus.ac.id/asli/bab3/2007-3-00194-if-bab 3.pdfpermainan jenis...
TRANSCRIPT
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.
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
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.
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
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.
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.
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
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
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
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
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
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
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
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.
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
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
68
Gambar 3.11 – Bot Mencari Posisi Player
Gambar 3.12 – Bot Mencari Posisi Player
Tabel 3.2 – Complit Tabel Node
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
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
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.
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
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
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.
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
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
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.
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
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
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
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
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
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
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
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
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.
87
3.8.1 Perancangan Player
Gambar 3.27 – Player
3.8.2 Perancangan Bot
Gambar 3.28 – Teroris 1 dam Terosris 2
88
Gambar 3.29 – Boss 1
Gambar 3.30 – Boss 2
89
3.8.3 Perancangan Hostage
Gambar 3.31 – Hostage
3.8.5 Perancangan Senjata
Gambar 3.32 – Senjata Player
90
Gambar 3.33 – Teroris
3.8.6 Perancangan Item
Gambar 3.34 – Item Information
Gambar 3.35 – Item Heal
91
3.8.7 Perancangan Map
Gambar 3.36- Map 1 - Forest
Gambar 3.37 - Map 2 – Warehouse I
92
Gambar 3.38 - Map 3 – Square
Gambar 3.39 - Map 4 – Warehouse II
93
Gambar 3.40 - Map 5 – Boss
Gambar 3.41 - Map 6 – Safe Hostage
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
95
3.9.2 Rancangan Prologue
Gambar 3.43 - Rancangan Prologue
3.9.3 Rancangan Layar 1st FPS
Gambar 3.44 - Rancangan 1st Persont
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.
97
3.9.5 Rancangan Game Over
Gambar 3.47 - Rancangan layar Game Over
3.9.6 Rancangan Ending
Gambar 3.48 - Rancangan Ending