Tải bản đầy đủ (.pdf) (120 trang)

Luận văn tốt nghiệp: Ứng dụng trí tuệ nhân tạo trong xây dựng GAME

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.08 MB, 120 trang )

TR

NG
I H C KHOA H C T NHIÊN
KHOA CÔNG NGH THÔNG TIN
B MÔN CÔNG NGH TRI TH C

NGUY N THANH PHONG

NG D NG TRÍ TU NHÂN T O
TRONG XÂY D NG GAME

KHÓA LU N C

NHÂN TIN H C

TP. HCM, 2005


TR

NG

I H C KHOA H C T

NHIÊN

KHOA CÔNG NGH THÔNG TIN
B

MÔN CÔNG NGH TRI TH C



NGUY N THANH PHONG - 0112191

NG D NG TRÍ TU NHÂN T O
TRONG XÂY D NG GAME

KHÓA LU N C

NHÂN TIN H C

GIÁO VIÊN H

NG D N

TH.S BÙI TI N LÊN

NIÊN KHÓA 2001-2005


NH N XÉT C A GIÁO VIÊN H

NG D N

......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................

......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................


NH N XÉT C A GIÁO VIÊN PH N BI N
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................

......................................................................................................
......................................................................................................
......................................................................................................
......................................................................................................


L IC M N
Em s không th hoàn thành lu n v n n u không có s h

ng d n và ch

b o t n tình c a th y Bùi Ti n Lên. Em xin chân thành c m n s ch b o c a
th y.
Em c ng r t c m n các th y cô trong khoa Công ngh Thông tin tr

ng

i h c Khoa h c T nhiên Tp.H Chí Minh đã t n tình gi ng d y, truy n đ t
nh ng ki n th c quý báu và t o đi u ki n cho em hoàn thành lu n v n này.
Xin chân thành c m n s giúp đ , đ ng viên c a c a t t c các b n trong
quá trình th c hi n lu n v n.
Em c ng mu n c m n nh ng ng

i thân trong gia đình đã đ ng viên, giúp

đ và t o đi u ki n đ hoàn thành lu n v n.
M c dù đã c g ng hoàn thành lu n v n v i t t c s n l c c a b n thân,
nh ng lu n v n ch c ch n không tránh kh i nh ng thi u xót. Em r t mong
nh n đ


c s thông c m và ch b o t n tình c a các th y cô và các b n.

Tp.HCM 7/2005
Sinh viên th c hi n
Nguy n Thanh Phong


M cl c

M CL C
Ch

ng 1 GI I THI U ................................................................................... 1
1. Lý do ch n đ tài ....................................................................................... 1
1.1. Các ngôn ng l p trình game............................................................ 1
1.2. Phân lo i game.................................................................................. 2
1.2.1. Game hành đ ng....................................................................... 2
1.2.2. Game nh p vai.......................................................................... 3
1.2.3. Game đua xe............................................................................. 3
2. M c đích c a đ tài ................................................................................... 3

Ch

ng 2 CÁC THU T TOÁN TÌM

NG I ....................................... 4

1. Mô t các th t c tìm ki m r ng, sâu và sâu d n ...................................... 6
2. Thu t gi i tìm đ


ng đi có giá thành nh nh t AT ................................... 7

3.Tìm ki m v i tri th c b sung.................................................................... 8
4.Tìm đ
Ch

ng đi trên đ th t ng quát ............................................................ 9

ng 3 GAME ENGINE ........................................................................... 12

I. WED editor:................................................................................................... 13
1. Nh ng khái ni m c b n ......................................................................... 13
a. Giao di n ng

i dùng......................................................................... 13

b. Thanh Icon ......................................................................................... 15
c. Mode .................................................................................................. 15
d. Thi t k m t khung c nh ................................................................... 14
e. H

ng đ i t

ng ................................................................................ 16

f. C a s d án ....................................................................................... 18
2. Các l nh trong WED ............................................................................... 19
2.1.Các l nh trong các th c đ n ............................................................ 19
2.1.1. Th c đ n file .......................................................................... 20
2.1.2. Th c đ n edit: ........................................................................ 24


i


M cl c

2.1.3. Th c đ n mode ...................................................................... 25
2.1.4. Th c đ n Object..................................................................... 29
2.1.5. Th c đ n Texture................................................................... 32
2.1.5. Th c đ n View....................................................................... 33
2.1.6. Th c đ n help ........................................................................ 34
2.2 Giao di n s d ng ............................................................................ 35
2.3. C a s d án ................................................................................... 36
2.3.1. Tab đ i t

ng ......................................................................... 36

