Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
2,24 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO CUỐI KÌ ĐỒ ÁN Đề tài: Phát triển game 3D, VR Giảng viên hướng dẫn: Nguyễn Thị Thanh Trúc Sinh viên thực hiện: Nguyễn Du Phúc Ngân Hứa Văn Tuấn Anh TPHCM, 24/7/2020 ~1~ 17520792 17520232 NHẬN XÉT CỦA GIẢNG VIÊN ~2~ LỜI CẢM ƠN Lời đầu tiên, nhóm chúng em xin bày tỏ lịng biết ơn sâu sắc đến cô Nguyễn Thị Thanh Trúc – Giảng viên hướng dẫn môn Đồ án SE122.L11.PMCL, người đồng hành tận tình hướng dẫn cho nhóm qua buổi thảo luận Chính nhờ giúp đỡ hết lịng mà nhóm chúng em hồn thiện được đồ án cách suôn sẻ Mặc dù kiến thức nhóm chúng em cịn hạn hẹp nên khơng thể tránh khỏi thiếu sót nhóm chúng em cố gắng hoàn thiện đồ án thời hạn, hạn chế mắc lỗi Vì vậy, thành viên nhóm ln mong đợi nhận ý kiến đóng góp q báu từ qua lắng nghe, tiếp thu để rút kinh nghiệm, tự sửa chữa, hồn thiện thân tinh thần nghiêm túc, tự giác học hỏi Bên cạnh đó, xin gửi lời cảm ơn đến tất đóng góp thành viên nhóm, người nỗ lực tìm kiếm tài liệu đưa ý tưởng để hoàn thành đồ án cách tốt Mong sau hoàn thành đồ án nhóm cải thiện phần kĩ học tập, kĩ làm việc nhóm thân Trong q trình làm đề tài báo cáo, khơng tránh khỏi nhiều điều thiếu sót, mong nhận phản hồi từ bạn để góp phần làm cho báo cáo thêm hoàn thiện Em xin chân thành cảm ơn ! TP Hồ Chí Minh, tháng 11 năm 2020 Nguyễn Du Phúc Ngân Hứa Văn Tuấn Anh ~3~ Mục Lục: Chương 1: Giới thiệu đề tài Dẫn nhập: • • Nhận thấy tiềm ngành phát triển game thị trường nước ta Việt Nam có nguồn nhân lực dồi ham học hỏi xong thị trường chưa thật bùng nổ, lĩnh vực phát triển game giới dần tách thành ngành riêng biệt phát triển vượt bậc khả mang lại doanh thu cao Đồng thời nhóm muốn thử sức với dự án mẻ, công nghệ thịnh hành thị trường bồi dưỡng thêm kỹ tư phát triển môn phát triển game nên nhóm trí chọn đề phát triển game tảng Unity Nêu tổng quan vấn đề đề tài: • • • • Nghiên cứu làm quen với Cocos2dx: Nhóm tìm kiếm thông tin mạng làm quen với công nghệ Cocos2dx thực hành với hướng dẫn có sẵn nắm vững lý thuyết yêu cầu công nghệ Lên ý tưởng cho game: Nhóm bàn bạc lên ý tưởng chọn thể loại cho game hướng tiếp cận, tham khảo game có thể loại Bắt đầu xây dựng game: Dựa theo ý tưởng mục tiêu yêu cầu đề nhóm bắt đầu phân chia công việc đặt hạn mức thời gian hoàn thành tiến hành bắt đầu làm game Chạy thử sửa lỗi: Chạy thử tính nhỏ đánh giá nhận xét tính hiệu công việc xem xét loại bỏ phát triển tính ~4~ • • Hồn thiện gia cơng: Sau game gần hồn thiện nhóm xem xét đánh giá so sánh với mục tiêu đề ban đầu ( Game làm có giống với mục tiêu đề ban đầu khơng, tính có hoạt động yêu cầu ko,…) Đưa game lên tảng Android: Nghiên cứu đưa game lên tảng di động chạy thử kiểm tra Hoàn tất Báo cáo Bài toán a) Giới hạn/Phạm vi: • Nền tảng Android, Windows ( Unity ) b) Các nội dung nghiên cứu thực • Google Cardboard • Unity • Tham khảo tựa game thể loại • Kiến thức làm game c) Kết hướng tới • Xây dựng thành cơng game VR dạng First person Shooter với cơng nghệ Unity • Sử dụng thành thạo công cụ Unity ( sử dụng đươc lớp hỗ trợ, công dụng hàm ) • Xây dựng tư logic lập trình phát triển game Chương 2: Các kiến thức/công nghệ tảng Trình bày kiến thức/cơng nghệ tảng, liên quan trực tiếp đến đề tài • Unity: Unity công cụ đa tảng phát triển Unity Technologies, công bố phát hành lần vào tháng năm 2005 Hội nghị nhà phát triển toàn cầu Apple Inc với tư cách cơng cụ trị chơi dành riêng cho Mac OS X Tính đến năm 2018, động mở rộng để hỗ trợ 25 tảng Cơng cụ sử dụng để tạo trò chơi thực tế ảo thực tế ảo ba chiều, hai chiều, mô trải nghiệm khác Unity áp dụng ngành bên ngồi trị chơi điện tử, chẳng hạn phim, ô tô, kiến trúc, kỹ thuật xây dựng ~5~ • Google Cardboard: Google Cardboard tảng thực tế ảo (VR) Google phát triển Được đặt tên cho thiết bị xem bìa cứng gập lại để lắp điện thoại thông minh vào, tảng thiết kế hệ thống chi phí thấp để khuyến khích quan tâm phát triển ứng dụng VR Unity • • Các khái niệm - Scene thùng chứa nhiều đối tượng trò chơi - GameObject đối tượng đại diện cho nhân vật, đạo cụ, đèn, máy ảnh hiệu ứng đặc biệt Trong ứng dụng này, sử dụng đối tượng 3D bao gồm hình dạng nguyên thủy mặt phẳng, hình khối hình cầu - Component xác định hành vi đối tượng trò chơi Về bản, thành phần Transform xác định vị trí, xoay tỷ lệ đối tượng trò chơi giá trị biểu thị dạng tọa độ X, Y Z cho thuộc tính Theo mặc định, vị trí đặt thành (0,0,0), cịn gọi điểm gốc từ nơi tất phép tính tọa độ diễn cảnh - Material kết cấu màu sắc cho đối tượng Trong ứng dụng này, giới hạn việc sử dụng vật liệu để tô màu cho đối tượng không sâu vào chi tiết kỹ thuật khác Các ưu điểm Unity Phát triển game cách kéo thả Scripting language sử dụng Javascript C# Bản miễn phí sử dụng để phát triển game thương mại Đây công cụ phát triển game cộng đồng làm game ưa thích sử dụng, hiểu đơn giản Unity 3D Game công cụ trung gian tương tác để thiết kế phát triển game, gắn kết với nhiều ứng dụng hệ thống với Unity 3D Game hỗ trợ tốt cho game online đa tảng, hoạt động nhiều nhóm thiết bị, từ trình duyệt web PC điện thoại hay máy tính bảng Tuy sinh sau đẻ muộn với tảng khác, Unity 3D tảng phổ biến toàn giới với 47% nhà phát triển game ưu tiên sử dụng Chi phí thấp: Những cá nhân doanh nghiệp có doanh thu 100.000 USD/năm dùng miễn phí engine Unity 3D, vàUnity ~6~ Technology thu phí 1.500 USD/năm cho Pro- số khiêm tốn so với engine mang lại Cộng đồng lớn mạnh: Là engine phổ biến giới, Unity có cộng đồng sử dụng lớn mạnh Mọi thắc mắc bạn Unity trả lời website cộng đồng http://answers.unity3d.com Các tân binh dễ dàng kế thừa scripts kho đồ họa đẳng cấp có sẵn để giúp cho sản phẩm thân phong phú Cập nhật thường xuyên Unity phiên Unity giới thiệu vào đầu tháng năm 2015 Game Developers Conferencer Những tính ấn tượng giới thiệu phiên tạo thêm niềm tin tưởng vững sức mạnh khó vượt qua từ Unity 10 Đa tảng: Game dễ dàng export Android, iOS hay Windows Phone Chương 3: Xây dựng ứng dụng Tổng quan-khảo sát ứng dụng liên quan: • Half life: Alyx: Half-Life: Alyx trò chơi thực tế ảo (VR) hỗ trợ tất tai nghe VR tương thích với SteamVR, bao gồm Valve Index, HTC Vive, Oculus Rift, Oculus Quest (có dây thơng qua Oculus Link khơng dây Virtual Desktop) tất Tai nghe Windows Mixed Reality • Portal: Portal trò chơi tảng câu đố năm 2007 phát triển xuất Valve Nó phát hành gói, The Orange Box, cho Windows, Xbox 360 PlayStation 3, kể từ chuyển sang hệ thống khác, bao gồm Mac OS X, Linux Android (thông qua Nvidia Shield) Tổng quan ứng dụng • Bối cảnh: Game lấy bối cảnh vào tương lai xa vời người chạm đến ngưỡng tuyệt đối khoa học, kĩ thuật Một nhóm nhà khoa học với tiến vượt bật phát cách để trở nên việc đưa “Soul” vào máy lưu trữ dạng liệu, “Soul” lưu trữ nơi sống giới ảo gọi Eden, tạo cỗ ~7~ máy tồn với lượng vĩnh cữu mang tên The Creator Một nhà khoa học, tiến sĩ Banana, muốn than trở thành chúa trời giới Eden mà truyền function khiến cho Soul ông hòa làm với The Creator Nhưng người đồng nghiệp ơng, người chơi, tiến sĩ Apple đoán trước điều tạo hệ thống Protector chặn function bất thường thứ nằm ngồi dự tốn Apple function mà Banana đữa vào khiến chức The Creator conflict tạo Virus giới Eden phá hủy giới Nhưng may mắn hệ thống Protector Apple mà Soul cư dân Eden lưu lại truyền vào file chứa tạm thời khóa Virus vào vùng khơng gian kín nhằm chặn chúng tìm phá hủy file lưu trữ Soul Apple phải vào vùng không gian tiêu diệt hết Virus kẹt nơi tiêu diệt Soul Banana thao túng The Creator • Gameplay: Trò chơi theo dạng 1st person shooter Người chơi phải nhật Key rải rác khắp map để mở khóa tiêu diệt hết Virus map để hồn thành vịng chơi Các áp dụng framework/lib đề tài vào ứng dụng: a) Unity Asset Store Unity Asset Store chứa thư viện Asset thương mại miễn phí mà Unity Technologies thành viên cộng đồng tạo Có sẵn nhiều loại nội dung, bao gồm Kết cấu, Mơ hình, hoạt ảnh, tồn ví dụ dự án, hướng dẫn tiện ích mở rộng Trình chỉnh sửa Bạn truy cập nội dung mua tải xuống từ giao diện tích hợp Unity Editor, cho phép bạn tải xuống nhập nội dung trực tiếp vào dự án Người dùng Unity trở thành nhà xuất Asset Store bán nội dung họ tạo Để biết thêm thông tin, xem Xuất Asset Store Trang web Asset Store Để truy cập Asset Store, mở trình duyệt web điều hướng đến https://assetstore.unity.com/ ~8~ ~9~ Từ trang web Asset Store, bạn tìm thấy gói Asset để mua xem danh sách Asset bạn sở hữu Từ trang web Asset Store, bạn tìm thấy gói Asset để mua xem danh sách Asset bạn sở hữu (A) Menu sưu tập giúp bạn thu hẹp danh sách gói Nội dung phù hợp Chúngnhóm gói Nội dung có liên quan lại với hiển thị chúng danh sách Ví dụ: bạn chọn Địa hình từ menu Cơng cụ để xem Gói nội dung có chứa cơng cụ xây dựng địa hình (B) Hộp tìm kiếm cho phép bạn tìm kiếm gói Nội dung cách nhập từ khóa, chẳng hạn tên gói Nội dung, từ cụm từ mơ tả tên tệp phù hợp với tệp gói Nội dung (C) Các liên kết nhanh cung cấp quyền truy cập vào khu vực sau: Danh sách nội dung mua tải xuống cho tài khoản bạn (trang Nội dung tôi) Danh sách nội dung bạn đánh dấu Mục yêu thích Giỏ hàng bạn Các ứng dụng Asset Store, chẳng hạn Trang tổng quan, Kết nối, Câu trả lời, Diễn đàn Phân phối ID Unity (tài khoản) bạn, nơi bạn xem sửa đổi cài đặt, chẳng hạn danh sách tùy chỉnh, giấy phép, thông báo, quyền riêng tư liệu đổi phiếu thưởng xem khoản tín dụng Asset Store bạn (D) Danh sách gói Nội dung phù hợp với tìm kiếm, lọc, xếp danh mục bạn chọn Ngoài ra, Unity hiển thị đề xuất danh sách đặc biệt gói Asset (E) Thanh bên lọc giúp thu hẹp danh sách gói Nội dung hiển thị Bạn áp dụng lọc cho tìm kiếm, danh mục, lựa chọn lược đồ xếp mà bạn thực ~ 10 ~ b) NavMeshAgent Các thành phần NavMeshAgent giúp bạn tạo nhân vật tránh tiến tới mục tiêu chúng Các agent cảm giới trò chơi cách sử dụng NavMesh chúng biết cách tránh chướng ngại vật di chuyển khác Việc tìm đường dẫn lập luận không gian xử lý cách sử dụng API tập lệnh NavMesh Agent Property Function Agent Size Radius Radius of the agent, used to calculate collisions between obstacles and other agents Height The height clearance the agent needs to pass below an obstacle overhead Base offset Offset of the collision cylinder in relation to the transform pivot point Steering ~ 11 ~ Property Function Speed Maximum movement speed (in world units per second) Angular Speed Maximum speed of rotation (degrees per second) Acceleratio n Maximum acceleration (in world units per second squared) Stopping distance The agent will stop when this close to the goal location Auto Braking When enabled, the agent will slow down when reaching the destination You should disable this for behaviors such patrolling, where the agent should move smoothly between multiple points Obstacle Avoidance Quality Obstacle avoidance quality If you have high number of agents you can save CPU time by reducing the obstacle avoidance quality Setting avoidance to none, will only resolve collision, but will not try to actively avoid other agents and obstacles Priority Agents of lower priority will be ignored by this agent when performing avoidance The value should be in the range 0–99 where lower numbers indicate higher priority Path Finding ~ 12 ~ Property Function Auto Traverse OffMesh Link Set to true to automatically traverse off-mesh links You should turn this off when you Auto Repath When enabled the agent will try to find path again when it reaches the end of a partial ou want to use animation or some specific way to traverse off-mesh links path When there is no path to the destination, a partial path is generated to the closest reachable location to the destination Area Mask Area mask describes which area types the agent will consider when finding a path When you prepare meshes for NavMesh baking, you can set each meshes area type For example you can mark stairs with special area type, and forbid some character types from using the stairs Chi Tiết: Các agent xác định hình trụ thẳng đứng có kích thước định thuộc tính Bán kính Chiều cao Hình trụ chuyển động với vật ln đứng thẳng vật tự quay Hình dạng hình trụ sử dụng để phát ứng phó với va chạm tác nhân chướng ngại vật khác Khi GameObject Điểm neo không nằm đáy hình trụ, bạn sử dụng thuộc tính Base Offset để tính chênh lệch chiều cao ~ 13 ~ Chiều cao bán kính hình trụ thực định hai nơi khác nhau: cài đặt nướng NavMesh thuộc tính tác nhân riêng lẻ • • NavMesh Bake setting mô tả cách tất agent NavMesh va chạm tránh hình dạng giới tĩnh Để giữ cho nhớ mức ngân sách tải CPU tầm kiểm sốt, định kích thước cài đặt nướng Các giá trị thuộc tính NavMesh Agent mơ tả cách tác nhân va chạm với chướng ngại vật di chuyển tác nhân khác Thơng thường, bạn đặt kích thước đại lý giống hai nơi Tuy nhiên, ví dụ: người lính hạng nặng có bán kính lớn hơn, đặc vụ khác để lại nhiều khoảng trống xung quanh anh ta, không tránh môi trường giống ~ 14 ~ Chương 4: Thử nghiệm, đánh giá Môi trường thử nghiệm Unity: Chạy Project trực tiếp Unity Android: phiên 9.0 chạy điện thoại Xiaomi thông qua Google Cardboard Kết thử nghiệm • Khi chạy thử nghiệm mơi trường Unity chương trinh chạy ổn định có tượng dựt lag nhẹ số phân đoạn số lượng objects game tăng đột ngột ko ảnh hưởng q nhiều đến trải nghiệm, Ngồi khơng có tượng bị crash game Bản build cuối ko bị rơi vào lỗi exception Đánh giá kết sản phẩm • Sản phẩm cuối gần hồn thiện game chơi trên môi trường Unity Android Tuy nhiên game đơn giản nhiều điểm làm tốt ví dụ kẻ địch có đường bay linh hoạt hơn, tạo thêm nhiều loại đạn khác với đường đạn đa dạng hơn, loại PowerUp đa dạng cho người chơi Chương 5: Kết luận hướng phát triển Kết đạt • • • • • Game hồn thiện tốt chạy ổn định có số trường đoạn bị giựt lag nhẹ nhiên không đáng kể Game port thành công lên môi trường Android Các mục tiêu đề hoàn thành tốt đạt tiêu ban đầu Công việc phân chia đồng rõ ràng Các cơng việc hồn thành yêu cầu thời hạn Hạn chế hướng phát triển • • • • Game đơn giản Nhiều hạn chế mặt kĩ thuật (Vẫn chưa test game Oculus) Nhiều khía cạnh game cịn phát triển tốt Cịn nhiều bất đồng trình phát triển định ý tưởng cho game ~ 15 ~ ~ 16 ~ ... ưu điểm Unity Phát triển game cách kéo thả Scripting language sử dụng Javascript C# Bản miễn phí sử dụng để phát triển game thương mại Đây công cụ phát triển game cộng đồng làm game ưa thích... với dự án mẻ, công nghệ thịnh hành thị trường bồi dưỡng thêm kỹ tư phát triển môn phát triển game nên nhóm trí chọn đề phát triển game tảng Unity Nêu tổng quan vấn đề đề tài: • • • • Nghiên cứu... chia đồng rõ ràng Các cơng việc hồn thành u cầu thời hạn Hạn chế hướng phát triển • • • • Game cịn đơn giản Nhiều hạn chế mặt kĩ thuật (Vẫn chưa test game Oculus) Nhiều khía cạnh game cịn phát triển