ThS37 028 ứng dụng trí tuệ nhân tạo trong xây dựng game

120 540 0
ThS37 028 ứng dụng trí tuệ nhân tạo trong xây dựng game

Đ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

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 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 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 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 LỜI CẢM ƠN Em hoàn thành luận văn hướng dẫn bảo tận tình thầy Bùi Tiến Lên Em xin chân thành cảm ơn bảo thầy Em cảm ơn thầy cô 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 kiến thức quý báu tạo điều kiện cho em hoàn thành luận văn Xin chân thành cảm ơn giúp đỡ, động viên của tất bạn trình thực luận văn Em muốn cảm ơn người thân gia đình động viên, giúp đỡ 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 nổ lực thân, luận văn chắn không tránh khỏi thiếu xót Em mong nhận thông cảm bảo tận tình thầy cô bạn Tp.HCM 7/2005 Sinh viên thực Nguyễn Thanh Phong Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Mục lục MỤC LỤC Chương GIỚI THIỆU 1 Lý chọn đề tài 1.1 Các ngôn ngữ lập trình game 1.2 Phân loại game 1.2.1 Game hành động 1.2.2 Game nhập vai 1.2.3 Game đua xe Mục đích đề tài Chương CÁC THUẬT TOÁN TÌM ĐƯỜNG ĐI Mô tả thủ tục tìm kiếm rộng, sâu sâu dần Thuật giải tìm đường có giá thành nhỏ AT 3.Tìm kiếm với tri thức bổ sung 4.Tìm đường đồ thị tổng quát Chương GAME ENGINE 12 I WED editor: 13 Những khái niệm 13 a Giao diện người dùng 13 b Thanh Icon 15 c Mode 15 d Thiết kế khung cảnh 14 e Hướng đối tượng 16 f Cửa sổ dự án 18 Các lệnh WED 19 2.1.Các lệnh thực đơn 19 2.1.1 Thực đơn file 20 2.1.2 Thực đơn edit: 24 i Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 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 khối 41 2.6 Thuộc tính thực thể 43 Thiết kế map 45 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 suốt 49 II CÁCH SỬ DỤNG MED 50 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 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 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 đối tượng 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 Giao diện sử dụng 71 Soạn thảo 72 2.1 Lệnh Insert 72 2.2 Dòng thích 72 2.3 Nhảy đến đoạn mã 72 2.4 Sử dụng danh sách thành phần 73 2.5 Kiểm tra cú pháp 73 iii Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Mục lục 2.6 Soạn thảo thông minh 73 Cấu hình 74 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 DLL 79 Bắt đầu với SDK 79 Sử dụng đối tượng C-Script DLL 82 Sử dụng hàm API 83 Lập trình game C++ 87 Chương CÀI ĐẶT 89 I Người chơi 89 Chuyển động vật lý 89 a Gia tốc, quán tính lực ma sát 89 b Rơi từ xuống 93 Cách di chuyển camera theo người chơi 97 2.1 Tầm nhìn người thứ 97 2.2 Quay tự tầm nhìn người thứ 101 2.3 Cách camera tránh chạm vào tường 106 II Xe tự động 108 Tránh chướng ngại vật đường 108 iv Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 1: Giới thiệu Chương GIỚI THIỆU Lý chọn đề tài Ngày nay, nhu cầu đời sống người ngày nâng cao, nhu cầu giải trí người quan tâm đến nhiều Trong việc giải trí Game máy tính ngày phát triển nhanh lan rộng lôi mạnh mẽ Hầu sử dụng máy tính giải trí số game máy tính Có thể nói Game thể loại phóng phú tất loại chương trình máy tính Mặc dù chương trình Game nhiều, để viết game hay, chơi điều không dễ Tuy vậy, với niềm đam mê game máy tính, em muốn tiếp cận với lĩnh vực 1.1 Các ngôn ngữ lập trình game Có nhiều chương trình hỗ trợ cho việc viết game: ngôn ngữ lập trình C++, Visual C++, Delphi, Dark Basic Pro, 3D Game Studio Nhưng với ngôn ngữ lập trình C++, Visual C++, DelPhi… ngôn ngữ mạnh, viết game có quy mô lớn Đây ngôn ngữ lập trình hoạt động nhiều lĩnh vực: với sở liệu, lập trình hệ thống, viết game…Do hỗ trợ việc viết game Để viết game ngôn ngữ lập trình mà không sử dụng thư viện nào, đòi hỏi phải bỏ nhiều công sức Với engine Dark Basic Pro, loại engine đơn giản dễ sử dụng, ngôn ngữ Script theo họ Basic Nó thích hợp với game nhỏ Tại lại sử dụng ngôn ngữ 3D Game Studio để viết game? 3D Game Studio chương trình chuyên dụng dùng để tạo game 3D Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 4: Cài đặt else // mặt đất { force.X = 10 * KEY_FORCE.Y; // lực quay force.Y = 0; force.Z = -0.5 * RESULT; // lực nẩy friction = 0.7; // lực ma sát đất } my.SKILL11 = TIME*force.X + max(1-TIME*friction,0)*my.SKILL11; // tính vận tốc tiến phía trước my.SKILL13 = TIME*force.Z + max(1-TIME*friction,0)*my.SKILL13; // tính vận tốc theo phương thẳng đứng dist.X = TIME * my.SKILL11; // quãng đường tiến phía trước dist.y = 0; dist.Z = TIME * my.SKILL13; // quãng đường rơi xuống move_mode = ignore_passable + glide; ent_MOVE(dist,nullvector); // di chuyển người chơi move_view(); // di chuyển camera theo wait(1); } } Bằng cách sử dụng lệnh if với kết truy tìm được, xác định người chơi không khí cách mặt đất quant Trong trường hợp đầu tiên, lực tạo từ bàn phím tác dụng, mà người chơi rơi xuống tác dụng trọng lực Trong trường hợp sau, xuất lực đàn hồi tương ứng với độ sâu thực thể chìm vào mặt đất, đẩy người chơi khỏi mặt đất Chúng ta sử dụng nhiều skill thực thể, skill13 lưu vận tốc theo phương thẳng đứng thực thể Cách di chuyển camera theo người chơi 2.1 Tầm nhìn người thứ 97 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 4: Cài đặt Hãy đặt viết mã nguồn sau: view 1st_person { layer = 1; pos_x = 0; pos_y = 0; } function init_cameras() { camera.visible = off; 1st_person.size_x = screen_size.x; 1st_person.size_y = screen_size.y; 1st_person.genius = player; 1st_person.visible = on; } function update_views() { 1st_person.x = player.x; 1st_person.y = player.y; 1st_person.z = player.z; 1st_person.pan = player.pan; 1st_person.roll = player.roll; 1st_person.tilt = player.tilt; } Và gọi hàm init_camera hàm main sau gọi hàm level_load Lưu chạy ứng dụng Khi camera di chuyển theo người chơi Chúng ta định nghĩa khung nhìn Hãy tượng tượng khung nhìn game Nó cửa sổ Chúng ta xác định vị trí kích thướt cửa sổ cách điều chỉnh thuộc tính pos_x, pos_y, size_x, size_y Như trên, định nghĩa, góc bên trái khung nhìn trùng với góc bên trái hình có kích thướt kích thướt hình 98 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 4: Cài đặt Hàm update_views, cập nhật sau trạng thái thay đổi tọa độ x, y, z camera game Ở đây, thay đổi đến tọa độ người chơi, làm cho camera luôn bên người chơi Đoạn mã chưa hoàn hảo Ví dụ, camera đặt điểm trung tâm mô hình người chơi, không đầu, nguyên nhân làm cho khung nhìn đặt gần đất Như chưa thể nhìn lên xuống Chúng ta định nghĩa thêm biến đầu đoạn mã var eye_height = 20; thay 1st_person.z = player.z; viết lại là: 1st_person.z = player.z + eye_height; Nó điều chỉnh camera lên cao 20 quant Nếu giá trị chưa tốt, điều chỉnh lại lúc chơi game Bây giờ, muốn người chơi nhìn lên nhìn xuống Để thực được, cần biến sau: var tilt_1st = 0; var cam_turnspeed = 2; var max_tilt_1st = 40; thay đổi dòng mã: 1st_person.tilt = player.tilt; thành: 1st_person.tilt = player.tilt + tilt_1st; thêm hàm sau: 99 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 4: Cài đặt function look_up() { if (tilt_1st < max_tilt_1st) { tilt_1st += cam_turnspeed; } } function look_down() { if (tilt_1st > -max_tilt_1st) { tilt_1st -= cam_turnspeed; } } Những hàm phải gọi lúc chơi game Ví dụ, định nghĩa này: on_pgup = look_up; on_pgdn = look_down; Hãy lưu lại chạy thử Không tồi, chưa có tác dụng mong muốn Nếu ấn phím giữ nó, khung nhìn di chuyển không thay đổi Chúng ta phải ấn nhiều lần để khung nhìn di chuyển điều chậm chạp Chúng ta thay đổi nào? Thay đổi định nghĩa on_pageup on_pagedown sau: on_pgup = handle_pageup; on_pgdn = handle_pagedown; Và định nghĩa hàm sau: 100 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 4: Cài đặt function handle_pageup() { while (key_pgup) { look_up(); wait(1); } } function handle_pagedown() { while (key_pgdn) { look_down(); wait(1); } } Theo cách hàm gọi trạng thái phím ấn Nếu camera quay nhanh chậm, điều chỉnh giá trị cam_turnspeed Nếu phạm vi khung nhìn nhỏ để người chơi thay đổi góc nhìn nhiều hơn, thay đổi biến max_tilt_1st Giá trị 90 có nghĩa là: người chơi nhìn thẳng lên xuống Giá trị 90 tức người chơi nhìn ngược sau 2.2 Quay tự tầm nhìn người thứ Bây muốn tạo khung nhìn quay người thứ Có hai cách thực hiện: cách thứ tạo camera bên người chơi không quay, đi, luôn đối diện với từ hướng Cách thứ tạo camera rẽ người chơi rẽ, nằm đằng sau người chơi (hoặc trước, bên cạnh …) Chúng ta làm cho camera rẽ phóng to thu nho tự Để bắt đầu, tạo khung nhìn người thứ luôn đối mặt với 101 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 4: Cài đặt người chơi từ hướng thay đổi muốn khung nhìn quay với thực thể Định nghĩa khung nhìn thứ sau: view 3rd_person { layer = 1; pos_x = 0; pos_y = 0; } Thêm dòng sau vào bên hàm "init_cameras": 3rd_person.size_x = screen_size.x; 3rd_person.size_y = screen_size.y; Chúng ta chưa làm cho nhìn thấy Thay vì, thay đổi camera lúc chơi game Chúng ta định nghĩa thủ tục chuyển đổi camera bây giờ: var cam_mode = 0; // cho người thứ nhất, cho người thứ function toggle_cams() { if (cam_mode == 0) { // Thay đổi đến người thứ 1st_person.visible = off; 3rd_person.visible = on; cam_mode = 1; } else { // thay đổi đến người thứ 3rd_person.visible = off; 1st_person.visible = on; cam_mode = 0; } } on f8 = toggle cams; 102 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 4: Cài đặt Như vậy, cách nhấn f8 ta chuyển đổi khung nhìn Tuy nhiên, chưa có tác dụng, tọa độ x, y, z người thứ chưa định nghĩa Chúng ta định nghĩa cách thay đổi hàm "update_views" Nhưng định nghĩa camera quay quanh người chơi nào? Nó nên nằm mặt phẳng, giá trị z giống Nhưng tính giá trị x y nào? Chúng ta cần chút toán học Tưởng tượng người chơi quan sát từ phía Cách tốt lấy tờ báo đặt điểm nó, nơi đó, để vị trí người chơi thấy từ phía Vẽ đường tròn xung quanh điểm Đây vòng tròn mà camera di chuyển Vòng tròn có bán kính Giả sử vòng tròn có điểm điểm gốc, xác định điểm P vòng tròn cung đường thẳng vẽ từ gốc đến tâm từ P đến tâm đường tròn Như vậy, có khoảng cách đến người chơi (bán kính đường tròn) góc mặt phẳng vị trí camera xác định 103 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 4: Cài đặt var dist_planar = 300; // khoảng cách đến người chơi var cam_angle = 0; function update_views() { if (cam_mode == 0) { 1st_person.x = player.x; 1st_person.y = player.y; 1st_person.z = player.z + eye_height; 1st_person.pan = player.pan; 1st_person.roll = player.roll; 1st_person.tilt = player.tilt + tilt_1st; } else { 3rd_person.x = player.x - cos (cam_angle) * dist_planar; 3rd_person.y = player.y - sin (cam_angle) * dist_planar; 3rd_person.z = player.z; 3rd_person.pan = cam_angle; 3rd_person.roll = 0; 3rd_person.tilt = 0; } } Lưu mã nguồn chạy Chọn f8 để chuyển đổi khung nhìn Nên xem người chơi khung nhìn người thứ Khi di chuyển, camera luôn di chuyển khoảng cách với người chơi, không thay đổi vị trí người chơi rẽ Nếu thay đổi giá trị biến dist_planar camera tiến lại gần lùi xa Nếu thay đổi góc cam_angle quay xung quanh người chơi, luôn đối diện với người chơi Tuy nhiên vấn đề người chơi gần tường Camera thường xuyên xuyên qua tường, chướng ngại vật chắn tầm nhìn người chơi Chúng ta giải vấn đề phần sau Bây thay đổi mã nguồn ít…chúng ta muốn di chuyển camera lên phía đối diện với người chơi Và cần phải giữ 104 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 4: Cài đặt khoảng cách đến người chơi, di chuyển không theo đường tròn mà theo hình cầu Chúng ta thực điều nào? Hãy tưởng tượng người chơi nhìn từ bên cạnh Nếu camera nằm mặt phẳng XY người chơi Hãy vẽ đường thẳng từ đến người chơi, nhận góc mặt phẳng XY đường Góc xác định xác vị trí người chơi Hình sau biểu diễn vị trí camera trường hợp này: Lúc cần chỉnh lại mã nguồn sau: 105 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 4: Cài đặt var dist_total = 300; // thay đổi giá trị để tiến lại gần xa thực thể var tilt_3rd = 0; function update_views() { else { dist_planar = cos (tilt_3rd) * dist_total; 3rd_person.x = player.x - cos (cam_angle) * dist_planar; 3rd_person.y = player.y - sin (cam_angle) * dist_planar; 3rd_person.z = player.z + sin (tilt_3rd) * dist_total; 3rd_person.pan = cam_angle; 3rd_person.roll = 0; 3rd_person.tilt = - tilt_3rd; } Bằng cách thay đổi giá trị biến tilt_3rd, cam_angle, dist_total, di chuyển camera tự xung quanh người chơi Nó di chuyển mặt cầu với bán kính thay đổi cách thay đổi giá trị biến 2.3 Cách camera tránh chạm vào tường Ý tưởng gửi tia từ người chơi đến vị trí camera, thấy có chướng ngại vật nằm tia Khi đó, khoảng cách người chơi camera cần thay đổi… khoảng cách người chơi chướng ngại vật Thêm dòng sau vào hàm update_views: 106 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 4: Cài đặt function update_views() { 3rd_person.roll = 0; 3rd_person.tilt = - tilt_3rd; validate_view(); } } hàm định nghĩa sau: var dist_traced; function validate_view() { my = player; trace_mode = ignore_me + ignore_passable; dist_traced = trace (player.x, 3rd_person.x); if (dist_traced == 0) { return; } // không chạm vào chướng ngại vật if (dist_traced < dist_total) { dist_traced -= 5; // Di chuyển tường dist_planar = cos (tilt_3rd) * dist_traced; 3rd_person.x = player.x - cos (cam_angle) * dist_planar; 3rd_person.y = player.y - sin (cam_angle) * dist_planar; 3rd_person.z = player.z + sin (tilt_3rd) * dist_traced; } } xác định vị trí camera cách hoàn toàn giống cách trên, Hàm sử dụng khoảng cách đến người chơi, khoảng cách từ người chơi đến chướng ngại vật Nó thay đổi từ từ để ngăn chặn việc camera nằm bên tường Để đặt camera sau người chơi, thay đổi dòng: 3rd_person.x = player.x - cos (cam_angle) * dist_planar; 3rd_person.y = player.y - sin (cam_angle) * dist_planar; thành: 107 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 4: Cài đặt 3rd_person.x = player.x - cos (cam_angle + player.pan) * dist_planar; 3rd_person.y = player.y - sin (cam_angle + player.pan) * dist_planar; cần thêm góc quay thực thể (player.pan) vào cam_angle II Xe tự động Tránh chướng ngại vật đường Giả sử người chơi muốn di chuyển từ điểm bắt đầu đến điểm kết thúc Tất nhiên chướng ngại vật hết đơn giản, cần cho di chuyển theo đường thẳng qua điểm bắt đầu điểm kết thúc Ở đặc biệt ý đến trường hợp: điểm bắt đầu kết thúc có chướng ngại vật: xe khác chướng ngại vật tĩnh Hình 108 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 4: Cài đặt Ví dụ đây: để người chơi di chuyển đến vị trí ta nhấp chuột đến vị trí cần người chơi cần đến: Lúc điểm bắt đầu vị trí người chơi, điểm kết thúc vị trí nút chuột Có hướng khác xung quanh người chơi, hướng khác ta xem nút Một nút có độ rộng khác tùy thuộc vào muốn chọn Hình Nếu nút chứa chướng ngại vật ta xem nút nút giá trị, không chọn lúc tìm đường đến đích v v v v bđ v kt V Hình 109 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 4: Cài đặt Giả sử từ nút bắt đầu bđ, muốn tìm đường đi đến nút cần đến (nút kt) Và nút v chướng ngại vật: Ở đây, nút trung gian (như nút 0, … 7), chứa giá trị chi phí đường (waycost), chi phí toàn nút (nodecost) Mỗi nút có nút cha, nút cha có nút (trong trường hợp bình thường), nằm xung quanh nút Giả sử nút có chi phí đường waycost, nút có waycostcon=waycostcha+1; Trong nút bắt đầu nút cha ta cho waycost Ở ta sử dụng heuristic, khoảng cách từ nút đến nút đích (nút kt), ta kí hiệu goal_dist, chi phí nút là: nodecost=waycost+goal_dist Như thuật toán gồm bước sau: Bước 1: Mở nút bắt đầu Bước 2: - Chọn danh sách nút mở nút có nodecost nhỏ - Nếu không nút kết thúc thuật toán Bước 3: - Nếu nút nút đích thuật toán kết thúc - Nếu không thì: + Tạo nút từ nút này, với điều kiện nút nút chứa chướng ngại vật + Đóng nút lại mở tất nút tạo Bước 4: Với thuật toán vậy, hình để tìm đường từ điểm bắt đầu (bd) đến điểm kết thúc (kt), ta qua đường qua nút 1, 2, 3, 4, 110 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 4: Cài đặt TÀI LIỆU THAM KHẢO [1] Hướng dẫn có sẵn chương trình 3D Game Studio [2] Các tài liệu hướng dẫn trang web: www.3DGameStudio.com [3] Bạch Hưng Khang, Hoàng Kiếm, Trí tuệ nhân tạo, phương pháp ứng dụng, Nhà xuất Khoa học Kỹ thuật Hà Nội - 1999 111 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 [...]... 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... 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. .. ở đâ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 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 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... 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. .. WED, một chương trình thiết kế khung cảnh trong game - Tìm hiểu về MED, một chương trình thiết kế các mô hình trong game - Tìm hiểu về SED, trình soạn thảo dùng để viết các câu lệnh script để kết nối các mô hình được tạo ra trong MED, các khung cảnh được tạo ra trong WED và sử dụng những hàm có sẵn trong SED hoặc trong các DLL khác để tạo ra một game Sử dụng thuật toán cổ điển A* tìm kiếm đường đi để... 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 bên ngoài thế giới thực Tuy trong đề tài của em không thể nói là viết ra được một game chơi được như một game đua xe, mà đây chỉ là một chương trình ở mức độ mô phỏng giao thông trên đường phố 2 Mục đích của đề tài Tìm hiểu ngôn ngữ lập trình game trong 3D GameStudio: - Tìm hiểu về WED, một chương trình thiết kế khung cảnh trong. .. instance có trước 3D GameStudio cũng là một game engine Nó bao gồm 3 thành phần sau: WED editor, MED, C-Script editor Chúng ta cùng tìm hiểu cách sử dụng của 3 bộ phận của 3D GameStudio 12 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 3: Game Engine – Cách sử dụng WED I WED editor WED là một trình biên soạn Lập trình viên có thể sử dụng nó để tạo ra một thế giới ảo của game WED là công... một cách đơn giản và nhanh chóng 1.Những khái niệm cơ bản a Giao diện sử dụng Khi mở WED, màn hình giao diện sau sẽ xuất hiện: 13 Viết thuê luận văn thạc sĩ Luanvanaz@mail.com - 0972.162.399 Chương 3: Game Engine – Cách sử dụng WED Đây chính là môi trường mà chúng ta sẽ làm việc để tạo ra một game trong 3D GameStudio Tạo ra một game 3D, tức là đưa những đối tượng vào môi trường 3D này, và gắn các thuộc... các tri thức bổ sung ngoài thông tin về đỉnh, cung, giá thành − Sử dụng tri thức bổ sung để tìm cách giải riêng biệt cho vấn đề mà bỏ qua việc xây dựng cây biểu diễn cho vấn đề − Xây dựng biểu diễn vấn đề dưới dạng cây có tính đến tri thức bổ sung trong cấu trúc cây hoặc giá thành các cung Ngoài ra có có cách tiếp cạn theo hướng xây dựng các thuật giải “vạn năng”, tìm kiếm đường đi với tri thức bổ sung... nó, chúng ta có thể xây dưng một khung cảnh từ những đối tượng có thực mà không cần phải sử dụng hàng ngàn các khối và đỉnh Phương pháp này có tính dễ điều chỉnh và dễ mang chuyển Người sử dụng có thể tạo ra các cấu trúc khác nhau một cách độc lập, để từ đó tạo ra một thư viện các đối tượng phức tạp để có thể sử dụng lại sau này Vì thế chúng ta sẽ không phải mất thời gian để xây dựng lại những đối tượng

Ngày đăng: 14/06/2016, 16:37

Từ khóa liên quan

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

Tài liệu liên quan