
1
ĐẠI HỌC KINH TẾ QUỐC DÂN
TRƯỜNG CÔNG NGHỆ
--------------------
KHOÁ LUẬN TỐT NGHIỆP
XÂY DỰNG GAME ENGINE 2D
Tên sinh viên:
Vũ Ngọc Anh
Giảng viên hướng dẫn:
Th.S Phạm Thảo
Hà Nội, 11/2024
2024.2 CÔNG NGHỆ THÔNG TIN VŨ NGỌC ANH 11218442

2
ĐẠI HỌC KINH TẾ QUỐC DÂN
TRƯỜNG CÔNG NGHỆ
--------------------
KHOÁ LUẬN TỐT NGHIỆP
Tên sinh viên:
Vũ Ngọc Anh
Mã sinh viên:
11218442
Lớp:
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 dẫn:
Th.S Phạm Thảo
Hà Nội, 11/2024
XÂY DỰNG GAME ENGINE 2D
----------------------------------

i
MỤC LỤC
MỤC LỤC ...................................................................................................................i
LỜI CAM ĐOAN ...................................................................................................... iv
LỜI CẢM ƠN ............................................................................................................ v
DANH SÁCH ẢNH ................................................................................................... vi
DANH SÁCH BẢNG ................................................................................................ ix
DANH MỤC TỪ VIẾT TẮT ..................................................................................... x
LỜI MỞ ĐẦU ............................................................................................................ 1
CHƯƠNG 1 GIỚI THIỆU ..................................................................................... 2
1.1. Lý do lựa chọn đề tài ......................................................................................... 2
1.2. Sự cần thiết ........................................................................................................ 3
1.3. Những vấn đề yêu cầu nghiệp vụ đặt ra đối với đề tài của khoá luận này ........... 4
1.3.1. Game framework ......................................................................................... 4
1.3.2. Game engine ............................................................................................. 11
1.3.3. Công cụ quản lý dự án ............................................................................... 13
1.3.4. Xây dựng trò chơi thử nghiệm ................................................................... 14
1.4. Những vấn đề kỹ thuật đặt ra đối với khoá luận này ........................................ 16
1.5. Sản phẩm hướng tới của khoá luận này ............................................................ 17
CHƯƠNG 2 TỔNG QUAN VỀ VỀ CÔNG NGHỆ ............................................ 19
2.1. Ngôn ngữ lập 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 THIẾT KẾ HỆ THỐNG................................................................. 25
3.1. Phân tích yêu cầu ............................................................................................. 25
3.2. Thiết kế hệ thống ............................................................................................. 25
3.2.1. Thiết kế chức năng .................................................................................... 25
3.2.2. Thiết kế kiến trúc hệ thống ........................................................................ 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ế luồng hoạt động của 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ế luồng hoạt động của tiểu trình kết xuất đồ hoạ .................... 49
3.2.3.3. Thiết kế luồng hoạt động của tiểu trình ECS ..................................... 51
3.2.4. Cấu trúc tổ chức cho phát triển Game ........................................................ 52
3.2.5. Thiết kế hành động trong Game ................................................................. 53
3.2.5.1. Tạo khung cảnh ................................................................................ 53
3.2.5.2. Tạo thực thể ...................................................................................... 53
3.2.5.3. Thêm các thành phần vào thực thể .................................................... 53
3.2.5.4. Kết xuất hình ảnh .............................................................................. 53
3.2.5.5. Quản lý layer .................................................................................... 53
3.2.5.6. Áp dụng tương tác vật lý ................................................................... 54
3.2.5.7. Hoạt hoạ ........................................................................................... 54
3.2.5.8. Ví dụ minh hoạ ................................................................................. 54
3.3. Thiết kế xử lý ngoại lệ ..................................................................................... 55
3.3.1. Ghi nhật ký ................................................................................................ 56
3.3.2. Các ngoại lệ ............................................................................................... 57
CHƯƠNG 4 MỘT SỐ KẾT 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ử nghiệm Running Somewhere ........................................ 61
4.4.1. Giới thiệu về trò chơi ................................................................................. 61
4.4.2. Các bước tạo dự án .................................................................................... 62
4.4.3. Các bước lập trình ..................................................................................... 62
4.4.3.1. Tạo scene .......................................................................................... 62
4.4.3.2. Áp dụng vật lý .................................................................................. 69
4.4.3.3. Tạo các kịch bản điều khiển .............................................................. 71
4.4.3.4. Thêm các vật phẩm có thể nhặt ......................................................... 75
4.4.3.5. Tạo giao diện .................................................................................... 78
4.4.4. Tổng kết .................................................................................................... 81
CHƯƠNG 5 KẾT LUẬN ..................................................................................... 83
TÀI LIỆU THAM KHẢO ....................................................................................... 86

