Mục tiêu nghiên cứu đề tài là nghiên cứu cách làm game 2D; trình bày lý thuyết về xây dựng game trên unity; nâng cao kiến thức tích lũy kinh nghiệm về làm game; học hỏi thêm nhiều kỹ năng tạo ra một trò chơi; xây dựng được game để phục vụ cho nhu cầu giải trí của xã hội.
TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN HỮU NGHỊ VIỆT - HÀN KHOA CÔNG NGHỆ THÔNG TIN XÂY DỰNG GAME 2D SPACE WAR TÓM TẮT ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN (ƢDPM) HSSV thực : Nguyễn Hải Huy MÃ HSSV : CCCT17A006 Cán hƣớng dẫn : TS Nguyễn Văn Lợi Khóa đào tạo : 2017 - 2020 Đà Nẵng, 01/2020 MỞ ĐẦU Hiện Cơng nghiệp giải trí phát triển giới, gồm thành phẩn như: Game, thời trang, âm nhạc, chương trình truyền hình, điện ảnh, Gameshow, liveshow,… Các mảng nằm giải trí khơng mang tính giải trí mà cịn mạng nhiều giá trị văn hóa, phong tục miền, đồng thời quảng bá hình ảnh đất nước tới bạn bè khắp giới Có thể nói ngành giải trí chiếm phần lớn thị trường ngành Game cộng thêm hội nhập công nghệ 4.0, sản phẩm công nghệ ngày chịu đánh giá khắt khe từ phía người dùng, đặc biệt sản phẩm game nhận nhiều đánh giá từ phía game thủ Ngành cơng nghiệp game nói bùng nổ với tốc độ phát triển chóng mặt, hàng loạt tựa game hay đình đám mắt thời gian qua Những Game phát triển tiếng có Game Engine Game Engine công cụ hỗ trợ giúp người phát triển viết Game cách nhanh chóng đơn giản, đồng thời cung cấp khả tái sử dụng tài nguyên mã nguồn cao phát triển nhiều Game từ Game Engine Lý chọn đề tài Với xu hướng nay, công việc người ngày nhiều nhu cầu giải trí sau làm việc căng thẳng, game 2d lựa chọn hoàn hảo với tính chất game nhanh, độ giải trí cao, xã stress tốt Trải qua thời gian, game 2D dường chưa lỗi thời người chơi, ngày khẳng định vị trí thị trường game rộng lớn Từ em chọn đề tài xây dựng game Space War 2D unity Đồ án nghiên cứu Engine Unity – Game Engine phổ biến mạnh mẽ để thực việc phát triển game 2D Space War Vậy nên, em chọn đề tài “Xây dựng game Space War Unity” để làm đồ án tốt nghiệp Mục tiêu nhiệm vụ nghiên cứu - Mục tiêu: o Hiểu biết Unity o Biết ưu nhược điểm phần mềm o Biết cách cài đặt phần mềm o Biết xây dựng game Unity - Nhiệm vụ: o Nghiên cứu giảng tài liệu để xây dựng game Unity o Xây dựng game minh họa Đối tƣợng phạm vi nghiên cứu - Đối tượng nghiên cứu: o Những game hoàn thành mạng o Những video hướng dẫn o Quy trình xây dựng game 2D unity Phƣơng pháp nghiên cứu - Nghiên cứu lý thuyết Unity - Phương pháp nghiên cứu lý luận: Tìm hiểu tài liệu nghiên cứu, giáo trình, viết nguồn thơng tin Internet có liên quan, ngơn ngữ lập trình C# - Phương pháp lấy ý kiến chuyên gia: Lấy ý kiến giảng viên trực tiếp hướng dẫn chuyên gia khác để hồn thành mặt nội dung hình thức đề tài Ý nghĩa khoa học thực tiễn - Nghiên cứu cách làm game 2D - Trình bày lý thuyết xây dựng game Unity - Nâng cao kiến thức tích lũy kinh nghiệm làm game - Học hỏi thêm nhiều kỹ tạo trò chơi - Xây dựng game để phục vụ cho nhu cầu giải trí xã hội CHƢƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 TỔNG QUAN VỀ UNITY 1.1.1 Unity gì? 1.1.2 Lịch sử Unity 1.1.3 Tính Unity 1.1.4 Các thành phần Unity 1.2 CÁC KHÁI NIỆM TRONG UNITY 1.3 CÀI ĐẶT UNITY 1.4 TỔNG QUAN KIẾN TRÚC GAME ENGINE CHƢƠNG 2: MỘT SỐ VẤN ĐỀ VÀ GIẢI PHÁP KHI XÂY DỰNG GAME TRÊN ENGINE UNITY 2.1 CHUYỂN ĐỘNG MƠ HÌNH NHÂN VẬT 2D 2.1.1 Vấn đề Chúng ta load mơ hình 2D vào game, để mơ hình 2D chuyển động game 2.1.2 Giải pháp Cần phải có sẵn Animation bên mơ hình 2D Khi import mơ hình vào Unity, Animation mơ hình tự động chuyển thành AnimationClip Trước hết ta phải tạo AnimationClip từ animation có sẵn mơ hình Lấy mơ hình làm mơ hình chính, khơng cần animation kèm theo Các mơ hình cịn lại, tên phải có phần cách „@‟, phần đầu phải trung với mơ hình chinsg chọn phần thứ tên animation Với cách đặt tên vậy, đưa mơ hình vào project để sử dụng unity tự động đổi tên animation mặc định mơ hình thành tên trùng với phần tên mơ hình nằm sau chữ‟@‟ Tiếp theo để thực gọi animationclip đối tượng ta dùng hàm CrossFade() thuộc tính animationm GameObject 2.1.3 Kết luận 2.2 THÊM SỰ KIỆN VÀO CHUYỂN ĐỘNG CỦA NHÂN VẬT 2.2.1 Vấn đề Trong lúc lập trình game, muốn biết nhân vật chuyển động xong để có bước xử lí Ví dụ sau nhân vật thực thi chuyển động chết phải hủy đối tượng khỏi nhớ Trong unity, chuyển động chạy xong không tự phát kiện 2.2.2 Giải pháp Unity hỗ trợ lớp AnimationEven giúp thêm kiện vào frame AnimationClip Trước hết phải có file Scrips chứa hàm thực thi sau kiện xảy Sau tạo file Scrips khác dùng để thêm event gắn file scrips vào đối tượng Khi gắn code, thêm kiện vào frame cuối AnimationClip Khi phải thêm file Scrips chứa hàm xảy kiện 2.2.3 Kết luận 2.3 XÂY DỰNG GIAO DIỆN GAME 2.3.1 Vấn đề Giao diện đồ họa người dùng phần thiếu xây dựng ứng dụng game hay ứng dụng để vẽ đối tượng đồ họa button, label, slider,… lên hình 2.3.2 Giải pháp Để làm điều dùng lớp GUI, GUI viết tắt “Graphical User Interface”-“Giao diện đồ họa người dùng” Để sử dụng phương thức GUI ta phải gọi thực từ hàm OnGUI() giống kiện Pain C# Ví dụ sau tạo button đơn giản: Hình 2.1 GUI button Để tạo button hay thành phần GUI đẹp hơn, sử dụng GUIStyle – style cài đặt cho cac thành phần GUI GUIStyle chứa thơng tin font chữ, vị trí đặt biểu tượng, hình nền, khoảng cách,… Chỉ cần định nghĩa áp dụng cho thành phần button, label, checkbox,… ta xem GUIStyle CSS thiết kế web 2.3.3 Kết luận 2.4 ÂM THANH TRONG GAME 2.4.1 Vấn đề Âm yếu tố không phần quan trọng Thật nhàm chán cảnh đánh nhau, bắn hay hiệu ứng mà khơng có âm 2.4.2 Giải pháp Để chơi file âm unity phải có sẵn file âm import vào project Sau import, file hợp lệ chúng thấy hình sau nhấn nút play để nghe thử Hình 2.2 Thơng tin file âm Tạo menu Unity, vào GameObject →Create Empty Chọn đối tượng vừa tạo gắn thành phần AudioSourcer cho đối tượng AudioSoucer đối tượng âm Muốn play hay stop, thay đổi cách lặp tăng giảm volume phải thơng qua đối tượng Hình 2.3 Thêm thành phần Audio Source Sau gắn thành phần âm cho đối tượng vừa tạo, dễ dàng chỉnh sửa thông số gán file âm cho thành phần AudioSource Hình 2.4 Thêm file âm cho thành phần AudioSource Thực xong bước trên, chạy game để nghe thử Việc tạo đối tượng âm giao diện đơn giản 2.4.3 Kết luận CHƢƠNG 3: XÂY DỰNG GAME TRÊN UNITY 3.1 GIỚI THIỆU GAME Đặc trưng dòng game mà em xây dựng thời điểm có người chơi, trị chơi có hình chơi, người chơi cung cấp mạng vũ khí định, người chơi bắn đễ loại bỏ quân địch vật thể khác, cố gắng lấy nhiều điểm tốt Khi người chơi trúng đạn chết hình GameOver xuất thơng báo cho người chơi số điểm Hình 3.1 Màn hình để bắt đầu chơi 3.2 CÁC QUY LUẬT CHƠI CHÍNH 3.2.1 Di chuyển Hình 3.2 Màn hình để chơi game 3.2.2 Tấn cơng Hình 3.3 Đạn máy bay địch Hình 3.4 Đạn người chơi 3.2.3 Điểm Hình 3.5 Điểm người chơi 10 3.2.4 Tạm dừng game Hình 3.6 Màn hình pause 3.3 DỮ LIỆU GAME 3.3.1 Màn hình bắt đầu lập trình Hình 3.7 Các Sence để lập trình 3.3.2 Code game Hình 3.8 Code C# game 11 3.3.3 Một số Script game Hình 3.9 Code player 3.3.4 SpawnEnemy 12 Hình 3.10 Code tạo địch 3.3.5 Bullet Hình 3.11 Code tạo đạn 13 KẾT LUẬN Sau nhiều ngày suy nghĩ kĩ để chọn đề tài tốt nghiệp, cuối em chọn đề tài làm game 2D Unity game bắn máy bay Bước đầu tìm hiểu Unity Game Engine em gặp nhiều khó khăn việc tìm tài liệu xây dựng lên ý tưởng game tài liệu unity đa phần tiếng anh, sau khoảng tháng cố gắng tìm tịi học hỏi anh chị khóa trước em làm xong cho game gần hồn chỉnh để phục vụ cho đề tài tốt nghiệp Trong thời gian làm đề tài em có số vấn đề đạt chưa đạt Đạt đƣợc - Hiểu cấu trúc, cách thức hoạt động, cách thức phát triển ứng dụng Unity - Nâng cao kiến thức lập trình tiếng anh chuyên ngành thông qua trang web, tài liệu liên quan đến Unity tiếng anh - Xây dựng nhân vật game công cụ chỉnh sửa hình ảnh photoshop, paint - Tổ chức load tương tác thông qua button - Xây dựng chức điểm, tạm dừng,… thông qua ngôn gnwx lập trình C# Visual Studio - Tạo âm cho trò chơi số chức khác Ngồi thứ đạt bên cạnh em nhiều vấn đề chưa đạt Chƣa đạt đƣợc - Do kiến thức em Unity hạn hẹp nên chức game nghèo nàn 14 - Chưa xây dựng game hoàn chỉnh mong muốn - Các Scrips chưa tổ chức rõ ràng - Sắp xếp địch chế độ chơi chưa logic Thuận lợi - Vận dụng kiến thức C# mà em học trường để làm đồ án - Được hướng dẫn tận tình thầy giúp đỡ nhiệt tình bạn - Có nhiều tài liệu internet Khó khăn - Unity mơi trường lập trình hồn tồn khác với mơi trường em học lớp, em bắt tay làm em bắt đầu làm từ đâu cảm thấy bối rối, bỡ ngỡ - Lần đầu xây dựng game nên thiếu sót nhiều - Việc tìm hiểu sử dụng unity khó em Kinh nghiệm rút - Phải biết xếp thời gian rõ ràng hợp lí khơng gặp nhiều khó khăn - Để hồn thành tốt game khơng làm mà phải biết chia phân cơng công việc cho người - Phải tập trung hồn thành khơng tập trung phương hướng khiến cơng việc khó khăn Hƣớng phát triển - Tăng thêm chơi cho người chơi nhiều lựa chọn - Thêm vũ khí, nâng cấp máy bay - Cung cấp thêm nhiều loại máy bay cho người chơi chọn 15 - Tạo thêm độ khó cho trị chơi 16 ... trí thị trường game rộng lớn Từ em chọn đề tài xây dựng game Space War 2D unity Đồ án nghiên cứu Engine Unity – Game Engine phổ biến mạnh mẽ để thực việc phát triển game 2D Space War Vậy nên, em... ? ?Xây dựng game Space War Unity” để làm đồ án tốt nghiệp Mục tiêu nhiệm vụ nghiên cứu - Mục tiêu: o Hiểu biết Unity o Biết ưu nhược điểm phần mềm o Biết cách cài đặt phần mềm o Biết xây dựng game. .. liệu để xây dựng game Unity o Xây dựng game minh họa Đối tƣợng phạm vi nghiên cứu - Đối tượng nghiên cứu: o Những game hoàn thành mạng o Những video hướng dẫn o Quy trình xây dựng game 2D unity