CHƯƠNG 1.GIOI THIEU ĐỀ TÀI 1.1 Tổng quan Ngày nay, trí tuệ nhân tao (AI) dang dong vai trò ngày cảng quan trong trong nhiều lĩnh vực, và ngành công nghiệp game cũng không ngoại lệ. Việc ứng dụng AI vào game 3D mở ra nhiều tiềm năng to lớn, hứa hẹn mang đến những trải nghiệm chơi game mới mẻ, hấp dẫn và chân thực hơn cho người chơi. Đề tài nghiên cứu các thuật toán AI của NPC ra đời nhằm mục đích nghiên cứu vào vận hành trong game. Đề tài sẽ đi sâu vào tìm hiểu các kĩ thuật được sử dụng trong việc lập trình một AI cụ thể là việc tìm kiếm người chơi.
Đồng thời, đề tài cũng sẽ phân tích hướng đi và cách cải thiện các thuật toán, từ đó đưa ra đánh giá và kết luận về các thuật toán được sử dụng. Lý do lựa chọn đề tài này xuất phát từ niềm đam mê với game và mong muốn tìm hiểu về những thuật toán được sử dụng trong lĩnh vực này. Việc tìm hiểu và ứng dụng nó vào game 3D có thê mang lại nhiều lợi ích cho cả nhà phát triển game và người chơi. Do đó, nghiên cứu về đề tài này có ý nghĩa khoa học và thực tiễn.2 Mục tiêu đề tài Mục tiêu của đề tài là xây dựng một game 3D và áp dụng các thuật toán trong việc tìm kiếm và theo đuôi người chơi.
Game sẽ được hoàn thiện ở mức độ có thể demo được các tính năng cơ ban và các thuật toán AI. Các thuật toán AI truy đuổi người chơi sẽ được nghiên cứu và tham khảo từ nhiều trò chơi khác nhau. Dựa trên những gi đã tìm hiểu, các thuật toán này sẽ được xây dung và tái hiện trong game. Ngoài ra, đề tài còn mục tiêu tìm hiểu sâu về hành vi con người và áp dụng vào triển khai các thuật toán nâng cao, nhằm làm cho AI trở nên giống con người hơn.
Sự cân bằng giữa thuật toán và tính chơi được của game cũng sẽ được nghiên cứu và điều chỉnh. Cuối cùng, việc nghiên cứu các kiểu thuật toán khác nhau trong việc tìm kiếm người chơi sẽ tăng thêm tính đa dạng cho trò chơi.3 Đối tượng game hướng tới Game này hướng tới những người yêu thích thể loại game kinh dị, có khả năng tư duy cao và phản xạ tốt dé tính toán được những bước đi tốt nhất trong việc tránh né kẻ thù, cũng như bât cứ ai muôn tìm cảm giác hôi hộp khi chơi game.4 Đối tượng nghiên cứu Đối tượng nghiên cứu của dự án này bao gồm người dùng và các công nghệ sau: - Người chơi: Nhóm nay mong đợi trải nghiệm chơi game, vì game hướng tới là thể loại game kinh di nên mục tiêu là tạo ra game có một độ khó nhất định để có thé gây áp lực cho người chơi, đồng thời tìm hiểu về hành vi tâm lí con người dé có thé cải thiện hơn về AI. - Trí tuệ nhân tạo (AI): AI được phát triển và sử dụng trong việc tìm kiếm, theo đuôi người chơi, cộng theo tính ngẫu nhiên và tính “người” trong đó. - Các trò chơi kinh dị có sẵn: Tìm hiểu các thuật toán dựa trên các game có sẵn từ đó có thể học hỏi, áp dụng.5 Các hướng nghiên cứu liên quan Môi trường và kịch bản tương tác: Tạo ra các môi trường game và kịch bản có tính tương tác cao để mang lại cảm giác chân thực và sợ hãi cho người chơi.
Điều này đòi hỏi sự sáng tạo trong việc xây dựng bối cảnh và tình huống trong game, sao cho người chơi cảm nhận được sự hồi hộp và bat ngờ liên tục. Âm thanh, hình anh và ánh sáng: Nghiên cứu sâu về âm thanh, hình ảnh và ánh sáng nhằm tối ưu hóa trải nghiệm kinh dị. Việc sử dụng âm thanh đáng sợ, hình ảnh rùng rợn và ánh sáng yếu sé tăng cường yếu tố kinh dị và làm cho người chơi cảm thấy căng thắng, hồi hộp hơn. Thu thập và phân tích dit liệu: Thu thập di liệu từ quá trình chơi game dé hiểu rõ hành vi của người chơi.
Dữ liệu này sẽ cung cấp cái nhìn sâu sắc về cách người chơi tương tác với các yếu tố kinh di trong game và hiệu quả của những yếu tổ đó. Tôi ưu hóa và cải thiện trải nghiệm: Sử dụng dữ liệu đã thu thập để tối ưu hóa độ khó của game, tạo ra các kịch bản mới và cải thiện trải nghiệm người chơi. Điều này giúp đảm bảo rằng game không chỉ gây sợ hãi mà còn thú vị và thách thức người chơi một cách hợp lý.6 Phạm vi đề tài Phạm vi môi trường của đề tài này được xác định là các máy tính có hệ điều hành từ Windows 10 trở lên. Về mặt tính năng, game sẽ là một trò chơi 3D với góc nhìn thứ nhất (FPS), cho phép người chơi trải nghiệm một mình.
Gameplay của game sẽ tập trung vào một màn chơi duy nhất nhưng có cấu trúc thay đổi mỗi lần chơi nhờ vào việc sử dụng các kỹ thuật Random Number Generation (RNG). Trò chơi hoàn chỉnh sẽ bao gồm nhiều chức năng khác nhau. Hệ thống nhân vật sẽ có hai loại: người chơi và kẻ thù, mỗi loại có chức năng và hành vi riêng biệt. Hệ thống hitbox sẽ được thiết kế đa dạng, với các môi trường tinh như mặt đất, tường và cửa có khả năng chặn người chơi.
Các hitbox của vật tương tác như đá quý va máy ban hàng tự động sẽ được thiết kế để người chơi có thé tiếp xúc trực tiếp. Hitbox của kẻ thù sẽ hoạt động tương tự với môi trường xung quanh như cách người chơi tương tác, nhưng khi đụng phải người chơi sẽ dẫn đến tình trạng game over. Ngoài ra, hitbox của kẻ thù cũng sẽ được sử dụng đề phát hiện người chơi. Hệ thống tương tác trong game cho phép người chơi tương tác với các vật phẩm hỗ trợ và item hoàn thành nhiệm vụ.
Hệ thống item va inventory sẽ cho phép người choi thu thập và lưu trữ các vật pham trong inventory, mỗi vật pham sẽ có tác dụng riêng biệt, giúp người chơi tạo lợi thế trong game.1 Giới thiệu Unity Unity là một nền tang phát triển game đa nền tang, được sử dụng dé tạo ra các ứng dụng trò chơi 2D và 3D cho nhiều thiết bị như máy tính cá nhân, console, điện thoại thông minh, máy tinh bảng, va web. Unity được biết đến với tinh dé sử dụng, linh hoạt và cộng đồng mạnh mẽ.2 Các thành phan cơ bản của Unity Cảnh: Cảnh là một tập hợp các đối tượng đại diện cho một môi trường hoặc man chơi trong game. Unity hỗ trợ nhiều cảnh trong một dự án, cho phép bạn tạo ra những thế giới game phức tạp. Doi tượng: Đối tượng là đại diện cho các yếu tố cụ thé trong game, như nhân vật, vật phẩm, cảnh quan.
Mỗi đối tượng có thể có nhiều thành phần, thuộc tính và hành vi riêng. Thành phan: Unity sử dụng mô hình thành phan để tổ chức các đối tượng trong game. Mỗi thành phần có các thuộc tính và phương thức riêng, giúp quản lý và tái sử dụng code dễ dàng. Hệ thống sự kiện: Hệ thống sự kiện cho phép bạn kết nối các thành phần và đối tượng khác nhau trong game.
Khi một sự kiện xảy ra, nó sẽ thông báo cho các đối tượng đã đăng ký dé thực hiện hành động phù hợp.2 Thuật toán AI cơ bản 2.1 Giới thiệu Thuật toán A* được phát triển bởi Peter Hart, Nils Nilsson và Bertram Raphael vào năm 1968. Đây là một thuật toán tìm kiếm thông minh sử dụng phương pháp heuristic dé tối ưu hóa việc tìm đường. Thuật toán này tìm kiếm đường đi từ điểm bắt dau (start) đến điểm dich (goal) trong một đồ thị bằng cách mở rộng các điểm (node) sao cho chi phí đường đi tổng cộng là nhỏ nhất.2 Nguyên lí hoạt động Thuật toán A* sử dụng hai hàm chi phí chính: g(n): Chi phí đường đi từ điểm bắt đầu đến node n. h(n): Hàm ước lượng chi phí từ noden đến điểm đích.
Hàm này thường được gọi là hàm heuristic. Thuật toán A* sử dung tổng chi phí ƒ(m) để đánh giá các node, được tinh bằng công thức: [Ƒ{t) = g(n) + A(n)j Thuật toán sẽ mở rộng node có f(n) nhỏ nhất trước, nghĩa là node mà tông chi phí ước lượng thấp nhất. Ưu và nhược điểm của thuật toán A* Ưu điểm: Tìm được đường đi ngắn nhất, thông minh nhất. Nhược điểm: Tốn khá nhiều về mặt bộ nhớ và thời gian tính toán khi đồ thị quá lớn.2 Thuật toán ngẫu nhiên có điều kiện 2.1 Giới thiệu Thuật toán ngẫu nhiên có điều kiện là một phương pháp tối ưu hóa hành vi của đối tượng (như NPC hoặc kẻ thù trong trò chơi) dựa trên các điều kiện cụ thể nhằm tăng tính khó đoán và phức tạp trong hành vi.
Thuật toán này kết hợp các yếu tố ngẫu nhiên với các quy tắc định sẵn đề tạo ra một hành vi động, linh hoạt và đa dạng.2 Nguyên lí hoạt động Thuật toán ngẫu nhiên có điều kiện hoạt động dựa trên việc phân chia xác suất thực hiện các hành động khác nhau dựa trên điều kiện hiện tại của hệ thống, các bước của nó như sau. Xác định điều kiện: Xác định trạng thái hiện tại của đối tượng, ví dụ việc xác định xem bản thân có đói không, có mệt không, có đang hăng hái không, các yếu tố từ bên ngoài đang ảnh hưởng chúng ta như thế nào. Phân phối xác xuất: Dựa trên trạng thái hiện tại, phân phối xác suất cho các hành động khác nhau. Ví dụ: Khi ta đang đói: e 30% sẽ chọn việc mua gi đó dé ăn © 30% sẽ chọn việc mua gì đó dé uống e 20% sẽ chon không làm gì cả e 15% sẽ chon mua cả 2 ° Lựa chọn hành động: Sử dụng một hàm ngẫu nhiên dé quyết định hành động tiếp theo dựa trên xác suất đã phân phối.
Thực hiện hành động: Đối tượng thực hiện hành động đã chọn và cập nhật trạng thái. Xác định điều kiện Bình thường/Truy đuổi/Tìm kiếm bình thường Phân phối xác suất Bình thường 50% 50% Di chuyển Di chuyển điểm ngẫu nhiên tới điểm nhiệm vụ Lựa chọn hành động Di chuyển điểm ngẫu nhiên Thực hiện hành động Di chuyển điểm ngẫu nhiên Hình 2.3 Sơ đồ hoạt động của thuật toán ngẫu nhiên có điều kiện 2.3 Ý nghĩa và ứng dụng trong trò chơi Thuật toán ngẫu nhiên có điều kiện là một công cụ mạnh mẽ để tạo ra hành vi động và khó đoán trong nhiều ứng dụng khác nhau. Bang cách kết hợp xác suất và điều kiện, thuật toán này giúp tăng cường tính thực tế và thử thách trong các hệ thống mô phỏng và trò chơi. Thuật toán LOS ( Line of Sight ) 2.