2.3.2. Tab Views .............................................................................. 38
2.3.3. Tab Texture ............................................................................ 38
2.3.4. Tab Resource.......................................................................... 41
2.4. C a s Bookmark ........................................................................... 41
2.5. Thu c tính c a kh i ........................................................................ 41
2.6. Thu c tính c a th c th .................................................................. 43
3. Thi t k m t map..................................................................................... 45
4. Th c th ................................................................................................... 46
4.1. Th c th mô hình............................................................................ 46
4.2. Th c th Sprite................................................................................ 47
4.3. Th c th Map.................................................................................. 47
4.4. Th c th


a hình (terrain) ............................................................. 48

4.5. Bóng................................................................................................ 48
4.5. Thu c tính trong su t...................................................................... 49
II. CÁCH S

D NG MED .............................................................................. 50

1. Trình thi t k ........................................................................................... 50
1.1. Các th c đ n ................................................................................... 50
1.1.1. Th c đ n File ......................................................................... 50
1.1.2. Th c đ n Edit......................................................................... 53
1.1.3. Th c đ n View....................................................................... 55

ii


M cl c

1.1.4. Th c đ n Options................................................................... 56
1.1.5. Th c đ n Help........................................................................ 57
1.2. Toolbars................................................................................................ 58
1.2.1. Toolbar File ............................................................................ 58
1.2.2. Toolbar Edit............................................................................ 58
1.2.3. Toolbar Select ........................................................................ 60
1.2.4. Toolbar Mesh ......................................................................... 60
1.2.5. Toolbar các đ i t

ng c s ................................................... 61


1.2.6. Toolbar view .......................................................................... 62
1.2.7. Toolbar Frame ........................................................................ 63
1.2.8. Thanh tr ng thái ..................................................................... 64
2.Trình thi t k Skin.................................................................................... 64
2.1. Các th c đ n ................................................................................... 65
2.1.1. Th c đ n File ......................................................................... 65
2.1.2. Th c đ n Edit......................................................................... 66
2.1.3. Th c đ n View....................................................................... 67
2.2. Các Toolbar..................................................................................... 68
2.2.1. Toolbar Skin........................................................................... 68
2.2.2. Toolbar Edit............................................................................ 68
2.2.3. Toolbar Paint .......................................................................... 69
III. SED, C-Script editor ................................................................................... 70
1. Giao di n s d ng.................................................................................... 71
2. So n th o ................................................................................................. 72
2.1. L nh Insert ...................................................................................... 72
2.2. Dòng chú thích................................................................................ 72
2.3. Nh y đ n m t đo n mã ................................................................... 72
2.4. S d ng danh sách các thành ph n ................................................. 73
2.5. Ki m tra cú pháp............................................................................. 73

iii


M cl c

2.6. So n th o thông minh ..................................................................... 73
3. C u hình .................................................................................................. 74
4. Th c đ n.................................................................................................. 75
4.1. Th c đ n File.................................................................................. 75

4.2. Th c đ n Edit ................................................................................. 76
4.3. Th c đ n Options ........................................................................... 76
4.4. Th c đ n Tools............................................................................... 77
4.5. Th c đ n Debug ............................................................................. 77
IV. Giao ti p v i các DLL ................................................................................ 79
1. B t đ u v i SDK ..................................................................................... 79
2. S d ng đ i t

ng C-Script trong m t DLL ........................................... 82

3. S d ng các hàm API.............................................................................. 83
4. L p trình m t game trong C++................................................................ 87
Ch

ng 4 CÀI

I. Ng

T........................................................................................ 89

i ch i ..................................................................................................... 89

1. Chuy n đ ng v t lý.................................................................................. 89
a. Gia t c, quán tính và l c ma sát......................................................... 89
b. R i t trên xu ng ............................................................................... 93
2. Cách di chuy n camera theo ng
2.1. T m nhìn c a ng

i ch i ................................................. 97


i th nh t.......................................................... 97

2.2. Quay t do t m nhìn c a ng

i th 3 ........................................... 101

2.3. Cách đ cho camera tránh ch m vào t

ng .................................. 106

II. Xe t đ ng .................................................................................................. 108
Tránh ch

ng ng i v t trên đ

ng đi........................................................ 108

iv


Ch

ng 1: Gi i thi u

Ch

ng 1

GI I THI U
1. Lý do ch n đ tài

Ngày nay, do nhu c u đ i s ng c a con ng
trong đó nhu c u gi i trí c a con ng



i ngày càng đ

c nâng cao,

c quan tâm đ n r t nhi u. Trong đó

vi c gi i trí b ng Game máy tính ngày càng phát tri n nhanh và lan r ng ra do
s lôi cu n r t m nh m c a nó. H u nh ai đã s d ng máy tính đ u đã gi i trí
b ng m t s game nào đó trên máy tính. Có th nói Game là m t th lo i phóng
phú nh t trong t t c các lo i ch
M c dù các ch

