i PEMBANGUNAN PERMAINAN PERLUMBAAN KERETA …ir.fsksm.utm.my/243/1/anuarbc070031d09ttp.pdfdihasilkan...

24

Transcript of i PEMBANGUNAN PERMAINAN PERLUMBAAN KERETA …ir.fsksm.utm.my/243/1/anuarbc070031d09ttp.pdfdihasilkan...

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

xvi

SENARAI LAMPIRAN

LAMPIRAN PERKARA HALAMAN

A Dokumentasi Permainan 77

B Carta Gantt 87

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.