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

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠ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 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 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 Hiệu trường Trường Đại học Công nghệ Thông tin – Chủ tịch – Thư ký – Uỷ viên – 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 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 Về 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 hình thức báo cáo: XX XX X Về nội dung nghiên cứu: Về chương trình ứng dụng: Về thái độ làm việc sinh viên: Đánh giá chung: Khóa luận đạt/khơng đạt u cầu 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 sinh viên: Bùi Đăng Huy: ……… /10 Người nhận xét (Ký tên 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 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: Lí chọn đề tài Cùng với phát triển xã hội, nhu cầu giải trí người ngày tăng Mỗi người tìm đến hay nhiều hình thức khác để giải trí Một số người tìm đến nghệ thuật, số khác tìm niềm vui việc sáng tạo, số khác lại đam mê học hỏi kỹ đó, số tìm đến thách thức Có nhiều lí khiến người đưa thân vào tình địi hỏi kỹ họ bị thử thách Nghiên cứu cho thấy số người cần nhiều liều lượng bình thường phấn khích sống, việc thử thách thân làm thỏa mãn khát họ Khi vượt qua thử thách định, não sản xuất dopamine, chất kích thích tạo cảm giác hưng phấn dễ chịu người đạt mục tiêu lớn Vì lẽ đó, người thường tìm đến game cơng cụ để thoả mãn thú vui thử thách thân mơi trường thú vị an tồn Từ lâu, dòng game đua xe (racing games) dòng game phần lớn người chơi game yêu thích Chúng phân loại dọc theo phổ dịng game mơ trị chơi đua xe kiểu arcade đơn giản hóa Trị chơi đua xe go-kart lên vào năm 1990 thể loại phụ phổ biến sau Trò chơi đua xe 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 thập kỷ, dòng game giữ sức hút với người chơi với nhiều tựa game thuộc thể loại Asphalt, Mario Kart, Need For Speed, v.v… Mặc dù hầu hết tựa game có chế độ chơi online để người chơi so tài với người chơi khác, phận người chơi trung thành với chế độ chơi với máy tiện lợi, không phụ thuộc vào kết nối mạng độ khó mà “người chơi ảo” chế độ chơi mang lại Đứng góc nhìn 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 câu hỏi: Làm để tạo game đua xe hấp dẫn? Những yếu tố tạo nên đột phá cho dòng game vốn than thuộc với người chơi này? Mục tiêu - Xây dựng thành công game đua xe online với nhiều chế độ chơi nhiều chơi khác - Hiểu Machine Learning bản, cách AI học hỏi tiến hóa khn khổ game đua xe - Giả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 phấn khích chơi với AI) - Nâng cấp gameplay đua xe nhàm chán, tạo khác biệt so với sản phẩm có trước Phạm vi công nghệ - Unity (Unity 3D, MLAgents) - Python TensorFlow Đối tượng - Những người chơi game nói chung người chơi game đua xe nói riêng - Cơ chế game đua xe trước AI kèm theo Phương pháp thực - Xây dựng game đua xe tảng Unity3D - Dựa vào thư viện ML Agents Unity để tiến hành huấn luyện cho AI - Nghiên cứu thư viện TensorFlow Python để tìm cách cải thiện thư viện MLAgents có sẵn - Ừng dụng thư viện MLAPI xây dựng game server cho game Kết mong đợi Kết mong đợi đề tài khóa luận sản phẩm game đua xe go-kart online áp dụng thành công AI huấn luyện phương pháp Machine Learning chạy tảng Windows WebGL Game phát hành website Itch.io Kế hoạch thực hiện: Giai đoạn Giai đoạn 1: Phân tích Thời gian 30/08/2021 – 01/09/2021 Cơng việc Thu thập thông tin, nghiên cứu chế gane nghiên cứu có 02/09/2021 – 06/09/2021 Nghiên cứu thư viện MLAgents 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 game Giai đoạn 2: Xây dựng 11/09/2021 – 15/09/2021 Xây dựng 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 game (vật lý, xử lý va chạm) 27/09/2021 – 03/10/2021 Xây dựng hệ thống 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 game (màn hình mở đầu game, hình chọn chế độ chơi, hình chọn chơi) 18/10/2021 – 31/10/2021 Xây dựng 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 chơi với mức độ: Dễ - Vừa - Khó Giai đoạn 4: Phát triển hệ 01/12/2021 – 14/12/2021 Chức 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 server 24/12/2022 – 02/01/2022 Áp dụng Client-side Prediction & Server-side reconcilation Giai đoạn 5: Kiểm thử 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 chỉnh sửa (nếu có) Xác nhận CBHD TP HCM, ngày 18 tháng 03 năm 2021 (Ký tên ghi rõ họ tên) Sinh viên (Ký tên ghi rõ họ tên) Bùi Đăng Huy Hình 3.21 Gói asset Sand Materials – Nguồn: Unity Asset Store [22] 3.4 Xây dựng game UI 3.4.1 Màn hình nhập cảnh Màn hình nhập cảnh đơn giản gồm tiêu đề UIT KART, xe mẫu nút Play Hình 3.22 Màn hình nhập cảnh 43 3.4.2 Màn hình chọn xe Màn hình chọn xe gồm panel chọn xe nhỏ phân bố hình Phần chọn người lái đem xuống phía hình ảnh thị xe Hình 3.23 Màn hình chọn xe chế độ Versus 3.4.3 Màn hình HUD Màn hình HUD game chia chia làm cụm: Ở góc trái minimap đường đua Mỗi chấm tròn biểu thị xe đường đua Xe người chơi biểu thị chấm lớn Ở góc bên phải hình thơng tin vịng đua, bao gồm thời gian đua, số vịng đua hồn thành vị trí xe Vịng phía cố tính để trống để dành chỗ cho điều khiểm cảm ứng cài đặt sau 44 Hình 3.24 Màn hình game 3.4.4 Màn hình kết thúc game Khi người chơi đích, điều khiển xe ngắt kết nối, HUD game ẩn Dòng chữ “FINISHED” chạy ngang từ trái qua, báo hiệu trò chơi kết thúc Sau khoảng giây, bảng xếp hạng trôi dần từ xuống Trong thời gian này, xe chưa hồn thành vịng tiếp tục chạy 45 Hình 3.25 Màn hình kết thúc game Hình 3.26 Bảng xếp hạng 46 CHƯƠNG 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ 4.1 Thực nghiệm 4.1.1 Thiết lập thực nghiệm Thực nghiệm tiến hành trực tiếp Unity theo quy trình huấn luyện đề cập Sau đó, AI huấn luyện thực đua mơi trường Số vịng đua lần đua vòng, lấy kết trực tiếp từ đồng hồ in-game sau lấy trung bình cộng sau lần đua Số liệu so sánh với kết trung bình người chơi khác đua lần Trong trường hợp agent khơng thể hồn thành vào đua khoảng thời gian dài, kết lần đua biểu thị dấu – khơng tính kết trung bình Thực nghiệm thực máy tính cá nhân có cấu hình gồm vi xử lý CPU Intel Core i5-7200U @ 2.50 GHz, GPU Nvidia 940MX, hệ điều hành Windows 10 64bit 4.1.2 Kết mong đợi − AI biết sử dụng kỹ drift − AI mức Khó có kết trung bình gần kết trung bình người chơi − Có chênh lệch rõ ràng AI xe độ khó khác (~2 - 4s) 47 4.1.3 Kết thực nghiệm Sau kết thu sau trình thực nghiệm Do AI huấn luyện từ neuro network gốc nên số đánh giá biến thể xe ~330.000 bước đầu tiên: Hình 4.1 Biểu đồ thay đổi phần thưởng tích lũy episode AI theo thời gian huấn luyện Hình 4.2 Biểu đồ thay đổi độ dài episode AI theo thời gian huấn luyện 48 Tên môi trường Kết Track_Cross Lần Lần Lần Trung bình Bubblegum (Dễ) 02:35 998 02:47.815 02:35.802 02:39.871 Bubblegum (Thường) 02:35.582 02:30.180 02:45.600 02:37.120 Bubblegum (Khó) 02:33.631 02:28.610 02:36.145 02:32.795 Carbon (Dễ) 02:48.334 02:48.835 02:53.343 02:50.170 Carbon (Thường) 02:36.926 02:45.947 02:39.036 02:40.629 Carbon (Khó) 02:34.954 02:27.594 02:39.841 02:34.130 Cloud (Dễ) 02:39.775 - 02.37.973 - Cloud (Thường) 02:34.414 02:38.746 02:33.482 02:35.614 Cloud (Khó) 02:34.686 02:38.404 02:30.700 02:34.596 Red (Dễ) 02:44.973 02:37.859 02:41.091 02:41.307 Red (Thường) 02:36.082 02:40.083 02:38.351 02:38.172 Red (Khó) 02:35.412 02:38.739 02:34.233 02:36.124 Sunshine (Dễ) 02:38.106 02:39.142 02:37.795 02:38.348 Sunshine (Thường) 02:35.947 02:46.048 02:33.875 02:38.623 Sunshine (Khó) 02:33.867 02:38.474 02:30:390 02:34.244 Violet (Dễ) 02:40.104 02:42.988 02:36.822 02:39.971 Violet (Thường) 02:33.276 02:32.764 - - Violet (Khó) 02:39.473 02:37.842 02:38.812 02:38.709 Bảng 4.1 Kết thực nghiệm đường đua Cross 49 Tên môi trường Kết Track_Rock Lần Lần Lần Trung bình Bubblegum (Dễ) 04:11.153 04:03.608 4:17.216 04:10.658 Bubblegum (Thường) 04:13.243 04:05.260 04:15.521 04:11.341 Bubblegum (Khó) 04:07:004 03:59.638 04:12.076 04:06.239 Carbon (Dễ) 04:19.407 04:14.175 04:19.442 04:16.008 Carbon (Thường) 04:18.657 04:20.425 04:04.347 04:14.476 Carbon (Khó) 04:05.989 04:08.221 04:23.804 04:12.671 Cloud (Dễ) - 04:08.326 04:06.886 - Cloud (Thường) - 04:05.370 04:09.674 - Cloud (Khó) 04:18.335 04:05.653 04:00.842 04:08.276 Red (Dễ) 04:23.713 04:18.703 04:12.168 04:18.194 Red (Thường) 04:08.971 04:16.138 04:13.719 04:12.942 Red (Khó) 04:12.772 04:04.781 04:11.970 04:09.841 Sunshine (Dễ) 04:29.755 04:16.175 - - Sunshine (Thường) 04:08.169 04:12.963 04:05.416 04:08.849 Sunshine (Khó) 04:03.078 04:02.546 04:13.597 04:06.407 Violet (Dễ) 04:11.192 04:07.570 04:12.414 04:10.392 Violet (Thường) 04:06.552 04:22.237 - - - 04:02.206 04:05.940 - Violet (Khó) Bảng 4.2 Kết thực nghiệm đường đua Rock 50 Kết trung bình Track_Cross Track_Rock Người chơi 02:34.885 04:02.124 Bubblegum (Khó) 02:32.795 04:06.239 Carbon (Khó) 02:34.130 04:12.671 Cloud (Khó) 02:34.596 04:08.276 Red (Khó) 02:36.124 04:09.841 Sunshine (Khó) 02:34.244 04:06.407 Violet (Khó) 02:38.709 - Bảng 4.3 Bảng so sánh kết người chơi AI mức độ Khó 4.2 Đánh giá kết thực nghiệm 4.2.1 Ưu điểm − Tỉ lệ AI hồn thành vịng đua cao − AI biết sử dụng thành thạo kỹ thuật drift khúc cua khó − AI biết ưu tiên nhặt vật phẩm tăng tốc, né phẩm làm giảm tốc độ xe − Các AI mức độ Khó nhìn chung đáp ứng kỳ vọng đặt − Khơng có chênh lệch q nhiều Cumilative Rewards xe => Độ tốt AI biến thể xe gần 4.2.2 Nhược điểm − Quy mô thực nghiệm nhỏ giới hạn phần cứng, thơng số chưa thể biểu diễn hồn toàn độ hiệu AI − Kết lượt đua cịn phụ thuộc vào vị trí xuất phát xe − Không đạt phân biệt kết rõ ràng AI cấp độ 51 − Những va chạm hỗn loạn đầu lượt đua khiến xe bị chệch hướng ngược chiều Mặc dù tỉ lệ nhỏ, thiếu sót ảnh hưởng đến độ tốt AI thực tế 4.2.3 Hướng khắc phục − Tinh chỉnh hệ thống thưởng phạt huấn luyện lại − Tiếp tục tiến hành thực nghiệm để tăng độ tin cậy số liệu 52 CHƯƠNG 5: KẾT LUẬN & HƯỚNG PHÁT TRIỂN 5.1 Kết luận Thơng qua q trình thực nghiên cứu đề tài , học thêm nhiều kiến thức: − Các kiến thực máy học, Reinforcement Learning thuật toán PPO − Các kiến thức lập trình thiết kế game, đặc biệt lập trình thiết kế tảng Unity Đồng thời, áp dụng kiên thức học đạt kết quả: − Báo cáo toàn văn đề tài Ứng dụng Machine Learning việc huấn luyện AI cho game đua xe − Xây dựng thành cơng quy trình huấn luyện AI game đua xe thư viện MLAgents Unity − Xây dựng thành công sản phẩm game đua xe có AI áp dụng Reinforcement Learning 5.2 Hướng phát triển Sau hướng phát triển đề cho tương lai với kết đạt được: − Tăng độ phức tạp môi trường (thêm đường đua mới, đường đua nhiều hướng, đường tắt, chướng ngại vật đường, v.v…) − Phát triển game hỗ trợ tảng di động Android, iOS − Kết hợp thuật toán cân game vào trình huấn luyện AI (tự giảm reward thấy AI vượt xa player) 53 − Phát triển hệ thống online multiplayer game − Thêm yếu tố thưởng rải rác (sparse-reward) vào game môi trường huấn luyện vật phầm tăng sức mạnh hay đệm tăng tốc − Tiếp tục hoàn thiện UI game 54 TÀI LIỆU THAM KHẢO [1] A Koster, “Theory of Fun for Game Design”, 2nd edition O'Reilly Media Inc., 2013 [2] “Kart racing game”, Wikipedia, last edited on Mar 2021 [Online] – Available: https://en.wikipedia.org/wiki/Kart_racing_game [3] A Mohamed, “Artificial Intelligence In Racing Games”, University of Burmingham [Online] – Available: https://www.cs.bham.ac.uk/~ddp/AIP/RacingGames.pdf [4] Early Arcade Classics: 1985-1987 Developer Interviews, shmuplations.com [Online] – Available: http://shmuplations.com/earlyarcade/ [5] Y Sazaki, A Primanita and M Syahroyni, “Pathfinding Car Racing Game Using Dynamic Pathfinding Algorithm and Algorithm A*”, 3rd International Conference on Wireless and Telematics (ICWT) IEEE, 2017 [Online] – Available: https://ieeexplore.ieee.org/document/8284160 [6] Y Ohyagi and K Satou, “Racing game program and video game device”, U.S Patent 7278913, Oct 9, 2007 [Online] – Available: https://patents.google.com/patent/US7278913B2/en [7] Anon, “Rubber Band AI (Concept)” [Online] – Available: https://www.giantbomb.com/rubber-band-ai/3015-35/ [8] M Sayer, “5 Games Totally Ruined By Rubberbanding AI” , Paste Media Group, 2016 [Online] – Available: https://www.pastemagazine.com/games/racing-games/5games-totally-ruined-by-rubberbanding-ai/#need-for-speed [9] “What is Drifting?” [Online] – Available: https://www.driftworks.com/blog/drifting/ 55 [10] B Baker et al., “Emergent Tool Use from Multi-Agent Interaction”, OpenAI, 2019 [Online] – Available: https://openai.com/blog/emergent-tool-use/ [11] H Heidenreich, “Reinforcement Learning (Part 1) – The Mario Bros Example” [Online] – Available: https://cai.tools.sap/blog/the-future-with-reinforcement-learningpart-1/ [12] S Bhatt, “5 Things You Need to Know about Reinforcement Learning”, KDNuggets [Online] – Available: https://www.kdnuggets.com/2018/03/5-thingsreinforcement-learning.html [13] J Hui, “RL — Proximal Policy Optimization (PPO) Explained” [Online] – Available: https://jonathan-hui.medium.com/rl-proximal-policy-optimization-ppoexplained-77f014ec3f12 [14] T Haarnoja et al., “Soft Actor Critic—Deep Reinforcement Learning with RealWorld Robots”, The Berkeley Artificial Intelligence Research Blog [Online] – Available: https://bair.berkeley.edu/blog/2018/12/14/sac/ [15] S Gujar, “Trust Region Policy Optimization (TRPO) and Proximal Policy Optimization (PPO)”, Medium, Apr 21, 2018 [Online] – Available: https://medium.com/@sanketgujar95/trust-region-policy-optimization-trpo-andproximal-policy-optimization-ppo-e6e7075f39ed [16] M.Wulfmeier, P Ondrúska and I Posner, “Maximum Entropy Deep Inverse Reinforcement Learning”, University of Oxford, Mar 11, 2016 [Online] – Available: https://arxiv.org/pdf/1507.04888.pdf [17] J Schulman, F Wolski, P Dhariwal, A Radford amd O Klimov, “Proximal Policy Optimization Algorithms”, OpenAI, Aug 28 2017 [Online] – Available: https://arxiv.org/pdf/1707.06347.pdf 56 [18] “Unity Machine Learning Agents”, Unity [Online] – Available: https://unity.com/products/machine-learning-agents [19] “EasyRoads3D v3 Manual”, UnityTerrainTools.com [Online] – Available: https://www.easyroads3d.com/v3/manualv3.html [20] “Wii U – Mario Kart 8”, The Model Resources [Online] – Available: https://www.models-resource.com/wii_u/mariokart8/ [21] SkyBox Series Free by Avionx, Unity Asset Store [Online] – Available: https://assetstore.unity.com/packages/2d/textures-materials/sky/skybox-series-free103633 [22] Yughues Free Sand Materials by Nobiax/ Yughues, Unity Asset Store [Online] – Available: https://assetstore.unity.com/packages/2d/textures-materials/floors/yughuesfree-sand-materials-12964 57 ... ĐĂ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... 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 hướng dẫn: TS Nguyễn Trịnh... - Xây dựng thành công game đua xe online với nhiều chế độ chơi nhiều chơi khác - Hiểu Machine Learning bản, cách AI học hỏi tiến hóa khn khổ game đua xe - Giải toán tối ưu AI cho game đua xe

Ngày đăng: 24/01/2022, 22:10

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan