1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Game 3d bombinternship

69 6 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 69
Dung lượng 2,3 MB

Nội dung

Mở đầu ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KHOA TIN - - LÊ THỊ NGỌC ANH KIẾN THỨC CẦN THIẾT ĐỂ TẠO GAME 3D TRÊN HAI NỀN TẢNG HỆ ĐIỀU HÀNH LÀ ANDROID VÀ WINDOWS KHÓA LUẬN TỐT NGHIỆP GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang Mở đầu MỞ ĐẦU Giới thiệu lý chọn đề tài Khi công nghệ đời kéo theo đời sản phẩm Và khởi đầu cho dịch vụ hỗ trợ Với đà phát triển thông tin di động nay, thiết bị di dộng trở thành thiết bị thiếu đa số gười Các trị chơi giải trí di động ngày đa dạng hơn, phong phú Đặc biệt với đời hệ điều hành Android tạo bước phát triển cho ứng dụng di động Công nghệ game ngày phát triển Tuy nhiên đa số game dạng 2D Thời gian gần xu hướng game game 3D ưa chuộng Game 3D xây dựng hệ thống đồ hoạ máy tính chiều đại (3 Dimentional), hệ thống đồ hoạ khai thác chiều không gian chiều ngang – dọc – sâu tạo nên giới hình khối khác hẳn giới hình phẳng 2D Đồ hoạ 3D khai thác tối đa hiệu ứng chiều đổ bóng, chiều ánh sáng, phản chiếu Đặc trưng 3D hậu cảnh lồi lõm không phẳng Do khai thác hệ thống chiều nên game 3D hầu hết xoay góc nhìn trừ vài game ý đồ nhà sản xuất nên không cho phép người chơi xoay góc nhìn Đặc trưng game 3D sử dụng chi tiết hoàn toàn 3D hậu cảnh, vật thể trừ tiền cảnh số chi tiết phụ nhỏ bắt buộc phải dùng 2D cho phù hợp (có thể để giảm nhẹ cấu hình) Một đặc điểm khác 3D hậu cảnh kết hợp mặt đất vịm trời thiết kế khơng gian game 3D theo hình mái nhà vịm Vì vậy, em chọn đề tài nhằm muốn nghiên cứu kỹ thuật làm game 3D hệ điều hành Android Bước đầu xây dựng Demo chương trình game đơn giản phục vụ cho trình nghiên cứu công việc tương lai sau GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang Mở đầu Mục đích ý nghĩa đề tài - Cũng cố kiến thức học nghiên cứu, tìm hiểu hệ điều hành Android, nghiên cứu cơng nghệ làm game 3D - Nghiên cứu xây dựng game đa tảng, trình chuyển từ Windows sang hệ điều hành Android - Xây dựng trò chơi BombInternship hệ điều hành Android, Windows Đối tượng phạm vi nghiên cứu - Đối tượng: Kiến thức cần thiết để tạo game 3D hai tảng hệ điều hành Android Windows - Phạm vi nghiên cứu: Quá trình nghiên cứu thực thi chương tình game 3D BombInternship gồm “team” người, phạm vi nghiên cứu em chương trình bao gồm: Chương trình game có nhiều Model, việc tìm kiếm Model Free load Model lên để kiểm tra phù hợp Model với game điều việc làm game Thực viết Class game:  Class LoadData: Thực việc load tất liệu game load tất Level, Model Texture Model 3D  Viết Class đối tượng Apple  Class đối tượng Bom: Khởi tạo giá trị ban đầu, thời gian tồn nổ phải cho lửa theo hướng  Thực việc AI Game  Tìm hiểu âm Windows GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang Mở đầu Tiến hành Test game sau hoàn thành xong chương trình để kiểm tra lỗi Phương án phát triển đề tài Quá trình nghiên cứu phát triển đề tài gồm bước sau đây: - Lập kế hoạch thực đề tài - Thiết kế hệ thống tổ chức liệu cho phù hợp - Xây dựng chương trình (chia nhỏ chức thành phần riêng để giải vấn đề) - Cũng cố kết đạt bao gồm: kiểm tra lỗi, kiểm thử chức hệ thống, kiểm tra đối tượng game - Trong suốt q trình nghiên cứu khơng ngừng học hỏi, tích góp tài liệu, kinh nghiệm làm game để phục vụ cho sau Cấu trúc luận văn Chương I Cơ sở lý thuyết đề tài Mô tả chi tiết lý thuyết cần thiết nói đến sử dụng trình làm game 3D Bao gồm lý thuyết OpenGL hỗ trợ cho việc thiết kế đồ họa 3D Open GL ES 2.0 hỗ trợ đồ họa 3D phức tạp thiết bị cầm tay nhúng Nó thư viện đồ hoạ cho thiết bị cầm tay nhúng với lập trình 3D phần cứng Các cơng cụ cần thiết trình làm Game Đánh giá ưu khuyết điểm lý thuyết áp dụng Chương Phân tích thiết kế trị chơi Từ sở lý thuyết hỗ trợ tảng lý thuyết q trình phân tích cấu trúc game 3D vể vòng lặp trò chơi để trò chơi chạy liên GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang Mở đầu tiếp, nội dung game, đồ họa 3D OpenGL ES âm hệ điều hành Sau tiến hành thiết kế Game 3D bombInternship dựa vào q trình ohaan tích Chương Quy trình chuyển trị chơi lên Android Game hồn chỉnh Windows tiến hành đưa lên điện thoại Phần trình bày cơng cụ hỗ trợ cho việc post game lên Android GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang Chương 1: Cơ sở lý thuyết CHƯƠNG CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI 1.1 Giới thiệu công cụ để làm đề tài game 3D 1.1.1 Visual C++ Visual C++ công cụ lập trình nằm Microsoft Visual Stidio Đây mơi trường lập trình đa dành cho ngơn ngữ C/C++ mơi trường lập trình hệ điều hành Windows nên Visual C++ cho phép lập trình viên thực nhiều cơng việc, hỗ trợ lập trình viên việc coding, thiết kế giao diện Trong VC++ taọ được: ứng dụng Windows hay thư viện liên kết động DLL…VC++ có nhiều cơng cụ giúp cho việc thiết kế giao diện chương trình, kiểm lỗi sửa lỗi 1.1.2 Giới thiệu OpenGL 1.1.2.1 Giới thiệu - Là tiêu chuẩn thiết kế đồ họa - OpenGL giao diện thiết kế đồ họa 3D (cũng dùng ứng dụng 2D) - Chứa khoảng 250 hàm để vẽ hình phức tạp từ hình đơn giản - Sử dụng rộng rãi game, CAD, thực tế ảo - Đối thủ DirectX Microsoft Là thư viện đồ hoạ mở có khoảng 150 hàm giúp xây dựng đối tượng thao tác cần thiết ứng dụng tương tác game 3D GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang Chương 1: Cơ sở lý thuyết  Open GL hỗ trợ: Các hàm đồ hoạ: - Xây dựng đối tượng phức tạp từ thành phần hình học (điểm, đoạn, đa giác, ảnh bitmap) - Sắp xếp đối tượng game 3D chọn điểm thuận lợi để quan sát - Tính tốn màu sắc đối tượng (mùa sắc đối tượng quy định điều kiện chiêú sáng, texture đối tượng, mơ hình đực xây dựng kết hợp yếu tố đó) - Biến đổi mơ tả tốn học đối tượng thông tin màu sắc thành phần pixel hình (quá trình gọi rasterzation) Có API đa tảng: Windows, Mac, Linux, Unix Các hệ thống dùng để nhúng: - Ịphone, Windows mobile… Dùng cho đa ngôn ngữ: - C, C++, PHP… Dùng cho cách vẽ 2D 3D: Các đối tuợng 3D phức tạp hình ảnh 2D game  Những thứ OpenGL không hỗ trợ: - Bản thân OpenGL khơng có sẵn hàm nhập xuất hay thao tác Windows - OpenGL sẵn hàm cấp cao để xây dựng mơ hình đối tượng, thay vào đó, người dùng phải tự xây dựng từ thành phần hình học (điểm, đoạn thẳng, đa giác) GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang Chương 1: Cơ sở lý thuyết 1.1.2.2 Cấu trúc lệnh OpenGL OpenGL sử dụng tiền tố gl từ viết hoa chữ - đầu để tạo nên tên lệnh Vi dụ: glClearColor ()… Tương tự, OpenGL đặt tên số bắt đầu GL_ từ tiếp sau - viết hoa cách dấu “_” Ví dụ: GL_COLOR_BUFFER_BIT Bên cạnh với số lệnh, để ám số lượng kiểu tham số - truyền, số hậu tố sử dụng bảng sau: Hậu tố Tương Kiểu liệu ứng kiểu C với Tương ứng với kiểu OpenGL B 8-bit integer Signed char Glbyte S 16-bit integer Short Glshort I 32-bit integer Int or long Glint, Glsizei 32-bit floatingpoint Float GLfloat, F Glclampf 64-bit floatingpoint Double Glbouble, D GLclampd 8-bit unsigned Unsigned char GLubyte, Ub integer 16-bit unsigned GLboolean Unsigned short GLushort Us integer GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang Chương 1: Cơ sở lý thuyết Ui 32-bit unsigned Unsigned int or GLuint, integer unsigned long GLenum, GLbitfield Bảng1-1: Bảng biểu diễn kiểu liệu OpenGL Ví dụ: glVertex2i (1, 3) tương ứng với xác định điểm (x, y) với x, y nguyên  Lưu ý: - OpenGL có định nghĩa số kiểu biến, việc sử dụng định nghĩa thay định nghĩa có sẵn C tránh gây lỗi biên dịch code hệ thống khác - Một vài lệnh OpenGL kết thúc chữ “v” nhằm giúp hiểu tham số truyền vào vector Ví dụ: glColor3fv (color_array) mảng chiều có phần tử float 1.1.2.3 Thư viện OpenGL - Core library - OpenGL utility library (GLU) - Link với hệ thống Window - OpenGL Utulity Toolkit (GLUT) - Để khắc phục số nhược điểm OenGL, GLUT tạo với nhiều hàm hỗ trợ - Quản lý Window GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang Chương 1: Cơ sở lý thuyết - Display callback - Nhập xuất (bàn phím, chuột…) - Vẽ số đối tượng 3D phức tạp (mặt cầu, khối hộp ) - OpenGL cho hệ thống nhúng -  Mobilphone  PDAS  Video game consoles Hệ toạ độ OpenGL: OpenGL sử dụng hệ toạ độ theo quy tắc bàn tay phải - Mối quan hệ OpenGL vơi API Hình1-1: Biểu diễn OpenGL mối quan hệ với API GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang 10 Chương 2: Phân tích thiết kế trò chơi UP FIRE OR BOMB No Kiểm tra Bomb, Fire, Wall, Empty Hướng =RIGHT Di chuyển Yes DOWN Bomb, Fire, Wall, Empty No LEFT Bomb, Fire, Wall, Empty No Hình 2-15: Biểu diễn AI Monster trường hợp 2.2.2.5 Đồ họa 2.2.3.5.1 Sơ đồ hoạt động OpeGL ES 2.0 chương trình Sơ đồ hoạt động OpeGL ES 2.0 chương trình game biểu diễn sơ đồ sau: Load Shader Render Free Shader Hình 2-16: Sơ đồ hoạt động OpenGL ES 2.0 chương trình 2.2.3.5.2 Cài đặt đồ họa Để cài đặt đồ họa với OpenGL ES 2.0 cần phải cài đặt tính sau: Tải shader biên dịch GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang 55 Chương 2: Phân tích thiết kế trò chơi Trong OpenGL ES 2.0, shader tập thị phần mềm viết ngôn ngữ GLSL (openGL Shader Language) người dùng tự viết nhằm mục đích tính tốn hiệu ứng dựng hình trực tiếp phần cứng đồ hoạ (GPU) với độ linh động cao bao gồm hai phần:Vertex Shader Fragment shader Vertex shader shader chuyên làm nhiệm vụ biến đổi toạ độ (quay, tịnh tiến, co giãn, chiếu ) thông tin đỉnh đầu vào.Các thị Vertex Shader thực thi nhiều lần tương ứng với số lượng đỉnh đầu vào Do đó, số lượng đỉnh đầu vào lớn tốc độ xử lý chậm Fragment Shader shader chuyên làm nhiệm vụ tính tốn hiệu ứng màu sắc cho phân mảnh.Các thị Fragment Shader thực thi nhiều lần tương ứng với số phân mảnh đầu Do số lượng phân mảnh đầu lớn nhiều so với số lượng đỉnh, thường tỉ lệ thuận với tổng diện tích mặt nằm NDC, phí tính tốn Vertex Shader lớn Ứng dụng đồ họa OpenGL ES hoạt động xác định cặp shader hệ thống Vì cần phải cài đặt shader cho lớp xử lý đồ họa  Tải shader từ tập tin  Biên dịch shader  Liên kết shader thành chương trình  Sử dụng chương tình để vẽ Vẽ đối tượng 3D Để vẽ đối tượng 3D dùng phép chiếu phối cảnh Một đối tượng 3D xác định: - Vị trí, liệu màu sắc đối tượng lưu dạng file obj có định dạng sau: GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang 56 Chương 2: Phân tích thiết kế trị chơi  v $x $y $z: đỉnh có tọa độ x, y, z Ví dụ:  vt $u $v: tọa độ uv đối tượng Ví dụ:  f $si $sj $si’ $sj’ $si’’ $sj’’ Ví dụ: - Texture: hình ảnh đắp lên đối tượng 2.2.2.6 Nhập Ta sử dụng hàm PointEvent để nhận xử lý kiện nhập từ phím, cảm ứng, chuột Android KeyEvent Windows - PointEvent thiết lập sau: - KeyEvent thiết lập sau: GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang 57 Chương 2: Phân tích thiết kế trị chơi 2.2.2.7 Âm - Trong Windows sử dụng OpenAL để thiết lập âm Do thời gian có hạn nên tìm hiểu âm game mà Cách thực sau:  Trước hết ta phải cài đặt OpenAL  Tạo hàm “DWORD WINAPI play (LPVOID lpParam)” chương trình play âm - Thiết lập âm Android: Ta đưa hai phương thức PlaySound để chạy âm StopSound để ngưng âm Ví dụ: Trong chương tình ta thiết lập PlaySound sau: Ví dụ: Trong chương tình ta thiết lập StopSound sau: GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang 58 Chương 3: Quy trình chuển trị chơi lên Android CHƯƠNG QUY TRÌNH CHUYỂN TRỊ CHƠI LÊN ANDROID 3.1 Cài đặt phần mềm Để tạo môi trường phát triển Android ta cần cài đặt sau: - Javar SDK: dùng để chạy ứng dụng Java - Cygwin từ 1.7 trở đi: dùng để gỉa lập môi trường phát triển Linux, GCC chạy NDK Android SDK: cần thiết để biên dịch đóng gói ứng dụng Android Ngồi - Android SDK cịn cung cấp cho cơng cụ để tương tác với thiết bị di động giả lập Android NDK: dùng để biên dịch chương trình C thư viện từ gọi từ Java 3.2 Hoạt động JNI quy trình biên dịch Như biết, ứng dụng Android chạy trên Java Muốn chạy C/C++ ta có hai giải pháp: - Sử dụng JNI: từ Android 1.5 trở lên - Sử dụng Native Activity: từ Android 2.3 trở sau Native Activity phương án lựa chọn tốt hơn, chương trình khơng tốn chi phí giao dịch máy ảo Javar C/C++ Tuy nhiên, tới thời điểm tại, số lượng thiết bị hỗ trợ Android 2.3 tương đối nên thực theo giải pháp JNI Hoạt động JNI được mô tả như sau: - Các phương thức JNI được đánh dấu từ khóa native GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang 59 Chương 3: Quy trình chuển trị chơi lên Android Các phương thức được viết C++ biên dịch thư viện liên - kết động so Thư viện liên kết động được Load lên chương trình Java lời gọi System.loadLibrary( ); - Khi chương trình Java có lời gọi tới hàm native, máy ảo Java tìm kiếm thư viện động xem hàm được cài đặt chưa, sau đối tượng Java được chuyển thành C++ để thực hiện lời gọi tới C++ - Trong C++ cung cấp thư viện cho phép giao tiếp tới máy ảo chương trình Java Quy trình xây dựng một chương trình có sử dụng JNI như sau: - Khai báo phương thức Native lớp Javar - Khai báo cài đặt phương thức C (Nếu C++ phải sử dụng “extern C” để tránh sửa tên C++) Quy tắc đặt tên hàm sau: tengoi_tenlop_tenphuongthuc Sau dùng NDK để biên dịch mã nguồn C thành thư viện liên kết động thư viện tự độngbỏ vào mục lib dự án Android Viết chương trình Javar gọi hàm chương Native Dùng SDK để biên dịch thành ứng dụng có file apk ->Do bước sử dụng NDK để biên dịch thực dấu nhắc lệnh, tạo tập tin lệnh để thực điều GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang 60 Chương 4: Một số kết Demo Game CHƯƠNG MỘT SỐ KẾT QUẢ DEMO CỦA GAME 4.1 Màn hình khởi chạy game Hinh 4-1: Hình ảnh hình khởi chạy game GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang 61 Chương 4: Một số kết Demo Game 4.2 Màn hình menu Hinh 4-2: Hình ảnh hình menu 4.3 Màn hình Option Hinh 4-3: Hình ảnh hình Option game GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang 62 Chương 4: Một số kết Demo Game 4.4 Các hình giới thiệu cốt truyện Hinh 4-4: Hình ảnh hình giới thiệu game GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang 63 Chương 4: Một số kết Demo Game 4.5 Màn hình level Hinh 4-1: Hình ảnh hình level 4.6 Mà hình level Hinh 4-5: Hình ảnh hình level GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang 64 Chương 4: Một số kết Demo Game 4.7 Màn hình level Hinh 4-6: Hình ảnh hình level 4.8 Màn hình level Hinh 4-7: Hình ảnh hình level GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang 65 Chương 4: Một số kết Demo Game 4.9 Màn hình level Hinh 4-8: Hình ảnh hình level 4.10 Màn hình Loss GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang 66 Chương 4: Một số kết Demo Game Hinh 4-9: Hình ảnh hình you loss 4.11 Màn hình Win Hinh 4-10: Hình ảnh hình chiến thắng GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang 67 Kết luận hướng phát triên KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết đạt  Tìm hiểu cách xây dựng game đa tảng trình chuyển ứng dụng từ Windows lên hệ điều hành Android  Biết cấu trúc game 3D  Xây dựng thành công game 3D hệ điều hành Windows Android với giao diện thân thiện dễ sử dụng Những vấn đề cịn tồn đọng  Các tính game đơn giản  Chưa khai thác triệt để AI game Hướng phát triên  Xây dựng thêm tính game: xuất nhập thêm tên người chơi, tạo thêm hiệu ứng cho game Đặc biệt phát triển game chuyển từ Windows lên Android mà nhiều hệ điều hành khác GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang 68 Tài liệu tham khảo TÀI LIỆU THAM KHẢO Tiếng Việt [1].Lê Phong: Hướng dẫn lập trình OpenGL [2].Lê Tấn Hùng, Huỳnh Quyết Thắng: Kỹ thuật đồ họa Tiếng Anh [3].Donald Hearn, M.Pauline Baker: Compile Graphics, Prentice, Inc, Englewood Cliffs, New Jersey 1996 Trang Web [4].Trang web: http://fly.cc.fer.hr/~unreal/theredbook/ [5] Một số tài liệu Gameloft đưa trang web khác GVHD: Th.S Lê Văn Mỹ SVTH: Lê Thị Ngọc Anh Trang 69 ... bước phát triển cho ứng dụng di động Công nghệ game ngày phát triển Tuy nhiên đa số game dạng 2D Thời gian gần xu hướng game game 3D ưa chuộng Game 3D xây dựng hệ thống đồ hoạ máy tính chiều đại... thuyết 1.3 Cấu trúc game - Game loop - Framerate - Bộ nhớ (Memory) - State 1.3.1 Game loop (vòng lặp game) - Đây thành phần quan trọng game Để cho game chạy ổn định liên tục game loop giúp cho... trạng thái game Chúng có liên quan chặt chẽ với Thơng thường game có trạng thái sau: mainmenu, gamestart, gamewin, gameover, about - Trong game BomInternship có trạng thái sau:  GameLoadingSate:

Ngày đăng: 08/05/2021, 20:57

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[4].Trang web: http://fly.cc.fer.hr/~unreal/theredbook/ Link
[1].Lê Phong: Hướng dẫn lập trình OpenGL Khác
[2].Lê Tấn Hùng, Huỳnh Quyết Thắng: Kỹ thuật đồ họa Tiếng Anh Khác
[3].Donald Hearn, M.Pauline Baker: Compile Graphics, Prentice, Inc, Englewood Cliffs, New Jersey 1996.Trang Web Khác
[5]. Một số tài liệu của Gameloft đưa và các trang web khác Khác
w