Game Engine là một công cụ hỗ trợ, một Middleware giúp người phát triển viết Game một cách nhanh chóng và đơn giản, đồng thời cung cấp khả năng tái sử dụng các tài nguyên và mã nguồn cao
Trang 1THIẾT KẾ TRÕ CHƠI THỂ LOẠI MOBA
Trang 2THIẾT KẾ TRÒ CHƠI THỂ LOẠI MOBA Cán Bộ Hướng Dẫn
Ks Cao Hoàng Giang (2629)
Luận văn được bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ môn
Công Nghệ Phần Mềm Khoa Công Nghệ Thông Tin, Trường Đại Học
Cần Thơ vào ngày 11 tháng 12 năm 2014
Trang 3Nhận Xét Của Cán Bộ Phản Biện
Trang 4
Nhận Xét Của Cán Bộ Phản Biện
Trang 5
LỜI CẢM ƠN
- -
Trong quá trình thực hiện Luận văn tốt nghiệp, nhóm chúng em đã gặp phải khá nhiều khó khăn tuy nhiên được sự giúp đỡ và ủng hộ của quý thầy cô, bạn bè và gia đình nên nhóm em đã hoàn thành đúng tiến độ Nay nhóm chúng
em xin ngỏ lời cảm ơn tất cả những sự giúp đỡ tận tình đó
Chúng em cũng xin gửi lời cảm ơn sâu sắc đến quý Thầy Cô trong Khoa
đã tận tình giảng dạy, trang bị cho chúng em những kiến thức quí báu trong những năm học vừa qua
Đặc biệt, nhóm em gởi lời cảm ơn sâu sắc nhất đến cán bộ hướng dẫn Luận văn tốt nghiệp, thầy Hồ Quang Thái đã hỗ trợ, theo sát và giải đáp tận tình, chu đáo, cùng những lời khuyên chân thành và kịp thời để nhóm em giải quyết khó khăn và có thêm động lực để hoàn thành đề tài
Dù đã rất cố gắng trong quá trình nghiên cứu và hoàn thành đề tài, nhưng sai sót là điều khó tránh khỏi Rất mong nhận được những ý kiến đóng góp của quý thầy cô và các bạn để nhóm em có thể hoàn thiện hơn đề tài của mình
Trân trọng
Trang 6Mục Lục
MỤC LỤC VI
DANH MỤC HÌNH X
CHÚ GIẢI THUẬT NGỮ XIX
TÓM TẮT XXII
ABSTRACTS XXIII
CHƯƠNG I: TỔNG QUAN 1
I ĐẶT VẤN ĐỀ 1
II LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ 1
III HƯỚNG GIẢI QUYẾT 2
IV CÁCH GIẢI QUYẾT 2
V PHÂN CHIA CÔNG VIỆC VÀ KẾ HOẠCH THỰC HIỆN ĐỀ TÀI 3
1 P HÂN CHIA CÔNG VIỆC 3
2 K Ế HOẠCH THỰC HIỆN 3
CHƯƠNG II: SƠ LƯỢC VỀ UNITY 5
I GIỚI THIỆU CHUNG 5
1 S Ơ LƯỢC VỀ 3D G AME E NGINE 5
2 S Ơ LƯỢC VỀ U NITY 3D 7
II CÁC ĐẶC ĐIỂM VÀ TÍNH NĂNG CỦA UNITY 9
1 R ENDERING ( KẾT XUẤT HÌNH ẢNH ) 9
2 T ERRAINS ( ĐỊA HÌNH ) 10
3 S UBSTANCES (T EXTURE THÔNG MINH ) 11
4 P HYSICS ( VẬT LÍ ) 12
5 A RTIFICIAL I NTELLIGENCE ( TRÍ THÔNG MINH NHÂN TẠO ) 13
6 A UDIO ( ÂM THANH ) 13
7 S CRIPTING ( LẬP TRÌNH ) 14
8 N ETWORKING 14
9 M ATERIALS (V ẬT LIỆU , NGUYÊN LIỆU ) 14
Trang 7III CÁC THÀNH PHẦN TRONG UNITY 15
1 A SSETS 15
2 S CENES 15
3 G AME O BJECT 16
4 C OMPONENTS 17
5 S CRIPTS 18
6 P REFABS 20
IV GIAO DIỆN CỦA UNITY 21
1 C ỬA SỐ LÀM VIỆC CỦA U NITY 21
2 C ỬA SỔ S CENE VÀ H IERARCHY 22
3 C ỬA SỔ I NSPECTOR 26
4 C ỬA SỔ P ROJECT 28
5 C ỬA SỔ G AME 29
V TỔNG QU N IẾN TRÖC GAME ENGINE UNITY 29
1 K IẾN TRÚC TỔNG QUAN 29
2 C HU KỲ SỐNG CỦA THÀNH PHẦN SCRIPT GẮN TRÊN ĐỐI TƯỢNG GAME 30
CHƯƠNG III: NGHIÊN CỨU THỂ LOẠI GAME MOBA 35
I GIỚI THIỆU VỀ THỂ LOẠI GAME MOBA 35
II LỐI CHƠI CỦA GAME MOBA 35
III CÁC THUẬT NGỮ DÙNG TRONG GAME 37
IV HỆ THỐNG TRANG BỊ (ITEMS) CHO TƯỚNG 41
1 G IỚI THIỆU VỀ TRANG BỊ 41
2 P HÂN LOẠI TRANG BỊ 41
3 C ÔNG DỤNG CỦA TRANG BỊ 42
V HỆ THỐNG KỸ NĂNG (SKILLS) CHO TƯỚNG 42
1 G IỚI THIỆU VỀ KỸ NĂNG ( SKILLS ) CỦA TƯỚNG 42
2 C ÁC LOẠI KỸ NĂNG ( SKILL TYPES ) 43
3 K Ỹ NĂNG NHIỀU CƠ CHẾ ( TOGGLE ) 43
VI HỆ THỐNG QUÂN LINH (CREEPS) 43
1 G IỚI THIỆU QUÂN LÍNH 43
2 P HÂN LOẠI QUÂN LÍNH 44
CHƯƠNG IV: NGHIÊN CỨU LÝ THUYẾT 45
I MÔ HÌNH 3D 45
1 L Ý T HUYẾT 3D 45
Trang 82 CINEMA 4D 47
3 K ẾT QUẢ NGHIÊN CỨU 59
II DATA SQLITE 71
1 G IỚI THIỆU VỀ SQL ITE 71
2 M ỘT SỐ ĐẶC ĐIỂM CHÍNH CỦA SQL ITE 72
3 Ứ NG DỤNG CƠ SỞ DỮ LIỆU SQL ITE : 73
4 M ỘT SỐ ĐIỂM HẠN CHẾ CỦA SQL ITE 74
5 Ứ NG DỤNG SQL ITE LƯU TRỮ DỮ LIỆU TRONG G AME 74
III TRÍ TUỆ NHÂN TẠO 76
1 G IỚI THIỆU 76
2 S Ơ LƯỢC VỀ LỊCH SỬ PHÁT TRIỂN AI 77
3 AI P ROGRAMMING 78
4 Ứ NG DỤNG AI VÀO XÂY DỰNG GAME TRÊN U NITY 94
IV TỐI ƯU HÓ ĐỒ HỌA 111
1 K HÁI NIỆM 111
2 O CCLUSION CULLING 112
CHƯƠNG V: ỨNG DỤNG UNITY VÀO PHÁT TRIỂN GAME 116
I MỘT SỐ VẤN ĐỀ VÀ GIẢI PHÁP XÂY DỰNG GAME TRÊN UNITY 116
1 N ẠP VÀ HIỂN THỊ MÔ HÌNH 3 D 116
2 C HUYỂN ĐỘNG M H NH NHÂN VẬT 3D 120
3 T ẠO ĐỊA H NH TRONG GAME 122
4 C HIẾU SÁNG CẢNH VẬT 130
5 T ẠO HIỆU ỨNG PARTICLE 132
6 Â M THANH TRONG GAME 138
7 V A CHẠM 142
8 C ÀI ĐẶT MÁY QUAY ( CAMERA ) 144
9 G IAO DIỆN TƯƠNG TÁC GIỮA NGƯỜI CHƠI VÀ NHÂN VẬT (H ERO ) TRONG GAME 148
10 M INIMAP 149
11 X ÂY DỰNG KỸ NĂNG ( SKILLS ) CỦA NHÂN VẬT 150
12 X ÂY DỰNG CẤP ĐỘ ( LEVEL ) CỦA NHÂN VẬT 151
13 X ÂY DỰNG HỆ THỐNG VẬT PHẨM ( ITEMS ) CHO NHÂN VẬT 151
14 X Ử LÝ THÔNG SỐ THUỘC TÍNH ( ATTRIBUTIONS ) CỦA NHÂN VẬT 152
15 Đ IỀU KHIỂN NHÂN VẬT BẰNG CHUỘT 153
16 Đ IỀU KHIỂN NHÂN VẬT SỬ DỤNG KỸ NĂNG ( SKILLS ) 154
17 T ẠO ĐIỂM XUẤT PHÁT CHO NHÂN VẬT , LÍNH 155
18 T ẠO ĐƯỜNG ĐI CHO LÍNH 155
Trang 919 T ẠO THÁP CANH ( TOWER ), NHÀ LÍNH ( INHIBITOR ), NHÀ CHÍNH ( NEXUS ) 156
II CÁCH CHƠI G ME (GAMEPLAY) 156
1 Ý TƯỞNG TRÒ CHƠI 156
2 K ẾT QUẢ ĐẠT ĐƯỢC 158
III KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 158
1 K ẾT LUẬN 158
2 H ƯỚNG PHÁT TRIỂN TIẾP THEO 158
TÀI LIỆU THAM KHẢO 159
PHỤ LỤC 160
Trang 10Danh mục hình
HÌNH II.1: LOGO CỦA UNITY ENGINE 7
HÌNH II.2: MINH HỌA RENDERING 9
HÌNH II.3: MINH HỌA CÔNG CỤ TÙY CHỈNH ĐỊA HÌNH 10
HÌNH II.4: MINH HỌA CÔNG CỤ TÙY CHỈNH ĐỊA HÌNH 11
HÌNH II.5: MINH HỌA GIAO DIỆN VẬT LÝ 13
HÌNH II.6: THƢ MỤC ASSETS TRONG UNITY 15
HÌNH II.7: CÁC SCENE 16
HÌNH II.8: GAMEOBJECT TRONG CỬA SỔ HIERARCHY 17
HÌNH II.9: CÁC COMPONENT CỦA CAMERA 18
HÌNH II.10: MỘT ĐOẠN SCRIPT ĐƢỢC GẮN VÀO GAMEOBJECT 19
HÌNH II.11: GIAO DIỆN MONO DEVELOPER 20
HÌNH II.12: PREFABS CÓ TÊN ENEMY1 VÀ CÁC THÀNH PHẦN TRONG NÓ 21
HÌNH II.13: GIAO DIỆN 21
HÌNH II.14: CỬA SỔ HIERACHY 22
HÌNH II.15: CỬA SỔ GAME 23
Trang 11HÌNH II.16: NÚT CÔNG CỤ 23
HÌNH II.17: TH NH ĐIỀU KHIỂN KHUNG NHÌN 24
HÌNH II.18: THANH CÔNG CỤ 24
HÌNH II.19: CỬA SỔ INSPECTOR 26
HÌNH II.20: MINH HỌ ĐIỀU CHỈNH TRONG INSPECTOR 27
HÌNH II.21: CỬA SỔ PROJECT 28
HÌNH II.22: CỬA SỔ GAME 29
HÌNH II.23: CHU KỲ SỐNG CỦA THÀNH PHẦN SCRIPT 31
HÌNH III.1: CÁC HERO LÀM NÊN LINH HỒN CHO THỂ LOẠI GAME MOBA 36
HÌNH IV.1: HỆ TỌ ĐỘ DESCARTES VỚI TRỤC X HƯỚNG VỀ NGƯỜI QUAN SÁT 45
HÌNH IV.2: GIAO DIỆN MẶC ĐỊNH CỦA CINEMA 4D 51
HÌNH IV.3: MENU CHÍNH 51
HÌNH IV.4: THANH MENU COMMAND PALETTE 51
HÌNH IV.5: MINH HỌA MENU MỞ RỘNG 52
HÌNH IV.6: MENU VIEWPORT 52
HÌNH IV.7: STATUS LINE 53
HÌNH IV.8: KẾT XUẤT HÌNH ẢNH 53
HÌNH IV.9: TOOL BOX 54
Trang 12HÌNH IV.10: OBJECT MANAGER 55
HÌNH IV.11: CHUYỂN ĐỔI VẬT THỂ S NG Đ GIÁC 55
HÌNH IV.12: WORKSPACE 56
HÌNH IV.13: BẢNG CHANNEL 56
HÌNH IV.14: BẢNG LAYER 57
HÌNH IV.15: HIDDEN MENU 58
HÌNH IV.16: MENU M 58
HÌNH IV.17: MINH HỌ BƯỚC 1 59
HÌNH IV.18: MINH HỌ BƯỚC 2 60
HÌNH IV.19: MINH HỌ BƯỚC 3 60
HÌNH IV.20: MINH HỌ BƯỚC 4 61
HÌNH IV.21: MINH HỌ BƯỚC 5 62
HÌNH IV.22: MINH HỌ BƯỚC 6 63
HÌNH IV.23: MINH HỌ BƯỚC 7 64
HÌNH IV.24: MINH HỌ BƯỚC 8 65
HÌNH IV.25: MINH HỌ BƯỚC 9 66
HÌNH IV.26: MINH HỌ BƯỚC 1 67
HÌNH IV.27: MINH HỌ BƯỚC 2 68
Trang 13HÌNH IV.28: MINH HỌ BƯỚC 3 68
HÌNH IV.29: MINH HỌ BƯỚC 4 69
HÌNH IV.30: MINH HỌ BƯỚC 5 69
HÌNH IV.31: MINH HỌ BƯỚC 6 70
HÌNH IV.32: MINH HỌ BƯỚC 7 70
HÌNH IV.33: MINH HỌ BƯỚC 8 71
HÌNH IV.34: THƯ VIÊN SQLITE 74
HÌNH IV.35: TẠO BIẾN KẾT NỐI 75
HÌNH IV.36: HÀM KẾT NỐI 75
HÌNH IV.37: HÀM TRUY VẤN DỮ LIỆU 75
HÌNH IV.38: HÀM ĐỌC DỮ LIỆU 76
HÌNH IV.39: HÀM ĐÓNG ẾT NỐI 76
HÌNH IV.40: BẢN ĐỒ NHÌN TỪ TRÊN XUỐNG 79
HÌNH IV.41: BẢN ĐỒ DƯỚI DẠNG LƯỚI 2D 79
HÌNH IV.42: Ô KỀ BÊN Ô CẦN XÉT 80
HÌNH IV.43: TÍNH GIÁ TRỊ G 81
HÌNH IV.44: TÍNH GIÁ TRỊ H 81
HÌNH IV.45: VỊ TRÍ BẮT ĐẦU 82
Trang 14HÌNH IV.46: BƯỚC THỨ 2 83
HÌNH IV.47: BƯỚC THỨ 3 83
HÌNH IV.48: TÌM ĐẾN MỤC TIỆU 84
HÌNH IV.49: LẦN NGƯỢC CÁC Ô CHA 84
HÌNH IV.50: NHỮNG ĐIỂM ĐẾN 85
HÌNH IV.51: CÁC ĐIỂM ĐẾN MỚI (NEW WAYPOINTS) 86
HÌNH IV.52: LƯỚI ĐỊNH HƯỚNG 87
HÌNH IV.53: LƯỚI ĐỊNH HƯỚNG TRONG GAME 87
HÌNH IV.54: VÙNG ĐẶT BIỆT (ANNOTATE SPECIAL REGIONS) 88
HÌNH IV.55: VÒNG LẶP ĐỊNH HƯỚNG 88
HÌNH IV.56: ẢNH MINH HỌA THUẬT TOÁN FUNNEL 89
HÌNH IV.57: MINH HỌ CÁC BƯỚC THUẬT TOÁN FUNNEL 89
HÌNH IV.58: VÍ DỤ MINH HỌA 90
HÌNH IV.59: SƠ ĐỒ CHUYỂN TRẠNG THÁI 91
HÌNH IV.60: HÌNH MINH HỌA NHIỆM VỤ (TASKS) TRONG CÂY HÀNH VI 92
HÌNH IV.61: NHIỆM VỤ SELECTOR (SELECTOR TASK) 93
HÌNH IV.62: HÌNH MINH HỌA NHIỆM VỤ SEQUENCE 94
HÌNH IV.63: HÌNH MINH HỌ SƠ ĐỒ CHUYỂN TRẠNG THÁI 95
Trang 15HÌNH IV.64: SƠ ĐỒ ĐỔI ĐƯỜNG 98
HÌNH IV.65: SƠ ĐỒ TRỤ ĐƯỜNG 98
HÌNH IV.66: SƠ ĐỒ TẤN CÔNG TRỤ 99
HÌNH IV.67: SƠ ĐỒ THAM CHIẾN 99
HÌNH IV.68: SƠ ĐỒ TẤN CÔNG 100
HÌNH IV.69: SƠ ĐỒ MUA TRANG BỊ 100
HÌNH IV.70: SƠ ĐỒ MUA TRANG BỊ CƠ BẢN 101
HÌNH IV.71: SƠ ĐỒ MUA TRANG BỊ CHÍNH 102
HÌNH IV.72: SƠ ĐỒ MUA TRANG BỊ CAO CẤP 103
HÌNH IV.73: SƠ ĐỒ C NH ĐÕN ĐÁNH CUỐI DIỆT ĐỊCH 104
HÌNH IV.74: SƠ ĐỒ TUẦN TRA 105
HÌNH IV.75: SƠ ĐỒ TUẦN TR HÔNG CÓ TƯỚNG ĐỊCH VÀ CÓ ĐỒNG MINH 106
HÌNH IV.76: SƠ ĐỒ TUẦN TR HÔNG TƯỚNG ĐỊCH VÀ HÔNG CÓ ĐỒNG MINH 107
HÌNH IV.77: SƠ ĐỒ TUẦN TR CÓ TƯỚNG ĐỊCH VÀ CÓ ĐỒNG MINH 108
HÌNH IV.78: SƠ ĐỒ TUẦN TR CÓ TƯỚNG ĐỊCH VÀ HÔNG CÓ ĐỒNG MINH 109
HÌNH IV.79: SƠ ĐỒ SỬ DỤNG KỸ NĂNG 110
HÌNH IV.80: SƠ ĐỒ TRẠNG THÁI CHẾT 111
HÌNH IV.81: THẺ OBJECT TRONG CÔNG CỤ OCCLUSION 114
Trang 16HÌNH IV.82: THẺ BAKE TRONG CÔNG CỤ OCCLUSION 114
HÌNH IV.83: THẺ VISUALIZATION TRONG CÔNG CỤ OCCLUSION 115
HÌNH V.1: MINH HỌA KHỞI TẠO MÔ HÌNH 117
HÌNH V.2: HÌNH MINH HỌ ĐỊNH DẠNG ANIMATION 118
HÌNH V.3: HÌNH MINH HỌA GIAO DIỆN CHÍNH HUNG XƯƠNG 118
HÌNH V.4: HÌNH MINH HỌ ĐỊNH DẠNG LEGACY 119
HÌNH V.5: HÌNH MINH HỌA CHO NHÃN ANIMATION TRONG GIAO DIỆN NẠP MÔ HÌNH
119
HÌNH V.6: HÌNH MINH HỌ ĐỊNH DẠNG GENERIC 120
HÌNH V.7: MÔ HÌNH 3D BÊN TRONG CHỨA NHIỀU ANIMATION 121
HÌNH V.8: MÔ HÌNH 3D CHỨA MỘT ANIMATION 121
HÌNH V.9: RISE AND LOWER THE TERRAIN HEIGHT 123
HÌNH V.10: SET THE TERRAIN HEIGHT 124
HÌNH V.11: SMOOTH THE TERRAIN HEIGHT 124
HÌNH V.12: PAINT THE TERRAIN TEXTURE 125
HÌNH V.13: PLACE TREES 126
HÌNH V.14: PLACE PLANTS, STONES AND OTHER SMALL FOILAGE 127
HÌNH V.15: SETTING FOR THE TERRAIN 128
Trang 17HÌNH V.17: ĐỊ HÌNH DƯỚI GÓC NHÌN TỪ TRÊN XUỐNG 130
HÌNH V.18: CẢNH VẬT ĐƯỢC CHIẾU SÁNG VÀ CÓ BÓNG 131
HÌNH V.19: ĐƯỜNG DẪN TẠO HIỆU ỨNG 132
HÌNH V.20: CÁC THUỘC TÍNH CỦA PARTICLE SYSTEM 133
HÌNH V.21: HIỆU ỨNG KHÓI LỬA 136
HÌNH V.22: HIỆU ỨNG NƯỚC 137
HÌNH V.23: CÁCH DUNG HÀM PLAY() 138
HÌNH V.24: CÁCH TÙY CHỈNH ÂM THANH 138
HÌNH V.25: CHỈNH ÂM LƯỢNG 138
HÌNH V.26: HÀM PLAYCLIPATPOINT 139
HÌNH V.27: CHARACTER CONROLLER 139
HÌNH V.28: INPUT MANAGER 141
HÌNH V.29: ĐOẠN MÃ MINH HỌA CÁCH DI CHUYỂN NHÂN VẬT 142
HÌNH V.30: SPHERE COLLIDER, MESH COLLIDER, BOX COLLIER, CAPSULE COLLIDER
143
HÌNH V.31: MINH HỌA DI CHUYỂN MÀN HÌNH CAMERA TRONG GAME 145
HÌNH V.32: THÀNH PHẦN CAMERA 146
HÌNH V.33: NEAR CLIP PLANE VÀ FAR CLIP PLANE 147
Trang 18HÌNH V.34: HÌNH MINH HỌA GIAO DIỆN TƯƠNG TÁC GIỮ NGƯỜI CHỚI VÀ NHÂN VẬT
149
HÌNH V.35: HÌNH MINH HỌA CHO THÀNH PHẦN MINIMAP 150
HÌNH V.36: HÌNH MINH HỌA CHO CÁC VẬT PHẨM 152
HÌNH V.37: HÌNH MINH HỌA THÀNH PHẦN NAVMESHAGENT 154
\\
Trang 19Chú giải thuật ngữ
phát triển các trò chơi điện tử
Việc chia các đa giác thành những
đa giác nhỏ hơn một cách tự động theo một kịch bản quy định sẵn bởi
Trang 2016 Occlusion Culling Chọn lọc loại bỏ điểm khuất
Nguôn ngữ lập trình đổ bóng trung cấp dành cho xử lý pixel, tối ƣu hóa
Interface)
Trang 2133 Database Engine Máy lưu trữ dữ liệu
Intelligence)
Tập hợp các công cụ tạo nội dung
âm thanh được thực hiện bởi Firelight Technologies
tượng khác
Trang 22Tóm tắt
Đây là cơ hội để quên đi những dự án lập trình nhàm chán mà bạn đã làm trong thời gian gần đây và bước vào thế giới trò chơi đầy hấp dẫn, nơi trí tưởng tượng của bạn bay cao Bạn có thể tạo ra những thứ mà chỉ có trong tưởng tượng của mình Khả năng phát triển của game là vô tận
Lập trình game là một trong những khu vực khó khăn nhất của lập trình máy tính - bạn cần phải nắm vững chuyển động, đồ họa lập trình, cấu trúc dữ liệu, lập trình hướng đối tượng, hiệu ứng âm thanh, và nhiều hơn nữa Nhưng với những công cụ thích hợp, chiến lược đúng đắn, và một chút may mắn, bạn sẽ ngạc nhiên trước những gì bạn có thể làm
Unity 3D là một mảnh ghép mới của công nghệ, có thể giúp cho việc phát triển trò chơi trở nên đơn giản và dễ dàng hơn Unity là một công cụ sản xuất trò chơi hoặc là một phần mềm được viết để thiết kế và phát triển các trò chơi điện
Trang 23bstracts
Here's your chance to forget all those boring programming projects you've been working on lately and enter the fascinating world of action arcade game programming a world where you can let your imagination soar! You can create your own scrolling worlds inhabited by creatures from your imagination The possibilities in game development are endless
Game programming is one of the most challenging areas of PC programming you need to master animation, graphics programming, data structures, event-driven programming, sound effects, and much more But with the right tools, the right strategy, and a little bit of luck, you'll be amazed at what yUnity 3D is a new piece of technology that strives to make life better and easier for game developers Unity is a game engine or a game authoring tool that enables creative folks like you to build video games
Unity 3D is a new piece of technology that strives to make life better and easier for game developers Unity is a game engine or a game authoring tool that enables creative folks like you to build video games
Real-time 3D games have been around for well over ten years now We‟ve all played them, created assets in the style of our favorites, and maybe even “mod”ed a few of them But with the Unity game engine leaping ahead in its effort to provide a free or low-cost means of authoring for desktop, mobile, or console games, the only barrier left to creating your own games is your level of commitment and the number of hours you are willing or able to devote
Trang 24CHƯƠNG I: TỔNG QU N
I ĐẶT VẤN ĐỀ
Với những bước tiến đột phá trong công nghệ vi xử lý và card đồ họa, các sản phẩm Game ngày càng trở nên sinh động, hấp dẫn và lôi cuốn nhiều người chơi Đặc biệt khi rào cản công nghệ đang được phá vỡ thì các sản phẩm Game càng trở chân thực, hiện thực hóa được ý tưởng phong phú của nhà thiết kế và đưa người chơi đến một thế giới ảo vô cùng chân thực Ngành công nghiệp Game hiện nay có thể nói là bùng nổ, với tốc độ phát triển đến chóng mặt, rất nhiều những Game hay
và hấp dẫn đã được ra đời trong thời gian qua Phía sau những Game phát triển và nổi tiếng như vậy đều có một Game Engine Game Engine là một công cụ hỗ trợ, một Middleware giúp người phát triển viết Game một cách nhanh chóng và đơn giản, đồng thời cung cấp khả năng tái sử dụng các tài nguyên và mã nguồn cao do
có thể phát triển nhiều Game từ một Game Engine Tại Việt Nam, ngành công nghiệp Game mới chỉ đang phát triển đa số chủ yếu vẫn là phát hành Game Các công ty hiện nay đa số đều chỉ nhen nhóm những dự án nhỏ và kém hấp dẫn gây nên không ít thất vọng từ những Game thủ ủng hộ Game nước nhà
II LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Với vấn đề đặt ra như trên, có rất nhiều công cụ đã ra đời Trong việc tạo ra các mô hình 3D, các phần mềm như 3dsMax, Blender, Maya, Cinema4D…là những ứng dụng rất mạnh, linh hoạt và chuyên nghiệp Từ việc tạo ra những khối cầu, lập phương, đa giác đơn giản cho đến những mô hình phức tạp được ghép bởi nhiều khối đa giác khác nhau với những màu sắc sống động, rực rỡ và cả việc tạo ra các chuyển động một cách uyển chuyển và linh hoạt cho những mô hình này, hầu hết các phần mềm này đều cho ra những sản phẩm rất tốt và đáp ứng được gần như tất
cả những mong muốn của người sử dụng Cinema4D là phần mềm đồ họa ứng dụng rộng rãi trong lĩnh vực vẽ phim hoạt hình, games 3D, Video Game, dựng phim, kỹ xảo phim điện ảnh, demo những đoạn phim quảng cáo, là ứng cử viên sáng giá cho việc thiết kế mô hình 3D cho game
Và để thực hiện được việc kết hợp các mô hình cũng như có thể điều khiển được các mô hình được định dạng khác nhau trong cùng một trò chơi Và có thể xây dựng trò chơi này cho nhiều nền tảng khác nhau Rất nhiều các công cụ đã ra đời để
Trang 25phục vụ cho việc giải quyết vấn đề được nêu ra như Unreal, Vision, X-Ray, Unity3D…Trong đó, một công cụ giúp ta thực hiện công việc này một cách đơn giản và nhanh chóng đó chính là Unity3D Công cụ này không chỉ giúp ta phát triển trò chơi 3D cũng như 2D cho hệ điều hành Windows mà nó còn hỗ trợ đa nền tảng như Android, IOS, Xbox, Wii, Mac…Ngoài ra, nó còn có thể tạo dựng những mô hình 3D đơn giản và tạo chuyển động cho các mô hình này Không những thế, việc
hỗ trợ đa nền đúng như cái tên Unity, là thống nhất, đồng lòng…, còn cho phép công cụ này sử dụng những mô hình 3D với các định dạng khác nhau từ các chương trình khác như Cinema4D, Maya…đã kể ở trên Cho nên, việc nghiên cứu cách thức hoạt động, lập trình của công cụ này sẽ giúp cho việc phát triển trò chơi 3D được thuận tiện, nhanh chóng và dễ dàng
III HƯỚNG GIẢI QUYẾT
Từ xu hướng phát triển và những bất cập trên, chúng em sẽ khảo sát và nghiên cứu về Engine Unity – một Game Engine rất phổ biến và không kém mạnh mẽ hiện nay
Unity là một trong những game engine khá phổ biến hiện nay, có khả năng phát triển trò chơi đa nền Unity tạo ra được nhiều loại game 3D đa dạng, hỗ trợ import rất nhiều mô hình định dạng khác nhau, hỗ trợ tạo mô hình trực tiếp Lượng tài liệu hướng dẫn nhiều, cộng đồng lớn với diễn đàn riêng Unity có 2 phiên bản là Unity Pro có tính phí và Unity Free để người dùng dễ dàng lựa chọn, vì vậy mà Unity không chỉ dành cho một công ty lớn chuyên ngiệp, mà kể cả giới làm game không chuyên cũng có thể sử dụng được một cách dễ dàng
IV CÁCH GIẢI QUYẾT
Đề tài này thuộc hướng tìm hiểu công nghệ từ đó xây dựng ứng dụng Mục tiêu của đề tài là tìm hiểu Engine Unity, các thuật toán tìm đường đi, xử lý hành vi,
va chạm vật lý và cách định vị các đối tượng trong môi trương không gian 3D để xây dựng thử nghiệm Game 3D thể loại MOBA (Multiplayer online battle arena)
Để thực hiện được được điều này nội dung của đề tài cần đạt được:
Tìm hiểu tổng quan về kiến trúc của Unity và cách tạo lập các ứng dụng trong Unity
Trang 26 Tìm hiểu các vấn đề như load mô hình vào game, làm nhân vật chuyển động, cách tạo địa hình, giao diện, âm thanh và các hiệu ứng particle…
để rồi từ đó đưa ra giải pháp
Cách kết hợp các đối tượng (nhân vật, hiệu ứng, script, giao diện), cách khởi tạo và quản lý các thành phần trong game
Xây dựng và phát triển ứng dụng game thể loại MOBA bằng Unity
V PHÂN CHIA CÔNG VIỆC VÀ KẾ HOẠCH THỰC HIỆN ĐỀ TÀI
1 Phân chia công việc
Các mục cần nghiên cứu Người thực hiện
Dựng địa hình, cảnh vật, vật trang trí,
các hiệu ứng nhân vật, lính, trụ, hiệu ứng
môi trường, va chạm, data SQLite, giao
diện người dùng (Overlay UI)
Nguyễn Đức Trung
Gắn khung xương cho các mô hình nhân
vật, tạo chuyển động cho nhân vật, AI
(trí thông minh nhân tạo), âm thanh, cài
đặt máy quay (camera), quản lý thông
tin người chơi, lính, trụ,…
Cinema4D
2 8 01/09/2014 25/10/2014
Nghiên cứu các vấn đề đặt ra về Unity
và Cinema4D đồng thời xây dựng và
phát triển trò chơi
3 1 27/10/2014 01/11/2014 Viết báo cáo sơ lược các vấn đề nghiên
Trang 27cứu và chức năng trong trò chơi
4 2 03/11/2014 15/11/2014 Kiểm tra sửa lỗi, thêm các tính năng
cần thiết và hoàn thiện trò chơi
5 1 17/11/2014 22/11/2014 Viết báo cáo chi tiết và kiểm tra logic
trò chơi
Trang 28CHƯƠNG II: SƠ LƯỢC VỀ UNITY
I GIỚI THIỆU CHUNG
1 Sơ lược về 3D Game Engine
a) Khái niệm:
Một Game Engine là một phần mềm được viết cho mục đích thiết kế và phát triển video Game 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, chuyển độ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
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 đối tượng 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 thậ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
b) So sánh Unity và các Game Engine khác:
Chúng ta thử hình dung một dây chuyền sản xuất máy tính, chúng ta sẽ hình dung được một 3D Game Engine theo cách tương tự 3D Game Engine giúp các chúng ta tạo ra nhân vật, xe cộ, nhà cửa, các yếu tố môi trường (nước, bầu trời, gió, trọng lực…) và liên kết chúng lại với nhau theo ý muốn một cách dễ dàng hơn Vấn
đề là chúng ta chọn Engine nào hay chọn nồi cơm nào tốt nhất cho mình?
Trang 29Hiện nay có các engine như: Cry engine, Unreal engine, Source engine, Id Tech engine, Unity engine và những cái tên khác như RenderWare engine, Game Bryo engine Các engine mã nguồn mở bao gồm: Orge engine, Panda3D engine, Irrlicht engine…
Vì sao chọn Unity Engine?
Nếu chúng ta có tiền, có nhiều kinh nghiệm, có một nhóm thật sự giỏi, lúc đó chúng ta mới nên nghĩ đến Unreal engine hay Cry engine… Nếu chúng ta muốn xài
mã nguồn mở cho tiết kiệm thì chúng ta phải bù lại nhiều thời gian và sức lực hơn
để tìm hiểu Orge engine, hay Panda engine,… Lựa chọn sáng giá nhất cho các tân binh trong lĩnh vực 3D, có ít kinh nghiệm, ít tiền, nhưng không muốn phải bỏ quá nhiều công sức tìm hiểu lại những gì người ta đã làm là Unity engine
Unity3D là một engine khá mạnh và tương đối dễ sử dụng, mặc dù sinh sau
đẻ muộn nhưng cũng đã chứng tỏ được khả năng và bản lĩnh của mình qua rất nhiều tựa game nổi tiếng đã được phát hành trên nhiều hệ máy (Samurai II: Vengeance, BeGone, Cordy, Max and the Magic Marker, Muffin Knight, Shadow Era, Zombie Wonderland, Zombieville USA, )
Về mặt đồ họa, Unity không so sánh được với Cry engine nhưng như những gì chúng ta thấy trong hình bên cũng quá đủ để thuyết phục cho những mục tiêu sắp tới của chúng ta Unity không đòi hỏi máy cấu hình cao, thêm nữa Unity đặc biệt chú ý đến sự tiện dụng Việc làm game, làm phim 3D sử dụng Unity engine so với các engine còn lại dễ dàng hơn rất nhiều vì phương châm của Unity engine là engine dành cho các người dùng không chuyên Chúng ta có thể kéo thả, kế thừa, viết scripts, tổ chức các thành phần, import – export các tài nguyên (model, texture, mesh, …) đóng gói các đối tượng hoàn chỉnh và chia sẻ nó một cách dễ dàng với Unity engine
Trang 302 Sơ lƣợc về Unity 3D
Hình II.1: Logo của Unity Engine
Nhà phát triển: Unity Technologies
Phiên bản mới nhất: 4.6 / 26/11/2014
Ngôn ngữ sử dụng: C#, JavaScript, Boo
Phát triển Game cho các hệ điều hành: Windows, Mac OS X (tạo và đóng gói), Wii, iPhone/iPad, Xbox 360, Android, PS3 (chỉ đóng gói, cần giấy phép bổ sung cho từng nền tảng)
Giấy phép: Độc quyền
Website: www.unity3d.com
Unity là một 3D Game Engine, là một công cụ thiết kế Game đa nền bởi ngoài web, Engine này còn có khả năng hỗ trợ gần nhƣ toàn bộ các nền tảng hiện có nhƣ Playstation 3, Xbox 360, iOS, Android, Windows…
Các Engine làm game phổ biến hiện nay có thể kể đến gồm CryEngine, Frostbite 3, Unreal Engine… Chất lƣợng game làm từ các Engine này thì khỏi phải bàn cãi Dĩ nhiên, giá thành của chúng không hề rẻ Ngoài ra, những Engine này đều đòi hỏi cấu hình máy tính cao ngất ngƣỡng Vì thế, Unity 3D hiển nhiên trở thành Engine đƣợc ƣa chuộng nhất hiện nay
Trang 31Unity được sự hỗ trợ của Just-In-Time Compilation (JIT), sử dụng thư viện mã nguồn mở C++ Mono Bằng việc sử dụng JIT, những Engine như Unity có thể tận dụng lợi thế của tốc độ biên dịch Những đoạn mã (code) do chúng ta viết sẽ được Unity biên dịch ra Mono trước khi nó được thực thi Điều này rất quan trọng cho Game để thực thi code vào những thời điểm cần thiết trong suốt thời gian chạy (Runtime) Ngoài thư viện Mono, Unity cũng tận dụng chức năng của những thư viện phần mềm khác vào chức năng của nó, như Engine mô phỏng vật lý PhysicX của Nvidia, OpenGL và DirectX cho kết xuất hình ảnh 3D, OpenAL cho âm thanh Tất cả các thư viện này được xây dựng thành những tính năng tự động hoặc công cụ trực quan vào Unity, vì thế chúng ta không cần lo lắng về việc phải học thế nào để
sử dụng chúng một cách riêng lẽ
Unity có một cộng đồng người dùng rất lớn luôn chia sẻ những Plugin, công
cụ của họ dưới hình thức gói phần mềm bổ sung
Có thể sản xuất các trò chơi theo tiêu chuẩn chuyên nghiệp, xuất bản 3D cho
cả máy tính và các thiết bị di động cũng như sở hữu riêng một Web Player của riêng mình, Unity là một trong những Game Engine có tốc độ phát triển nhanh nhất Unity cũng có phiên bản phát triển Game cho hệ máy Wii của Nintendo và Iphone của Apple, có nghĩa là một khi chúng ta làm chủ được những vấn đề cơ bản, không chỉ phát triển Game cho máy tính cá nhân mà chúng ta còn có thể phát triển Game cho các hệ máy console và thiết bị di động
Unity3D là phần mềm làm games trực tiếp theo thời gian thực, mà không cần render, cho phép người design game có thể thiết kế InterfaceGraphic, map hay character … từ một phần mềm thứ 2 (thường là các phần mềm thiết kế đồ họa chuyên nghiệp như 3Dsmax, Blender, Maya, XSL, Cinema4D, Cheetah3D, Modo, Autodesk FBX, LightWave…) sau đó chỉ việc import nó vào trong Unity với định dạng của tập tin là *.FBX hay *.dae, *.3DS, *.dxf và *.obj, nhưng định dạng *.FBX hay được dùng vì được tối ưu hóa hơn, còn dùng các định dạng khác ngoài FBX thì phải cài phần mềm thiết kế character tưng ứng thì mới dùng được
Một thế mạnh nữa của Unity là bạn có thể chạy demo game của bạn ngay trong khi design, nó có hỗ trợ hai chế độ là Scene và Game, rất thuận tiện cho việc test thử các module Game
Trang 32Unity3D có 2 loại phiên bản, một cho người dùng free, và một phiên bản pro thì đóng phí
Unity 3D không phải là Engine có đồ họa đỉnh nhất hiện nay nhưng chất lượng hình ảnh, độ mượt mà, tiện lợi hỗ trợ đa nền tảng… chắc chắn giúp những sản phẩm sử dụng Engine này sẽ nhận được nhiều sự ủng hộ
II CÁC ĐẶC ĐIỂM VÀ TÍNH NĂNG CỦA UNITY
1 Rendering (kết xuất hình ảnh)
Unity hỗ trợ Windows đồ họa DirectX 11 API nhằm cải thiện hiệu suất tính toán shaders (bóng của vật thể), trong đó cung cấp khả năng sử dụng GPU như CPU song song và thêm chi tiết phong phú hơn với các mô hình và môi trường thế giới game với tessellation
Hình II.2: Minh họa Rendering
Để tạo nên vẻ hoang dã cho game, unity sử dụng kỷ thuật vượt truớc ánh sáng
để cho ánh sang cao hơn và độ trung thực bóng tối của vật thể
Các phiên bản gần đây nhất của Unity được xây dựng lại thuật toán nhằm cải thiện hiệu suất hình ảnh đồng thời tăng cường chất lượng hình ảnh sau khi kết xuất Một số hỗ trợ:
Unity cung cấp sẵn 100 Shaders với đầy đủ các loại phổ biến nhất
Hỗ trợ Surface Shaders, Occlusion Culling, GLSL Optimizer
Trang 33 Hỗ trợ LOD
Lighting (ánh sáng)
Ánh sáng là một điều thiết yếu giúp môi trường trở nên đẹp và thực tế hơn Unity cũng cung cấp nhiều giải pháp đa dạng cho phép chúng ta áp dụng ánh sáng một cách tốt nhất vào môi trường trong trò chơi với nhiều loại nguồn sáng như ánh sáng có hướng (Directional Light), ánh sáng điểm (Point Light), Một số công nghệ và kỹ thuật về ánh sáng được Unity hỗ trợ: Lightmapping, Realtime Shadows, hiệu ứng Sunshafts và Lens Flares
2 Terrains (địa hình)
Terrains còn gọi chung là địa hình bao gồm phần đất nền, đồi núi trong môi trường trò chơi mà trên đó các đối tượng như cây, cỏ, các công trình được dựng lên
Hình II.3: Minh họa công cụ tùy chỉnh địa hình
Unity cung cấp một công cụ điều chỉnh địa hình một cách tinh tế với khả năng chạm khắc, nâng hoặc hạ thấp địa hình Bên cạch đó công cụ còn cung cấp các chổi
vẽ (Brush) với các kích thước khác nhau, có nhiều thông số tùy chỉnh để tạo hình và các loại kết cấu (Texture) cấu tạo nên địa hình Cùng với Terrain Tools là Tree Creator, một công cụ mạnh mẽ cho phép chúng ta tạo ra cây cối với hình dạng, kích thước và kiểu cách đa dạng
Trang 34
Hình II.4: Minh họa công cụ tùy chỉnh địa hình
3 Substances (Texture thông minh)
Substances có thể hiểu đơn giản là một dạng tùy biến Textures nhằm làm đa dạng chúng trong nhiều điều kiện môi trường khác nhau Unity cung cấp khả năng này thông qua các API dựng sẵn trong thư viện, hỗ trợ lập trình viên lập trình để tùy biến hình ảnh được kết xuất của Texture
Hình II.5: So sánh giữa Textures và Substance
Trang 354 Physics (vật lí)
Hình II.6: Ảnh minh họa va chạm vật lý
PhysX là một Engine mô phỏng và xử lí vật lý cực kỳ mạnh mẽ đƣợc phát triển bởi nhà sản xuất card đồ họa hàng đầu thế giới NVIDIA Unity đã tích hợp Engine này vào để đảm nhận mọi vấn đề vật lý Một số vấn đề vật lý đƣợc hỗ trợ bởi Unity nhƣ: Rigidbody, Ragdolls, Joints, Colliders, Cloths…
Trang 36
Hình II.7: Minh họa giao diện vật lý
5 Artificial Intelligence (trí thông minh nhân tạo)
Từ phiên bản Unity 3.5 tính năng PathFinding (khả năng tìm đường) được thêm vào các đối tượng có trí thông minh nhân tạo Với các phiên bản trước, để phát triển khả năng tìm đường cho trí thông minh nhân tạo (AI), nhà phát triển phải hoàn toàn tự xây dựng cho mình một hệ thống tìm đường riêng biệt Tuy nhiên ở phiên bản 3.5, Unity hỗ trợ cho chúng ta tính năng Pathfinding cho phép tạo ra khả năng tìm đường cho AI nhờ vào khái niệm lưới định hướng (NavMesh)
Với sự hỗ trợ NavMesh obstacles (vật cản trở trên lưới định hướng) của Unity
4, các nhân vật trong game có thể phản ứng lại với những thay đổi của môi trường một cách sinh động
6 Audio (âm thanh)
Unity cung cấp công cụ mạnh mẽ cho những cảnh cộng hưởng âm thanh Trong game âm thanh được hỗ trợ bởi FMOD, một trong những thư viện rộng lớn nhất thế giới và những bộ công cụ cho việc tạo và phát ra âm thanh tích hợp
Trang 377 Scripting (lập trình)
Lập trình là một trong những yếu tố quan trọng nhất trong phát triển Game Lập trình cho phép nhà phát triển tạo nên khả năng tương tác, trí thông minh và yếu
tố Gameplay cho trò chơi
Unity cho phép chúng ta lập trình bằng nhiều ngôn ngữ mạnh mẽ và phổ biến với các lập trình viên như: C#, Java Script và Boo
Unity hỗ trợ lập trình viện gỡ rối một cách dễ dàng bằng cách tích hợp đầy đủ trình gỡ rối kịch bản với MonoDevelop cho cả Windows và Mac Logic game dựa trên nền tản OpenSource.net, MonoDevelop được coi như một công cụ với đầy đủ sức mạnh, tốc độ và linh hoạt của một trong những môi trường lập trình hàng đầu thế giới
9 Materials (Vật liệu, nguyên liệu)
Materials là vậy liệu để xây dựng nên các đối tượng trong game Unity cho phép người dùng dễ dàng nhập vật liệu từ bên ngoài Unity có thể tự động nhập các vật liệu được tạo ra trong các gói mô hình 3D và cài đặt chúng như tài nguyên tái sử dụng Người viết game có thể tạo ra vật liệu trong unity hoặc mua trong Asset Store với hàng trăm kết cấu và vật liệu
Trang 38Hình II.8: Minh họa vật liệu
III CÁC THÀNH PHẦN TRONG UNITY
1 Assets
Assets là những tài nguyên xây dựng nên một dự án Unity Từ những tập tin hình ảnh, kết cấu(Texture), vật liệu(Materials), mô hình 3D đến các tập tin âm thanh Unity gọi các tập tin mà chúng ta dùng để tạo nên trò chơi là tài sản (Assets) Điều này lí giải tại sao tất cả các tập tin, thư mục của các dự án Unity đều được lưu trữ trong một thư mục có tên là “Assets”
Hình II.9: Thư mục Assets trong Unity
2 Scenes
Trong Unity, chúng ta cần hiểu một cảnh (hay một phân đoạn) nghĩa là một màn chơi riêng biệt hoặc một khu vực hay thành phần có trong nội dung của trò chơi (ví dụ như Game menu) Bằng cách tạo nên nhiều Scenes cho trò chơi, chúng
ta có thể phân phối thời gian tải hoặc kiểm tra các phần khác nhau của trò chơi một cách riêng lẽ
Trang 39Hình II.10: Các Scene
3 Game Object
Khi Assets được sử dụng trong Scene, chúng trở thành Game Object – một thuật ngữ được sử dụng trong Unity (đặc biệt là 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 là Transform Transform là thông tin
về vị trí, góc xoay và tỉ lệ của đối tượng, tất cả được mô tả bởi bộ 3 số X, Y, Z trong
hệ trục tọa độ Thành phần này có thể được tùy biến lại trong quá trình lập trình nhằm thay đổi vị trí, góc quay và tỉ lệ của đối tượng qua các đoạn mã Từ các thành phần cơ bản này, chúng ta sẽ tạo ra Game Object với các thành phần khác, bổ sung chức năng cần thiết để xây dựng nên bất kỳ một thành phần nào trong kịch bản Game mà chúng ta đã tưởng tượng
Trang 40Hình II.11: GameObject trong cửa sổ Hierarchy
4 Components
Components có nhiều hình thức khác nhau Chúng có thể xác định hành vi, cách xuất hiện,… hay ảnh hưởng đến các khía cạnh khác trong chức năng của Game Object trong trò chơi
Bằng cách “gắn” chúng vào trong Game Object, chúng ta ngay lập tức có thể
áp dụng tác động của chúng lên đối tượng Những Components phổ biến trong quá trình phát triển trò chơi đều được Unity hỗ trợ sẵn Ví dụ như thành phần Rigidbody
đã được đề cập hay các yếu tố đơn giản khác như ánh sáng, Camera và nhiều thành phần khác Để tạo nên các yếu tố tương tác trong trò chơi, chúng ta sẽ sử dụng Script (mã kịch bản), chúng cũng được xem như là một Components trong Unity