Tải bản đầy đủ (.pdf) (75 trang)

Xây dựng game đua xe online ứng dụng machine learning

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.36 MB, 75 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN
KHOA CƠNG NGHỆ PHẦN MỀM
⦁

BÙI ĐĂNG HUY

KHỐ LUẬN TỐT NGHIỆP

XÂY DỰNG GAME ĐUA XE ONLINE
ỨNG DỤNG MACHINE LEARNING
(DEVELOPING AN ONLINE RACING GAME IMPLEMENTING
MACHINE LEARNING)

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

TP. HỒ CHÍ MINH, 2021


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÙI ĐĂNG HUY - 17520563

KHOÁ LUẬN TỐT NGHIỆP

XÂY DỰNG GAME ĐUA XE ONLINE
ỨNG DỤNG MACHINE LEARNING


(DEVELOPING AN ONLINE RACING GAME IMPLEMENTING
MACHINE LEARNING)

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN
TS. Nguyễn Trịnh Đơng
ThS. Đinh Nguyễn Anh Dũng

TP. HỒ CHÍ MINH, 2021


THƠNG TIN HỘI ĐỒNG CHẤM KHỐ LUẬN TỐT NGHIỆP
Hội đồng chấm khoá luận tốt nghiệp, thành lập theo Quyết định số ...............................
Ngày ............................... của Hiệu trường Trường Đại học Công nghệ Thông tin.

1.

...................................................................... – Chủ tịch.

2.

...................................................................... – Thư ký.

3.

...................................................................... – Uỷ viên.

4.

...................................................................... – Uỷ viên.



ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC

Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN
TP. HCM, ngày…..tháng…..năm……..

NHẬN XÉT KHĨA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ HƯỚNG DẪN/PHẢN BIỆN)
Tên khóa luận:
ỨNG DỤNG MACHINE LEARNING TRONG VIỆC
HUẤN LUYỆN AI CHO GAME ĐUA XE
Nhóm SV thực hiện:
Bùi Đăng Huy

Cán bộ hướng dẫn/phản biện:
17520563 TS. Nguyễn Trịnh Đông
ThS. Đinh Nguyễn Anh Dũng

Đánh giá Khóa luận
1. Về cuốn báo cáo:
Số trang
XX
Số chương

Số bảng số liệu
XX
Số hình vẽ
Số tài liệu tham khảo XX_____
Sản phẩm
Một số nhận xét về hình thức cuốn báo cáo:

XX
XX
X ______

...........................................................................................................................................................
2. Về nội dung nghiên cứu:
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................


3. Về chương trình ứng dụng:
...........................................................................................................................................................
...........................................................................................................................................................
4. Về thái độ làm việc của sinh viên:
...........................................................................................................................................................
...........................................................................................................................................................
Đánh giá chung: Khóa luận đạt/khơng đạt yêu cầu của một khóa luận tốt nghiệp kỹ sư/ cử nhân,
xếp loại Giỏi/ Khá/ Trung bình
Điểm từng sinh viên:
Bùi Đăng Huy: ………../10

Người nhận xét

(Ký tên và ghi rõ họ tên)


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC

Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN

ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: XÂY DỰNG GAME ĐUA XE ONLINE ỨNG DỤNG MACHINE
LEARNING (Developing an Online Racing Game Implementing Machine Learning)
Cán bộ hướng dẫn: TS. Nguyễn Trịnh Đông, ThS. Đinh Nguyễn Anh Dũng
Thời gian thực hiện: Từ ngày 30/08/2021 đến ngày 16/01/2022
Sinh viên thực hiện: Bùi Đăng Huy - 17520563
Nội dung đề tài:
1. Lí do chọn đề tài
Cùng với sự phát triển của xã hội, nhu cầu giải trí của con người cũng ngày càng tăng.
Mỗi người tìm đến một hay nhiều hình thức khác nhau để giải trí. Một số người tìm đến
nghệ thuật, một số khác tìm niềm vui trong việc sáng tạo, một số khác lại đam mê học
hỏi một kỹ năng nào đó, và một số tìm đến sự thách thức.
Có nhiều lí do khiến con người đưa bản thân vào những tình thế địi hỏi những kỹ năng
của họ bị thử thách. Nghiên cứu cho thấy rằng một số người cần nhiều hơn liều lượng
bình thường của sự phấn khích trong cuộc sống, và việc thử thách bản thân làm thỏa mãn
cơn khát của họ. Khi vượt qua một thử thách nhất định, não bộ sản xuất ra dopamine,
một chất kích thích tạo cảm giác hưng phấn và dễ chịu khi con người đạt được một mục

