PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE

55 745 0
PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE

Đ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

TÓM TẮT NỘI DUNG ĐỀ TÀINgày nay, với sự phát triển và lan rộng một cách nhanh chóng của các thiết bị như PC, smartphone, việc chơi game trên các thiết bị này đã trở nên hết sức phổ biến. Các thiết bị này được chạy trên các nền tảng khác nhau: iOS, Android, Windows Phone, Windows, Mac... Chính điều này đã làm cho việc đưa một ứng dụng trò chơi (gọi tắt là game) lên nhiều nền tảng khác nhau trở nên khác tốn công sức. Tuy nhiên, với sự xuất hiện của các Game Engine như libGDX, Cocos2dx, Unity... thì việc phát triển các game đa nền tảng đã trở nên hết sức đơn giản. Game Engine hỗ trợ các nhà phát triển có thể viết game một cách nhanh chóng và đơn giản, có khả năng tái sử dụng cao. Hầu hết các Engine này đều có bản miễn phí, vì vậy không chỉ các công ty chuyên nghiệp mà ngay cả những người mới bắt đầu cũng có thể sử dụng.Khóa luận tôi thực hiện lựa chọn Unity Engine để tìm hiểu và xây dựng một game chạy trên nhiều nền tảng khác nhau. Đây là một gameengine tốt và dễ tìm hiểu cho những người mới bắt đầu và có ít kinh nghiệm phát triển. Mục tiêu đặt ra của khóa luận này là tìm hiểu các tính năng chính của Unity Engine để xây dựng game mô phỏng lại thế chiến thứ 2, được đặt tên là Nations War, với tiêu chí có thể hoạt động trên nhiều nền tảng khác nhau. Khóa luận bao gồm 4 chương, thể hiện các nội dung chính như sau:Chương 1. Tổng quan về đề tài: giới thiệu tổng quát về đề tài và lý do lựa chọn đề tài, mục tiêu và phạm vi nghiên cứu đề tàiChương 2. Unity và các công nghệ sử dụng: đề cập đến các tính năng và khái niệm quan trọng trong Unity, giới thiệu các đặc tính và cách quản lý đối với SQLite, CChương 3. Phát triển game Nations War: áp dụng các tính năng đã tìm hiểu trong Unity để xây dựng game 2D Nations War, các vấn đề gặp phải và giải pháp.Chương 4. Tổng kết: rút ra các nhận xét về việc sử dụng Unity để phát triển game đa nền tảng, các mặt ưu điểm và hạn chế trong khi thực hiện khóa luận

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Thái Mạnh Tuấn PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin HÀ NỘI - 2015 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Thái Mạnh Tuấn PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán hướng dẫn: TS Nguyễn Ngọc Hóa HÀ NỘI - 2015 LỜI CẢM ƠN Đầu tiên, xin gửi lời cảm ơn chân thành sâu sắc tới TS Nguyễn Ngọc Hóa, người nhiệt tình hướng dẫn trình thực khóa luận tốt nghiệp Tôi xin gửi lời cảm ơn tới tất thầy, cô giáo trường Đại học Công nghệ - Đại học Quốc gia Hà Nội, người giảng dạy suốt năm học vừa qua, truyền cho kiến thức vô quan trọng bổ ích Đó hành trang giúp vững bước tương lai Tôi xin cảm ơn Khoa Công nghệ thông tin, trường Đại học Công nghệ tạo điều kiện tốt cho thực đề tài Cuối cùng, cố gắng hoàn thành khóa luận cách tốt khả cho phép, nhiên tránh khỏi thiếu sót Tôi mong cảm thông, đóng góp bảo thầy, cô bạn Sinh viên thực Thái Mạnh Tuấn Khóa luận tốt nghiệp – Thái Mạnh Tuấn LỜI CAM ĐOAN Tôi xin cam đoan khóa luận thực hướng dẫn TS Nguyễn Ngọc Hóa Tất tham khảo từ nghiên cứu liên quan đề nêu nguồn gốc cách rõ ràng từ danh mục tài liệu tham khảo khóa luận Khóa luận không chép tài liệu, công trình nghiên cứu người khác mà không rõ vê mặt tài liệu tham khảo Hà Nội, ngày 28 tháng 04 năm 2015 Sinh viên Thái Mạnh Tuấn Khóa luận tốt nghiệp – Thái Mạnh Tuấn TÓM TẮT NỘI DUNG ĐỀ TÀI Ngày nay, với phát triển lan rộng cách nhanh chóng thiết bị PC, smartphone, việc chơi game thiết bị trở nên phổ biến Các thiết bị chạy tảng khác nhau: iOS, Android, Windows Phone, Windows, Mac Chính điều làm cho việc đưa ứng dụng trò chơi (gọi tắt game) lên nhiều tảng khác trở nên khác tốn công sức Tuy nhiên, với xuất Game Engine libGDX, Cocos2dx, Unity việc phát triển game đa tảng trở nên đơn giản Game Engine hỗ trợ nhà phát triển viết game cách nhanh chóng đơn giản, có khả tái sử dụng cao Hầu hết Engine có miễn phí, không công ty chuyên nghiệp mà người bắt đầu sử dụng Khóa luận thực lựa chọn Unity Engine để tìm hiểu xây dựng game chạy nhiều tảng khác Đây game-engine tốt dễ tìm hiểu cho người bắt đầu có kinh nghiệm phát triển Mục tiêu đặt khóa luận tìm hiểu tính Unity Engine để xây dựng game mô lại chiến thứ 2, đặt tên Nations War, với tiêu chí hoạt động nhiều tảng khác Khóa luận bao gồm chương, thể nội dung sau: - Chương Tổng quan đề tài: giới thiệu tổng quát đề tài lý lựa chọn đề tài, mục tiêu phạm vi nghiên cứu đề tài Chương Unity công nghệ sử dụng: đề cập đến tính khái niệm quan trọng Unity, giới thiệu đặc tính cách quản lý SQLite, C# Chương Phát triển game Nations War: áp dụng tính tìm hiểu Unity để xây dựng game 2D Nations War, vấn đề gặp phải giải pháp Chương Tổng kết: rút nhận xét việc sử dụng Unity để phát triển game đa tảng, mặt ưu điểm hạn chế thực khóa luận Khóa luận tốt nghiệp – Thái Mạnh Tuấn MỤC LỤC LỜI CAM ĐOAN .2 TÓM TẮT NỘI DUNG ĐỀ TÀI DANH SÁCH HÌNH VẼ CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI .2 CHƯƠNG UNITY VÀ CÁC CÔNG NGHỆ SỬ DỤNG CHƯƠNG PHÁT TRIỂN GAME NATIONS WAR 18 CHƯƠNG TỔNG KẾT .46 TÀI LIỆU THAM KHẢO VÀ NGHIÊN CỨU 47 DANH SÁCH HÌNH VẼ Hình 2.1 - Logo Unity Engine Hình 2.2 - Hình ảnh game phát triển CryEngine Hình 2.3 - Hình ảnh game phát triển Unity Engine Hình 2.4 - Giao diện panel Unity Editor Khóa luận tốt nghiệp – Thái Mạnh Tuấn Hình 2.5 - Scene control tools cụm nút Play 10 Hình 2.6 - Transform Component .11 Hình 2.7 - Các Component add thêm .11 Hình 2.8 - Tags 12 Hình 2.9 - Properties camera 13 Hình 2.10 - SQLiteManager 16 Hình 3.11 - Biểu đồ Use Case hệ thống .19 Hình 3.12 - Use Case Play game 21 Hình 3.13 - Use Case Pause game .22 Hình 3.14 - Use Case Continue game 23 Hình 3.15 - Use Case Quit game 23 Hình 3.16 - Use Case Highscore 24 Hình 3.17 - Bảng Stats lưu giá trị thuộc tính loại lính 25 Hình 3.18 - Bảng ModeSelection lưu lựa chọn chơi người dùng 25 Hình 3.19 - Bảng HighScore lưu điểm cao game .26 Hình 3.20 - Bảng Sound lưu thiết lập cài đặt âm 26 Hình 3.21 - Tạo hình chủng loại lính game 27 Hình 3.22 - Sprite cần thiết để xây dựng nhân vật 28 Hình 3.23 - Tạo xương cho nhân vật sử dụng Puppet2D 29 Hình 3.24 - Xây dựng animation cho nhân vật 30 Hình 3.25 - Animator State transaction 31 Hình 3.26 - Sử dụng Control Freak để tạo phím điều khiển ảo game 33 Hình 3.27 - Collider game 38 Hình 3.28 - Một box giao diện thiết kế NGUI 39 Hình 3.29 - Cài đặt kết nối với server Photon .40 Hình 3.30 - Giao diện kết nối game 41 Hình 3.31 - Giao diện hiển thị phòng chức tạo phòng, tham gia phòng 42 Hình 3.32 - Màn hình bắt đầu game .43 Hình 3.33 - Màn hình xem thông tin nhân vật 44 Hình 3.34 - Màn hình lựa chọn nhân vật chơi 44 Hình 3.35 - Màn hình trò chơi 45 CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu đề tài Ngày nay, với phát triển lan rộng cách nhanh chóng thiết bị PC, mobile, việc chơi game thiết bị trở nên phổ biến Các thiết bị chạy tảng khác nhau: iOS, Android, Windows Phone, Windows, Mac Chính điều làm cho việc đưa tựa game lên nhiều tảng khác trở nên khác tốn công sức Tuy nhiên, với xuất Game Engine Unreal Engine, Cocos2dx, Unity việc phát triển game đa tảng trở nên đơn giản Các engine giống hệ thống cung cấp cho ta đầy đủ vật liệu cách thức sử dụng, kết hợp chúng Từ ta hoàn toàn thiết kế game hoàn chỉnh cách đơn giản Nổi lên số engine Unity Engine Đây Engine có chất lượng đồ họa vừa đủ, không yêu cầu cấu hình cao Bên cạnh đó, Unity có ưu điểm lớn mà engine có như: hỗ trợ đa tảng, dễ sử dụng, có phiên miễn phí trả phí Từ xu hướng thực tiễn trên, định xây dựng đề tài: “Phát triển game đa tảng sử dụng Unity Engine” Đề tài tập trung vào việc giới thiệu thành phần, tính Unity Engine bước để phát triển game hoàn chỉnh Từ đó, vận dụng kiến thức thu để xây dựng gamemô lại chiến thứ 2, đặt tên Nations War, với tiêu chí hoạt động nhiều tảng khác 1.2 Mục đích, mục tiêu phạm vi nghiên cứu 1.2.1 Mục đích Nghiên cứu tính cách sử dụng Unity để phát triển game hoàn chỉnh chạy nhiều tảng khác 1.2.2 Mục tiêu Xây dựng game mô lại chiến thứ 2, đặt tên Nations War, với tiêu chí chạy nhiều tảng: PC, Android, Web Player, button, hiệu ứng bấm nút Để bắt kiện từ phím ảo, ta sử dụng Class CFInput thay Input Hình 3.26 - Sử dụng Control Freak để tạo phím điều khiển ảo game Với thao tác nhảy nhân vật, ta sử dụng phương thức AddForce RigidBody2D để add lực vào làm nhân vật nhảy lên cao Phương thức gọi có kiện bấm nút Jump phím ảo nút Space bàn phím Kết hợp với ta gán giá trị cho parameter Jump để có animation nhảy Một vấn đề nảy sinh nhân vật nhảy cao Để giải vấn đề này, ta sử dụng GameObject bên GameObject nhân vật biến bool jump GameObject có nhiệm vụ kiểm tra nhân vật tiếp xúc với mặt đất có khả nhảy, biến bool jump có giá trị true Còn nhân vật không biến jump có giá trị fail, nhân vật nhảy tiếp void Update() { // The player is grounded if a linecast to the groundcheck position hits anything on the ground layer grounded = Physics2D.Linecast(transform.position, groundCheck.position, [...]... Unreal Engine, Unity Engine Hầu hết các engine này đều hỗ trợ đa nền tảng và sử dụng các ngôn ngữ lập trình bậc cao như C++, C# 1.3.2 Giới thiệu chung về Unity Engine Unity là một game engine đa nền tảng được phát triển bởi đội ngũ Unity Technologies Hiện tại Unity Technologies đã cho ra thị trường đến bản Unity 5 Hình 2.1 - Logo của Unity Engine Unity có thể được sử dụng để phát triển game cho 21 nền tảng, ... mẽ Có thể thấy Unity được phát triển với tốc độ rất nhanh, thể hiện qua việc ngày càng có nhiều cá nhân và công ty sử dụng Unity để phát triển các tựa game của mình Unity chắc chắn không phải một engine đứng đầu về mặt đồ họa Hiện nay, CryEngine với khả năng thể hiện đồ họa 3D chân thực của mình vẫn đang dẫn đầu Có thể thấy rõ điều đó thông qua các game đình đám được phát triển bởi engine này như Crysis... Unity Engine 1.3.1 Tổng quan về Game Engine Một game engine là một phần mềm được viết để thiết kế và phát triển video game, hiểu đơn giản nó là loại phần mềm trung gian kết nối tương tác của nhiều ứng dụng trong cùng 1 hệ thống với nhau Có rất nhiều loại game engine dùng để thiết kế game cho các hệ máy như hệ consoles hay máy tính cá nhân(PC) Chức năng cốt lõi của game engine phần lớn nằm trong công cụ... Son of Rome Engine này đòi hỏi cấu hình khá cao, cũng như giá thành để sử dụng là không nhỏ Tuy không thể so sánh được về mặt đồ họa nhưng chất lượng hình ảnh mà Unity đem lại cũng là vừa đủ để đáp ứng người dùng phổ thông Hình 2.2 - Hình ảnh trong game được phát triển bởi CryEngine Hình 2.3 - Hình ảnh trong game được phát triển bởi Unity Engine Về mặt tính năng, thật sự không có một engine nào hoàn... và phát hiện va chạm), âm thanh, mã nguồn, hình ảnh động (animation), trí tuệ nhân tạo, phân luồng, tạo dòng dữ liệu xử lý, quản lý bộ nhớ, dựng ảnh đồ thị, và kết nối mạng Quá trình phát triển game tiết kiệm được rất nhiều thời gian và kinh phí vào việc tái sử dụng và tái thích ứng một engine để tạo nhiều game khác nhau [1] Hiện nay có rất nhiều game engine được phát triển: LibGDX, Cocos2d-x, CryEngine,... trong game 3D Có khả năng stream video và phát trong game 1.3.5 Giao diện làm việc của Unity Engine Giao diện của Unity Editor có khả năng điều hướng rất dễ dàng Phần chính của editor bao gồm 5 panel chính: Scene view: nơi mà ta sẽ xây dựng game, điều chỉnh các Object dưới dạng 2D và 3D Game view: nơi xem trước game Panel Gameview được active khi bấm nút Play trên Editor, cho phép ta chơi thử game ngay... của Unity Engine Unity sử dụng UnityAPI để hỗ trợ việc viết các scripts API này cung cấp khá nhiều phương thức hỗ trợ các đối tượng cũng như thành phần trong game Một script trong Unity mặc định được kế thừa lớp MonoBehavior để có thể thêm vào vào một GameObject Một số lớp quan trọng có thể kể đến trong UnityAPI: MonoBehaviour, GameObject, Transform, Rigidbody, Collider, Input UnityAPI Collider GameObject... cùng, Unity có một cộng đồng sử dụng lớn mạnh, luôn sẵn sàng giải đáp mọi khúc mắc 1.3.4 Các tính năng General Lựa chọn viết các script bằng C#, Javascript, Boo One-click Deployment: lựa chọn nền tảng để build game thông qua 1 nút và có thể chuyển đổi giữa các nền tảng với nhau dễ dàng Action-Packed Physics: tương tác vật lý chân thực với NVIDIA PhysX 3 và Box2D physics engine Optimized Graphics: Unity. .. phát triển dựa trên máy chủ Photon Người chơi tương tác với game thông qua các phương thức tương tác thông dụng trên các thiết bị di động thông minh (chạm - touch) hoặc thông qua bàn phím 1.2.3 Phạm vi nghiên cứu Nghiên cứu các tính năng của Unity Nghiên cứu cách sử dụng một số plugin thông dụng của Unity: NGUI, SimpleSQL CHƯƠNG 2 UNITY VÀ CÁC CÔNG NGHỆ SỬ DỤNG 1.3 Unity Engine 1.3.1 Tổng quan về Game. .. chuyển đổi với nhau dễ dàng: iOS, Android, Windows Phone 8, BlackBerry 10, Tizen, Windows, Mac, Linux, Web Player, Flash, các hệ máy console như PS hay Xbox, Wii Website: http:/ /unity3 d.com/ 1.3.3 Sự hình thành và phát triển của Unity Engine Ban đầu, Unity được viết bởi Joachim Ante vào năm 2001 Sau khi thành lập công ty vào năm 2005, Unity được tung ra phiên bản 1.0 với phương châm “Democratizing games