ng trình trên máy tính.

ng trình Game r t nhi u, nh ng đ có th vi t ra đ

game hay, có th ch i đ

cm t

c qu là m t đi u không d . Tuy v y, v i ni m đam

mê v game máy tính, em c ng mu n ti p c n v i l nh v c này.

1.1. Các ngôn ng l p trình game

Có r t nhi u ch

ng trình h tr cho vi c vi t game: các ngôn ng l p trình

nh C++, Visual C++, Delphi, Dark Basic Pro, 3D Game Studio.
Nh ng v i các ngôn ng l p trình C++, Visual C++, DelPhi… có th là
nh ng ngôn ng r t m nh, có th vi t ra đ

c nh ng game có quy mô l n. ây

là nh ng ngôn ng l p trình có th ho t đ ng trong nhi u l nh v c: v i c s d
li u, l p trình h th ng, ho c vi t game…Do đó s h tr c a nó trong vi c vi t
game là r t ít.

có th vi t đ

c m t game b ng nh ng ngôn ng l p trình

này mà không s d ng m t th vi n nào, đòi h i ph i b ra r t nhi u công s c.
V i engine Dark Basic Pro, đây là lo i engine r t đ n gi n và d s d ng, là
m t ngôn ng Script theo h Basic. Nó ch thích h p v i các game nh .
T i sao l i s d ng ngôn ng 3D Game Studio đ vi t game?
3D Game Studio là ch

ng trình chuyên d ng dùng đ t o ra game 3D.

1


Ch


ng 1: Gi i thi u

V i hàng tr m game đã đ

c phát hành, 3D Game Studio x ng đáng là m t

ngôn ng l p trình game l n. V i 3D Game Studio, chúng ta có th :
- T o ra m t game đ n gi n t nh ng script m u có s n.
- T o ra các game th

ng m i vi t b ng ngôn ng script.

- Có th s d ng VisualC++ ho c Delphi đ k t h p v i 3D Game Studio
đ vi t game.
Có r t nhi u tài li u h
c v i nh ng ng
h

ng d n l p trình game b ng 3D Game Studio. Ngay

i ch a có ki n th c v l p trình, nh ng n u theo t ng b

c

ng d n t o m t game hành đ ng đ n gi n thì c ng có th hoàn thành nó

trong m t th i gian ng n.
Theo Dr.Dobb's Journal: “ ây là b công c tuy t v i đ nhanh chóng t o
ra m u ban đ u và phát tri n ng d ng 3D”. Chúng ta có th s d ng ngôn ng

script trong 3D Game Studio đ vi t và phân ph i m t game th
đây là nh ng game th

ng m i đ

ng m i. D

i

c làm b ng 3D Game Studio:

1.2. Phân lo i game
Th lo i c a game thì r t phong phú và đa d ng,
th lo i game th

đây chúng ta ch xét các

ng th y nh t là:

1.2.1. Game hành đ ng
Game hành đ ng xu t hi n r t nhi u trong c game 3D và game 2D. Game
lo i này có đ c đi m chúng là tính co gi t trong game, nh trong game b n

2


Ch

ng 1: Gi i thi u


súng. Game hành đ ng th
nh ng ng

i bình th

ng đ n gi n h n t t c các lo i game khác b i vì

ng d dàng bi t cách ch i và ch i hay game này .

1.2.2. Game nh p vai
ng có hai đ c tr ng là: s thay đ i, phát tri n nhân v t

Game nh p vai th

và m t câu chuy n mà trong đó nhân v t s tr i qua.

1.2.3. Game th thao
Game th thao là s thách th c cho các nhà thi t k game. Không gi ng nh
h u h t các th lo i game khác, ng
ng

i ch i bi t r t ít v nó, trong game th thao

i ch i bi t r t rõ vì nó mô ph ng m t môn th thao có s n trong th c t .

1.2.3. Game đua xe
Game đua xe t o ra c m giác gi ng nh ng

i ch i đang lái xe bên ngoài


th gi i th c.
Tuy trong đ tài c a em không th nói là vi t ra đ
nh m t game đua xe, mà đây ch là m t ch
giao thông trên đ

c m t game ch i đ

ng trình

c

m c đ mô ph ng

ng ph .

2. M c đích c a đ tài
Tìm hi u ngôn ng l p trình game trong 3D GameStudio:
- Tìm hi u v WED, m t ch

ng trình thi t k khung c nh trong game.

- Tìm hi u v MED, m t ch

ng trình thi t k các mô hình trong game.

- Tìm hi u v SED, trình so n th o dùng đ vi t các câu l nh script đ k t
n i các mô hình đ

