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

Ứng dụng machine learning trong việc huấn luyện AI cho game đua xe

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 (2.93 MB, 70 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

ỨNG DỤNG MACHINE LEARNING
TRONG VIỆC HUẤN LUYỆN AI CHO GAME ĐUA XE
(IMPLEMENTATION OF MACHINE LEARNING IN TRAINING AI
FOR KART-RACING GAME)

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

ỨNG DỤNG MACHINE LEARNING
TRONG VIỆC HUẤN LUYỆN AI CHO GAME ĐUA XE


(IMPLEMENTATION OF MACHINE LEARNING IN TRAINING AI
FOR KART-RACING GAME)

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

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

5
33
1 ______

...........................................................................................................................................................
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 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: Ứng dụng Machine Learning trong việc huấn luyện AI cho game đua
xe
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 18/03/2021 đến ngày 26/06/2021
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 tồ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 mang lại.
Có nhiều yếu tố quyết định độ tốt của AI trong một game đua xe hơn mọi người tưởng.
Ngồ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ệ, 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 quá 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?
2. Mục tiêu
- Xây dựng thành công một game đua xe với nhiều chế độ chơi và 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 tố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, khơng có cảm giác
chán nản hay ức chế)

3. Phạm vi
3.1. 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
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 á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.
Kế hoạch thực hiện:
Giai đoạn

Thời gian

Giai đoạn 1: Phân tích và 22/03/2021 – 24/03/2021
nghiên cứu

Công việc
Thu thập thông tin, nghiên
cứu cơ chế của những gane
hiện có



25/03/2021 – 26/03/2021

Nghiên cứu thư viện
TensorFlow và MLAgents

27/03/2021 – 28/03/2021

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

Giai đoạn 2: Xây dựng 29/03/2021 – 31/03/2021
game

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

01/04/2021 – 10/04/2021

Xây dựng đường đua, tương
tác trong game (vật lý, xử lý
va chạm

11/04/2021 – 23/04/2021

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

24/04/2021 – 25/04/2021


Xử lý camera

26/04/021 – 28/04/2021

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

29/04/2021 – 31/04/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)

01/05/2021 – 04/05/2021

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

05/06/2021 – 12/06/2021

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

13/06/2021 – 18/06/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 3: Phát triển AI


Giai đoạn 4: Kiểm thử và 19/06/2021 – 21/06/2021
chỉnh sửa

Giai đoạn 5: Báo cáo

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

22/06/2021 – 23/06/2021

Đưa ra điều chỉnh (nếu có)

24/06/2021 – 26/06/2021

Viết báo cáo

Xác nhận của CBHD
(Ký tên và ghi rõ họ tên)

TP. HCM, ngày 18 tháng 03 năm 2021
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 6 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.


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

2.1.1.

Thông số vật lý ......................................................................................... 11

2.1.2.

Drift ........................................................................................................... 12

2.2.

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


2.2.1.

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

2.2.2.

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

2.3.

Cân bằng game................................................................................................ 20

CHƯƠNG 3: ................................................................................................................. 22
3.1.


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

3.1.1.

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

3.1.2.

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

3.1.3.

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

3.2.

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

3.2.1.

Ý tưởng ..................................................................................................... 30

3.2.2.

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

3.2.3.

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


3.3.

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

3.4.

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

3.4.1.

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

3.4.2.

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

3.4.3.

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

3.4.4.

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

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

Thực nghiệm ................................................................................................... 44


4.2.

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

4.2.1.

Ưu điểm ..................................................................................................... 47


4.2.2.

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

4.2.3.

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

CHƯƠNG 5: ................................................................................................................. 49
6.1.

Kết luận ........................................................................................................... 49

