Mục tiêu chính của Báo cáo Xây dựng ứng dụng game Fun Math trên android là việc xây dựng game Funsmath sẽ giúp trẻ ôn tập những phép toán, cải thiện bộ nhớ, phát triển tư duy logic, phát triển tư duy kết hợp.
Trang 2H i D ả ươ ng, tháng 09/2017
Trang 3L I M Đ U Ờ Ở Ầ
Hi n nay, toán h c đệ ọ ược coi là n n t ng c a s phát tri n. Hàng tri u ngề ả ủ ự ể ệ ườ i
t các n n văn hóa khác nhau đ u n l c trong môn h c này. Vi t Nam toán h cừ ề ề ỗ ự ọ Ở ệ ọ cũng đã th hi n để ệ ược v trí quan tr ng k t khi đ t nị ọ ể ừ ấ ước b t đ u phát tri n. T tắ ầ ể ấ
c m i lĩnh v c đ u c n có trình đ toán. Vì đó toán h c là m t môn r t quan tr ngả ọ ự ề ầ ộ ọ ộ ấ ọ
mà chúng ta nên h c và rèn luy n hàng ngày đ c bi t là tr nhọ ệ ặ ệ ẻ ỏ. Khi còn nh , tr sỏ ẻ ẽ
d dàng ti p thu toán nhanh nh t đ thúc đ y s suy t c a tr thay vì h c thễ ế ấ ể ẩ ự ư ủ ẻ ọ ụ
đ ng nh khi trộ ư ưởng thành. Đ tu i này các em có kh năng t mình tìm ra các quyộ ổ ả ự
t c riêng cho b n thân theo m t cách hoàn toàn b n năng. Nh đó, tr s h c nhanhắ ả ộ ả ờ ẻ ẽ ọ
và d dàng ti p thu ki n th c mà giáo viên truy n đ t.ễ ế ế ứ ề ạ
Cùng v i đó s phát tri n c a công ngh di đ ng đã bùng n trong vài nămớ ự ể ủ ệ ộ ổ qua. Các thi t b c m tay đã tr nên r t m nh m và ph bi n. Trong vài năm tr l iế ị ầ ở ấ ạ ẽ ổ ế ở ạ đây, h đi u hành Android ra đ i và tr thành n n t ng đi n tho i thông minh phệ ề ờ ở ề ả ệ ạ ổ
bi n nh t th gi i. Nh ng u đi m d th y nh t c a Android chính là kh năng tùyế ấ ế ớ ữ ư ể ễ ấ ấ ủ ả
bi n nhanh chóng, d làm quen, ng d ng h tr phong phú, tế ễ ứ ụ ỗ ợ ương thích v i đa c uớ ấ hình ph n c ng c a các nhà s n xu t. H u nh t t c nh ng smartphone s d ngầ ứ ủ ả ấ ầ ư ấ ả ữ ử ụ
h đi u hành Android đ u d s d ng, đ n gi n tùy bi n theo s thích cá nhân. ệ ề ề ễ ử ụ ơ ả ế ở V iớ
s phát tri n m nh m nh v y c a Android, và l p trình game trên Android, c h iự ể ạ ẽ ư ậ ủ ậ ơ ộ cho l p trình viên là r t l n. Vì v y, nhóm đã ch n đ tài “ậ ấ ớ ậ ọ ề L p trình ng d ng ậ ứ ụ game Fun Math trên Android”. Trong đ tài này, nhóm s trình bày cái nhìn c b nề ẽ ơ ả
v l p trình game trên Android và demo ng d ng game trong đó. ề ậ ứ ụ
Trang 49 1.1.1.T ng h t nhân Linuxầ ạ
9 1.1.2.T ng Libraryầ
10 1.1.3. Ph n Android runtimeầ
10 1.1.4. T ng Application Frameworkầ
10 1.1.5. T ng Applicationầ
11 1.2. T ng quan v Game ENGINEổ ề
11 1.2.1.Khái ni mệ
11 1.2.2.M c đíchụ
12 1.2.3 o hóa ph n c ng (Hardware Abstraction)Ả ầ ứ
12 1.2.4.Ph n m m trung gianầ ề
13 1.2.5.Ki n trúc t ng quanế ổ
13 1.3.T ng quan v Unityổ ề
15 1.3.1.T ng quan v Unityổ ề
15 1.3.2.Các thành ph n trong Unityầ
15
CHƯƠNG 2. THI T K NG D NG GAMEẾ Ế Ứ Ụ
18 2.1.Thi t k gameế ế
18 2.1.1.T o và c u hình game 2Dạ ấ
18 2.1.2. Load Back ground
21 2.1.3.S ki n th c hi n phép toánự ệ ự ệ
22 2.1.4.S ki n kích nút Buttonự ệ
23
Trang 52.1.5.Điêm s và hi n thố ể ị
24 2.1.6.Th i gian trong gameờ
24 2.1.7.Âm thanh trong game
25 2.2.Xây d ng game Fun Mathự
27 2.2.1.Gi i thi u gameớ ệ
27 2.2.2.Quy lu t ch iậ ơ
28 2.2.3.Đi m sể ố
28 2.2.4.Cách biên d ch ra file APK trong unityị
34 2.2. Nhược đi mể
34
3. Hướng phát tri nể
34 TÀI LI U THAM KH OỆ Ả
35
Trang 6DANH M C Ụ HÌNH
Hình 1.1.T ng quan ki n trúc Unityổ ế
14 Hình 1.2.Khung Inspector
16 Hình 1.3.Giao di n Prefabsệ
17 Hình 2.1.T o project m iạ ớ
18 Hình 2.2.Giao di n First lookệ
19 Hình 2.3.Giao di n Ch n phép chi u vuông gócệ ọ ế
20 Hình 2.4.Giao di n t o folderệ ạ
21 Hình 2.8.Thông tin file âm thanh
26 Hình 2.9.Thêm thành ph n Audio Sourceầ
27 Hình 2.10.Thêm file âm thanh cho thành ph n AudioSourceầ
27 Hình 2.11.Giao di n Menu gameệ
28 Hình 2.12.Giao di n game Playệ
28 Hình 2.13.Giao di n game Overệ
29 Hình 2.14.Giao di n External Toolsệ
30 Hình 2.15.Giao di n BuildSettingsệ
30 Hình 2.16.Giao di n Inspectorệ
31 Hình 2.17.Giao di n Resolution and presentationệ
31 Hình 2.18.Giao di n Splash Imageệ
32 Hình 2.19.Giao di n Other settingệ
32
Trang 7MỞ Đ U Ầ
1. Lý do ch n đ tàiọ ề
Hi n nay, toán h c đệ ọ ược coi là n n t ng c a s phát tri n. Hàng tri u ngề ả ủ ự ể ệ ườ i
t các n n văn hóa khác nhau đ u n l c trong môn h c này. Vi t Nam toán h cừ ề ề ỗ ự ọ Ở ệ ọ cũng đã th hi n để ệ ược v trí quan tr ng k t khi đ t nị ọ ể ừ ấ ước b t đ u phát tri n. T tắ ầ ể ấ
c m i lĩnh v c đ u c n có trình đ toán. Vì đó toán h c là m t môn r t quan tr ngả ọ ự ề ầ ộ ọ ộ ấ ọ
mà chúng ta nên h c và rèn luy n hàng ngày đ c bi t là tr nhọ ệ ặ ệ ẻ ỏ. Khi còn nh , tr sỏ ẻ ẽ
d dàng ti p thu toán nhanh nh t đ thúc đ y s suy t c a tr thay vì h c thễ ế ấ ể ẩ ự ư ủ ẻ ọ ụ
đ ng nh khi trộ ư ưởng thành. Đ tu i này các em có kh năng t mình tìm ra các quyộ ổ ả ự
t c riêng cho b n thân theo m t cách hoàn toàn b n năng. Nh đó, tr s h c nhanhắ ả ộ ả ờ ẻ ẽ ọ
và d dàng ti p thu ki n th c mà giáo viên truy n đ t.ễ ế ế ứ ề ạ
Nh n th y t m quan tr ng đó nhóm em quy t đ nh tìm hi u và th c hi n đậ ấ ầ ọ ế ị ể ự ệ ề tài: “L p trình ng d ng game Funsmath trên Androidậ ứ ụ ”
2. M c đích nghiên c uụ ứ
Vi c xây d ng game ệ ự Funsmath s giúp tr ôn t p nh ng phép toán , c iẽ ẻ ậ ữ ả thi n b nh , phát tri n t duy logic, phát tri n t duy k t h p.ệ ộ ớ ể ư ể ư ế ợ
3. Đ i tố ượng c a đ tàiủ ề
Trò ch i phù h p cho ơ ợ h c sinh ọ ti u h c.ể ọ
4. Ph m vi nhiên c uạ ứ
Tìm hi u kĩ thu t l p trình b ng ể ậ ậ ằ Unity
Các phép toán trong b ng c u chả ử ương
5. Phương pháp nghiên c uứ
Nghiên c u l thuy tứ ỹ ế
Kh o sát th c tả ự ế
Xây d ng chự ương trình theo m c tiêu đã đ t raụ ặ
Phân tích, thi t k h th ng chế ế ệ ố ương trình sao cho phù h pợ
Trang 8TÀI LI U THAM KH OỆ Ả
Trang 9CH ƯƠ NG 1. C S LÝ THUY T Ơ Ở Ế
1.1.T ng quan v ổ ềAndroid
Android là m t h đi u hành d a trên n n t ng Linux ,đ c ch y trên cácộ ệ ề ự ề ả ượ ạ thi t b di đ ng có màn hình c m ng nh đi n tho i thông minh và máy tính b ng.ế ị ộ ả ứ ư ệ ạ ả Ban đ u, đầ ược phát tri n b i T ng công ty Android, v i ngu n v n t Google vàể ở ổ ớ ồ ố ừ sau này được chính Google mua l i vào năm 2005.Năm 2007 android ra m t ạ ắ cùng
v i tuyên b thành l p Liên minh thi t b c m tay m : m t hi p h i g m các côngớ ố ậ ế ị ầ ở ộ ệ ộ ồ
ty ph n m m, ph n c ng, và vi n thông v i m c tiêu đ y m nh các tiêu chu n choầ ề ầ ứ ễ ớ ụ ẩ ạ ẩ các thi t b di đ ng Tháng 10 năm 2008 chi c đi n tho i đ u tiênế ị ộ ế ệ ạ ầ
ch yạ Android được bán trên th trị ường
Ki n trúc h đi u hành Android có 4 t ng t dế ệ ề ầ ừ ưới lên trên là t ng h t nhânầ ạ Linux (phiên b n 2.6), t ng Libraries & Android runtime, t ng Applicationả ầ ầ Framework và trên cùng là t ng Application.ầ
1.1.1.T ng h t nhân Linuxầ ạ
H đi u hành Android đệ ề ược phát tri n d a trên h t nhân Linux, c th là h tể ự ạ ụ ể ạ nhân Linux phiên b n 2.6, đi u đó đả ề ược th hi n l p dể ệ ở ớ ưới cùng này. T t c m iấ ả ọ
ho t đ ng c a đi n tho i mu n thi hành đạ ộ ủ ệ ạ ố ược thì đ u th c hi n m c c p th p.ề ự ệ ở ứ ấ ấ
l p này bao g m qu n lý b nh (memory management), giao ti p v i ph n c ng
(driver model), th c hi n b o m t (security), qu n lý ti n trình (process).ự ệ ả ậ ả ế
Tuy được phát tri n d a vào nhân Linux nh ng th c ra nhân Linux đã để ự ư ự ượ cnâng c p và ch nh s a r t nhi u đ phù h p v i tính ch t c a nh ng thi t b c mấ ỉ ử ấ ề ể ợ ớ ấ ủ ữ ế ị ầ tay, nh h n ch v b vi x lý, dung lư ạ ế ề ộ ử ượng b nh , kích thộ ớ ước màn hình, nhu c uầ
k t n i m ng không dây.ế ố ạ
T ng này có các thành ph n ch y u:ầ ầ ủ ế
Display Driver: Đi u khi n vi c hi n th lên màn hình cũng nh thu nh nề ể ệ ể ị ư ậ
nh ng đi u khi n c a ngữ ề ể ủ ười dùng trên màn hình (di chuy n, c m ng…).ể ả ứ
Camera Driver: Đi u khi n ho t đ ng c a camera, nh n lu ng d li u tề ể ạ ộ ủ ậ ồ ữ ệ ừ camera tr v ả ề
Bluetooth Driver: Đi u khi n thi t b thu và phát sóng Bluetooth.ề ể ế ị
USB driver: Qu n lý ho t đ ng c a các c ng giao ti p USB.ả ạ ộ ủ ổ ế
Keypad driver: Đi u khi n bàn phím.ề ể
Wifi driver: Ch u trách nhi m v vi c thu phát sóng wifi.ị ệ ề ệ
Audio Driver: Đi u khi n các b thu phát âm thanh, gi i mã các tín hi uề ể ộ ả ệ
d ng audio thành tín hi u s và ngạ ệ ố ượ ạc l i
Trang 10 Binder IPC Driver: Ch u trách nhi m v vi c k t n i và liên l c v i m ngị ệ ề ệ ế ố ạ ớ ạ
vô tuy n nh CDMA, GSM, 3G, 4G, E đ đ m b o nh ng ch c năng truy n thôngế ư ể ả ả ữ ứ ề
Th vi n h th ng (System C library): th vi n d a trên chu n C, đư ệ ệ ố ư ệ ự ẩ ượ ử c s
d ng ch b i h đi u hành.ụ ỉ ở ệ ề
Th vi n Media (Media Libraries): Có nhi u codec đ h tr vi c phát vàư ệ ề ể ỗ ợ ệ ghi các lo i đ nh d ng âm thanh, hình nh, video thông d ng.ạ ị ạ ả ụ
Th vi n web (LibWebCore): đây là thành ph n đ xem n i dung trên web,ư ệ ầ ể ộ
được s d ng đ xây d ng ph n m m duy t web (Android Browse) cũng nh đử ụ ể ự ầ ề ệ ư ể các ng d ng khác có th nhúng vào. Nó c c k m nh, h tr đứ ụ ể ự ỳ ạ ỗ ợ ược nhi u côngề ngh m nh m nh HTML5, JavaScript, CSS, DOM, AJAX…ệ ạ ẽ ư
Th vi n SQLite: H c s d li u đ các ng d ng có th s d ngư ệ ệ ơ ở ữ ệ ể ứ ụ ể ử ụ
1.1.3. Ph n Android runtimeầ
Ph n này ch a các th vi n mà m t chầ ứ ư ệ ộ ương trình vi t b ng ngôn ng Javaế ằ ữ
có th ho t đ ng. Runtime có 2 b ph n tể ạ ộ ộ ậ ương t nh mô hình ch y Java trên máyự ư ạ tính thường. Th nh t là các th vi n lõi (Core Library), ch a các l p nh Java IO,ứ ấ ư ệ ứ ớ ư Collection, File Access. Th hai là m t máy o Java (Dalvik Virtual Machine). M cứ ộ ả ặ
dù cũng được vi t t ngôn ng Java nh ng m t ng d ng Java c a Android khôngế ừ ữ ư ộ ứ ụ ủ
được ch y trên JRE c a Sun mà là ch y b ng máy o Dalvik do Google phát tri n.ạ ủ ạ ằ ả ể1.1.4. T ng Application Frameworkầ
T ng này xây d ng b công c – các ph n t m c cao đ các l p trình viênầ ự ộ ụ ầ ử ở ứ ể ậ
có th nhanh chóng xây d ng ng d ng. Nó để ự ứ ụ ược vi t b ng Java, có kh năng sế ằ ả ử
d ng chung đ ti t ki m tài nguyên.ụ ể ế ệ
Đây là m t n n t ng m , đi u đó có 2 đi u l i:ộ ề ả ở ề ề ợ
V i các hãng đi n tho i: Có th tùy bi n đ phù h p v i c u hình đi nớ ệ ạ ể ế ể ợ ớ ấ ệ tho i mà h s n xu t cũng nh đ có th có nhi u m u mã, style h p th hi uạ ọ ả ấ ư ể ể ề ẫ ợ ị ế
người dùng. Vì th nên tuy cùng chung n n t ng Android mà đi n tho i c a Googleế ề ả ệ ạ ủ
có th khác v i Motorola, HTC, TMobile, Samsung…ể ớ
Trang 11V i l p trình viên: Cho phép l p trình viên có th s d ng các API t ng ớ ậ ậ ể ử ụ ở ầtrên mà không c n ph i hi u rõ c u trúc bên dầ ả ể ấ ướ ại, t o đi u ki n cho l p trình viên ề ệ ậ
t do sáng t o b i vì ch c n quan tâm đ n n i dung mà ng d ng h làm vi c. M tự ạ ở ỉ ầ ế ộ ứ ụ ọ ệ ộ
t p h p API r t h u ích đậ ợ ấ ữ ược xây d ng s n nh h th ng đ nh v , các d ch v ch yự ẵ ư ệ ố ị ị ị ụ ạ
n n, liên l c gi a các ng d ng, các thành ph n giao di n c p cao…ề ạ ữ ứ ụ ầ ệ ấ
1.1.5. T ng Applicationầ
Đây là t ng ng d ng giao ti p v i ngầ ứ ụ ế ớ ườ ử ụi s d ng, bao g m các ng d ngồ ứ ụ
nh :ư
Các ng d ng c b n, đứ ụ ơ ả ược cài đ t đi li n v i h di u hành: g i di n,ặ ề ớ ệ ề ọ ệ
qu n lý danh b , duy t web, nh n tin, l ch làm vi c, đ c email, quay phim ch pả ạ ệ ắ ị ệ ọ ụ nh,…
ả
Các ng d ng cài thêm nh các trò ch i, t đi n, các ph n m m h c ti ngứ ụ ư ơ ừ ể ầ ề ọ ế anh
Các chương trình có đ c đi m là:ặ ể
Vi t b ng Java có ph n m r ng là apk.ế ằ ầ ở ộ
Khi m i ng d ng đỗ ứ ụ ược ch y, nó có m t phiên b n Virtual Machine đạ ộ ả ượ c
d ng lên đ ph c v cho nó.ự ể ụ ụ
Android là h di u hành đa nhi m, đi u đó có nghĩa là trong cùng m t th iệ ề ệ ề ộ ờ
đi m, có th có nhi u chể ể ề ương trình ch y cùng m t lúc, tuy nhiên v i m i ng d ngạ ộ ớ ỗ ứ ụ thì có duy nh t m t th c th (instance) đấ ộ ự ể ược phép ch y mà thôi. Đi u đó có tácạ ề
d ng h n ch s l m d ng tài nguyên, giúp h th ng ho t đ ng t t h n.ụ ạ ế ự ạ ụ ệ ố ạ ộ ố ơ
Các ng d ng đứ ụ ược gán s ID c a ngố ủ ườ ử ụi s d ng nh m phân đ nh quy nằ ị ề
h n khi s d ng tài nguyên, c u hình ph n c ng và h th ng.ạ ử ụ ấ ầ ứ ệ ố
Android là m t h đi u hành có tính m , khác v i nhi u h đi u hành diộ ệ ề ở ớ ề ệ ề
đ ng khác, Android cho phép m t ng d ng c a bên th 3 ch y n n. Các ng d ngộ ộ ứ ụ ủ ứ ạ ề ứ ụ
đó ch có m t h n ch là không đỉ ộ ạ ế ược phép s d ng quá 5% công su t CPU. Đi u đóử ụ ấ ề
nh m tránh đ c quy n trong s d ng CPU.ằ ộ ề ử ụ
ng d ng không có đi m vào c đ nh, không có phỨ ụ ể ố ị ương th c main đ b tứ ể ắ
đ u.ầ
1.2. T ng quan v ổ ềGame ENGINE
1.2.1.Khái ni mệ
M t Game Engine (hay công c t o Game / đ ng c Game) là m t ph nộ ụ ạ ộ ơ ộ ầ
m m đề ược vi t cho m c đích thi t k và phát tri n video Game. Có r t nhi u lo iế ụ ế ế ể ấ ề ạ Game Engine dùng đ thi t k Game cho các h máy nh h Consoles hay máy tínhể ế ế ệ ư ệ
Trang 12cá nhân (PC). Ch c năng c t lõi c a Game Engine ph n l n n m trong công cứ ố ủ ầ ớ ằ ụ
d ng hình (k t xu t đ h a) cho các hình nh 2 chi u (2D) hay 3 chi u (3D), côngự ế ấ ồ ọ ả ề ề
c v t lý (hay công c tính toán và phát hi n va ch m), âm thanh, mã ngu n, hìnhụ ậ ụ ệ ạ ồ
nh đ ng (Animation), trí tu nhân t o, phân lu ng, t o dòng d li u x lý, qu n lý
b nh , d ng nh đ th , và k t n i m ng. Quá trình phát tri n Game ti t ki mộ ớ ự ả ồ ị ế ố ạ ể ế ệ
được r t nhi u th i gian và kinh phí vào vi c tái s d ng và tái thích ng m tấ ề ờ ệ ử ụ ứ ộ Engine đ t o nhi u Game khác nhau.ể ạ ề
1.2.2.M c đíchụ
Game Engine cung c p m t b các công c phát tri n tr c quan và có th táiấ ộ ộ ụ ể ự ể
s d ng t ng thành ph n trong đó. Nói chung các b công c này cung c p m t môiử ụ ừ ầ ộ ụ ấ ộ
trường phát tri n tích h p để ợ ược đ n gi n hóa. Phát tri n ng d ng nhanh (Rapidơ ả ể ứ ụ Application Development) cho Game theo cách l p trình hậ ướng d li u. Nh ngữ ệ ữ Game Engine này đôi khi còn được g i là các "ph n m m trung gian cho Game"ọ ầ ề (Game Middleware), nh ý nghĩa c a thu t ng , chúng cung c p m t n n t ng ph nư ủ ậ ữ ấ ộ ề ả ầ
m m linh ho t và d dàng s d ng l i v i m i ch c năng c t lõi c n thi t ngayề ạ ễ ử ụ ạ ớ ọ ứ ố ầ ế trong nó đ có th phát tri n m t ng d ng Game đ ng th i gi m giá thành, để ể ể ộ ứ ụ ồ ờ ả ộ
ph c t p, và k p th i h n phát hành t t c các y u t quan tr ng trong ngành côngứ ạ ị ờ ạ ấ ả ế ố ọ nghi p Game đ y c nh tranh. Gi ng nh các ph n m m trung gian khác, Gameệ ầ ạ ố ư ầ ề Engine thường cung c p m t n n t ng tr u tấ ộ ề ả ừ ượng hóa, cho phép m t Game có thộ ể
ch y trên nhi u h máy bao g m các h console ho c máy tính cá nhân v i m t vàiạ ề ệ ồ ệ ặ ớ ộ thay đ i (n u c n) trong mã ngu n c a Game đó. Thông thổ ế ầ ồ ủ ường, ph n m m trungầ ề gian cho Game được thi t k v i m t n n t ng ki n trúc d a trên các thành ph nế ế ớ ộ ề ả ế ự ầ khác, cho phép các h th ng khác nhau trong Engine có th thay th ho c m r ngệ ố ể ế ặ ở ộ
v i các ph n m m trung gian khác chuyên bi t h n nh là Havok cho h th ng v tớ ầ ề ệ ơ ư ệ ố ậ
lý trong Game, Miles Sound System cho âm thanh, hay Bink cho các đo n video. M tạ ộ
s Game Engine ch cung c p kh năng d ng hình (k t xu t) 3D th i gian th c hayố ỉ ấ ả ự ế ấ ờ ự
m t kh năng riêng bi t nào khác thay vì r t nhi u ch c năng trong ph m vi r ngộ ả ệ ấ ề ứ ạ ộ
mà Game yêu c u Lo i Engine này thầ ạ ường được g i là: "Graphics Engine",ọ
"Rendering Engine," hay "3D Engine" thay vì thu t ng bao quát h n là "Gameậ ữ ơ Engine”
1.2.3 o hóa ph n c ng (Hardware Abstraction)Ả ầ ứ
Thông thường, Engine 3D hay h th ng k t xu t đ h a trong Game Engineệ ố ế ấ ồ ọ
thường được xây d ng trên m t n n t ng giao di n l p trình ng d ng đ h a nhự ộ ề ả ệ ậ ứ ụ ồ ọ ư Direct3D hay OpenGL cung c p s n m t h o hóa cho GPU hay card đ h a. Thấ ẵ ộ ệ ả ồ ọ ư
Trang 13vi n mã ngu n c p th p (c p c b n) nh DirectX, SDL, và OpenAL (th vi n âmệ ồ ấ ấ ấ ơ ả ư ư ệ thanh mã ngu n m ) cũng thồ ở ường được s d ng trong các Game khi chúng cungử ụ
c p kh năng truy c p ph n c ng đ c l p.ấ ả ậ ầ ứ ộ ậ
1.2.4.Ph n m m trung gianầ ề
M t s hãng hi n nay chuyên t p trung vào phát tri n các b ph n m m g iộ ố ệ ậ ể ộ ầ ề ọ
là ph n m m trung gian (Middleware). Các nhà phát tri n Middleware c g ng phátầ ề ể ố ắ tri n m t b ph n m m m nh m bao g m h u h t các y u t mà m t nhà phátể ộ ộ ầ ề ạ ẽ ồ ầ ế ế ố ộ tri n Game c n đ n đ xây d ng m t Game. Ph n l n các Middleware cung c p cácể ầ ế ể ự ộ ầ ớ ấ
c s đ phát tri n game m t cách d dàng, nh hình nh, âm thanh, h th ng v tơ ở ể ể ộ ễ ư ả ệ ố ậ
lý và ch c năng AI. Gamebryo và RenderWare là hai ph n m m trung gian đứ ầ ề ượ ử c s
d ng khá r ng rãi. M t s Middleware ch làm m t ch c năng nh ng nó còn hi uụ ộ ộ ố ỉ ộ ứ ư ệ
tr h u h t các đ i tợ ầ ế ố ượng và các lo i thành ph n trongạ ầ Unity.Trong m t sceneộ
thường có nhi u đ i tề ố ượng game. M i đ i tỗ ố ượng này có th có ho c không cóể ặ
đo n script nào g n lên đó. N u mu n g n script vào đ i tạ ắ ế ố ắ ố ượng, ta b t bu c ph iắ ộ ả
k th a class đó t l p ế ừ ừ ớ MonoBehaviour c a UnityAPI và tên class ph i trùng v iủ ả ớ tên file script. M i script khi g n lên đ i tỗ ắ ố ượng game đ u đề ược đ i tố ượng game xem
nh m t thành ph n bên trong và đư ộ ầ ượ ấc c p phát vùng nh khi ch y game.ớ ạ
Trang 14Hình 1.1.T ng quan ki n trúc Unity ổ ế
Bên trong UnityAPI ch a r t nhi u l p h tr l p trình game, trong đó có m t sứ ấ ề ớ ỗ ợ ậ ộ ố
l p quan tr ng nh :ớ ọ ư
MonoBehaviour: t t c các script mu n g n vào m t đ i t ng game b t bu cấ ả ố ắ ộ ố ượ ắ ộ
ph i k th a t l p này.ả ế ừ ừ ớ
GameObject: l p cha c a t t c các th c th trong scene.ớ ủ ấ ả ự ể
Component: l p cha c a t t c các thành ph n có th g n vào đ i t ng.ớ ủ ấ ả ầ ể ắ ố ượ
Transform: giúp thay đ i v trí, xoay, bi n đ i t l mô hình.ổ ị ế ổ ỉ ệ
Input: h tr l p trình v i chu t, c m ng đa đi m, c m bi n gia t c.ỗ ợ ậ ớ ộ ả ứ ể ả ế ố
Animation: ch y chuy n đ ng c a mô hình nhân v t.ạ ể ộ ủ ậ
Rigidbody: giúp t o hi u ng v t lý liên quan đ n tr ng l c nh bóng n y, lăn.ạ ệ ứ ậ ế ọ ự ư ẩCharacterController: giúp đi u khi n nhân v t di chuy n theo đ cao đ a hình.ề ể ậ ể ộ ịCollider: h tr l p trình va ch m gi a các v t th ỗ ợ ậ ạ ữ ậ ể
GUI: giúp l p trình giao di n ng i dùng trên Unity.ậ ệ ườ
Trang 15 Có phiên b n mi n phí có th ch y đả ễ ể ạ ược trên Window và Mac OSX.
Unity3D hướng t i ngớ ườ ử ụi s d ng chuyên nghi p và c nghi p d , nên kháệ ả ệ ư
d đ s d ng. V i ngôn ng l p trình b ng C#, JavaScript ho c BOO.ễ ể ử ụ ớ ữ ậ ằ ặ
Ngày nay r t nhi u nhà phát tri n game l a ch n Unity3D đ phát tri n b iấ ề ể ự ọ ể ể ở
kh năng h tr đa n n t ng và s m nh m ti n d ng c a Unity3D.ả ỗ ợ ề ả ự ạ ẽ ệ ụ ủ
Đ n v i Unity, các b n s không c n ph i băng khoăn v các v n đ x lý, cácế ớ ạ ẽ ầ ả ề ấ ề ử khái ni m đ ho ph c t p t t c đ u tr nên d dàng và nhanh chóng v i Unity.ệ ồ ạ ứ ạ ấ ả ề ở ễ ớ
M t s game độ ố ược phát tri n trên Unity nh AngryBird, Elegy of War,…ể ư
Scenes: là m t c nh ch i (ho c m t phân đo n) là nh ng màn ch i riêngộ ả ơ ặ ộ ạ ữ ơ
bi t, m t khu v c trong game ho c thành ph n có trong n i dung c a trò ch i (cácệ ộ ự ặ ầ ộ ủ ơ menu). Các thành ph n này đầ ược g i là Scene. B ng cách t o ra nhi u Scenes,ọ ằ ạ ề chúng ta có th phân ph i th i gian và t i u tài nguyên, ki m tra các phân đo nể ố ờ ố ư ể ạ trong game m t cách đ c l p.ộ ộ ậ
Game Objects: Khi Asset đ c s d ng trong các Scene, Unity đ nh nghĩaượ ử ụ ị
đó là Game Object. Đây là m t thu t ng thông d ng, đ c bi t trong m ng l p trình.ộ ậ ữ ụ ặ ệ ả ậ
T t c các Game Object đ u ch a ít nh t m t thành ph n c b n là Transform, l uấ ả ề ứ ấ ộ ầ ơ ả ư
Trang 16tr thông tin v v trí, góc xoay và t l c a Game Object. Thành ph n Transform cóữ ề ị ỉ ệ ủ ầ
th để ược tu bi n và ch nh s a trong quá trình l p trình.ỳ ế ỉ ử ậ
Components: Components là các thành ph n trong game, b sung tính năngầ ổ cho các Game Object M i Component có ch c năng riêng bi t Đa ph n cácỗ ứ ệ ầ Component ph thu c vào Transform, vì nó l u tr các thông s c b n c a Gameụ ộ ư ữ ố ơ ả ủ Object. B n ch t c a Game Object là không có gì c , các đ c tính và kh năng c aả ấ ủ ả ặ ả ủ Game Object n m hoàn toàn trong các Component. Do đó chúng ta có th xây d ngằ ể ự nên b t k Game Object nào trong game mà chúng ta có th tấ ỳ ể ưởng tượng được
Hình 1.2.Khung Inspector
Scripts: Scripts đ c Unity xem nh m t Component. Đây là thành ph nượ ư ộ ầ thi t y u trong quá trình phát tri n game. B t k m t game nào, dù đ n gi n nh tế ế ể ấ ỳ ộ ơ ả ấ
đ u c n đ n Scripts đ tề ầ ế ể ương tác v i các thao tác c a ngớ ủ ười ch i, ho c qu n lý cácơ ặ ả
s ki n đ thay đ i chi u hự ệ ể ổ ề ướng c a game tủ ương ng v i k ch b n game.ứ ớ ị ả
Unity cung c p cho l p trình viên kh năng vi t Script b ng các ngôn ng :ấ ậ ả ế ằ ữ JavaScript, C#. Unity không đòi h i l p trình viên ph i h c cách l p trình trongỏ ậ ả ọ ậ Unity, nh ng trong nhi u tình hu ng, chúng ta c n s d ng Script trong m i ph nư ề ố ầ ử ụ ỗ ầ
c a k ch b n game.ủ ị ả
Đ vi t Script, chúng ta có th làm vi c v i m t trình biên t p Script đ c l pể ế ể ệ ớ ộ ậ ộ ậ
c a Unity, ho c làm vi c trên Mono Developer đủ ặ ệ ược tích h p vào Unity trong nh ngợ ữ phiên b n g n đây. Mono Developer là m t IDE khá t t, cung c p nhi u ch c năngả ầ ộ ố ấ ề ứ
Trang 17tương t Visual Studio. Mã ngu n vi t trên Mono Developer s đự ồ ế ẽ ươc c p nh t vàậ ậ
l u tr trong d án trên Unity.ư ữ ự
Prefabs: Prefabs th c ch t là Game Object đ c l u tr l i đ tái s d ng.ự ấ ượ ư ữ ạ ể ử ụ Các Game Object được nhân b n t m t prefab s gi ng nhau hoàn toàn, ngo i trả ừ ộ ẽ ố ạ ừ thành ph n Transform đ phân bi t và qu n lý đầ ể ệ ả ượ ố ơc t t h n
Đ t o ra m t prefab, ta đ n gi n ch c n kéo m t Game Object vào c a s Project.ể ạ ộ ơ ả ỉ ầ ộ ử ổ
Hình 1.3 Giao di n Prefabs ệ