c t o ra trong MED, các khung c nh đ


c t o ra trong

WED và s d ng nh ng hàm có s n trong SED ho c trong các DLL khác đ
t o ra m t game.
S d ng thu t toán c đi n A* tìm ki m đ
chuy n đ ng theo m t h

ng đi đ m t đ i t

ng mong mu n nào đó.

3

ng có th


ng 2: Các thu t toán tìm đ

Ch

Ch

ng đi

ng 2

CÁC THU T TOÁN TÌM
NG I
H u h t các bài toán ho c v n đ đ u có th phát bi u d
tr ng thái xu t phát hãy tìm đ


i d ng “t m t

ng d n đ n m t tr ng thái k t thúc mong

mu n”
Vi c tìm “đ

ng d n” t tr ng thái xu t phát (S0) đ n tr ng thái k t thúc

(Sn) g m có m t s b

c sau đây:

− Ch n không gian tìm ki m thích h p.
− Ti n hành tìm ki m có h th ng và hi u qu trong không gian tìm ki m.
− S d ng tri t đ các ngu n tri th c liên quan trong quá trình tìm ki m
t

ng ng v i mi n đ i t

ng c th .

Không gian tìm ki m c a m t v n đ c n gi i trên máy tính th
bi u di n b ng đ th hay m t d ng đ t bi t c a đ th là cây.
ng ho c không đ nh h
Cây là đ th đ nh h
nào h

c


th là m t t p

h p gi a các đ nh và các cung n i gi a các đ nh. Các cung có th đ
h

ng đ

c đ nh

ng, gán giá tr ho c không gán giá tr .
ng đ t bi t có duy nh t m t đ nh mà không có cung

ng đ n (g c c a cây), và m i đ nh khác c a cây ch có duy nh t m t

cung h

ng đ n.

Sau khi bài toán ho c v n đ đ

c bi u di n l i d

i d ng đ th ho c cây:

− M i đ nh là m t tr ng thái c a quá trình gi i bài toán.
− M i cung là tác đ ng bi n đ i quá trình t giai đo n này sang giai đo n
khác.
Nh v y, vi c gi i quy t m t bài toán c ng ch là tìm đ
ban đ u đ n tr ng thái mong mu n đ


ng đi t tr ng thái

c bi u di n qua hai đ nh nào đó c a đ

4


ng 2: Các thu t toán tìm đ

Ch

ng đi

th ho c cây tìm ki m. Nhi u bài toán ph c t p n u gi i quy t b ng ph
pháp tìm ki m ng u nhiên thì h u nh vô v ng vì s đ
theo hàm m c a s đ nh. Chính
t o khi gi i quy t các v n đ :
cách gi m s l

ng

ng đi có th s t ng lên

đây bi u l toàn b b n ch t c a trí tu nhân
ó là ngh thu t x trí v i các v n đ l n b ng

ng tìm ki m.

Các th t c tìm ki m đi n hình bao g m:

− Tìm ki m r ng: đ
− Tìm ki m sâu: đ
t cđ

ng đi đ

c tìm theo m i h

ng đi sâu mãi theo m t h

c n a m i chuy n sang h

ng có th

m ib

c.

ng đ n khi nào không ti p

ng khác.

− Tìm ki m sâu d n: k t h p tìm ki m r ng và tìm ki m sâu trên c s cho
tr

c m c sâu n r i tìm ki m r ng ng v i m c sâu đó.

− Tìm ki m c c ti u hóa giá thành: m i cung c a cây (đ th ) đ
thành và h
đ


ng tìm ki m đ

c xác đ nh b i vi c c c ti u hóa giá thành

ng đi.

− Tìm ki m v i tri th c b sung: h
th c b sung
Tr

c gán giá

m ib

ng tìm ki m đ

c xác đ nh v i tri

c.

c h t các th t c tìm ki m r ng, sâu và sâu d n s đ

c mô t qua m t

ví d . Sau đó m t s thu t gi i tìm ki m c c ti u hóa giá thành và b sung tri
th c s đ

c trình bày chi ti t.


5


Ch

ng 2: Các thu t toán tìm đ

ng đi

1. Mô t các th t c tìm ki m r ng, sâu và sâu d n
100

A

B
1

1

17

F

10

10

G
1


H

L

M

K
1

1

D

C

1

E
1

1

12

1

I

J


1

1
N
1

O
1

P

Q

R

1

1
T

S
1

U
1
Tr ng thái mong mu n

V

Tìm ki m r ng: quá trình tìm ki m s l n l


t là A, B, C, D, E, F, G, H, I,

J, K, L, M, N, O, P, Q, R, S, T, U, V…
Tìm ki m sâu: quá trình tìm ki m s l n l