tiêu lớn. Vì lẽ đó, con người thường tìm đến game như một công cụ để thoả mãn thú vui
được thử thách bản thân trong một môi trường thú vị và an toàn.


Từ lâu, dòng game đua xe (racing games) đã là một trong những dòng game được phần
lớn những người chơi game yêu thích. Chúng được phân loại dọc theo một phổ giữa
dịng game mơ phỏng và các trị chơi đua xe kiểu arcade đơn giản hóa. Trị chơi đua xe
go-kart nổi lên vào những năm 1990 như một thể loại phụ phổ biến của sau này. Trò chơi
đua xe cũng có thể thuộc danh mục trị chơi thể thao. Bắt nguồn từ năm 1973 với game
Space Race, trải qua gần 4 thập kỷ, dòng game này vẫn giữ được sức hút với người chơi
với nhiều tựa game mới thuộc thể loại này như Asphalt, Mario Kart, Need For Speed,
v.v… Mặc dù hầu hết những tựa game trên đã có chế độ chơi online để người chơi có thể
so tài với những người chơi khác, một bộ phận người chơi vẫn trung thành với chế độ
chơi với máy bởi sự tiện lợi, không phụ thuộc vào kết nối mạng cũng như độ khó mà
những “người chơi ảo” chế độ chơi này có thể mang lại.
Đứng trên góc nhìn một người thiết kế game hứng thú với thể loại game lâu đời này, ta
không khỏi đặt ra câu hỏi: Làm thế nào để tạo ra một game đua xe hấp dẫn? Những yếu
tố nào có thể tạo nên sự đột phá cho dòng game vốn đã rất than thuộc với người chơi
này?
2. Mục tiêu
-

Xây dựng thành công một game đua xe online với nhiều chế độ chơi nhiều màn
chơi khác nhau.

-

Hiểu được Machine Learning cơ bản, cách AI học hỏi và tiến hóa trong khn khổ
một game đua xe.


-

Giải quyết được bài toán tối ưu AI cho game đua xe hướng đến trải nghiệm người
chơi (người chơi cảm thấy vui và phấn khích khi chơi với AI)

-

Nâng cấp gameplay đua xe đã nhàm chán, tạo sự khác biệt so với các sản phẩm đã
có trước đây

3. Phạm vi cơng nghệ
-

Unity (Unity 3D, MLAgents)


-

Python TensorFlow

4. Đối tượng
-

Những người chơi game nói chung và những người chơi game đua xe nói riêng

-

Cơ chế của những game đua xe đi trước cùng AI kèm theo

5. Phương pháp thực hiện

-

Xây dựng game đua xe trên nền tảng Unity3D

-

Dựa vào thư viện ML Agents của Unity để tiến hành huấn luyện cho AI

-

Nghiên cứu thư viện TensorFlow của Python để tìm cách cải thiện thư viện
MLAgents đã có sẵn

-

Ừng dụng thư viện MLAPI và xây dựng game server cho game.

6. Kết quả mong đợi
Kết quả mong đợi của đề tài khóa luận là một sản phẩm game đua xe go-kart online áp
dụng thành công AI được huấn luyện bằng phương pháp Machine Learning chạy trên nền
tảng Windows và WebGL. Game được phát hành trên website Itch.io.
Kế hoạch thực hiện:
Giai đoạn
Giai đoạn 1: Phân tích và

Thời gian
30/08/2021 – 01/09/2021

Công việc
Thu thập thông tin, nghiên

cứu cơ chế của những gane

nghiên cứu

hiện có.
02/09/2021 – 06/09/2021

Nghiên cứu thư viện
MLAgents và thự viện mã
nguồn mở Mirror.

07/09/2021 – 10/09/2021

Nghiên cứu hướng phát
triển AI trong game


Giai đoạn 2: Xây dựng

11/09/2021 – 15/09/2021

Xây dựng cơ chế điều
khiển xe (tăng tốc, phanh,

game

quẹo, drift)
16/09/2021 – 26/09/2021

Xây dựng đường đua,

tương tác trong game (vật
lý, xử lý va chạm)

27/09/2021 – 03/10/2021

Xây dựng hệ thống màn
chơi

