1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

55 748 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 55
Dung lượng 9,1 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

ĐẠ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

Trang 2

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin

Trang 3

Cán bộ hướng dẫn: TS Nguyễn Ngọc Hóa

HÀ NỘI - 2015

Trang 4

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 tôi thực hiện đề tài này.

Cuối cùng, mặc dù tôi đã cố gắng hoàn thành khóa luận một cách tốt nhất trong khả năng cho phép, tuy nhiên vẫn không thể tránh khỏi những thiếu sót Tôi rất mong

sự cảm thông, đóng góp và chỉ bảo của các thầy, cô và các bạn

Sinh viên thực hiện

Thái Mạnh Tuấn

Trang 5

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 này là do tôi thực hiện dưới sự hướng dẫn của TS Nguyễn Ngọc Hóa Tất cả các tham khảo từ những nghiên cứu liên quan đề được nêu nguồn gốc một cách rõ ràng từ danh mục tài liệu tham khảo trong khóa luận Khóa luận không sao chép tài liệu, công trình nghiên cứu của người khác mà không chỉ 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

2

Trang 6

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 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 game-engine 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ài

- Chươ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, C#

- Chươ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

3

Trang 7

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 3

DANH SÁCH HÌNH VẼ 4

CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 2

CHƯƠNG 2 UNITY VÀ CÁC CÔNG NGHỆ SỬ DỤNG 4

CHƯƠNG 3 PHÁT TRIỂN GAME NATIONS WAR 18

CHƯƠNG 4 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 của Unity Engine 4

Hình 2.2 - Hình ảnh trong game được phát triển bởi CryEngine 6

Hình 2.3 - Hình ảnh trong game được phát triển bởi Unity Engine 6

Hình 2.4 - Giao diện các panel trên Unity Editor 9

4

Trang 8

Khóa luận tốt nghiệp – Thái Mạnh Tuấn

Hình 2.5 - Scene control tools và cụm nút Play 10

Hình 2.6 - Transform Component 11

Hình 2.7 - Các Component có thể add thêm 11

Hình 2.8 - Tags 12

Hình 2.9 - Properties của một 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 của từng loại lính 25

Hình 3.18 - Bảng ModeSelection lưu lựa chọn chơi của người dùng 25

Hình 3.19 - Bảng HighScore lưu điểm cao trong game 26

Hình 3.20 - Bảng Sound lưu các thiết lập cài đặt âm thanh 26

Hình 3.21 - Tạo hình các chủng loại lính trong 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 và State transaction 31

Hình 3.26 - Sử dụng Control Freak để tạo phím điều khiển ảo trong game 33

Hình 3.27 - Collider trong game 38

Hình 3.28 - Một box giao diện được thiết kế bằng 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 trong game 41

Hình 3.31 - Giao diện hiển thị phòng và chức năng tạo phòng, tham gia phòng 42

Hình 3.32 - Màn hình bắt đầu của 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 và màn chơi 44

Hình 3.35 - Màn hình chính của trò chơi 45

5

Trang 10

CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI

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

Ngà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, mobile, 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 1 tựa 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ư Unreal Engine, 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 Các engine này giống như một hệ thống cung cấp cho ta đầy đủ các vật liệu và cách thức sử dụng, kết hợp chúng Từ đó ta hoàn toàn có thể thiết kế một game hoàn chỉnh một cách đơn giản

Nổi lên trong số các engine hiện nay đó chính là Unity Engine Đây là một Engine có chất lượng đồ họa vừa đủ, không yêu cầu cấu hình quá cao Bên cạnh đó, Unity có những ưu điểm lớn mà không phải engine nào cũng có như: hỗ trợ đa nền tảng, dễ sử dụng, có phiên bản miễn phí và trả phí

Từ xu hướng thực tiễn trên, tôi đã quyết định xây dựng đề tài: “Phát triển game

đa nền tảng sử dụng Unity Engine” Đề tài tập trung vào việc giới thiệu các thành

phần, tính năng của Unity Engine cũng như các bước để phát triển một game hoàn chỉnh Từ đó, vận dụng kiến thức thu được để xây dựng gamemô 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

- Xây dựng được 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ể chạy được trên nhiều nền tảng: PC, Android, Web Player,

Trang 11

Flash , sử dụng SQLite để lưu trữ dữ liệu cục bộ và có thể được quản lý từ hệ thống 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

