TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN HỮU NGHỊ VIỆT - HÀN KHOA CÔNG NGHỆ THÔNG TIN NGHIÊN CỨU QUY TRÌNH LÀM GAME 2D, 3D VÀ XÂY DỰNG GAME MINH HỌA TÓM TẮT ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN NIÊN KHÓA: 2016 - 2019 HSSV : Lâm Đức Chuẩn Mã HSSV : CCCT16B002 CBHD : ThS. Trịnh Thị Ngọc Linh Đà Nẵng, 06/2019 1 MỞ ĐẦU Trong thời đại công nghệ thông tin như hiện nay, sản phẩm công nghệ ngày càng chịu sự đánh giá khắt khe hơn từ phía những người dùng, đặc biệt là về sản phẩm Game được nhận rất nhiều sự đánh giá từ phía các Game thủ, hay chỉ là những người chơi bình thường. Ngành công nghiệp Game hiện nay có thể nói là bùng nổ, với tốc độ phát triển đến chóng mặt, rất nhiều những Game hay và hấp dẫn đã được ra đời trong thời gian qua. Phía sau những Game phát triển và nổi tiếng như vậy đều có một công cụ làm Game. Từ xu hướng phát triển và những bất cập trên, đồ án này sẽ nghiên cứu về Unity – một công cụ Game rất phổ biến và không kém mạnh mẽ hiện nay nhằm thực nghiệm việc phát triển một trò chơi (Demo) game plance. Chuẩn bị kiến thức và kỹ năng cho định hướng nghề nghiệp (phát triển Game) sau này của em, góp phần vào sự phát triển của ngành công nghiệp Game nước nhà…. Vậy nên, em chọn đề tài “Nghiên cứu quy trình làm game 2d, 3d bằng Unity và xây dựng ví dụ minh họa” để làm đồ án tốt nghiệp của mình. 1. Lý do chọn đề tài. Hiện nay, tại Việt Nam đang có hơn 28 triệu game thủ. Người Việt Nam tiêu tốn trung bình 51 phút để chơi game điện thoại và điều đó được lặp đi lặp lại từ năm đến bảy lần trong một ngày. Nhu cầu giải trí tăng cao cùng với sự phát triển của các nền tảng công nghệ khiến cho phát triển game trở thành một nghề cực kỳ có sức hút. Theo thống kê của thì thị trường Ngành công nghiệp Game toàn cầu sẽ luôn tăng 6.6% mỗi năm, ước tính đến năm 2020 tổng doanh thu ngành công nghiệp game đạt 119.6 tỷ đô la mỹ. Đặc biệt 2 Game trên các thiết bị di động có tốc độ phát triển nhanh nhất với ước tính doanh thu năm 2019 là 52.5 tỷ đô la mỹ. Ngành công nghiệp Game tiềm năng không chỉ trên thế giới mà cả tại Việt Nam. Lương lập trình viên game dao động từ 7 đến 15 triệu/tháng, đó là chưa kể nhiều công ty thưởng lương tháng 13, thưởng thành tích và doanh thu sản phẩm khá cao. Các công ty game Việt Nam liên tục tuyển người nhưng vẫn thường xuyên rơi vào tình trạng “khát nhân lực” do nhu cầu cao nhưng số lượng đáp ứng yêu cầu công việc lại thấp. Để thiết kế xây dựng một game thì cần một công cụ làm game. Một số công cụ làm game tiêu biểu như: Sploder, Game Maker Studio, Construct 2, Unity3D , Unreal Development Kit. Trong đó, Sploder, Game Maker Studio, Construct 2 là những công cụ đơn giản thì dễ học và sử dụng, nhưng chúng sẽ có nhiều giới hạn tự nhiên của nó. Unreal Development Kit công cụ phức tạp thì cho phép bạn có nhiều tự do hơn, nhưng việc học cách sử dụng chúng sẽ khó khăn và tốn nhiều thời gian hơn. Trong khi, Unity3D là công cụ hỗ trợ cho cả những người mới học, nghiệp dư và chuyên nghiệp, Unity3D hỗ trợ: - Ngôn ngữ lập trình phổ biến Việt Nam: C#. - Hỗ trợ đa nền tảng: Lập trình viên dùng Unity3D engine và ngôn ngữ C# hoặc script để phát triển game hoàn thiện, sau đó Unity cho phép bạn “build” ra các phiên bản cho các nền tảng khác mà không cần viết thêm dòng code nào, giúp bạn rút ngắn rất nhiều thờ i gian xây dựng game cũng như nâng cao mức độ an toàn khi lậ p trình game. Những nền tảng mà Unity đang hỗ trợ gồ m PlayStation 3, Xbox 360, Wii U, iOS, Android, Windows, Blackberry 10, OS X, Linux, trình duyệt web. 3 - Dễ sử dụng, ngay cả với Lập trình viên nghiệp dư, do Unity3D được xây dựng trong một môi trường phát triển tích hợ p, cung cấp một hệ thống toàn diện cho các lập trình viên, từ soạn thả o mã nguồn, xây dựng công cụ tự động hóa đến trình sửa lỗi. - Tính kinh tế cao: Những cá nhân và doanh nghiệp có doanh thu dưới 100.000 USD/năm được dùng miễn phí engine Unity3D, và Unity Technology chỉ thu phí 1.500 USD/năm cho bản Pro- mộ t con số rất khiêm tốn so với những gì engine này mang lại. - Rất được ưa chuộng tại Việt Nam, ngay cả trong các game studio lớn như VTC, VNG, Glass-Egg. - Thư viện phong phú, đa dạng: Unity có nhiều thư viện, các công cụ hỗ trợ làm game nhanh hơn, thông minh hơn, các đối tượng được tạo sẵn, và tất cả các thư viện này đều “mở”, cho phép cộng đồng tự do sử dụng và sáng tạo nên các sản phẩm của chính mình, thậm chí có thể bán trên Asset Store của Unity. - Cộng đồng rất lớn mạnh: là engine phổ biến nhất trên thế giới, Unity có cộng đồng sử dụng rất lớn mạnh. Mọi thắc mắc của bạn về Unity đều sẽ được trả lời trên website cộng đồng http://answers.unity3d.com. - Hỗ trợ Networking để phát triển MMO game. Xuất phát từ những nguyên nhân trên, em chọn đề tài này để làm đồ án tốt nghiệp với mong muốn được thử sức trong lĩnh vực giải trí đang hot hiện nay. 2. Mục tiêu và nhiệm vụ nghiên cứu. - Mục tiêu: o Hi
TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN HỮU NGHỊ VIỆT - HÀN KHOA CÔNG NGHỆ THÔNG TIN NGHIÊN CỨU QUY TRÌNH LÀM GAME 2D, 3D VÀ XÂY DỰNG GAME MINH HỌA TÓM TẮT ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN NIÊN KHÓA: 2016 - 2019 HSSV : Lâm Đức Chuẩn Mã HSSV : CCCT16B002 CBHD : ThS Trịnh Thị Ngọc Linh Đà Nẵng, 06/2019 MỞ ĐẦU Trong thời đại công nghệ thông tin nay, 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ười chơi bình thường Ngành cơng nghiệp Game nói bùng nổ, với tốc độ phát triển đến chóng mặt, nhiều Game hay hấp dẫn đời thời gian qua Phía sau Game phát triển tiếng có cơng cụ làm Game Từ xu hướng phát triển bất cập trên, đồ án nghiên cứu Unity – công cụ Game phổ biến không mạnh mẽ nhằm thực nghiệm việc phát triển trò chơi (Demo) game plance Chuẩn bị kiến thức kỹ cho định hướng nghề nghiệp (phát triển Game) sau em, góp phần vào phát triển ngành công nghiệp Game nước nhà… Vậy nên, em chọn đề tài “Nghiên cứu quy trình làm game 2d, 3d Unity xây dựng ví dụ minh họa” để làm đồ án tốt nghiệp Lý chọn đề tài Hiện nay, Việt Nam có 28 triệu game thủ Người Việt Nam tiêu tốn trung bình 51 phút để chơi game điện thoại điều lặp lặp lại từ năm đến bảy lần ngày Nhu cầu giải trí tăng cao với phát triển tảng công nghệ khiến cho phát triển game trở thành nghề có sức hút Theo thống kê thị trường Ngành cơng nghiệp Game tồn cầu ln tăng 6.6% năm, ước tính đến năm 2020 tổng doanh thu ngành cơng nghiệp game đạt 119.6 tỷ đô la mỹ Đặc biệt Game thiết bị di động có tốc độ phát triển nhanh với ước tính doanh thu năm 2019 52.5 tỷ đô la mỹ Ngành công nghiệp Game tiềm không giới mà Việt Nam Lương lập trình viên game dao động từ đến 15 triệu/tháng, chưa kể nhiều công ty thưởng lương tháng 13, thưởng thành tích doanh thu sản phẩm cao Các công ty game Việt Nam liên tục tuyển người thường xuyên rơi vào tình trạng “khát nhân lực” nhu cầu cao số lượng đáp ứng yêu cầu công việc lại thấp Để thiết kế xây dựng game cần cơng cụ làm game Một số công cụ làm game tiêu biểu như: Sploder, Game Maker Studio, Construct 2, Unity3D , Unreal Development Kit Trong đó, Sploder, Game Maker Studio, Construct cơng cụ đơn giản dễ học sử dụng, chúng có nhiều giới hạn tự nhiên Unreal Development Kit cơng cụ phức tạp cho phép bạn có nhiều tự hơn, việc học cách sử dụng chúng khó khăn tốn nhiều thời gian Trong khi, Unity3D công cụ hỗ trợ cho người học, nghiệp dư chuyên nghiệp, Unity3D hỗ trợ: - Ngôn ngữ lập trình phổ biến Việt Nam: C# - Hỗ trợ đa tảng: Lập trình viên dùng Unity3D engine ngôn ngữ C# script để phát triển game hồn thiện, sau Unity cho phép bạn “build” phiên cho tảng khác mà khơng cần viết thêm dịng code nào, giúp bạn rút ngắn nhiều thời gian xây dựng game nâng cao mức độ an tồn lập trình game Những tảng mà Unity hỗ trợ gồm PlayStation 3, Xbox 360, Wii U, iOS, Android, Windows, Blackberry 10, OS X, Linux, trình duyệt web - Dễ sử dụng, với Lập trình viên nghiệp dư, Unity3D xây dựng mơi trường phát triển tích hợp, cung cấp hệ thống tồn diện cho lập trình viên, từ soạn thảo mã nguồn, xây dựng cơng cụ tự động hóa đến trình sửa lỗi - Tính kinh tế cao: Những cá nhân doanh nghiệp có doanh thu 100.000 USD/năm dùng miễn phí engine Unity3D, Unity Technology thu phí 1.500 USD/năm cho Pro- số khiêm tốn so với engine mang lại - Rất ưa chuộng Việt Nam, game studio lớn VTC, VNG, Glass-Egg - Thư viện phong phú, đa dạng: Unity có nhiều thư viện, công cụ hỗ trợ làm game nhanh hơn, thông minh hơn, đối tượng tạo sẵn, tất thư viện “mở”, cho phép cộng đồng tự sử dụng sáng tạo nên sản phẩm mình, chí bán Asset Store Unity - Cộng đồng lớn mạnh: 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 - Hỗ trợ Networking để phát triển MMO game Xuất phát từ nguyên nhân trên, em chọn đề tài để làm đồ án tốt nghiệp với mong muốn thử sức lĩnh vực giải trí hot 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 phần mềm 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 : Quy trình xây dựng game Unity - Phạm vi nghiên cứu: Xây dựng game 2D, 3D 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: Nghiên tìm hiểu tài liệu nghiên cứu, giáo trình, báo viết nguồn thơng tin có chọn lọc Internet có liên quan, sở ngơn ngữ lập trình C# - Phương pháp phân tích tổng kết kinh nghiệm: Từ việc nghiên cứu tài liệu, giáo trình tìm hiểu nguồn thơng tin, rút thuật toán kiến thức liên quan - 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 chun gia khác để hồn thiện mặt nội dung hình thức đề tài Ý nghĩa khoa học thực tiễn - Trình bày lý thuyết xây dựng game Unity - Xây dựng game để phục vụ cho nhu cầu giải trí xã hội CHƢƠNG CƠ SỞ LÝ THUYẾT 1.1 GIỚI THIỆU VỀ UNITY? 1.2 LỊCH SỬ CỦA UNITY 1.3 ƢU ĐIỂM CỦA UNITY 1.4 CÁC THÀNH PHẦN TRONG UNITY 1.4.1 Scene 1.4.2 Hierarchy 1.4.3 Game 1.4.4 Project 1.4.5 Inspector 1.5 CÁC KHÁI NIỆM TRONG UNITY 1.5.1 Assets 1.5.2 Scenes 1.5.3 Game Objects 1.5.4 Trasform 1.5.5 Sprite 1.5.6 Component 1.5.7 Scripts 1.5.8 Prefabs 1.5.9 Camera 1.5.10 Sounds 1.5.11 Animation 1.5.12 Key Frame 1.6 CÀI ĐẶT UNITY CHƢƠNG QUY TRÌNH LÀM GAME BẰNGUNITY 2.1 GIAI ĐOẠN TRƢỚC KHI PHÁT TRIỂN GAME 2.1.1 Thành lập ý tƣởng 2.1.2 Prototype 2.2 GIAI ĐOẠN PHÁT TRIỂN GAME 2.2.1 Thiết kế game 2.2.2 Sử dụng công cụ Unity để lập trình game Tạo Project Nhập File Assets Tạo Scenes Nhập Dữ Liệu vào Sprites Tạo Animation Tạo Scripts Tạo Sounds Tạo Font Tạo Prefabs CHƢƠNG XÂY DỰNG GAME 2D - RUN GOLD 3.1 MÔ TẢ GAME 3.2 KHỞI TẠO FILE ASSET Hình 3.1: Tạo file Asset 3.3 NHẬP DỮ LIỆU Hình 3.2: Nhập file Sounds Hình 3.3: Nhập file Sptites Hình 3.4: Nhập file Animations Hình 3.5: Nhập file Scripts Hình 3.6: Khởi tạo Scene 3.4 MỘT SỐ SCRIPT 3.5 DEMO GAME 2D RUN GOLD Hình 3.7 Hình ảnh vào game Hình 3.8 Hình ảnh nhân vật ăn điểm Hình 3.9 Hình ảnh nhân vật nhảy Hình 3.10 Hình ảnh tạm dừng Hình 3.11 Hình ảnh nhân vật bị trừ máu 10 CHƢƠNG XÂY DỰNG GAME 3D - ZOMBIE 4.1 MÔ TẢ GAME Game Zombie game mà người chơi phải sử dụng chuột để khiển súng tiêu diệt zombie, người chơi click chuột vào zombie súng bắn vào zombie đó, zombie sau bị bắn lần chết Mỗi Zombie chết người chơi cộng điểm Zombie sinh vị trí ngẫu nhiên sau khoảng thời gian ngẫu nhiên từ đến 1.5 giây, Zombie di chuyển với tốc độ khác Zombie đến gần nhân vật với khoảng cách xác định Zombie công người chơi, người chơi bị cơng bị máu Máu người chơi xác định 10 điểm, bị công người chơi bị trừ điểm máu Khi máu người chơi hết trị chơi kết thúc Khi game kết thức hình xuất nút Restar người chơi tiếp tục chơi bàn cách bấm vào nút Restar 4.2 KHỞI TẠO FILE ASSET Hình 4.1: Tạo file Asset 11 4.3 NHẬP DỮ LIỆU Hình 4.2: Nhập file Sounds Hình 4.3: Nhập file Sprite Hình 4.4: Nhập file Scripts 12 Hình 4.5: Nhập file Texture Hình 4.6: Nhập file Animation Hình 4.7: Nhập file Scene 13 Hình 4.8: Nhập file Prefab 4.4 MỘT SỐ SCRIPT 4.5 DEMO GAME 3D ZOMBIE Hình 4.9 Hình ảnh vào game Hình 4.10 Hình ảnh hiệu ứng bắn súng 14 Hình 4.11 Hình ảnh zombie chết số kill Hình 4.12 Hình ảnh người chơi bị cơng máu Hình 4.13 Hình ảnh người chơi chết trị chơi kết thúc 15 KẾT LUẬN Nhận xét Qua đồ án ta biết sở lý thuyết Unity gì, lịch sử ưu điểm Unity Ngồi ra, biết thành phần Unity, khái niệm dùng Unity, biết cách cài đặt Unity Đồng thời hiểu biết quy trình làm game cách sử dụng Unity để làm game Kết đạt đƣợc Xây dựng hai game 2D 3D Unity Nhưng cịn có thiếu sót: Đối với game RunGold phát triển nhiều level hơn, chăm chút giao diện, bổ sung tính kẻ địch, nhân vật có kỹ công để tiêu diệt kẻ địch Đối với game Zombie hoàn thiện mặt đồ họa, animation zombie cịn khó nhìn, trơng khơng mượt mà, âm chưa có độ xác cao mặt khoảng cách, zombie xa âm nhỏ zombie gần, hiệu ứng bắn súng cịn xấu cần hồn thiện hơn, nên có giao diện tạm dừng Ngồi ra, đọ khó game cần điều chỉnh thêm nhiều level 16