04/10/2021 – 07/10/2021

Xử lý camera

08/10/021 – 10/10/2021

Thu thập, áp dụng đồ họa
game từ nguồn mở

11/10/2021 – 17/10/2021

Xây dựng UI trong game
(màn hình mở đầu game,
màn hình chọn chế độ
chơi, màn hình chọn màn
chơi)

18/10/2021 – 31/10/2021

Xây dựng các chế độ chơi
(regular mode, time-attack)


Giai đoạn 3: Phát triển AI

01/11/2021 – 07/11/2021

Xây dựng thuật toán Học
Tăng cường (Reinforment
Learning)


08/11/2021 – 31/11/2021

Tiến hành huấn luyện AI
trên các màn chơi với 3
mức độ: Dễ - Vừa - Khó

Giai đoạn 4: Phát triển hệ

01/12/2021 – 14/12/2021

Chức năng tạo phòng &
tham gia phịng chơi

thống online game server
14/12/2021 – 21/12/2021

Xử lí đầu vào in-game trên
server

24/12/2022 – 02/01/2022


Áp dụng Client-side
Prediction & Server-side
reconcilation

Giai đoạn 5: Kiểm thử và

03/01/2022 – 09/01/2022

chỉnh sửa

Cho nhóm đối tượng
nghiên cứu kiểm thử, thu
thập ý kiến

10/01/2022 – 16/01/2022

Đưa ra chỉnh sửa (nếu có)

Xác nhận của CBHD

TP. HCM, ngày 18 tháng 03 năm 2021

(Ký tên và ghi rõ họ tên)

Sinh viên
(Ký tên và ghi rõ họ tên)

Bùi Đăng Huy



LỜI CẢM ƠN
Để khố luận này được hồn thành một cách tốt đẹp, tôi đã nhận được nhiều sự giúp
đỡ, đóng góp ý kiến của thầy cơ và bạn bè.
Tơi xin chân thành cảm ơn thầy Nguyễn Trịnh Đông và thầy Đinh Nguyễn Anh Dũng,
giảng viên khoa Công nghệ Phần mềm – Trường ĐH Công nghệ Thông tin – ĐH Quốc
Gia TP.HCM đã trực tiếp hướng dẫn, chỉ bảo trong q trình nghiên cứu khố luận.
Tơi cũng xin cảm ơn các thầy cô giảng viên Trường ĐH Công nghệ Thông tin – ĐH
Quốc Gia TP.HCM nói chung và các thầy cơ trong khoa Cơng nghệ Phần mềm nói
riêng đã truyền đạt cho tôi những kinh nghiệm và kiến thức quý báu, từ đại cương đến
chun ngành, để tơi có được cơ sở lý thuyết vững chắc cùng kỹ năng nghề nghiệp
thực tế.
Cuối cùng, xin cảm ơn những người bạn của tôi: Vinh, Trung là Linh. Mọi người đã hỗ
trợ rất nhiều về tinh thần cũng như đóng góp những ý kiến để khố luận này được hồn
thành một cách trọn vẹn nhất.

Hồ Chí Minh, tháng 12 năm 2021
Sinh viên thực hiện

Bùi Đăng Huy


MỤC LỤC
TĨM TẮT KHỐ LUẬN ............................................................................................. 1
MỞ ĐẦU ......................................................................................................................... 2
Lí do chọn đề tài ........................................................................................................... 2
Mục tiêu đề tài .............................................................................................................. 3
Nội dung thực hiện ....................................................................................................... 3
Phạm vi đề tài ............................................................................................................... 4
Phạm vi công nghệ .................................................................................................... 4
Phạm vi thời gian....................................................................................................... 4

Bố cục báo cáo .............................................................................................................. 4
CHƯƠNG 1: ................................................................................................................... 5
1.1.

Một số ví dụ kinh điển về AI trong game đua xe ........................................... 5

1.2.

Demo Kart Microgame của Unity ................................................................... 8

1.3.

Đánh giá ............................................................................................................. 8

1.3.1.

Các thuật toán AI cho game đua xe ......................................................... 8

1.3.2.

Demo Karting Microgame ........................................................................ 9

1.4.

Đặt vấn đề .......................................................................................................... 9

CHƯƠNG 2: ................................................................................................................. 11
2.1.

Cơ sở lý thuyết thiết kế game ........................................................................ 11


2.1.1.

Vật lý game ............................................................................................... 11

2.1.2.