6.2.

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

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


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 .............................................. 12
Hình 2.2. Sơ đồ hoạt động của Reinforcement Learning – Nguồn: [12] ....................... 16
Hình 2.3. Mơi trường huấn luyện AI chơi bóng đá bằng thư viện ML-Agents – Nguồn:
[17] ................................................................................................................................. 17
Hình 2.4. Biểu đồ quan hệ giữa các thành phần trong ML-Agents ............................... 19
Hình 2.5.Các loại xe khác nhau trong game – Nguồn: Asphalt 9 .................................. 21
Hình 3.1. Giao diện website store.unity.com ................................................................. 22
Hình 3.2. Giao diện tải Unity Hub ................................................................................. 23
Hình 3.3. Giao diện của Unity Hub ............................................................................... 24
Hình 3.4. Giao diện tạo project trong Unity Hub........................................................... 24
Hình 3.5. Giao diện Unity Editor ................................................................................... 25
Hình 3.6. Giao diện website tải Python ......................................................................... 26
Hình 3.7. Giao diện Command Prompt khi kích hạot mơi trường ảo thành cơng ......... 27
Hình 3.8. Danh sách thư viện cần có trong mơi trưởng ảo ............................................ 28
Hình 3.9. Cửa sổ Package Manager ............................................................................... 29
Hình 3.10. Một số thư viện bên thứ 3 trong My Assets ................................................. 30
Hình 3.11. Component KartAgent ................................................................................. 32
Hình 3.12. Các sensor của Agent ................................................................................... 33
Hình 3.13. Component Behaviour Parameters............................................................... 34
Hình 3.14. Giao diện của EasyRoads3D trên Unity Editor ........................................... 36
Hình 3.15. Một đường đua hồn chỉnh được tạo bởi EasyRoads3D ............................. 36


Hình 3.16. Hệ thống check point và tường chắn............................................................ 37
Hình 3.17. 6 loại xe trong đề tài, theo thứ tự từ trái sang phải: Bubblegum, Carbon,
Clou, Red, Sunshine, Violet ........................................................................................... 38

Hình 3.18. Gói asset Skybox Series – Nguồn: Unity Asset Store [20] .......................... 38
Hình 3.19. Gói asset Sand Materials – Nguồn: Unity Asset Store [21]......................... 39
Hình 3.20. Màn hình nhập cảnh ..................................................................................... 39
Hình 3.21. Màn hình chọn xe chế độ Solo ..................................................................... 40
Hình 3.22. Màn hình chọn xe chế độ Versus ................................................................. 41
Hình 3.23. Màn hình chính của game ............................................................................ 42
Hình 3.24. Màn hình kết thúc game ............................................................................... 43
Hình 3.25. Bảng xếp hạng .............................................................................................. 43


DANH MỤCH BẢNG
Bảng 4.1. Kết quả thực nghiệm ở đường đua Cross ...................................................... 45
Bảng 4.2. Kết quả thực nghiệm ở đường đua Rock ....................................................... 46
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ó ..................... 47


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 “ỨNG DỤNG MACHINE
LEARNING TRONG VIỆC HUẤN LUYỆN AI CHO GAME ĐUA XE” 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. 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.
− 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 toán văn khoá 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, Barracuda,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 3 tháng, từ tháng 3 đến tháng 6/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 lý thuyết 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ặc 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ó, 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. 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 q 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 Điều
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 chỉnh để

6


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 toán xác định vận tốc AI trong Mario Kart: Double Dash!! – Nguồn: [6]

7


1.2. Demo Kart Microgame của Unity

Hình 1.3. Giao diện game của Demo Karting Microgame – Nguồn: Unity

Để hướng dẫn người dùng làm quen với việc lập trình và thiết kế game trên nền tảng
của họ, Unity đã tạo ra nhiều bản game demo áp dụng cho nhiều thể loại game khác
nhau, trong đó có thể loại game đua xe với demo Kart Microgame.
Demo bao gồm tất cả mọi thứ cần thiết để tạo ra một game đua xe cơ bản, từ đồ hoạ
cho đến code, đi kèm với đó là những video hướng dẫn ở mức cơ bản, trong đó có thư
viện máy học ML-Agents và hướng dẫn cài đặt thư viện này trong môi trường game
của Unity cũng như huấn luyện AI hoàn thành một đường đua đơn giản.
1.3. Đánh giá
1.3.1. Các thuật toán AI cho game đua xe
Các thuật tốn nếu trên đều được lập trình cứng và khơng áp dụng máy học. Điều này
giúp người lập trình kiểm soát được hành vi của AI, nhưng cũng làm cho hành vi này

8


×