t là A, E, K, O, Q, S, T, U, V,

…B, F,… C, G, L, H, M, … D, I, J, N, P, R.
Chú ý: n u nhánh d
đ nđ

i v dài vô h n thì quá trình tìm ki m s không bao gi

c m c tiêu.

Tìm ki m sâu d n: ng v i m c sâu 2: (A,E), (B,F), (C,G), (C,H), (D,I),
(D,J).

6


ng 2: Các thu t toán tìm đ

Ch

ng đi

ng v i m c sâu 3: (A,E,K), (B,F), (C,G,L), (C,H,M), (D,I), (D,J,N).


2. Thu t gi i tìm đ

AT
đ

ng đi có giá thành nh nh t

(Algorithm for Trees) v i m i đ nh n t

ng ng s g(n) là giá thành

ng đi t đ nh đ u t i n. (g(n) có th ch a xác đ nh đ i v i các đ nh thu c

ph n cây ch a h

ng đ n). M i đ nh n có th là:



nh đóng: ngh a là đ nh đã đ

c xem xét;



nh m : là đ nh gi đ nh s đ

c xem




nh n: là đ nh mà hàm g(n) t

đ

ng ng ch a đ

c tính đ n và ch a

c 1:

c sau:

u tiên, m i đ nh n và m i giá tr g(n) đ u là n. M đ nh đ u tiên

(coi đ nh đ u tiên là đ nh m và đ t giá tr g t
B

c sau;

c xem xét đ n.

Thu t gi i AT g m các b
B

b

c 2: Ch n đ nh m v i giá thành g t

N, n u N là đ nh m c tiêu thì đ


ng ng b ng 0).

ng ng nh nh t. G i đ nh này là

ng d n t i N là đ

ng đi có giá thành nh

nh t g(n) và v n đ đã đ

c gi i. N u không còn đ nh m nào thì cây bi u

di n v n đ không có đ

ng đi t i m c tiêu. N u có t 2 đ nh tr lên cùng

giá tr g nh nh t thì ki m tra trong s đó có đ nh m c tiêu không? N u có
thì ch n đ nh m c tiêu đó và quá trình gi i k t thúc. N u không thì ch n tùy
ý m t đ nh trong s đó và g i là N.
B

c 3:

óng đ nh N và m các đ nh sau N (có cùng h

ng đ n N), v i

m i đ nh sau N g i là s, ta tính:
g(s)=g(N)+(giá thành cung t N t i s)

B

c 4: Quay tr l i b

Thu t gi i AT đã đ

c 2.

c ch ng minh là luôn luôn tìm đ

thành nh nh t n u nh t n t i đ



ng đi v i giá

ng đó trên đ th và là thu t gi i t i u theo

ngh a s đ nh đóng trong quá trình tìm ki m là ít nh t.

7


Ch

ng 2: Các thu t toán tìm đ

ng đi

3. Tìm ki m v i tri th c b sung

Thu t gi i AT là thu t gi i tìm ki m đ

ng đi t t nh t đ i v i các cây ch có

thông tin v đ nh, cung và giá thành cung. Nh ng trong nhi u tr
tìm ki m đ
đ

ng đi s đ

c đ nh h

ng h p vi c

ng rõ thêm n u s d ng các tri th c thu

c d a trên nh ng hi u bi t v tình hu ng v n đ

m ib

c. Các th t c

tìm ki m d a trên 3 cách ti p c n:
− Không tính đ n các tri th c b sung ngoài thông tin v đ nh, cung, giá
thành.
− S d ng tri th c b sung đ tìm cách gi i riêng bi t cho v n đ mà b
qua vi c xây d ng cây bi u di n cho v n đ .
− Xây d ng bi u di n v n đ d

i d ng cây có tính đ n tri th c b sung


trong c u trúc cây ho c giá thành các cung.
Ngoài ra có có cách ti p c n theo h
n ng”, tìm ki m đ

ng xây d ng các thu t gi i “v n

ng đi v i tri th c b sung. H thu t gi i này mang tên là

AKT(Algorithm for knowledgeable Tree search). Tri th c b sung
đ



ct

ng ng m t giá tr h(n) . Ch ng h n đó là


đi t n đ n m c tiêu (nh v y h là

cl

cl

ng giá thành đ

m i đ nh

ng giá thành đ


ng

ng đi con ch

ng

bi t đ n).
Thu t gi i AKT g m các b

c sau:


a)

tiên (o) và gán g(0), s




u tiên, m i đ nh c ng nh giá tr g, h , f là ch a bi t. M đ nh đ u
d ng tri th c b

sung đ

c tính h(0) và tính



f (0) = g (0) + h(0) .





