1
ĐẠI HC KINH T QUC DÂN
TRƯỜNG CÔNG NGH
--------------------
KHOÁ LUN TT NGHIP
XÂY DNG GAME ENGINE 2D
Tên sinh viên:
Vũ Ngọc Anh
Giảng viên hướng dn:
Th.S Phm Tho
Hà Ni, 11/2024
2
ĐẠI HC KINH T QUC DÂN
TRƯỜNG CÔNG NGH
--------------------
KHOÁ LUN TT NGHIP
Tên sinh viên:
Vũ Ngọc Anh
Mã sinh viên:
11218442
Lp:
Công ngh thông tin 63A
Chuyên ngành:
Công ngh thông tin
Khoa:
Công ngh thông tin
Giảng viên hướng dn:
Th.S Phm Tho
Hà Ni, 11/2024
XÂY DNG GAME ENGINE 2D
----------------------------------
i
MỤC LỤC
MC LC ...................................................................................................................i
LỜI CAM ĐOAN ...................................................................................................... iv
LI CẢM ƠN ............................................................................................................ v
DANH SÁCH NH ................................................................................................... vi
DANH SÁCH BNG ................................................................................................ ix
DANH MC T VIT TT ..................................................................................... x
LI M ĐẦU ............................................................................................................ 1
CHƯƠNG 1 GII THIU ..................................................................................... 2
1.1. Lý do la chọn đ tài ......................................................................................... 2
1.2. S cn thiết ........................................................................................................ 3
1.3. Nhng vấn đ yêu cu nghip v đặt ra đối vi đề tài ca khoá lun này ........... 4
1.3.1. Game framework ......................................................................................... 4
1.3.2. Game engine ............................................................................................. 11
1.3.3. Công c qun d án ............................................................................... 13
1.3.4. Xây dựng trò chơi thử nghim ................................................................... 14
1.4. Nhng vấn đ k thuật đặt ra đối vi khoá lun này ........................................ 16
1.5. Sn phẩm hướng ti ca khoá lun này ............................................................ 17
CHƯƠNG 2 TNG QUAN V V CÔNG NGH ............................................ 19
2.1. Ngôn ng lp trình C++ ................................................................................... 19
2.2. Vulkan Graphics API ....................................................................................... 20
2.3. GLFW3 ........................................................................................................... 21
2.4. Shader (GLSL, SPIR-V) .................................................................................. 22
2.5. Dear ImGUI..................................................................................................... 22
2.6. Box2D ............................................................................................................. 22
2.7. NlohmanJson ................................................................................................... 23
2.8. MiniAudio ....................................................................................................... 23
2.9. Google Test ..................................................................................................... 24
ii
CHƯƠNG 3 THIT K H THNG................................................................. 25
3.1. Phân tích yêu cu ............................................................................................. 25
3.2. Thiết kế h thng ............................................................................................. 25
3.2.1. Thiết kế chức năng .................................................................................... 25
3.2.2. Thiết kế kiến trúc h thng ........................................................................ 26
3.2.2.1. Thiết kế kiến trúc game engine ......................................................... 30
3.2.2.2. Thiết kế kiến trúc game framework ................................................... 35
3.2.2.3. Thiết kế kiến trúc project manager .................................................... 43
3.2.3. Thiết kế lung hoạt động ca Engine ......................................................... 45
3.2.3.1. Thiết kế luồng hoạt động của tiểu trình chính ................................... 47
3.2.3.2. Thiết kế lung hoạt động ca tiu trình kết xuất đồ ho .................... 49
3.2.3.3. Thiết kế lung hoạt động ca tiu trình ECS ..................................... 51
3.2.4. Cu trúc t chc cho phát trin Game ........................................................ 52
3.2.5. Thiết kế hành động trong Game ................................................................. 53
3.2.5.1. To khung cnh ................................................................................ 53
3.2.5.2. To thc th ...................................................................................... 53
3.2.5.3. Thêm các thành phn vào thc th .................................................... 53
3.2.5.4. Kết xut hình nh .............................................................................. 53
3.2.5.5. Qun lý layer .................................................................................... 53
3.2.5.6. Áp dụng tương tác vật lý ................................................................... 54
3.2.5.7. Hot ho ........................................................................................... 54
3.2.5.8. Ví d minh ho ................................................................................. 54
3.3. Thiết kế x lý ngoi l ..................................................................................... 55
3.3.1. Ghi nht ký ................................................................................................ 56
3.3.2. Các ngoi l ............................................................................................... 57
CHƯƠNG 4 MT S KT QU ....................................................................... 59
4.1. Game framework ............................................................................................. 59
4.2. Game engine .................................................................................................... 59
4.3. Project manager ............................................................................................... 59
iii
4.4. Xây dựng trò chơi thử nghim Running Somewhere ........................................ 61
4.4.1. Gii thiu v trò chơi ................................................................................. 61
4.4.2. Các bước to d án .................................................................................... 62
4.4.3. Các bước lp trình ..................................................................................... 62
4.4.3.1. To scene .......................................................................................... 62
4.4.3.2. Áp dng vt .................................................................................. 69
4.4.3.3. To các kch bản điều khin .............................................................. 71
4.4.3.4. Thêm các vt phm có th nht ......................................................... 75
4.4.3.5. To giao din .................................................................................... 78
4.4.4. Tng kết .................................................................................................... 81
CHƯƠNG 5 KT LUN ..................................................................................... 83
TÀI LIU THAM KHO ....................................................................................... 86