Trang 12

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 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ụ dựng hình (kết xuất đồ họa) cho các hình ảnh 2 chiều (2D) hay 3 chiều(3D), công cụ vật lý (hay công cụ tính toá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, 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, có thể 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

Trang 13

Website: http://unity3d.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 development” Ở phiên bản này, Unity còn hết sức đơn giản và

gần như chỉ hướng tới các nhà làm game không chuyên với các tính năng cơ bản Unity hỗ trợ cho iPhone vào năm 2008 và Android vào năm 2010 Các phiên bản về sau, Unity được cải tiến, nâng cấp và tích hợp nhiều thành phần, công nghệ mạnh mẽ khác để đủ sức phát triển một serigame Hiện nay, Unity đã ra đến phiên bản thứ 5, là một phiên bản lớn nhất bao gồm nhiều tính năng mạnh 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 3, The Collectables, Ryse: 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

Trang 14

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 toàn nổi trội so với các engine khác Unity chứng tỏ được lợi thế nhất định của mình đó chính là thời gian Nhà phát triển hoàn toàn có thể tạo một game có độ phức tạp cao trong thời gian ngắn Cùng với đó là các đặc điểm khiến Unity được ưa chuộng như có gói Free dành cho người dùng cá nhân và công ty có thu nhập dưới 100.000 USD/năm, hỗ trợ lập trình bằng nhiều ngôn ngữ: C#, Javascript, Boo Bên cạnh đó các thư viện như Mono,

Trang 15

OpenGL, physics được tích hợp một cách tự động và trực quan, có hỗ trợ Networking Cuối 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 có khả năng tối ưu hóa đồ họa cho cả DirectX và OpenGL Bên cạnh đó là hệ thống Mesh, Partical System, Advance lighting, Shadow giúp tạo hiệu ứng

Animation

- Intergrated Animation Editor: Unity tích hợp sẵn một cửa sổ giúp nhà phát triển

dễ dàng chỉnh sửa các animation của nhân vật

- Animation state: Mỗi một trạng thái animation của nhân vật được gọi là một state, và Unity quản lý các state này bởi State machine – máy trạng thái

- Blend Trees: giúp nhân vật có khả năng di chuyển liên tục giữa các trạng thái như Running, Walking

- Sync Layers: Có khả năng tạo nhiều layer – các lớp chứa các trạng thái khác nhau trong một nhân vật

Trang 16

- Hỗ trợ khả năng tìm đường đi (Pathfinding) 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 trên Editor Gameview còn cho phép lựa chọn độ phân giải để hiển thị

- Hierarchy: liệt kê toàn bộ GameObject có trong Scene view theo thứ tự abc Hierarchy còn thể hiện quan hệ parent giữa các GameObjectvới nhau

- Project Panel: liệt kê toàn bộ assets đang làm việc, cho ta khả năng truy cập nhanh tới mọi thứ để xây dựng game: scripts, texture, model, audio

- Inspector: Hiển thị toàn bộ các thuộc tính của object, assets, panel mà ta đang lựa chọn Các thuộc tính trên Inspector thay đổi ngay khi ta lựa chọn 1 thứ khác

Trang 17

Hình 2.4 - Giao diện các panel trên Unity Editor

Ngoài ra trên panel cũng có 1 số nút bấm:

- Pause

- Play next frame

Các nút này có tác dụng để chạy thử game Bên góc trái của Editor có 1 cụm nút gọi là Scene control tools, cho phép ta thu nhỏ, phóng to, xoay, di chuyển các GameObject

Trang 18

Hình 2.5 - Scene control tools và cụm nút Play

Ta hoàn toàn có thể thay đổi vị trí các Panel bằng cách kéo thả, hoặc mở thêm các Panel khác

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

GameObjects

Tất cả các đối tượng trong game được gọi là GameObjects Các GameObjects cần có các thuộc tính khác nhau, để trở thành Character, Enviroment, Effect Nói cách khác, GameObjects giống như một đối tượng, có thể chứa nhiều thành phần khác nhau là các Components Tùy thuộc vào loại đối tượng cần tạo, ta sẽ thêm vào các Components thích hợp vào

Components

Components được coi là các mảnh ghép chức năng của một GameObject Mặc định mỗi GameObjects sẽ có một Transform Component Transform quy định vị trí, góc quay cũng như tỉ lệ scale của GameObjects đó

Trang 19

Hình 2.6 - Transform Component

Khi ta click vào một GameObject, ở panel Inspector sẽ có nút Add Component Thông qua đó có thể thêm vào rất nhiều loại Component khác nhau vào GameObject

Hình 2.7 - Các Component có thể add thêm

Trên mỗi Component đều có các thông số riêng có thể tùy chỉnh cho phù hợp Có

2 kiểu thông số chính: dạng giá trị (values) và dạng tham chiếu (reference) Dạng Values được dùng để khai báo giá trị, còn dạng References được dùng để liên kết tới các thuộc tính cũng như Objects khác

Tags

Tag là một từ khóa dùng để liên kết 2 hoặc nhiều GameObjects với nhau Vd ta

có thể sử dụng tag “Enemy” cho tất cả các GameObject quân địch Tag có thể sử dụng

để tìm một hoặc nhiều GameObject xác định

Trang 20

Hình 2.8 - Tags Assets

Assets là tập hợp tất cả các tài nguyên trong game: Texture, Audio, GameObject, Script Assets có thể được thêm vào bằng cách kéo thả hoặc import

Unity có một cửa hàng riêng để bán và cung cấp các loại Assets Ta có thể tải về các Asset thích hợp thông qua Assets Store

Scene

Một scene chính là một vùng nội dung hiển thị trên Scene view Với mỗi scene được tạo, ta có thể coi chúng như một map, một màn chơi hoặc một vùng giao diện hiển thị

Prefabs

Khi ta có một GameObject cần sử dụng nhiều lần, có thể biến nó thành một prefab để tái sử dụng bằng cách kéo thả GameObject đó từ Hierarchy vào Project Panel

Ta có thể kéo thả một prefabs vào Hierachy hoặc Scene view để tạo ra nhiều GameObject giống nhau Khi thay đổi thông số của prefab, thông số của các GameObject này cũng tự động thay đổi theo

Camera

Cũng giống như camera trong phim ảnh, camera trong Unity được dùng để hiển thị các GameObject Cần có ít nhất 1 camera trong 1 scene, tuy nhiên cũng có thể tạo nhiều camera khác nhau Ta có thể chuyển động các camera, hoặc điều khiển chúng với các tương tác vật lý

Trang 21

Hình 2.9 - Properties của một camera

Scripts

Scripts là một thành phần cực kì quan trọng, không thể không nhắc đến Nếu như các Component Sprite hay Texture giúp tạo hình ảnh cho GameObject thì Scripts giống như bộ não Tất cả các kịch bản của game đều được viết trong các Scripts này

Ta có thể lựa chọn viết script bằng C#, Javascript hoặc Boo Tên của script bắt buộc phải trùng với tên class được khai báo bên trong Với mỗi GameObject, ta có thể add một hoặc nhiều Script khác nhau

Để chỉnh sửa Scripts, Unity có hỗ trợ một IDE là MonoDeveloper Tuy nhiên hoàn toàn có thể sử dụng một IDE khác để chỉnh sửa các script này

Trang 22

Vòng đời của một Scripts được tính kể từ khi chạy Scene cho tới khi Scene tắt hoặc chuyển qua Scene khác

1.3.7 Kiến trúc tổng quan 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

GameObject

UnityAPI

MonoBehaviour

Scripts Transform Rigidbody

Awake

Start

Update

Tắt hoặc chuyển Scenes

F

Destroy

T

Collider

Trang 23

Mỗi Script được viết sẽ bắt đầu chạy từ khi scene được chạy tới khi tắt hoặc chuyển qua scene khác Một chu kì của Script trải qua thứ tự sau: Awake, Start, Update, Destroy

- Awake(): được gọi trước khi có bất kì frame nào được chạy

- Start(): được gọi sau khi frame thứ nhất được chạy

- Update(): gọi liên tục ở mỗi frame, sau Start()

- Destroy(): gọi khi script bị hủy

Ngoài ra còn có hàm FixedUpdate – gọi sau mỗi khoảng thời gian cố định (0.02s)

1.4 SQLite

1.4.1 Giới thiệu về SQLite

SQLite là một hệ quản trị CSDL tương tự MySQL, gọn, nhẹ, không cần server và cấu hình Sử dụng SQLite, ta không cần quan tâm đến các thông số như user, password hay phân quyền

SQLite không thích hợp cho các hệ thống lớn, tuy nhiên với các hệ thống vừa và nhỏ, đặc biệt là lưu trữ dữ liệu trong game thì SQLite tỏ rõ được thế mạnh của nó SQLite truy cập các file lưu trữ của nó một cách trực tiếp và đảm bảo tính vẹn toàn dữ liệu

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

- Không đòi hỏi server riêng biệt để chạy (serverless)

- Không cần config (zero-configuration )

- Dữ liệu được lưu trữ trong 1 file duy nhất

- Rất nhỏ, chỉ từ 250KB tới 400KB

- Không phụ thuộc bên ngoài

- Đảm bảo tính ACID

- Có thể chạy trên Windows, Linux, iOS, Android

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

Để quản lý dữ liệu trong SQLite, ở đây ta sử dụng một plugin trên Firefox là SQLiteManager

Giao diện của plugin này như sau:

Trang 26

CHƯƠNG 3 PHÁT TRIỂN GAME NATIONS WAR

1.6 Giới thiệu game

Tên game: Nations War

Platform: Windows XP/7/8/;Android 4.0+

Tổng thể tương tác giữa người chơi và hệ thống

Lựa chọn chế độ chơi

Bật tắt âm thanh Thay đổi ngôn ngữ Xem điểm cao Thao tác trong game

Lựa chọn chơi 1 hoặc nhiều người

Lựa chọn nhân vật, màn chơi

Điều khiển nhân vật

di chuyển Thao tác nhảy, bắn Tạm dừng game, thoát game

Trang 27

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

Dữ liệu đầu vào: thông tin về các màn chơi, thông tin về ngôn ngữ, thông tin về các thao tác của người dùng

Dữ liệu đầu ra bao gồm: thông tin về dữ liệu lưu trong Cơ sở dữ liệu, đánh giá kết quả chơi

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

Tác nhân

Tác nhân ở đây là người chơi: sử dụng trực tiếp hệ thống, sử dụng các chức năng

mà hệ thống cung cấp

Biểu đồ Use Case hệ thống

Hình 3.11 - Biểu đồ Use Case hệ thống

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

HÌNH ẢNH LIÊN QUAN

Hình 2.2 - Hình ảnh trong game được phát triển bởi CryEngine - PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE
Hình 2.2 Hình ảnh trong game được phát triển bởi CryEngine (Trang 14)
Hình 2.9 - Properties của một camera - PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE
Hình 2.9 Properties của một camera (Trang 21)
Hình 2.10 - SQLiteManager - PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE
Hình 2.10 SQLiteManager (Trang 24)
Hình 3.11 - Biểu đồ Use Case hệ thống - PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE
Hình 3.11 Biểu đồ Use Case hệ thống (Trang 27)
Hình 3.19 - Bảng HighScore lưu điểm cao trong game - PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE
Hình 3.19 Bảng HighScore lưu điểm cao trong game (Trang 34)
Hình 3.21 - Tạo hình các chủng loại lính trong game - PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE
Hình 3.21 Tạo hình các chủng loại lính trong game (Trang 35)
Hình 3.23 - Tạo xương cho nhân vật sử dụng Puppet2D - PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE
Hình 3.23 Tạo xương cho nhân vật sử dụng Puppet2D (Trang 37)
Hình 3.24 -  Xây dựng animation cho nhân vật - PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE
Hình 3.24 Xây dựng animation cho nhân vật (Trang 38)
Hình 3.27 - Collider trong game - PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE
Hình 3.27 Collider trong game (Trang 46)
Hình 3.28 - Một box giao diện được thiết kế bằng NGUI - PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE
Hình 3.28 Một box giao diện được thiết kế bằng NGUI (Trang 47)
Hình 3.30 - Giao diện kết nối trong game - PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE
Hình 3.30 Giao diện kết nối trong game (Trang 49)
Hình 3.31 - Giao diện hiển thị phòng và chức năng tạo phòng, tham gia phòng - PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE
Hình 3.31 Giao diện hiển thị phòng và chức năng tạo phòng, tham gia phòng (Trang 50)
Hình 3.33 - Màn hình xem thông tin nhân vật - PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE
Hình 3.33 Màn hình xem thông tin nhân vật (Trang 52)
Hình 3.35 - Màn hình chính của trò chơi - PHÁT TRIỂN GAME ĐA NỀN TẢNG VỚI UNITY ENGINE
Hình 3.35 Màn hình chính của trò chơi (Trang 53)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w