b) Ch n đ nh m có giá tr f = g (n) + h(n) nh nh t. G i đ nh này là N. N u
N là m c tiêu thì đ

ng t i N là đ

ng đi có giá thành nh nh t g(N). N u

không t n t i đ nh m nào thì cây không t n t i đ

8

ng đi t i m c tiêu. N u có


ng 2: Các thu t toán tìm đ

Ch

ng đi



t 2 đ nh m tr lên cùng giá tr f nh nh t, hãy ki m tra trong các đ nh này
có ch a m c tiêu không? N u m t trong các đ nh này là m c tiêu thì v n đ đã
đ


c gi i quy t, còn không thì ch n tùy ý m t trong các đ nh này là N.
c)

óng đ nh N, m

đ nh sau N. V i m i đ nh S sau N ta tính

g(s)=g(N)+(giá thành cung t N đ n S). S d ng tri th c b sung


cl



b

c này,



ng h( s) và gán cho f(s) giá tr f ( s) = g ( s ) + h( s) .

d) Quay v b

c 2.

Gi i thích ý ngh a AKT: gi s h(n) là giá thành nh nh t đ
xác t n đ n m c tiêu. Nh v y h(n) ch là

cl


c bi t chính

ng g n đúng v h(n). n u



h(n) ≡ h(n) thì AKT là th t c hoàn toàn tuy t đ i (các đ nh đóng đúng là các

đ nh n m trên đ

ng đi ng n nh t đ n m c tiêu). Trong tr

ng h p không có



tri th c b sung, h(n) = 0 và AKT suy bi n thành AT. Ta th y rõ ràng r ng gi a




h = 0 và h = h s t n t i các thu t gi i v i m c đ hi u qu r t thú v . N u


h ≤ h (v i m i n), AKT s b o đ m tìm ra đ



ng đi giá thành nh nh t và


t i u theo ngh a s d ng s đ nh đóng ít nh t so v i m i thu t gi i c ng ch
làm vi c v i các tri th c nh v y.


đ

N u h > h (v i m i n, ho c v i m t s đ nh). AKT không b o đ m tìm đ

c

ng đi giá thành nh nh t nh ng đ

c

trong nhi u tr

4. Tìm đ

ng đi mà AKT tìm ra v n dùng đ

ng h p th c ti n gi i quy t v n đ .

ng đi trên đ th t ng quát

Các ph n trên đã trình bày thu t gi i tìm đ

ng đi trên đ th d ng cây. Tuy

nhiên bi u di n d ng cây nhi u khi s l p l i quá nhi u m t tr ng thái. i u đó

s t ng thêm th i gian tim ki m.
ch có m t cung h

kh c ph c c n n i b đi u ki n m i đ nh

ng đ n và do v y ph i nghiên c u thu t gi i tìm đ

9

ng đi


ng 2: Các thu t toán tìm đ

Ch

ng đi

trên m t đ th d ng t ng quát. Ta c ng có th m r ng thu t gi i AKT thành
thu t gi i t ng quát A* nh sau:




B

c 1:

u tiên, m i đ nh và các giá tr g, h , f đ u xem nh ch a bi t,


m đ nh đ u tiên 0, gán cho g(0)=0,





B





ng h(0) và gán f (0) = h(0) .

cl



c 2: Ch n đ nh m v i giá tr f = g + h nh nh t và g i là N. N u N là

m c tiêu thì đ

ng d n t i N đã tìm đ

c và g(N) là giá thành c a đ

N u không t n t i đ nh m thì đ th đó không t n t i đ

ng đi đó.


ng đi đ n m c tiêu.



N u có t 2 đ nh m tr lên cùng giá tr f và 1 trong 2 đ nh đó là m c tiêu thì
quá trình tìm đ

ng đi c ng k t thúc, còn không thì ch n tùy ý m t trong 2

đ nh đó là N.
B

c 3: óng đ nh N và đ i v i m i đ nh sau đó, ta tính g′( s) = g ( N ) + (giá

thành cung t N đ n S). N u đ nh S đã m và g(s) ≤ g′( s ) thì b qua S. Ng




c



l i ta m S và đ t g(s) = g′( s ) , tính h(s) và f ( s ) = g ( s) + h( s ) .
B

c 4: Quay v b

c 2.


Bây gi chúng ta có th dùng A* đ tìm đ

ng đi ng n nh t gi a 2 thành


ph d a theo b n đ giao thông v i tri th c b sung h(n) có th là kho ng cách
đ

ng chim bay t đi m (thành ph ) n t i m c tiêu (thành ph c n đ n). Do

kho ng cách đ

ng chim bay bao gi c ng nh h n kho ng cách đ



ng giao


thông nên h(n) ≤ h(n) v i m i n. Thu t gi i A* v i tri th c b sung h(n) nh
trên s tìm đ