Thiết kế & Cân bằng game ..................................................................... 14

2.2.

Reinforcement Learning và thư viện ML-Agents ....................................... 16


2.2.1.

Reinforcement Learning là gì? ............................................................... 16

2.2.2.

Thư viện ML-Agents của Unity .............................................................. 17

2.2.3.

Proximal Policy Optimization (PPO) sử dụng Clipped Surrogate

Objective ................................................................................................................. 21
CHƯƠNG 3: ................................................................................................................. 23
3.1.


Triển khai hệ thống ........................................................................................ 23

3.1.1.

Cài đặt Unity ............................................................................................ 23

3.1.2.

Cài đặt môi trường ảo Python ................................................................ 26

3.1.3.

Các thư viện Unity có liên quan ............................................................. 29

3.2.

Xây dựng mơi trường huấn luyện AI............................................................ 31

3.2.1.

Ý tưởng ..................................................................................................... 31

3.2.2.

Xây dựng đường đua & hệ thống checkpoint ....................................... 37

3.2.3.

Thiết lập huấn luyện AI........................................................................... 40


3.3.

Xây dựng đồ hoạ game ................................................................................... 41

3.4.

Xây dựng game UI .......................................................................................... 43

3.4.1.

Màn hình nhập cảnh ................................................................................ 43

3.4.2.

Màn hình chọn xe ..................................................................................... 44

3.4.3.

Màn hình HUD ......................................................................................... 44

3.4.4.

Màn hình kết thúc game.......................................................................... 45

CHƯƠNG 4: ................................................................................................................. 47
4.1.

Thực nghiệm ................................................................................................... 47

4.2.


Đánh giá kết quả thực nghiệm....................................................................... 51


4.2.1.

Ưu điểm ..................................................................................................... 51

4.2.2.

Nhược điểm............................................................................................... 51

4.2.3.

Hướng khắc phục ..................................................................................... 52

CHƯƠNG 5: ................................................................................................................. 53
5.1.

Kết luận ........................................................................................................... 53

5.2.

Hướng phát triển ............................................................................................ 53

TÀI LIỆU THAM KHẢO ........................................................................................... 55


DANH MỤC HÌNH VẼ
Hình 1.1. Game Pole Position (1982) .............................................................................. 6

Hình 1.2. Lưu đồ thuật tốn xác định vận tốc AI trong Mario Kart: Double Dash!! –
Nguồn: [6] ........................................................................................................................ 7
Hình 1.3. Giao diện game của Demo Karting Microgame – Nguồn: Unity .................... 8
Hình 2.1. Hai chiếc xe đua thể thao đang thực hiện drift .............................................. 13
Hình 2.2.Các loại xe khác nhau trong game – Nguồn: Asphalt 9 .................................. 15
Hình 2.3. Sơ đồ hoạt động của Reinforcement Learning – Nguồn: [12] ....................... 17
Hình 2.4. Mơi trường huấn luyện AI chơi bóng đá bằng thư viện ML-Agents – Nguồn:
[18] ................................................................................................................................. 18
Hình 2.5. Biểu đồ quan hệ giữa các thành phần trong ML-Agents ............................... 20
Hình 2 6. Sờ đồ tóm tắt thuật tốn PPO sử dụng Clipped Surrogate Objective ............ 21
Hình 3.1. Giao diện website store.unity.com ................................................................. 23
Hình 3.2. Giao diện tải Unity Hub ................................................................................. 24
Hình 3.3. Giao diện của Unity Hub ............................................................................... 25
Hình 3.4. Giao diện tạo project trong Unity Hub........................................................... 25
Hình 3.5. Giao diện Unity Editor ................................................................................... 26
Hình 3.6. Giao diện website tải Python ......................................................................... 27
Hình 3.7. Giao diện Command Prompt khi kích hạot mơi trường ảo thành cơng ......... 28
Hình 3.8. Danh sách thư viện cần có trong mơi trưởng ảo ............................................ 29
Hình 3.9. Cửa sổ Package Manager ............................................................................... 30
Hình 3.10. Một số thư viện bên thứ 3 trong My Assets ................................................. 31
Hình 3.11. Các sensor của Agent ................................................................................... 32
Hình 3.12. Component KartAgent ................................................................................. 33
Hình 3.13. Component Behaviour Parameters............................................................... 36
Hình 3.14. Giao diện của EasyRoads3D trên Unity Editor ........................................... 38
Hình 3.15. Một đường đua hoàn chỉnh được tạo bởi EasyRoads3D ............................. 38


