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đ
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 đ
cđ
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 đ
cđ
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 đ
cđ
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