ng đi ng n nh t (ho c giá thành nh nh t) v i m c đ hi u


qu càng cao n u h(n) càng g n h(n).





Trong thu t gi i A*, ta đ c f = g + h



đây vai trò c a g và h đ


nh nhau. Nh ng tùy theo tr



c xem là

ng h p, có th xét f = w1.g + w2. h v i w1, w2

10


Ch

ng 2: Các thu t toán tìm đ

ng đi



là các tr ng s cho bi t vai trò c a g và h tham gia trong quá trình gi i. Ngoài



ra c ng c n thêm các

cl

ng v giá thành (đ ph c t p) c a vi c xác đ nh h

và t p đ nh đóng đ có c s đánh giá hi u qu c a thu t gi i m t cách đ y đ .

11


Ch

ng 3: Game Engine

Ch

ng 3

GAME ENGINE
Có th đ nh ngh a engine nh m t lo i máy móc làm cho xe ch y, nó ho t
đ ng bên trong, nh chuy n n ng l
đ ng. Ng

ng đ ng l c vào tr c xe làm xe chuy n

i lái xe không quan tâm đ n nh ng gì x y ra bên trong.

M t engine 3D c ng đ


c đ nh ngh a nh v y. Khi chúng ta g i m t hàm

kh i đ ng và g i m t mô hình 3D đ n graphic adapter (GA), engine 3D s giao
ti p v i GA và hi n th mô hình 3D lên màn hình
Công vi c c a engine là làm nh ng vi c khó ch u

c p th p nh : giao ti p

v i card đ h a, bi n đ i các mô hình, làm vi c v i các phép toán khó hi u nh
phép bi n đ i ma tr n…
Các nhà l p trình game c ng gi ng nh ng

i lái xe, khi s d ng m t

engine, h không c n quan tâm m t engine th c s làm vi c nh th nào, h
ch c n xác đ nh đ a vào nh ng gì, và engine s đ a ra k t qu .
Có r t nhi u đ nh ngh a khác nhau v engine. Các nguyên lý t ng quát mà 1
engine ph i có :
1. Qu n lý d li u trong vùng mà nó ch u trách nhi m.
2. Tính toán d li u theo nhi m v c a nó.
3. X lý d li u đ n instance sau c a nó, n u c n thi t.
4. Nh n d li u đ qu n lý và tính toán t các instance có tr

c.

3D GameStudio c ng là m t game engine. Nó bao g m 3 thành ph n sau:
WED editor, MED, C-Script editor. Chúng ta cùng tìm hi u cách s d ng c a 3
b ph n c a 3D GameStudio.


12


Ch

ng 3: Game Engine – Cách s d ng WED

I. WED editor
WED là m t trình biên so n. L p trình viên có th s d ng nó đ t o ra m t
th gi i o c a game. WED là công c đ k t h p l i toàn b các thành ph n:
level (đ
l nh (đ

c t o ra b i WED), các mô hình (đ

c t o ra b i MED) và các mã

c vi t trong SED) t o ra s n ph m cu i cùng.

V i WED, chúng ta có th t o ra đ

c m t khung c nh 3D h t s c d dàng

mà không c n ph i có b t c kinh nghi m gì v vi c t o hình 3D. V i c nh ng
ng

i m i b t đ u và nh ng nhà thi t k chuyên nghi p, WED c ng s là m t

công c r t c n thi t có th t o ra m t khung c nh 3D chuyên nghi p m t cách
đ n gi n và nhanh chóng.


1.Nh ng khái ni m c b n
a. Giao di n s d ng
Khi m WED, màn hình giao di n sau s xu t hi n:

13


Ch

ng 3: Game Engine – Cách s d ng WED

ây chính là môi tr

ng mà chúng ta s làm vi c đ t o ra m t game trong

3D GameStudio. T o ra m t game 3D, t c là đ a nh ng đ i t
tr

ng vào môi

ng 3D này, và g n các thu c tính và hành vi mà chúng ta đã l p trình vào

chúng, ho c ch n t m t danh sách các hành vi đã đ

c t o s n.

u tiên, chúng ta c n chú ý đ n 4 c a s 2D và 3D. M i c a s t
tr ng cho m t khung nhìn


ng

m i góc khác nhau trong lúc thi t k game. Có th

cu n m t c a s b ng cách click và rê chu t ph i, và có th phóng to, thu nh
b ng nút l n.
Khung nhìn 3D s cho chúng ta th y tr

c m t game s đ

c th hi n nh

th nào. Chúng ta có th chuy n khung nhìn 3D sang các d ng khung l

i,