Ngày đăng: 10/04/2016, 23:10

Từ khóa liên quan

Mục lục

  • 1.1 Giới thiệu đề tài

  • 1.2 Mục đích, mục tiêu và phạm vi nghiên cứu

    • 1.2.1 Mục đích

    • 1.2.2 Mục tiêu

    • 1.2.3 Phạm vi nghiên cứu

    • 1.3 Unity Engine

      • 1.3.1 Tổng quan về Game Engine

      • 1.3.2 Giới thiệu chung về Unity Engine

      • 1.3.3 Sự hình thành và phát triển của Unity Engine

      • 1.3.4 Các tính năng

      • 1.3.5 Giao diện làm việc của Unity Engine

      • 1.3.6 Một số khái niệm cơ bản

      • 1.3.7 Kiến trúc tổng quan của Unity Engine

      • 1.4 SQLite

        • 1.4.1 Giới thiệu về SQLite

        • 1.4.2 Các đặc tính của SQLite

        • 1.4.3 Quản lý và thao tác với Plugin SQLiteManager trên Firefox

        • 1.5 C#

        • 1.6 Giới thiệu game

        • 1.7 Phân tích thiết kế hệ thống

          • 1.7.1 Phân tích yêu cầu dữ liệu

          • 1.7.2 Phân tích yêu cầu chức năng

          • 1.7.3 Biểu đồ hoạt động

          • 1.8 Thao tác trong game

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

Tài liệu liên quan