Hình 3.16. Hệ thống checkpoint và tường chắn............................................................. 39
Hình 3.17. Vật phẩm tăng tốc và giảm tốc trên đường đua ........................................... 40
Hình 3.18. Giao diện TensorBoard ................................................................................ 41

Hình 3.19. 6 loại xe trong đề tài, theo thứ tự từ trái sang phải: Bubblegum, Carbon,
Clou, Red, Sunshine, Violet ........................................................................................... 42
Hình 3.20. Gói asset Skybox Series – Nguồn: Unity Asset Store [21] .......................... 42
Hình 3.21. Gói asset Sand Materials – Nguồn: Unity Asset Store [22]......................... 43
Hình 3.22. Màn hình nhập cảnh ..................................................................................... 43
Hình 3.23. Màn hình chọn xe chế độ Versus ................................................................. 44
Hình 3.24. Màn hình chính của game ............................................................................ 45
Hình 3.25. Màn hình kết thúc game ............................................................................... 46
Hình 3.26. Bảng xếp hạng .............................................................................................. 46
Hình 4.1. Biểu đồ thay đổi phần thưởng tích lũy ở mỗi episode của AI theo thời gian
huấn luyện ...................................................................................................................... 48
Hình 4.2. Biểu đồ thay đổi độ dài của episode của AI theo thời gian huấn luyện ......... 48


DANH MỤCH BẢNG
Bảng 3.1. Các thông số của Kart Agent ......................................................................... 35
Bảng 3.2. Các thông số của Behaviour Parameters ....................................................... 37
Bảng 4.1. Kết quả thực nghiệm ở đường đua Cross ..................................................... 49
Bảng 4.2. Kết quả thực nghiệm ở đường đua Rock ....................................................... 50
Bảng 4.3. Bảng so sánh kết quả giữa người chơi và các AI mức độ Khó ..................... 51


DANH MỤCH TỪ VIẾT TẮT
Số thứ tự

Tên viết tắt

Tên đầy đủ

1


AI

Artificial Intellegence

2

UI

User Interface

3

ML

Machine Learning

4

RL

Reinforcement Learning

5

PPO

Proximal Policy Optimization

6


SAC

Soft Actor Critic

7

HUD

Head Up Display


TĨM TẮT KHỐ LUẬN
Dịng game đua xe là một dịng game có lịch sử phát triển lâu đời. Trải qua nhiều thế
kỷ phát triển, dòng game này vẫn thu hút một lượng người chơi trung thành. Thế
nhưng, có một câu hỏi được đặt ra mà có lẽ cả những người trong ngành công nghiệp
triệu đô ngày cũng chưa biết đáp án chính xác: “làm thế nào để tạo ra một AI cho game
đua xe tốt?”. Bị hấp dẫn bởi câu hỏi này, cùng với sự tò mò về máy học và sự phát
triển của các thuật tốn máy học, tơi đã chọn đề tài “XÂY DỰNG GAME ĐUA XE
ONLINE ỨNG DỤNG MACHINE LEARNING” làm đề tài khoá luận. Trải qua quá
trình nghiên cứu cơ sở lý thuyết, đánh giá một số sản phẩm đã có trước đây, tơi đã tiến
hành thực hiện khoá luận này nhằm giải đáp thắc mắc của bản thân cũng như trau dồi
kiến thức. Để thực hiện khóa luận, tơi đã thực hiện xây dựng một game đua xe cơ bản
trên Unity và tiến hành xây dựng mơ hình Reinforcement Learning áp dụng PPO để
huấn luyện AI và thu thập dữ liệu huấn luyện AI từ Tensorflow. Kết thúc khố luận, tơi
đã thu được các kết quả sau:
− Học được kiến thức cơ bản về Machine Learning và Reinforcement Learning
− Học được kiến thức vế lập trình và thiết kế game, đặc biệt là lập trình và thiết kế
trong game đua xe.
− Xây dựng thành công mơ hình huấn luyện AI cho game đua xe với 6 biến thể xe

đua khác nhau, cùng với đó là số liệu về quá trình huấn luyện AI.
− Xây dựng demo game ứng dụng AI đã được huấn luyện.
Sau đây là chi tiết của báo cáo tồn văn khố luận.

1