đ c, k t c u. Trong m c Preferences chúng ta có th ch n cách bi u di n đ
h a trong khung nhìn 3D. M c cu i cùng dùng đ đi u ch nh đ sáng n n đ
cho ra m t quang c nh gi ng th c, nh ng v n không hoàn gi ng v i s n ph m
cu i cùng.

14


Ch

ng 3: Game Engine – Cách s d ng WED

Khi click ph i vào khung nhìn 3D và ch n GXL Properties, thì các đ c
đi m nh đ sáng và t m nhìn có th đ


c thay đ i.

Chúng ta có th tìm th y thanh bar

phía trên, phía d

i là dòng tr ng thái và

phía trái là c a s d án. Nó ch a các c a s Objects, Views, Textures và
Resources.

b. Thanh Icon

Thanh bar này ch a nh ng hàm th

ng dùng trong các menu, và chúng ta

có th g i m t hàm b ng cách nh p chu t. Khi rê chút đ n m t Icon s xu t
hi n m t dòng ch g n con chu t đ gi i thích ý ngh a c a nút này. Có th cho
hi n th hay n đi các thanh bar File, Edit và View b ng cách ch n vào menu
View/Toolbar. Ngoài ra, chúng ta có th di chuy n t ng thanh bar đ n b t c
đâu trên c a s . M c đ nh, sau đây là th t c a các nút trên thanh bar:
New, Open, Save, Copy, Paste, Undo, Build, Run, Select, Move, Rotate, Scale,
Vertex Move, Edge Move, Face Move, Add Object, Delete Object, Snap on/off,
Snap Mode, Snap Size, Axis Restriction, Eye Move, Eye Rotate, Eye Zoom,
Camera Move, Camera Walkthru, Scope Up, Scope Down.

c. Mode
Ch đ Select: N u ch đ này đ


c ch n, khi nh n

nút trái chu t thì m t kh i, nhóm ho c m t đ i t

ng

nào đó s đ

ng

c ch n. N u không ch n đ

mong mu n, có th là nó đang đ
t

cđ it

c ph b i m t đ i

ng khác, vì th ch c n nh n nút chu t trái ti p đ n

khi nào ch n đ
đ i t

c thì thôi. Chúng ta có th ch n nhi u

ng b ng cách kéo rê m t hình ch

15


nh t xung


Ch

ng 3: Game Engine – Cách s d ng WED

quanh chúng, ho c gi phím [CTRL] trong khi ch n các đ i t
Ch đ Move: N u ch đ này đ
t

ng.

c ch n, thì có th di chuy n m t đ i

ng b ng cách nh n nút trái chu t và rê nó đ n v trí mong mu n. Hãy nhìn

vào các khung nhìn đ ki m tra xem đ i t

ng có đ n đ

hay không. C ng có th di chuy n các đ i t

ng b ng các phím di chuy n.

Ch đ Rotate: N u ch đ này đ
nhóm đ

c n i mong mu n


c ch n, ta có th quay các kh i và các

c ch n b ng cách nh n nút trái chu t và rê trái ho c ph i tùy theo ý

mu n. Trong m i khung nhìn, chúng ta ch có th quay m t đ i t
m th

ng nào đó. C ng

có th quay các đ i t

ng theo

ng b ng các phím di chuy n.

Ch đ Scale: nh n và rê nút trái chu t đ thay đ i kích th

t c a kh i và

nhóm đã ch n. N u rê lên thì chi u cao c a kh i s t ng lên, rê qua trái thì
chi u r ng c a kh i s đ
th

t thì kích th

c t ng lên. N u gi [CTRL] trong khi thay đ i kích

t theo chi u d c và chi u ngang s cùng thay đ i m t l


b ng nhau. Kh i s đ

ng

c ph ng ra hay co vào m t cách đ i x ng, vì th chúng

ta c n ph i di chuy n kh i tr l i đúng v trí sau khi thay đ i kích th

t c a nó.

d.Thi t k m t khung c nh
Có hai thành ph n chính trong m t khung c nh 3D là kh i (block) và th c
th (entity). Kh i ch đ n gi n là m t đ i t
khung c nh 3D đ

ng c u trúc đ c có d ng l i. M t

c c u thành t có kh i đ c và các đ i t

c a nhi u kh i. Ví d , đ t o ra m t cái phòng có hình l p ph

ng là s k t h p
ng, chúng ta s

c n 6 kh i bao quanh m t không gian tr ng r ng: 1 kh i là tr n nhà, m t kh i
là n n đ t, 4 kh i là 4 b c t

ng.

Thành ph n th 2 là th c th , th c th g m 4 lo i sau đây: terrain, map,

model và sprite. M i lo i đ

e. H

ng đ i t

c s d ng cho nh ng m c đích khác nhau.

ng

16


×