Luận văn Ứng dụng trí tuệ nhân tạo trong xây dựng game

Ngày nay, do nhu cầu đời sống của con người ngày càng được nâng cao, trong đó nhu cầu giải trí của con người được quan tâm đến rất nhiều. Trong đó việc giải trí bằng Game máy tính ngày càng phát triển nhanh và lan rộng ra do sự lôi cuốn rất mạnh mẽ của nó. Hầu như ai đã sử dụng máy tính đều đã giải trí bằng một số game nào đó trên máy tính. Có thể nói Game là một thể loại phóng phú nhất trong tất cả các loại chương trình trên máy tính.

pdf120 trang | Chia sẻ: vietpd | Lượt xem: 1732 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận văn Ứng dụng trí tuệ nhân tạo trong xây dựng game, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ TRI THỨC NGUYỄN THANH PHONG ỨNG DỤNG TRÍ TUỆ NHÂN TẠO TRONG XÂY DỰNG GAME KHÓA LUẬN CỬ NHÂN TIN HỌC TP. HCM, 2005 TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ TRI THỨC NGUYỄN THANH PHONG - 0112191 ỨNG DỤNG TRÍ TUỆ NHÂN TẠO TRONG XÂY DỰNG GAME KHÓA LUẬN CỬ NHÂN TIN HỌC GIÁO VIÊN HƯỚNG DẪN TH.S BÙI TIẾN LÊN NIÊN KHÓA 2001-2005 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... ...................................................................................................... LỜI CẢM ƠN Em sẽ không thể hoàn thành luận văn nếu không có sự hướng dẫn và chỉ bảo tận tình của thầy Bùi Tiến Lên. Em xin chân thành cảm ơn sự chỉ bảo của thầy. Em cũng rất cảm ơn các thầy cô trong khoa Công nghệ Thông tin trường Đại học Khoa học Tự nhiên Tp.Hồ Chí Minh đã tận tình giảng dạy, truyền đạt những kiến thức quý báu và tạo điều kiện cho em hoàn thành luận văn này. Xin chân thành cảm ơn sự giúp đỡ, động viên của của tất cả các bạn trong quá trình thực hiện luận văn. Em cũng muốn cảm ơn những người thân trong gia đình đã động viên, giúp đỡ và tạo điều kiện để hoàn thành luận văn. Mặc dù đã cố gắng hoàn thành luận văn với tất cả sự nổ lực của bản thân, nhưng luận văn chắc chắn không tránh khỏi những thiếu xót. Em rất mong nhận được sự thông cảm và chỉ bảo tận tình của các thầy cô và các bạn. Tp.HCM 7/2005 Sinh viên thực hiện Nguyễn Thanh Phong Mục lục MỤC LỤC Chương 1 GIỚI THIỆU ................................................................................... 1 1. Lý do chọn đề tài ....................................................................................... 1 1.1. Các ngôn ngữ lập trình game............................................................ 1 1.2. Phân loại game.................................................................................. 2 1.2.1. Game hành động....................................................................... 2 1.2.2. Game nhập vai.......................................................................... 3 1.2.3. Game đua xe............................................................................. 3 2. Mục đích của đề tài ................................................................................... 3 Chương 2 CÁC THUẬT TOÁN TÌM ĐƯỜNG ĐI ....................................... 4 1. Mô tả các thủ tục tìm kiếm rộng, sâu và sâu dần ...................................... 6 2. Thuật giải tìm đường đi có giá thành nhỏ nhất AT ................................... 7 3.Tìm kiếm với tri thức bổ sung.................................................................... 8 4.Tìm đường đi trên đồ thị tổng quát ............................................................ 9 Chương 3 GAME ENGINE ........................................................................... 12 I. WED editor:................................................................................................... 13 1. Những khái niệm cơ bản ......................................................................... 13 a. Giao diện người dùng......................................................................... 13 b. Thanh Icon ......................................................................................... 15 c. Mode .................................................................................................. 15 d. Thiết kế một khung cảnh ................................................................... 14 e. Hướng đối tượng................................................................................ 16 f. Cửa sổ dự án ....................................................................................... 18 2. Các lệnh trong WED ............................................................................... 19 2.1.Các lệnh trong các thực đơn ............................................................ 19 2.1.1. Thực đơn file .......................................................................... 20 2.1.2. Thực đơn edit: ........................................................................ 24 i Mục lục 2.1.3. Thực đơn mode ...................................................................... 25 2.1.4. Thực đơn Object..................................................................... 29 2.1.5. Thực đơn Texture................................................................... 32 2.1.5. Thực đơn View....................................................................... 33 2.1.6. Thực đơn help ........................................................................ 34 2.2 Giao diện sử dụng ............................................................................ 35 2.3. Cửa sổ dự án ................................................................................... 36 2.3.1. Tab đối tượng ......................................................................... 36 2.3.2. Tab Views .............................................................................. 38 2.3.3. Tab Texture ............................................................................ 38 2.3.4. Tab Resource.......................................................................... 41 2.4. Cửa sổ Bookmark ........................................................................... 41 2.5. Thuộc tính của khối ........................................................................ 41 2.6. Thuộc tính của thực thể .................................................................. 43 3. Thiết kế một map..................................................................................... 45 4. Thực thể................................................................................................... 46 4.1. Thực thể mô hình............................................................................ 46 4.2. Thực thể Sprite................................................................................ 47 4.3. Thực thể Map.................................................................................. 47 4.4. Thực thể Địa hình (terrain) ............................................................. 48 4.5. Bóng................................................................................................ 48 4.5. Thuộc tính trong suốt...................................................................... 49 II. CÁCH SỬ DỤNG MED.............................................................................. 50 1. Trình thiết kế ........................................................................................... 50 1.1. Các thực đơn ................................................................................... 50 1.1.1. Thực đơn File ......................................................................... 50 1.1.2. Thực đơn Edit......................................................................... 53 1.1.3. Thực đơn View....................................................................... 55 ii Mục lục 1.1.4. Thực đơn Options................................................................... 56 1.1.5. Thực đơn Help........................................................................ 57 1.2. Toolbars................................................................................................ 58 1.2.1. Toolbar File ............................................................................ 58 1.2.2. Toolbar Edit............................................................................ 58 1.2.3. Toolbar Select ........................................................................ 60 1.2.4. Toolbar Mesh ......................................................................... 60 1.2.5. Toolbar các đối tượng cơ sở................................................... 61 1.2.6. Toolbar view .......................................................................... 62 1.2.7. Toolbar Frame........................................................................ 63 1.2.8. Thanh trạng thái ..................................................................... 64 2.Trình thiết kế Skin.................................................................................... 64 2.1. Các thực đơn ................................................................................... 65 2.1.1. Thực đơn File ......................................................................... 65 2.1.2. Thực đơn Edit......................................................................... 66 2.1.3. Thực đơn View....................................................................... 67 2.2. Các Toolbar..................................................................................... 68 2.2.1. Toolbar Skin........................................................................... 68 2.2.2. Toolbar Edit............................................................................ 68 2.2.3. Toolbar Paint .......................................................................... 69 III. SED, C-Script editor ................................................................................... 70 1. Giao diện sử dụng.................................................................................... 71 2. Soạn thảo ................................................................................................. 72 2.1. Lệnh Insert ...................................................................................... 72 2.2. Dòng chú thích................................................................................ 72 2.3. Nhảy đến một đoạn mã ................................................................... 72 2.4. Sử dụng danh sách các thành phần ................................................. 73 2.5. Kiểm tra cú pháp............................................................................. 73 iii Mục lục 2.6. Soạn thảo thông minh ..................................................................... 73 3. Cấu hình .................................................................................................. 74 4. Thực đơn.................................................................................................. 75 4.1. Thực đơn File.................................................................................. 75 4.2. Thực đơn Edit ................................................................................. 76 4.3. Thực đơn Options ........................................................................... 76 4.4. Thực đơn Tools............................................................................... 77 4.5. Thực đơn Debug ............................................................................. 77 IV. Giao tiếp với các DLL ................................................................................ 79 1. Bắt đầu với SDK ..................................................................................... 79 2. Sử dụng đối tượng C-Script trong một DLL........................................... 82 3. Sử dụng các hàm API.............................................................................. 83 4. Lập trình một game trong C++................................................................ 87 Chương 4 CÀI ĐẶT........................................................................................ 89 I. Người chơi ..................................................................................................... 89 1. Chuyển động vật lý.................................................................................. 89 a. Gia tốc, quán tính và lực ma sát......................................................... 89 b. Rơi từ trên xuống ............................................................................... 93 2. Cách di chuyển camera theo người chơi ................................................. 97 2.1. Tầm nhìn của người thứ nhất.......................................................... 97 2.2. Quay tự do tầm nhìn của người thứ 3 ........................................... 101 2.3. Cách để cho camera tránh chạm vào tường.................................. 106 II. Xe tự động.................................................................................................. 108 Tránh chướng ngại vật trên đường đi ........................................................ 108 iv Chương 1: Giới thiệu Chương 1 GIỚI THIỆU 1. Lý do chọn đề tài Ngày nay, do nhu cầu đời sống của con người ngày càng được nâng cao, trong đó nhu cầu giải trí của con người được quan tâm đến rất nhiều. Trong đó việc giải trí bằng Game máy tính ngày càng phát triển nhanh và lan rộng ra do sự lôi cuốn rất mạnh mẽ của nó. Hầu như ai đã sử dụng máy tính đều đã giải trí bằng một số game nào đó trên máy tính. Có thể nói Game là một thể loại phóng phú nhất trong tất cả các loại chương trình trên máy tính. Mặc dù các chương trình Game rất nhiều, nhưng để có thể viết ra được một game hay, có thể chơi được quả là một điều không dễ. Tuy vậy, với niềm đam mê về game máy tính, em cũng muốn tiếp cận với lĩnh vực này. 1.1. Các ngôn ngữ lập trình game Có rất nhiều chương trình hỗ trợ cho việc viết game: các ngôn ngữ lập trình như C++, Visual C++, Delphi, Dark Basic Pro, 3D Game Studio. Nhưng với các ngôn ngữ lập trình C++, Visual C++, DelPhi… có thể là những ngôn ngữ rất mạnh, có thể viết ra được những game có quy mô lớn. Đây là những ngôn ngữ lập trình có thể hoạt động trong nhiều lĩnh vực: với cơ sở dữ liệu, lập trình hệ thống, hoặc viết game…Do đó sự hỗ trợ của nó trong việc viết game là rất ít. Để có thể viết được một game bằng những ngôn ngữ lập trình này mà không sử dụng một thư viện nào, đòi hỏi phải bỏ ra rất nhiều công sức. Với engine Dark Basic Pro, đây là loại engine rất đơn giản và dễ sử dụng, là một ngôn ngữ Script theo họ Basic. Nó chỉ thích hợp với các game nhỏ. Tại sao lại sử dụng ngôn ngữ 3D Game Studio để viết game? 3D Game Studio là chương trình chuyên dụng dùng để tạo ra game 3D. 1 Chương 1: Giới thiệu Với hàng trăm game đã được phát hành, 3D Game Studio xứng đáng là một ngôn ngữ lập trình game lớn. Với 3D Game Studio, chúng ta có thể: - Tạo ra một game đơn giản từ những script mẫu có sẵn. - Tạo ra các game thương mại viết bằng ngôn ngữ script. - Có thể sử dụng VisualC++ hoặc Delphi để kết hợp với 3D Game Studio để viết game. Có rất nhiều tài liệu hướng dẫn lập trình game bằng 3D Game Studio. Ngay cả với những người chưa có kiến thức về lập trình, nhưng nếu theo từng bước hướng dẫn tạo một game hành động đơn giản thì cũng có thể hoàn thành nó trong một thời gian ngắn. Theo Dr.Dobb's Journal: “Đây là bộ công cụ tuyệt vời để nhanh chóng tạo ra mẫu ban đầu và phát triển ứng dụng 3D”. Chúng ta có thể sử dụng ngôn ngữ script trong 3D Game Studio để viết và phân phối một game thương mại. Dưới đây là những game thương mại được làm bằng 3D Game Studio: 1.2. Phân loại game Thể loại của game thì rất phong phú và đa dạng, ở đây chúng ta chỉ xét các thể loại game thường thấy nhất là: 1.2.1. Game hành động Game hành động xuất hiện rất nhiều trong cả game 3D và game 2D. Game loại này có đặc điểm chúng là tính co giật trong game, như trong game bắn 2 Chương 1: Giới thiệu súng. Game hành động thường đơn giản hơn tất cả các loại game khác bởi vì những người bình thường dễ dàng biết cách chơi và chơi hay game này . 1.2.2. Game nhập vai Game nhập vai thường có hai đặc trưng là: sự thay đổi, phát triển nhân vật và một câu chuyện mà trong đó nhân vật sẽ trải qua. 1.2.3. Game thể thao Game thể thao là sự thách thức cho các nhà thiết kế game. Không giống như hầu hết các thể loại game khác, người chơi biết rất ít về nó, trong game thể thao người chơi biết rất rõ vì nó mô phỏng một môn thể thao có sẵn trong thực tế. 1.2.3. Game đua xe Game đua xe tạo ra cảm giác giống như người chơi đang lái xe