MỞ ĐẦU
Lí do chọn đề tài
Cùng với sự phát triển của xã hội, nhu cầu giải trí của con người cũng ngày càng tăng.
Mỗi người tìm đến một hay nhiều hình thức khác nhau để giải trí. Một số người tìm
đến nghệ thuật, một số khác tìm niềm vui trong việc sáng tạo, một số khác lại đam mê
học hỏi một kỹ năng nào đó, và một số tìm đến sự thách thức.
Có nhiều lí do khiến con người đưa bản thân vào những tình thế địi hỏi những kỹ năng
của họ bị thử thách. Nghiên cứu cho thấy rằng một số người cần nhiều hơn liều lượng
bình thường của sự phấn khích trong cuộc sống, và việc thử thách bản thân làm thỏa
mãn cơn khát của họ. Khi vượt qua một thử thách nhất định, não bộ sản xuất ra
dopamine, một chất kích thích tạo cảm giác hưng phấn và dễ chịu khi con người đạt
được một mục tiêu lớn. Vì lẽ đó, con người thường tìm đến game như một công cụ để
thoả mãn thú vui được thử thách bản thân trong một môi trường thú vị và an tồn.[1]
Từ lâu, dịng game đua xe (racing games) đã là một trong những dòng game được phần
lớn những người chơi game yêu thích. Chúng được phân loại dọc theo một phổ giữa
dịng game mơ phỏng và các trị chơi đua xe kiểu arcade đơn giản hóa. Bản thân game
đua xe cũng có thể thuộc danh mục game thể thao. Bắt nguồn từ năm 1973 với game
Space Race, trải qua gần 4 thập kỷ, dòng game này vẫn giữ được sức hút với người
chơi với nhiều tựa game mới thuộc thể loại này như Asphalt, Mario Kart, Need For
Speed, v.v…[2] Mặc dù hầu hết những tựa game trên đã có chế độ chơi online để
người chơi có thể so tài với những người chơi khác, một bộ phận người chơi vẫn trung
thành với chế độ chơi với máy bởi sự tiện lợi, không phụ thuộc vào kết nối mạng cũng
như độ khó mà những “người chơi ảo” chế độ chơi này có thể mang lại.

Có nhiều yếu tố quyết định độ tốt của máy (từ thời điểm này người viết sẽ sử dụng từ
viết tắt AI – Artificial Intellegent) trong một game đua xe hơn mọi người tưởng. Ngoài
việc tối ưu hóa cho AI, ta cịn phải nghĩ đến trải nghiệm của người chơi. Nếu AI quá tệ,

2


người chơi sẽ thắng chúng một cách dễ dàng và nhanh chóng chán trị chơi. Ngược lại,
nếu AI q tối ưu, người chơi sẽ ức chế khi liên tục thua những AI này. Từ đó, bài tốn
được đặt ra là: làm thế nào để tạo ra một AI cho game đua xe tốt?
Tôi xin thừa nhận rằng, với tư cách một người chơi game, nghiên cứu này mang nhiều
ý nghĩa cá nhân hơn hơn ý nghĩa khoa học kỹ thuật. Nhưng điều đó khơng làm mất đi
giá trị về kiến thức mà nghiên cứu này mang lại, nhất là trong lĩnh vực máy học và lĩnh
vực thiết kế game. Đồng thời, niềm tị mị vui thích cũng là một trong những động lực
lớn nhất thôi thúc con người nghiên cứu và sáng tạo. Vì những lí do trên, tơi đã chọn
đề tài này.
Mục tiêu đề tài
− Nắm được các kiến thức cơ bản trong máy học và phương pháp học tăng cường
− Nắm được quy trình thiết kế một game đua xe
− Xây dựng được sản phẩm là một game đua xe có ứng dụng AI mang đến trải
nghiệm chơi game tốt cho người dùng
Nội dung thực hiện
− Tìm hiểu về các game đi trước thuộc cùng thể loại và cách AI hoạt động trong
game
− Tìm hiểu về các cơng nghệ và kiến thức có liên quan, phục vụ cho quá trình
nghiên cứu và thực hiện sản phẩm
− Tìm kiếm và xây dựng đồ hoạ cho game
− Xây dựng game UI
− Xây dựng môi trường game & tiến hành huấn luyện AI
− Phân tích kết quả ban đầu và cải thiện kết quả

− Thực hiện và hoàn tất sản phẩm

3


