i pembangunan permainan perlumbaan kereta …ir.fsksm.utm.my/243/1/anuarbc070031d09ttp.pdfdihasilkan...
TRANSCRIPT
i
PEMBANGUNAN PERMAINAN PERLUMBAAN KERETA MENGGUNAKAN
ENJIN PERMAINAN
ANUAR BIN SULAIMAN
Laporan projek ini dikemukakan
sebagai memenuhi sebahagian daripada syarat
Penganugerahan Ijazah Sarjana Muda Sains (Sains Komputer)
Fakulti Sains Komputer dan Sistem Maklumat
Universiti Teknologi Malaysia
MEI, 2009
iii
“Ingatan tulus ikhlas buat Emak, Abah dan rakan-rakan yang sentiasa memberi
semangat dan dorongan sepanjang tempoh kajian projek ini dijalankan. Tidak
dilupa kepada Dr. Abdullah bin Bade yang sentiasa memberi tunjuk ajar yang
berterusan agar saya dapat menyiapkan Projek Sarjana Muda dengan Cemerlang!
Semua dorangan dan semangat yang kalian berikan selama ini amat saya hargai.
Terima kasih semua.”
iv
PENGHARGAAN
Alhamdulillah, bersyukur saya ke hadrat Illahi, kerana dengan limpah kurnia
dan izin-Nya saya berjaya menyiapkan Projek Sarjana Muda ini dalam masa yang
ditetapkan. Ucapan terima kasih yang tidak terhingga kepada Dr. Abdullah Bin Bade
selaku penyelia saya yang sentiasa membantu dan membimbing saya selama saya
menyiapkan projek ini. Segala tunjuk ajar dan panduan yang diberikan beliau amat
saya hargai.
Ribuan terima kasih saya tujukan kepada warga Jabatan Grafik Dan
Multimedia kerana banyak membantu dan memberikan kerjasama dalam
mendapatkan maklumat yang diperlukan untuk menyiapkan laporan ini. Tidak lupa
kepada kedua ibu bapa saya dan juga adik-adik yang sentiasa bersama saya tidak kira
susah atau senang dan memberikan sokongan padu untuk saya terus berusaha
menjayakan projek ini.
Juga diucapkan terima kasih kepada semua pensyarah dan rakan-rakan
seperjuangan yang membantu secara langsung dan tidak langsung serta memberikan
idea yang baik dalam menghasilkan laporan yang berkualiti. Sesungguhnya kalian
semua memberikan saya kekuatan untuk membangunkan Pembangunan Permainan
Perlumbaan Kereta Menggunakan Enjin Permainan ini dengan jayanya, terima kasih
semua.
v
ABSTRAK
Lazimnya enjin permainan digunakan untuk memudahkan kerja
pembangunan , mengurangkan kos dan menjimatkan masa. Tujuan projek ini
dihasilkan adalah untuk mengkaji bagaimana satu permainan komputer 3D berjenis
perlumbaan kereta dapat dibangunkan dengan menggunakan enjin permainan. Cube 2
.Model 3D permainan ini akan dibina menggunakan perisian 3DS Max dan Blender
manakala persekitaran pula akan menggunakan penyunting persekitaran enjin
permainan Cube 2. Permainan ini mnggunakan bahasa pengaturcaraan C++ dan
CubeScript. Hasil daripada kajian adalah sebuah prototaip permainan komputer
perlumaan kereta.
vi
ABSTRACT
Usually a game engine will be used to develop games because it can make the
game development process easier, reduce cost and time. The main purpose of this
project is to study on how to develop a car racing computer game using Cube 2 game
engine. The 3D model is designed using 3D authoring tools such as 3DS Max and
Blender meanwhile the games environment will be designed using Cube 2 engine
environment editing tools. C++ and CubeScript are the main programming languages
used to run the game. The final result is a car racing computer game.
vii
ISI KANDUNGAN
Bab
1
Perkara
DECLARATION
PENGHARGAAN
ABSTRAK
ABSTRACT
KANDUNGAN
SENARAI RAJAH
SENARAI JADUAL
SENARAI SINGKATAN
SENARAI ISTILAH
SENARAI LAMPIRAN
PENGENALAN
1.1 Pengenalan Kepada Projek
1.2 Latar Belakang Masalah
1.3 Matlamat
1.4 Objektif
1.5 Skop
1.6 Justifikasi Projek
Halaman
ii
iv
v
vi
vii
xi
xiii
xiv
xv
xvi
1
3
4
4
5
5
viii
2
3
1.7 Kesimpulan
KAJIAN LITERASI
2.1 Pengenalan
2.2 Latar Belakang permainan komputer
2.3 Latar belakang permainan perlumbaan kereta
2.4 Permainan perlumbaan kereta
2.5 Permainan Komputer Need for Speed: Most Wanted
2.6 Permainan Komputer Race Driver : Grid
2.7 Enjin Permainan
2.8 Enjin Permainan Cube 2
2.9 Enjin Permainan C4
2.9.1 Ciri-ciri penting enjin permainan C4
2.9.2 World Editor
2.9.3 Script Editor
2.9.4 Panel Editor
2.10 Enjin Permainan CryEngine
2.10.1 Ciri-ciri utama CryEngine
2.11 Perbandingan enjin permainan
2.12 Perbincangan
METODOLOGI
3.1 Pengenalan
6
7
7
12
14
15
19
20
22
24
25
26
27
28
29
30
31
32
34
ix
4
3.2 Langkah Pembangunan
3.3 Carta Alir Projek
3.4 Fasa analisa dan Perancangan
3.5 Fasa Rekabentuk dan Pembangunan Prototaip
3.5.1 Membangunkan persekitaran permainan
3.5.2 Memasukkan objek ke dalam permainan
3.5.3 Mereka bentuk laluan perlumbaan
3.5.4 Memasukkan kotak misteri ke dalam permainan
3.6 Kesimpulan
IMPLEMENTASI
4.1 Pengenalan
4.2 Komponen Asas Projek
4.2.1 Model Objek dan persekitaran
4.2.1.1 Memodelkan dan mengeksport pemain
Utama
4.2.1.2 Memodelkan persekitaran
4.2.2 Merekabentuk Antara Muka Bergrafik /Graphical
User Interface(GUI)
4.2.2.1 Merekabentuk GUI menu utama
4.2.2.2 Merekabentuk GUI HUD
4.2.3 Menkodkan Skrip Permainan
4.2.3.1 Aturcara Untuk Gameplay
4.2.3.2 CubeScript Untuk Navigasi Permainan
4.2.3.3 Aturcara Untuk Kepintaran Buatan(AI)
4.3 Kesimpulan.
34
37
38
38
40
41
42
43
44
44
45
46
50
51
51
52
53
53
54
55
58
x
5
6
PENGUJIAN DAN HASIL
5.1 Pengenalan
5.2 Hasil Akhir
5.3 Pengujian Permainan Perlumbaan Kereta
5.3.1 Pengesanan Ralat Sintak
5.3.2 Pengujian Menu Utama
5.3.3 Pengujian Navigasi Permainan
5.3.4 Kawalan Dalam Permainan
5.4 Kesimpulan
KESIMPULAN DAN PERBINCANGAN
6.1 Pengenalan
6.2 Masalah
6.3 Cadangan Pembaikan dan Peningkatan
RUJUKAN
LAMPIRAN
59
59
61
61
62
64
66
70
71
73
74
75
77
xi
SENARAI RAJAH
Rajah Tajuk Halaman
2.1 Kereta pemain sedang dikejar kereta peronda serta helicopter polis
2.2 Subaru yang diubahsuai
2.3 Peta bandar raya Rockport
2.4 Kereta Porsche 911 Turbo S.
2.5 Pandangan pemain dari tempat duduk pemandu
2.6 Pelanggaran boleh menghasilkan kesan khas seperti asap
2.6 Rupa paparan permainan yang menggunakan Cube 2
2.7 Permainan berunsurkan perlumbaan yang dihasilkan menggunakan
enjin Cube
2.8 Permainan komputer yang dibangunkan menggunakan enjin C4
2.9 Antara muka World Editor
2.10 Antara muka Script Editor
2.11 Antara muka Panel Editor
2.12 Permainan komputer yang dibangunkan menggunakan CryEngine
2.13 Contoh-contoh pengedit bunyi yang terdapat di dalam CryEngine
2.14 Antara muka pemacu skrip Lua
3.1 Fasa analisis dan perancangan
3.2 Fasa rekabentuk dan pembangunan prototaip
3.3 Carta alir permainan
3.4 Menyunting kiub
3.5 Pengedit persekitaran enjin permainan Cube
3.6 Contoh aturcara untuk membuat md3.cfg
3.7 Contoh aturcara untuk memasukkan model ke dalam permainan
3.8 Tekstur tanah
3.9 Jenis-jenis kotak misteri
16
17
18
18
19
20
22
23
24
26
27
28
29
30
31
35
36
37
40
40
41
42
43
44
xii
4.1 Komponen asas projek
4.2 Kandungan fail md3.cfg
4.3 Aturcara memasukkan model pemain utama ke dalam permainan
4.4 Keratan kandungan fail konfigurasi peta
4.5 Keratan arahan fail menus.cfg
4.6 Keratan aturcara antaramuka HUD
4.7 Keratan skrip untuk menetapkan navigasi permainan
4.8 Keratan aturcara untuk menetapkan pegerakan pelumba lain
4.9 Keratan skrip untuk mengambil kotak misteri
5.1 Antaramuka paparan awal permainan
5.2 Antaramuka untuk memasukkan nama pemain
5.3 Contoh ralat sintaks yang dikesan oleh CodeBlock
5.4 Contoh ralat sintaks yang dikesan ketika melarikan permainan
5.5 Menguji fungsi di menu utama
5.6 Pengujian menu pilihan
5.7 Pengujian menu about
5.8 Pengujian tembakan oleh pemain utama
5.9 Pertukaran pandangan kepada third person
5.10 Melanggar perangkap
5.11 Perlumbaan antara pemain dengan AI
5.12 Memusnahkan pihak lawan
5.13 Permainan tamat rumusan permainan dipaparkan
5.14 Pemain kalah perlumbaan
46
47
50
51
52
53
56
57
58
61
61
62
63
64
64
65
66
67
68
69
69
70
70
xiii
SENARAI JADUAL
Rajah Tajuk Halaman
4.1 Arahan untuk konfigurasi model dan fungsinya
5.2 Sistem navigasi permainan
48
65
xiv
SENARAI SINGKATAN
SINGKATAN MAKSUD
3D three-dimensional
AI Artificial Intelligence
COLLADA COLLAborative Design Activity
FPS First Person Shooter
GUI Graphic User Interface
LOD Level of Detail
RPG Role Playing Game
UDP/IP User Datagram Protocol/Internet
Protocol
UTM Universiti Teknologi Malaysia
xv
SENARAI ISTILAH
BAHASA MELAYU BAHASA INGGERIS
Antara muka Interface
Atas talian Online
Bayang Shadow
Berbilang pemain Multiplayer
Enjin Permainan Game Engine
Jenis Genre
Masa Nyata Real Time
Melarikan Run
Menjana Render
Pelantar Platform
Pengesanan Pelangaran Collison Detection
Pencahayaan Lighting
Pergerakan Kabur Motion Blur
Penyunting Editor
Pustaka Library
Rangkaian Network
Seorang Pemain Single Player
Sumber terbuka Open Source
Tahap Level
1
BAB 1
PENGENALAN
1.1 Pengenalan
Dewasa ini, permainan komputer semakin diminati oleh semua golongan
masyarakat.Ini telah menyebabkan sektor pembangunan permainan untuk komputer
semakin berkembang pantas jika dibandingkan dengan sedekat yang lalu. Pelbagai judul
baru permainan komputer dilancarkan hampir setiap hari. Permainan komputer pada
masa sekarang juga telah merangkumi pelbagai jenis yang berbeza seperti perlumbaan,
menembak, pengembaraan dan lain-lain lagi. Ini telah berjaya menarik perhatian
masyarakat untuk bermain permainan komputer walaupun mereka mempunyai
kegemaran dan minat yang berbeza-beza.
Permainan komputer juga telah berubah dari 2D ke 3D dengan grafik yang lebih
menarik dan cantik.Pelbagai teknik baru telah dihasilkan seiring dengan kemunculan
teknologi-teknologi baru telah menyebabkan penghasilan permainan komputer menjadi
semakin mudah dan pantas. Untuk membangunkan sesebuah permainan komputer,
pembangun perlu menggunakan enjin permainan. Ini kerana enjin permainan akan
menentukan bagaimana bentuk permainan yang akan dibangunkan dan kelakuan
2
karakter-karakter di dalam permainan tersebut. Ini kerana enjin permainan mempunyai
modul-modul dan enjin-enjin yang akan membuatkan sesebuah permainan itu nampak
menarik dan lancar. Diantara modul-modul dan enjin yang terdapat di dalam enjin
permainan adalah:
• Enjin fizik
• Enjin render bagi 2D dan 3D
• Modul bunyi
• Modul skrip
• Modul kepintaran buatan
• Modul animasi
• Modul pencahayaan
• Modul rangkaian
Kepentingan penggunaan enjin permainan adalah untuk menjimatkan masa ,
mengurangkan kos dan memudahkan kerja. Ini kerana untuk membuat modul dan enjin
seperti yang sudah terdapat di dalam enjin permainan adalah amat tinggi dan memakan
masa yang lama. Dalam projek ini, satu permainan komputer berkonsepkan perlumbaan
kereta akan dibangunkan dengan menggunakan satu enjin permainan yang akan dipilih
nanti. Pembangunan projek ini juga dapat dilihat sebagai usaha awal untuk mendapat
pendedahan di dalam industri pembangunan permainan komputer.
3
1.2 Latar belakang masalah
Terdapat pelbagai permainan perlumbaan kereta di pasaran pada masa
sekarang.Walaubagaimanapun, hampir kesemua permainan perlumbaan tersebut hanya
berkonsepkan perlumbaan diantara dua atau lebih kereta. Disebabkan konsep ini telah
selalu digunakan, pengguna inginkan satu permainan perlumbaan yang menggunakan
konsep yang lain dari yang lain.
Permainan perlumbaan kereta yang berunsurkan masa depan dan membenarkan
pemain untuk mengutip item di sepanjang perlumbaan yang boleh membantu pemain
unutk memenangi perlumbaan masih kurang di pasaran. Permainan perlumbaan yang
mempunyai konsep tersebut dapat menarik minat pengguna untuk bermain permainan
yang akan dibangunkan.
Di dalam permainan ini manusia berjaya menawan satu planet yang dihuni oleh
sejenis makhluk yang dipanggil Ogre. Ogre-ogre tersebut dijadikan hamba abdi oleh
manusia. Pemain akan mengambil watak sebagai salah seorang Ogre yang dijadikan
tawanan oleh manusia.Pemain akan dijanjikan kebebasan jika pemain dapat memenangi
satu perlumbaan kalah mati yang dipanggil The Death Race.
Perlumbaan bermula dari puncak sebuah bukit sehinggalah pelumba samapai ke
pintu gerbang yang terletak di penghujung tasik. Disepanjang perlumbaan, pemain akan
menjumpai pelbagai kotak yang dinamakan sebagai kotak misteri kerana anda tidak
mengetahui item yang terdapat di dalamnya. Pemain mungkin mendapat senjata yang
boleh digunakan untuk membunuh pelumba lain atau mungkin peti perubatan yang dapat
menambah nyawa pemain atau mungkin juga pek perisai yang boleh melindungi anda
dari serangan pihak lawan atau mungkin juga perangkap yang boleh memberi kecederaan
ke atas pemain.
4
1.3 Matlamat Projek
Matlamat bagi projek ini adalah untuk membangunkan permainan komputer
berjenis perlumbaan kereta dengan menggunakan enjin permainan.
1.4 Objektif Projek
Bagi memastikan matlamat projek ini tercapai,terdapat beberapa objektif yang
perlu dilaksanakan iaitu:
• Mengkaji enjin permainan sedia ada untuk digunakan dalam pembangunan
permainan komputer berjenis perlumbaan kereta.
• Merekabentuk persekitaran, karakter utama dan karekter musuh yang akan
dimasukkan ke dalam permainan ini.
• Membangunkan satu permainan berjenis perlumbaan kereta.
5
1.5 Skop Projek
Terdapat beberapa skop yang telah ditetapkan untuk mengelakkan proses
pembangunan permainan ini tidak tersasar dari matlamat asal iaitu:
• Permainan komputer ini hanya menggunakan papan kekunci dan tetikus sebagai
kawalan.
• Membangunkan hanya satu model kereta utama dan dua model kereta pesaing.
• Hanya membangunkan satu peringkat permainan sahaja.
• Model kereta hanya boleh bergerak ke kiri, kanan, depan dan belakang sahaja.
• Mengubahsuai aturcara kepintaran buatan yang terdapat di dalam enjin permainan
supaya ia dapat digunakan di dalam permainan berjenis perlumbaan.
• Menggunakan skrip yang telah terkandung dalam enjin permainan
• Tidak mengaplikasikan semua ciri yang terdapat dalam enjin permainan.
Permainan yang akan dibangunkan, kawalan utama hanyalah papan kekunci dan
tetikus sahaja.Penggunaan alat kawalan lain seperti joystick dan gamepad tidak
diaplikasikan di dalam projek ini.
Karekter utama yang akan dimodelkan pula hanya terdiri daripada satu model
pemain utama dan dua modela pihak lawan yang dikawal oleh kepintaran buatan dalam
permainan ini. Ini kerana faktor masa tidak membenarkan proses pemodelan karekter
yang banyak.
Disebabkan proses pengaturcaraan untuk kepintaran buatan akan memakan masa
yang lama, permainan ini hanya mempunyai satu peringkat permainan sahaja.
6
Pergerakan pemain utama adalah depan, belakang, kiri dan kanan sahaja. Ini
kerana pergerakan lain memerlukan kajian yang lebih dalam dan ia tidak termasuk di
dalam skop pembangunan projek.
Disebabkan enjin permainan untuk perlumbaan adalah kurang, enjin permainan
yang mungkin akan digunakan nanti bukanlah satu enjin permainan yang khusus untuk
perlumbaan. Oleh itu aturcara untuk kepintaran buatan bagi enjin permainan tersebut
perlu diubahsuai supaya ia dapat menampung permainan berjenis perlumbaan.
Enjin permainan selalunya mempunyai banyak ciri-ciri yang boleh dimasukkan ke
dalam permainan. Tetapi disebabkan ini adalah pembangunan pemainan berjenis
perlumbaan, terdapat ciri-ciri yang mungkin kurang sesuai dengan permainan ini. Ciri-
ciri tersebut tidak akan dimasukkan ke dalam permainan yang akan dibangunkan.
1.6 Kesimpulan
Secara umumnya, bab ini menerangkan pengenalan berkenaan dengan projek
yang akan dilaksanakan. Antaranya ia menerangkan tentang ciri-ciri yang terdapat dalam
enjin permainan bagi membangunkan sesebuah permainan. Bab ini juga turut
menerangkan tentang keprntingan enjin permainan dalam sesebuah pembangunan
permainan komputer.Penyataan masalh, matlamat, objektif dan skop yang telah
dikenalpasti di dalam bab ini akan dijadikan panduan dalam pembangunan permainan
perlumbaan kereta.