Phạm vi đề tài
Phạm vi công nghệ
Về công nghệ, phạm vi nghiên cứu bao gồm: nền tảng thiết kế game Unity cùng các
thư viện có liên quan (ML-Agents, Tensorflow, v.v…); ngơn ngữ lập trình C# và
Python
Phạm vi thời gian
Nghiên cứu được thực hiện trong 4 tháng, từ tháng 8 đến tháng 12/2021.
Bố cục báo cáo
Báo cáo gồm 5 chương chính:
− Chương 1. Tổng quan: giới thiệu và trình bày thơng tin thu thập được thông qua
việc quan sát một số game kinh điển thuộc dịng game đua xe, từ đó đặt vấn đề
và đưa ra hướng tiếp cận
− Chương 2. Cơ sở lý thuyết: trình bày các kiến thức và kỹ năng cần thiết để giải
quyết bài toán đã đặt ra
− Chương 3. Hiện thực hố: trình bày chi tiết về các công nghệ sử dụng, các bước
tiến hành nghiên cứu và thực hiện sản phẩm
− Chương 4. Thực nghiệm và đánh giá: trình bày phương pháp thiệt lập thực
nghiệm, phương pháp đánh giá
− Chương 5. Kết luận & hướng phát triển: thu hoạch kết quả đạt được từ đề tài,
trình bày hướng phát triển đề tài

4


CHƯƠNG 1:


TỔNG QUAN

1.1. Một số ví dụ kinh điển về AI trong game đua xe
Để xác định chính xác hướng đi để đưa đến kết quả như ý cho sản phẩm, chúng ta cần
phải có cái nhìn rõ nét hơn về những vấn đề có thể gặp phải trong quá trình thực hiện.
Bằng cách rút kinh nghiệm từ những bậc tiền bối, ta có thể nhanh chóng có cho mình
một hướng đi đúng đắn, tiết kiệm thời gian đào sâu vào những ngõ cụt.
Năm 1982 đánh dấu sự xuất hiện đầu tiên của AI trong game đua xe với tựa game Pole
Position phát hành bởi Namco.[3] Trong game này, AI áp dụng một thuận tốn dị
đường đơn giản: AI chỉ đi theo một đường được định sẵn, sử dụng hàm nối trục và vận
tốc xe để tính tốn. Điểm mạnh lớn nhất của thuật tốn này nằm ở chi phí cực nhỏ của
nó, điều hiển nhiên với những game thời bấy giờ, cùng với đó là giới hạn về sự sống
động của AI, bởi xe chỉ đi theo một đường duy nhất và không thể mô phỏng va chạm.
Dù vậy, ở thời điểm đấy, kỹ thuật lập trình trong game được xem là một bước tiến lớn.
[4]

5


Hình 1.1. Game Pole Position (1982)

Đến những năm 90 và đầu những năm 2000, cùng với sự phát triển của phần cứng,
nhiều phương pháp lập trình AI cho game đua xe cũng từ đó ra đời. Nhiều game ở thời
điểm này sử dụng một các thuật tốn tìm đường đi khác nhau để điều khiển xe, xe đã
có thể thích ứng với va chạm và tự điều khiển để tìm về đường đi được lập trình sẵn.
Một ví dụ về AI đua xe sử dụng thuật tốn tìm đường là thuật tốn A* kết hợp với
thuật tốn tìm đường động.[5] Kết quả của sự kết hợp của 2 thuật toán trên là AI có khả
năng né tránh va chạm và điều khiển vượt chướng ngại vật.
Trong quá trình tìm hiểu, tơi khơng tìm được báo cáo nghiên cứu nào đề cập trực tiếp

đến các thuật toán được sử dụng cho AI trong các game đua xe hiện đại. nhưng
Một điều nữa ta có thể thấy được tương đối rõ ràng đó là sự hiện diện của những thuật
tốn cân bằng game. Những thông số thể hiện kỹ năng của người chơi như vận tốc và
thời gian dự kiến người chơi hồn thành vịng đua sẽ được ước tính, từ đó AI được điều

6


chỉnh để thích ứng với người chơi. Mơ tả đầy đủ về thuật tốn này được tìm thấy trong
tài liệu bản quyền phần mềm trong game Mario Kart: Double Dash!! Của Nintendo.[6]

Hình 1.2. Lưu đồ thuật tốn xác định vận tốc AI trong Mario Kart: Double Dash!! – Nguồn: [6]

7


×