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

Sử dụng UNITY3D ENGINE GAME đa nền tảng xây dựng ứng dụng giúp trẻ học chữ cái trên thiết bị di động

82 210 0

Đ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 82
Dung lượng 6,8 MB

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

Nội dung

LỜI NÓI ĐẦU Để hoàn thành được đồ án “Sử dụng Unity3D – Engine game đa nền tảng xây dựng ứng dụng giúp trẻ học chữ cái cho thiết bị di động”, trước tiênem xin gửi lời cảm ơn đến tất cả c

Trang 1

NGUYỄN DUY HẢI

NG UNITY3D – ENGINE GAME ĐA NỀN TẢNG XÂY D

NG GIÚP TRẺ HỌC CHỮ CÁI TRÊN THIẾT BNgành/Chuyên ngành: Công nghệ Thông tin

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

NG XÂY DỰNG

T BỊ DI ĐỘNG

Trang 2

KHOA CÔNG NGH

SỬ DỤNG UNITY3D

ỨNG DỤNG GIÚP TR

Ngành/Chuyên ngành:

KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN DUY HẢI

NG UNITY3D – ENGINE GAME ĐA NỀN TẢNG XÂY D

NG GIÚP TRẺ HỌC CHỮ CÁI TRÊN THIẾT BNgành/Chuyên ngành: Công nghệ Thông tin

Giảng viên hướPGS TS Đ

Trang 3

VIỆN ĐẠI HỌC MỞ HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập - Tự do – Hạnh phúc

Hà Nội, ngày tháng năm 2016

NHIỆM VỤ CỦA ĐỒ ÁN TỐT NGHIỆP

Họ và tên: Nguyễn Duy Hải Giới tính: Nam

Ngày sinh: 10/10/1993 Nơi sinh: Hải Phòng

Chuyên ngành: Công nghệ thông tin Mã số: 12A10010019 Lớp hành chỉnh: 1210A02

1 TÊN ĐỀ TÀI

Sử dụng Unity3D – Engine game đa nền tảng xây dựng ứng dụng giúp trẻ học chữ cái cho thiết bị di động

2 NHIỆM VỤ VÀ NỘI DUNG

Nhiệm vụ cụ thể của đồ án tốt nghiệp:

- Tìm hiểu và nghiên cứu Engine game Unity3D Ứng dụng phát triển game

- Phân tích hệ thông và thiết kế kiến trúc ứng dụng giúp trẻ học chữ cái trên thiết bị di động chạy hệ điều hành Android

- Áp dụng công nghệ Game Engine, sử dụng Unity3D và ngôn ngữ lập trình C# để xây dựng ứng dụng

3 NGÀY GIAO NHIỆM VỤ :11/01/2016

4 NGÀY HOÀN THÀNH NHIỆM VỤ : / /

5 GIẢNG VIÊN HƯỚNG DẪN :PGS.TS Đặng Thành Phu

GIẢNG VIÊN HƯỚNG DẪN

Ngày tháng năm 2016

KHOA CÔNG NGHỆ THÔNG TIN

Trang 4

LỜI NÓI ĐẦU

Để hoàn thành được đồ án “Sử dụng Unity3D – Engine game đa nền tảng xây dựng ứng dụng giúp trẻ học chữ cái cho thiết bị di động”, trước tiênem xin gửi lời cảm ơn đến tất cả các thầy cô khoa Công nghệ Thông tin – Viện Đại học Mở Hà Nội đã tận tình tình dạy dỗ, truyền đạt kiến thức cho em trong bốn năm đại học vừa qua và nhờ đó mà em đã có chút kiến thức và kinh nghiệm cần thiết nhất để có thể thực hiện đề tài này Đặc biệt, em xin gửi lời cảm ơn chân thành nhất tới PGS TS Đặng Thành Phu – giáo viên hướng dẫn, người trực tiếp giúp đỡ, hướng dẫn và động viên em hoàn thành đồ án này

Trong quá trình thực hiện đồ án, em đã học hỏi thêm được rất nhiều kiến thức bổ ích, đã áp dụng những kiến thức đã được trang bị và tìm hiểu thêm kiến thức để giải quyết một vấn đề cụ thể mà thực tiễn đặt ra Đây là một hành trang tốt cho bước đường tiếp theo của em Mặc dù đã rất cố gắng

và nỗ lực hết sức để hoàn thành tốt đồ án nhưng do kiến thức và kinh nghiệm của bản thân còn hạn chếvà thời gian thực hiện đồ án tương đối ngắn nên đồ

án còn nhiều thiết sót, em mong nhận được những ý kiến đóng góp quý báu từ các thầy côvà các đồng nghiệp để đồ án của em được hoàn thiện hơn

Em xin chân thành cảm ơn!

Trang 5

MỤC LỤC

Trang

Chương 1NỀN TẢNG CÔNG NGHỆ 1

1.1 Ngôn ngữ lập trình C# 1

1.1.1 Giới thiệu ngôn ngữ lập trình C# 1

1.1.2 C# và Net Framework 2

1.1.3 Cấu trúc một chương trình C# 6

1.1.4 Cú pháp cơ bản 9

1.2 Tổng quan về công nghệ Game Engine 14

1.2.1 Khái niệm 14

1.2.2 Muc đích 14

1.2.3 Lịch sử 15

1.2.4 Xu hướng hiện tại 17

1.2.5 Một số Game Engine 18

1.3 Game Engine Unity3D 27

1.3.1 Giới thiệu về Unity3D 27

1.3.2 Các khái niệm và thành phần cơ bản của Unity3D 30

1.3.3 Kiến trúc engine Unity trên Android 37

1.3.4 Làm quen với môi trường Unity 40

Chương 2KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG 46

2.1 Xây dựng ý tưởng 46

2.2 Phân tích hệ thống ứng dụng 48

2.2.1 Quy trình xử lý 48

2.2.2 Mô hình tiến trình nghiệp vụ 49

2.2.3 Sơ đồ phân rã chức năng 50

2.2.4 Biểu đồ DFD mức 1 (mức đỉnh) 51

2.2.5 Biểu đồ DFD mức 2 (mức dưới đỉnh) 52

Trang 6

Chương 3THIẾT KẾ KIẾN TRÚC ỨNG DỤNG,MINIGAME VÀ GIAO

DIỆN 55

3.1 Thiết kế giao diện Menu ứng dụng 55

3.1 Thiết kế giao diện Chữ cái 56

3.1 Thiết kế giao diện menu MiniGame 57

3.4 Thiết kế giao diện MiniGame Đoán chữ 58

3.5 Thiết kế giao diện MiniGame Phản xạ 60

3.6 Thiết kế giao diện MiniGame Điền chữ 62

Chương 4DEMO ỨNG DỤNG VÀ HƯỚNG DẪN SỬ DỤNG 64

4.1 Menu ứng dụng 64

4.2 Học chữ cái 65

4.3 Menu Mini Game 66

4.4 Mini Game Đoán Chữ 67

4.5 Mini Game Phản Xạ 68

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 70

TÀI LIỆU THAM KHẢO 71

Trang 7

TÓM TẮT ĐỒ ÁN

Họ và tên: Nguyễn Duy Hải

Chuyên ngành: Công nghệ Thông tin Khóa: 12 Giảng viên hướng dẫn: PGS.TS Đặng Thành Phu

Tên đề tài: Sử dụng Unity3D – Engine game đa nền tảng xây

dựng ứng dụng giúp trẻ học chữ cái cho thiết bị di động

Trong xu hướng phát triển của ngành công nghệ thông tin, làm việc,học tập và giải trí trên các thiết bị di động ngày càng phát triển Tuy nhiên thời điểm hiện tại, các lĩnh vực để phát triển ứng dụng trên di động chưa nhiều trong khi nhu cầu sử dụng thiết bị di động để làm việc, học tập và giải trí ngày càng cao Các nhà sản xuất thiết bị di động lớn hiện nay chọn Android làm hệ điều hành chủ đạo, số lượng người dùng và thiết bị ngày càng tăng dẫn đến nhu cầu lớn về phát triển phần mềm Vì thế, lập trình ứng dụng Android đang

là hướng đi mới cho các lập trình viên

Cũng như các nước trên thế giới, Nhà nước ta coi sự nghiệp giáo dục, đào tạo là quốc sách hàng đầu Các thành tựu do Công nghệ thông tin mang lại sẽ là động lực giúp có thêm các phương tiện mới đáp ứng các yêu cầu của

sự nghiệp đổi mới giáo dục – đào tạo Với công nghệ ngày càng hoàn thiện về phần cứng, giá thành ngày càng giảm và những đóng góp to lớn của lĩnh vực phần mềm thì việc đưa máy tính, điện thoại di động,… làm công cụ hỗ trợ cho công tác giảng dạy và học tập là một xu hướng tất yếu Công nghệ thông tin với các phương tiện phong phú, đa dạng đã cho phép mở ra các phương pháp giảng và học mới, hỗ trợ quá trình tư duy sáng tạo, khả năng xử lý văn bản, hình ảnh, âm thanh, truy cập, hỏi đáp, cập nhật, truyền bá nhanh chóng thông tin Giáo dục ở nước ta đã có nhiều cố gắng trong việc sử dụng công nghệ thông tin với nhiều hình thức đào tạo Tuy nhiên các giáo án cho các

Trang 8

hình thức mới này vẫn còn nghèo nàn, hạn chế, đặc biệt trong lĩnh vực mở rộng khả năng tư duy, sáng tạo của trẻ em Việc nghiên cứu tâm sinh lý, và nhận thức ở trẻ em ở độ còn nhỏ là một điều vô cùng cần thiết cho việc xây dựng những chương trình giúp các bậc phụ huynh tối ưu sự phát triển tư duy cho con em mình với phương châm “chơi mà học, học mà chơi”

Với những suy nghĩ như vậy, em đã đưa ra ý tưởng là xây dựng một ứng dụng trên chiếc điện thoại chạy hệ điều hành Android bằng Unity3D – Engine game, một công cụ lập trình game được nhiều lập trình viên sử dụng

để giúp trẻ học chữ cái, đỡ đi phần nào công sức của bậc cha mẹ trong việc

nuôi dạy con cái của mình Vì vậy, em đã chọn đề tài đồ án tốt nghiệp “Sử dụng Unity3D – Engine game đa nền tảng xây dựng ứng dụng giúp trẻ học chữ cái cho thiết bị di động” với nội dung:

• Chương 1: Nền tảng công nghệ: Trong chương này trình bày nền tảng công nghệ được sử dụng trong đồ án,đó là ngôn ngữ lập trình C#, công nghệ Engine Game, đặc biệt đi sâu vào Unity3D-một Engine game sử dụng trong đồ án

• Chương 2: Khảo sát và phân tích hệ thống: Từ việc xây dựng ý tưởng (kịch bản) đến xây dựng quy trình xử lý, mô hình tiến trình nghiệp vụ,

sơ đồ phân rã chức năng đến các biểu đồ DFD các mức đã được trình bày trong chương này

• Chương 3: Thiết kế kiến trúc ứng dụng, mini game và giao diện: Chi tiết thiết kế giao diện và từng bước hoạt động của từng màn hình trong ứng dụng, mini game

• Chương 4: Demo ứng dụng và hướng dẫn sử dụng: Qua đó cho thấy kết quả của đề tài và hướng dẫn cách sử dụng ứng dụng

Trang 9

DANH MỤC HÌNH VẼ

Trang

Hình 1.1 Kiến trúc khung ứng dụng NET 4

Hình 1.2 Cấu trúc một chương trình C# 7

Hình 1.3 Cú pháp cơ bản của chương trình C# 10

Hình 1.4 Các từ khóa trong C# 13

Hình 1.5 Unity 18

Hình 1.6 Corona SDK 19

Hình 1.7 GameSalad 20

Hình 1.8 Sprite Kit 21

Hình 1.9 Cocos2d-x 22

Hình 1.10 LibGDX 23

Hình 1.11 Andengine 25

Hình 1.12 Gideros 26

Hình 1.13 Các nền tảng Unity3D hỗ trợ 27

Hình 1.14 Thư mục Assets trong Windows Explorer 30

Hình 1.15 Thư mục Assets trong Unity 30

Hình 1.16 Các Scene của Unity 31

Hình 1.17 Kéo tài nguyên vào Scene để sử dụng 32

Hình 1.18 Các Component của một GameObject 32

Hình 1.19 Sprite trong Unity 33

Hình 1.20 Cách tạo file script mới 34

Hình 1.21 Lập trình Unity bằng C# trên Visual Studio 34

Hình 1.22 Một file script đang gắn vào đối tượng 35

Hình 1.23 Material và Shader 36

Hình 1.24 Tổng quan kiến trúc Unity 37

Hình 1.25 Chu kỳ sống của thành phần script 39

Trang 10

Hình 1.26 Giao diện môi trường làm việc của Unity 40

Hình 1.27 Cửa sổ Scene 42

Hình 1.28 Cửa sổ Hierarchy 42

Hình 1.29 Cửa sổ Inspector 43

Hình 1.30 Cửa sổ Game 43

Hình 1.31 Cửa sổ Project 44

Hình 1.32 Top bar trong Unity 45

Hình 2.1 Sơ đồ quy trinh xử lý 48

Hình 2.2 Mô hình tiến trình nghiệp vụ 49

Hình 2.3 Sơ đồ phân rã chức năng 50

Hình 2.4 Biểu đồ DFD mức đỉnh 51

Hình 2.5 Biểu đồ DFD mức 2 chức năng “Cài đặt” 52

Hình 2.6 Biểu đồ DFD mức 2 chức năng “Học chữ cái” 53

Hình 2.7 Biểu đồ DFD mức 2 chức năng “Mini Game” 54

Hình 3.1 Giao diện màn hình Menu ứng dụng 55

Hình 3.2 Biều đồ trình tự hoạt động Menu ứng dụng 55

Hình 3.3 Giao diện màn hình Chữ cái 56

Hình 3.4 Biều đồ trình tự hoạt động màn hình Chữ cái 56

Hình 3.5 Giao diện màn hình menu MiniGame 57

Hình 3.6 Biều đồ trình tự hoạt động màn hình menu MiniGame 57

Hình 3.7 Giao diện màn hình game Đoán chữ 58

Hình 3.8 Biều đồ trình tự hoạt động game Đoán chữ 59

Hình 3.9 Giao diện màn hình game Phản xạ 60

Hình 3.10 Biều đồ trình tự hoạt động game Phản xạ 61

Hình 3.11 Giao diện màn hình game Điền chữ 62

Hình 3.12 Biểu đồ trình tự hoạt động game Điền chữ 63

Hình 4.1 Màn hình demo Menu ứng dụng 64

Trang 11

Hình 4.2 Màn hình demo chức năng học chữ cái (hình 1) 65

Hình 4.3 Màn hình demo chức năng học chữ cái (hình 2) 66

Hình 4.4 Màn hình demo Menu Mini Game 66

Hình 4.5 Màn hình demo Mini Game Đoán Chữ 67

Hình 4.6 Màn hình demo Mini Game Đoán Chữ (chọn sai) 68

Hình 4.7 Màn hình demo Mini Game Phản Xạ 69

Hình 4.8 Màn hình demo Mini Game Phản Xạ (chọn sai) 69

Trang 12

Chương 1 NỀN TẢNG CÔNG NGHỆ

1.1 Ngôn ngữ lập trình C#

1.1.1 Giới thiệu ngôn ngữ lập trình C#

C# là một ngôn ngữ lập trình đơn giản, hiện đại, mục đích tổng quát, hướng đối tượng được phát triển bởi Microsoft và được phê chuẩn bởi European Computer Manufacturers Association (ECMA) và International Standards Organization (ISO)

C# được phát triển bởi Anders Hejlsberg và team của ông trong khi phát triển Net Framework

C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm Executable Code và Runtime Environment, cho phép chúng ta sử dụng các ngôn ngữ bậc cao đa dạng trên các nền tảng và cấu trúc máy tính khác nhau

Dưới đây là các lý do làm C# là ngôn ngữ lập trình chuyên nghiệp được sử dụng rộng rãi:

• Nó là một ngôn ngữ lập trình hiện đại, mục đích tổng quát

• Nó là ngôn ngữ lập trình hướng đối tượng

• Nó dễ dàng để học

• Nó là một ngôn ngữ được cấu trúc

• Nó tạo các chương trình hiệu quả

• Nó có thể được biên dịch trên nhiều nền tảng máy tính khác nhau

• Nó là một phần của Net Framework

Cấu trúc C# khá gần với các ngôn ngữ bậc cao truyền thống như C và C++, và là một ngôn ngữ lập trình hướng đối tượng Nó có sự giống nhau

Trang 13

mạnh mẽ với Java và có nhiều đặc điểm lập trình mạnh mẽ mà làm cho nó trở nên ưa thích với các lập trình viên trên toàn thế giới

Dưới đây là các đặc điểm quan trọng của C#:

• Điều kiện Boolean

• Tự động dọn rác bởi Garbage-Collector (GC)

• Thư viện chuẩn (Standard Library)

• Assembly

• Property và sự kiện (Event)

• Delegate Quản lý sự kiện

• Dễ dàng để sử dụng Generic

• Indexer

• Biên dịch có điều kiện (Conditional Compilation)

• Đa luồng dễ dàng (Multithreading)

• LINQ và Lambda Expression

số đó có các dịch vụ COM+, công nghệ ASP, XML và thiết kế hướng đối tượng, hỗ trợ các giao thức dịch vụ web mới như SOAP, WSDL và UDDL với trọng tâm là Internet, tất cả được tích hợp trong kiến trúcDNA

Trang 14

Nền tảng NET bao gồm bốn nhómsau:

• Một tập các ngôn ngữ, bao gồm C# và Visual Basic Net; một tập các công cụ phát triển bao gồm Visual Studio Net; một tập đầy đủ các thư viện phục vụ cho việc xây dựng các ứng dụng web, các dịch vụ web và các ứng dụng Windows; còn có CLR - Common Language Runtime: (ngôn ngữ thực thi dùng chung) để thực thi các đối tượng được xây dựng trên bô khung này

• Một tập các Server Xí nghiệp Net như SQL Server 2000 Exchange 2000, BizTalk 2000, … chúng cung cấp các chức năng cho việc lưu trữ dữ liệu quan hệ, thư điện tử, thương mại điện tử B2B, …

• Các dịch vụ web thương mại miễn phí, vừa được công bố gần đậy như là

dự án Hailstorm; nhà phát triển có thể dùng các dịch vụ này để xây dựng các ứng dụng đòi hỏi tri thức về định danh người dùng…

• NET cho các thiết bị không phải PC như điện thoại (cell phone), thiết bị game

1.1.2.2 .NET Framework

.NET hỗ trợ tích hợp ngôn ngữ, tức là ta có thể kế thừa các lớp, bắt các biệt lệ, đa hình thông qua nhiều ngôn ngữ .NET Framework thực hiện được việc này nhờ vào đặc tả Common Type System - CTS (hệ thống kiểu chung)

mà tất cả các thành phần.NET đều tuân theo Ví dụ, mọi thứ trong NET đều

là đối tượng, thừa kế từ lớp gốc System.Object

Ngoài ra NET còn bao gồm Common Language Specification - CLS (đặc tả ngôn ngữ chung) Nó cung cấp các qui tắc cơ bản mà ngôn ngữ muốn tích hợp phải thỏa mãn CLS chỉ ra các yêu cầu tối thiểu của ngôn ngữ

hỗ trợ NET Trình biên dịch tuân theo CLS sẽ tạo các đối tượng có thể

Trang 15

tương hợp với các đối t

(Framework Class Library

nào tuân theo CLS

cấp môi trường cho ứng d

Java CLR kích hoạt đố

thực thi và thu dọn chúng

đối tượng khác Bộ thư viện lớp của khung Framework Class Library - FCL) có thể được dùng bởi bất k

.NET Framework nằm ở tầng trên của hệ điều hành (bấ

à Windows) .NET Framework bao bao gồm:

ữ chính thức: C#, VB.Net, C++, và Jscript.NETCommonLanguageRuntime-

nghướngđốitượngchopháttriển

ng Windows và Web mà các ngôn ngữ có th

n Framework Class Library - FCL

1.1 Kiến trúc khung ứng dụng NET

n quan trọng nhất của NET Framework là CLR, nó cung ứng dụng thực thi, CLR là một máy ảo, tương

ối tượng, thực hiện kiểm tra bảo mật, cấp phchúng

a khung ứng dụng

ất kỳ ngôn ngữ

ất kỳ hệ điều ồm:

và Jscript.NET

có thể chia sẻ sử

à CLR, nó cung ương tự máy ảo

ấp phát bộ nhớ,

Trang 16

Trong Hình 1.1 tầng trên của CLR bao gồm:

• Các lớp cơsở

• Các lớp dữ liệu vàXML

• Các lớp cho dịch vụ Web, Web form, và Windows form

Các lớp này được gọi chung là FCL, Framework Class Library, cung cấp API hướng đối tượng cho tất cả các chức năng của NET Framework (hơn 5000 lớp)

Các lớp cơ sở tương tự với các lớp trong Java Các lớp này hỗ trợ các thao tác nhập xuất, thao tác chuổi, văn bản, quản lý bảo mật, truyền thông mạng, quản lý tiểu trình và các chức năng tổng hợp khác…

Trên mức này là lớp dữ liệu và XML Lớp dữ liệu hỗ trợ việc thao tác các dữ liệu trên cơ sở dữ liệu Các lớp này bao gồm các lớp SQL (Structure Query Language: ngôn ngữ truy vấn có cấu trúc) cho phép ta thao tác dữ liệu thông qua một giao tiếp SQL chuẩn Ngoài ra còn một tập các lớp gọi là ADO.NET cũng cho phép thao tác dữ liệu Lớp XML hỗ trợ thao tác dữ liệu XML, tìm kiếm và diễn dịch XML

Trên lớp dữ liệu và XML là lớp hỗ trợ xây dựng các ứng dụng Windows (Windows forms), ứng dụng Web (Web forms) và dịch vụ Web (Web services)

Trang 17

1.1.2.3 Biên dịch và ngôn ngữ trung gian(MSIL)

Với NET chương trình không biên dịch thành tập tin thực thi, mà biên dịch thành ngôn ngữ trung gian (MSIL - Microsoft Intermediate Language, viết tắt là IL), sau đó chúng được CLR thực thi Các tập tin IL biên dịch từ C# đồng nhất với các tập tin IL biên dịch từ ngôn ngữ NETkhác

Khi biên dịch dự án, mã nguồn C# được chuyển thành tập tin IL lưu trên đĩa Khi chạy chương trình thì IL được biên dịch (hay thông dịch) một

lần nữa bằng trình Just In Time – JIT và khi này kết quả là mã máy và bộ xử

Trang 18

Đoạn code đơn giản sau sẽ in “Hello World”:

Hình 1.2 Cấu trúc một chương trình C#

Khi code trên được biên dịch và thực thi, nó sẽ cho kết quả:

Các phần của chương trình trên:

• Dòng đầu tiên using System; Từ khóa using được sử dụng để baoSystemnamespace trong chương trình Nói chung, một chương trình

có nhiều lệnh using

• Dòng tiếp theo có khai báo namespace Một namespace là một tập hợp

các lớp.HelloWorldApplication namespace chứa class HelloWorld

• Dòng tiếp theo có một khai báo class, class HelloWorld chứa các định

nghĩa dữ liệu và phương thức mà chương trình của bạn sử dụng Nói chung, class chứa nhiều phương thức Các phương thức định nghĩa hành

vi của class Tuy nhiên, lớpHelloWorld chỉ có một phương thức Main

Trang 19

• Dòng tiếp theo định nghĩa phương thức Main, mà là entry point cho tất

cả chương trình C# Phương thức Main biểu diễn trạng thái lớp khi được

o WriteLine là một phương thức của lớp Console được định nghĩa

trong System namespace Lệnh này làm thông báo “Hello, World!” được hiển thị trên màn hình

• Dòng cuối cùng Console.ReadKey(); là cho VS.NET Users Nó làm

chương trình đợi cho một phím được nhấn và nó ngăn cản màn hình chạy

và đóng một cách nhanh chóng khi chương trình được phát động từ Visual Studio.NET

Các đặc điểm cần ghi nhớ:

• C# là phân biệt kiểu chữ (case sensitive)

• Tất cả lệnh và biểu thức phải kết thúc với một dấu chấm phảy (;)

• Sự thực thi chương trình bắt đầu tại phương thức Main

• Không giống Java, tên file chương trình có thể khác tên lớp

 Biên dịch và thực thi chương trình C#

Nếu sử dụng Visual Studio.NET để biên dịch và thực thi các chương trình C#, thì theo các bước sau:

• Bắt đầu Visual Studio

• Trên thanh menu, chọn File -> New -> Project

• Chọn Visual C# từ các Template, và sau đó chọn Windows

Trang 20

• Chọn Console Application

• Xác định tên cho project và nhấn nút OK

• Điều này tạo New Project trong Solution Explorer

• Viết code trong Code Editor

• Nhấn nút Run hoặc nhấn phím F5 để thực thi project Một cửa sổ Command Prompt xuất hiện mà chứa dòng Hello World

Có thể biên dịch một chương trình C# bởi sử dụng command-line thay cho Visual Studio IDE:

• Mở một Text Editor và thêm code trên vào

• Lưu tệp dưới dạng helloworld.cs

• Mở công cụ Command Prompt tool và tới thư mục nơi bạn lưu file

đó

• Soạn csc helloworld.cs và nhấn Enter để biên dịch code

• Nếu không có lỗi nào trong code, thì Command prompt sẽ nhẩy

sang dòng tiếp theo và tạo tệp helloworld.exe có thể thực thi

(executable)

• Soạn helloworld để thực thi chương trình

• Ta có thể thấy output là Hello World được in trên màn hình

1.1.4 Cú pháp cơ bản

C# là một ngôn ngữ lập trình hướng đối tượng Trong phương pháp lập trình hướng đối tượng, một chương trình gồm các đối tượng đa dạng mà tương tác với nhau các cách thức của action Các action mà một đối tượng có thể nhận được gọi là các phương thức Các đối tượng cùng loại được xem như là có cùng kiểu hoặc, được xem như là trong cùng lớp

Trang 21

Ví dụ, xét đối tượng Rectangle Nó có các thuộc tính như length và

width Phụ thuộc vào thiết kế trên Nó có thể cần những cách để cấp nhận các

giá trị của thuộc tính này, tính toán diện tích và hiển thị chi tiết

Ví dụ sau triển khai một lớp Rectangle và cú pháp C# cơ bản của

chương trình này:

Hình 1.3 Cú pháp cơ bản của chương trình C#

Trang 22

Khi code trên được biên dịch và thực thi, nó sẽ cho kết quả:

• Từ khóa “using” trong C#:

o Lệnh đầu tiên trong bất kỳ chương trình C# nào là:

o Từ khóa using được sử dụng để bao namespace trong chương

trình Một chương trình C# có thể bao nhiều lệnh using

• Từ khóa “class”: được sử dụng để khai báo một lớp trong C#

• Comments trong C#: Comment được sử dụng để thuyết minh code Compiler bỏ qua các comment Các comment đa dòng trong các chương trình C# bắt đầu với /* và kết thúc với */ như sau:

- Comment đơn dòng được chỉ dẫn bởi ký hiệu '//' Ví dụ:

• Biến thành viên: Các biến là các thuộc tính hoặc thành viên dữ liệu của một lớp, được sử dụng để lưu giữ dữ liệu Trong chương trình trước đó,

lớp Rectangle có hai biến thành viên là length và width

• Hàm thành viên: Hàm là tập hợp các lệnh mà thực hiện một tác vụ cụ thể Các hàm thành viên của một lớp được khai báo bên trong lớp

Trang 23

đó.Lớp Rectangle chứa 3 hàm thành viên

là:AcceptDetails,GetAreavàDisplay

• Thuyết minh một class: Trong chương trình trên,

lớpExecuteRectanglechứa phương thức Main() và thuyết minh lớpRectangle

• Định danh (Identifier): Một định danh là một tên được sử dụng để nhận diện một lớp, biến, hàm hoặc bất kỳ mục tự định nghĩa (user-defined)

o Một tên phải bắt đầu với một chữ cái mà có thể được theo sau bởi một dãy các chữ cái, ký số (0-9) hoặc dấu gạch dưới (_) Ký

tự đầu tiên của một định danh không thể là một ký số

o Nó phải không chứa bất kỳ khoảng trống hoặc ký tự như ? - + !

@ # % ^ & * ( ) [ ] { } ; : " ' / và \ Tuy nhiên, dấu gạch dưới có thể được sử dụng

o Nó không nên là một từ khóa trong C#

• Từ khóa trong C#:

o Từ khóa là các từ dành riêng (Reserved Keyword) được định nghĩa

trước cho C# compiler Những từ khóa này không thể được sử dụng làm định danh Tuy nhiên, nếu bạn muốn sử dụng các từ khóa này

để làm định danh, bạn có thể đặt ký tự @ ở trước chúng

o Trong C#, một số định danh có ý nghĩa đặc biệt trong ngữ cảnh của code, ví dụ như get và set được gọi là các contextual keyword (từ khóa thuộc ngữ cảnh)

o Bảng sau liệt kê các từ khóa dành riêng và các từ khóa thuộc ngữ cảnh trong C#:

Trang 24

Hình 1.4 Các từ khóa trong C#

Trang 25

1.2 Tổng quan về công nghệ Game Engine

1.2.1 Khái niệm

Một Game engine (hay công cụ tạo Game/động cơ Game) 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 một hệ thống với nhau Để hiểu kỹ hơn, có thể tưởng tượng Game engine là tập hợp của các thư viện các hàm độc lập cộng với hệ thống tool hỗ trợ cho nhiều công đoạn trong việc phát triển game Thí dụ như ngay trong các sản phẩm này đã có những phần mềm giúp thiết kế mô hình (model editor), dựng màn chơi (level editor), trình viết mã (script editor) và thậm chí là cả hệ thống mô phỏng vật lý 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.2.2 Muc đích

Game engine cung cấp một bộ các công cụ phát triển trực quan và có thể tái sử dụng từng thành phần trong đó Nói chung các bộ công cụ này cung cấp một môi trường phát triển tích hợp được đơn giản hóa Phát triển ứng

dụng nhanh (tiếng Anh:rapid application development) cho game theo cách

lập trình hướng dữ liệu Những game engine này đôi khi còn được gọi là các

"phần mềm trung gian cho game"(game middleware) Như ý nghĩa của thật

Trang 26

ngữ, chúng cung cấp một nền tảng phần mềm linh hoạt và dễ dàng sử dụng lại với mọi chức năng cốt lõi cần thiết ngay trong nó để có thể phát triển một ứng dụng game đồng thời giảm giá thành, độ phức tạp, và kịp thời hạn phát hành- tất cả các yếu tố quan trọng trong ngành công nghiệp game đầy cạnh tranh

Giống như các phần mềm trung gian khác, game engine thường cung cấp một nền tảng trừu tượng hóa, cho phép một game có thể chạy trên nhiều

hệ máy bao gồm các hệ console hoặc máy tính cá nhân với một vài thay đổi, nếu có trong mã nguồn của game đó Thông thường, phần mềm trung gian cho game được thiết kế với một nền tảng kiến trúc dựa trên các thành phần khác, cho phép các hệ thống khác nhau trong engine có thể thay thế hoặc mở rộng với các phần mềm trung gian khác chuyên biệt hơn (và cũng đắt đỏ hơn) như là Havok cho hệ thống vật lý trong game, Miles Sound System cho âm thanh, hay Bink cho các đoạn video Một số game engine như RenderWare thậm chí còn thiết kế một loạt các kết nối lỏng lẻo các phần mềm trung gian khác mà từ đó có thể chọn lọc và kết hợp để tạo ra một game engine theo yêu cầu, thay vì cách tiếp cận thông thường là mở rộng và tùy biến một cách linh hoạt để tạo ra giải pháp tích hợp Tuy vậy, sự mở rộng vẫn cần thiết, đó vẫn là một ưu tiên cao do yêu cầu ứng dụng đa dạng trong game engine Mặc dù có

sự phức tạp trong tên gọi, các game engine vẫn thường được sử dụng cho các loại khác của ứng dụng tương tác với các yêu cầu đồ họa thời gian thực như giới thiệu các bản demo, dựng hình kiến trúc, đào tạo mô phỏng, và mô hình hóa môi trường

1.2.3 Lịch sử

Trước khi có game engine, game thường được tạo ra từng phần nhỏ: ví

dụ, một game cho hệ máy Atari 2600 phải được thiết kế từ mức cơ bản nhất

để tối ưu việc hiển thị phần cứng (hay thiết kế hiển thị lõi-ngày nay người ta

Trang 27

dùng từ nhân hệ điều hành) Các hệ máy khác thậm chí còn tiếp cận khó khăn hơn, nhưng kể cả khi việc hiển thị không phải là vấn đề thì việc bộ nhớ hạn chế thường hủy hoại các nỗ lực tạo ra một thiết kế dữ liệu lớn mà một engine yêu cầu Kể cả trên các hệ thống có bộ nhớ lớn hơn, rất ít trong số chúng có thể sử dụng lại giữa các game Các tiến bộ nhanh chóng của công nghệ phần cứng -khởi đầu thời kỳ thị trường hóa có nghĩa là hầu hết các bộ mã nguồn tạo game trước đó sẽ bị bỏ đi sau đó, như các thế hệ game sau này sẽ sử dụng thiết kế khác hoàn toàn và đồng thời tận dụng cả các nguồn tài nguyên ngoài

Do đó phần lớn các game thiết kế trong thập kỷ 80 được tạo ra thông qua một

bộ mã nguồn có quy tắc cố định với một lượng nhỏ cấp độ dữ liệu và dữ liệu hình ảnh

Thuật ngữ "game engine" xuất hiện vào giữa những năm 90, đặc biệt là trong mối quan hệ với game 3D như game bắn súng góc nhìn người thứ nhất(FPS) Như các thương hiệu nổi tiếng của id Sortware:DoomvàQuakechẳng hạn, thay vì phải làm việc từ đầu, các nhà phát triển khác (nếu được cấp phép) sẽ có quyền truy nhập vào phần lõi (mã nguồn) của game và thiết kế các hình ảnh, nhân vật, vũ khí, và các màn chơi của riêng họ-gọi là game content(nội dung game) hay "game assets"(tài sản game).Sự tách biệt trong việc làm game - các quy định cụ thể và dữ liệu từ các khái niệm cơ bản như hệ thống vật lý và các thực thể trong game (như nhân vật phụ, đồ vật) có nghĩa rằng các nhóm phát triển có thể tăng lên và chuyên môn hóa dần

Game engine hiện đại là một trong những ứng dụng được viết ra (bằng các ngôn ngữ lập trình) phức tạp nhất, thường xuyên phải có rất nhiều tinh chỉnh trong hệ thống để đảm bảo kiểm soát chính xác trải nghiệm người dùng

Sự phát triển liên tục của game engine đã tạo ra một sự phân chia mạnh mẽ giữa dựng hình, kịch bản, thiết kế hình ảnh, và thiết kế cấp độ(các màn

Trang 28

chơi ) Để làm được điều đó, hiện nay một đội ngũ phát triển game điển hình phải có số lượng họa sĩ gấp vài lần số lượng lập trình viên

1.2.4 Xu hướng hiện tại

Với công nghệ tạo game engine càng phát triển và trở nên thân thiện hơn với người sử dụng,ứng dụng của nó càng được mở rộng, và giờ đây được

sử dụng để tạo các game mang mục đích khác với giải trí đơn thuần như: mô phỏng, huấn luyện ảo, y tế ảo, và mô phỏng các ứng dụng quân sự Để tạo điều kiện tiếp cận này, các nền tảng phần cứng mới đang là mục tiêu của game engine, kể cả điện thoại di động (ví dụ: iPhone, điện thoại Android)

và trình duyệt Web (như Shockwave, Flash, WebVision củaTrinigy,SilverlightUnity Web Player, O3D và thuần dhtml)

Thêm vào đó, nhiều game engine đang được tạo ra bằng các ngôn ngữ lập trình cấp cao như Java và C# hay NET (ví dụ TorqueX, Visual3D.NET) hay Python (Panda3D) Vì hầu hết các game 3D hiện nay đều có giới hạn cho GPU(giới hạn bởi sức mạnh của card đồ họa), khả năng gây chậm máy của các ngôn ngữ lập trình cấp cao trở nên không đáng kể, trong khi việc tăng năng suất được cung cấp bởi các ngôn ngữ này lại có lợi cho các nhà phát triển game engine Những xu hướng này gần đang được thúc đẩy bởi các hãng như Microsoft để hỗ trợ các nhà phát triển game độc lập Microsoft phát triển XNA (Microsoft XNA) như là một gói phần mềm phát triển (SDK) cho tất cả các game trên hệ máy Xbox và các sản phẩm liên quan Nó bao gồm kênh thiết kế XBox Live Indie Games đặc biệt cho các nhà phát triển nhỏ không có nguồn lực mở rộng cần thiết để đóng gói một game để bán trên các giá bán lẻ Việc này trở nên dễ dàng hơn và rẻ hơn bao giờ hết để phát triển một game đa hệ máy có hỗ trợ managed frameworks

Trang 29

1.2.5 Một số Game Engine

1.2.5.1 Unity3D

Website https://unity3d.com/

Hình 1.5 Unity Unity3D là phần mềm làm games trực tiếp theo thời gian thực, mà không cần render, cho phép người design game có thể thiết kế InterfaceGraphic,map hay character … từ một phần mềm thứ 2 (thường là các phần mềm thiết kế đồ họa chuyên nghiệp như 3Dsmax, Blender, Maya, XSL,Cinema4D,Cheetah3D, Modo, Autodesk FBX, LightWave…) sau đó chỉ việc import nó vào trong Unity với định dạng của tập tin là *.FBX hay *.dae,

*.3DS, *.dxf và *.obj, nhưng định dạng *.FBX hay được dùng vì được tối ưu hóa hơn, còn dùng các định dạng khác ngoài FBX thì phải cài phần mền thiết

kế character tưng ứng thì mới dùng được (tức là dùng Maya có định dạng

*.mb, *.ma thì muốn dùng được phải cài Maya)

Ngoài ra khi bạn design (thiết kế) được một game thì bạn có thể xuất được ra một file.exe và có thể chạy và chơi được trên PC khác

Một thế mạnh nữa của Unity là có thể chạy demo game của bạn ngay trongkhi design, nó có hỗ trợ hai chế độ là Scene và Game, rất thuận tiện cho việc test thử các modul của Game

Trang 30

Unity3D có 2 loạ

và một phiên bản pro thì m

đến khi kết thúc cài đặ

nếu là người dùng free thì ch

internet, sau đó chọn phươ

bạn có thể sử dụng một b

Unity3D là một game engine s

của đồ án nên sẽ được trình bày k

ại phiên bản, một cho người dùng không m

n pro thì mất phí.Khitải Unity về các bạn cài đặ

ặt nền, nếu chọn phiên bản Pro thì cần ph

i dùng free thì chọn kích hoạt qua Web, chỉ cần có k

phương thức cài đặt thủ công và nhập mail, ch

t bản Unity free

t game engine sẽ được sử dụng để phát tri

c trình bày kỹ ở mục 1.3 của chương

http://coronalabs.com/

Hình 1.6 Corona SDK

ọn số một cho các ứng dụng 2D chất lượng cao

i Corona có 3 lựa chọn:

Corona SDK Starter: Xây dựng và xuất bản các ứ

Corona SDK PRO: thêm các tính năng tiên tiến và

Trang 31

• Phát triển ứng dụng nhanh hơn 10 lần:Corona làm tăng đáng kể năng suất của bạn Nhờ các API, các nhiệm vụ như đối tượng hoạt hình, giao diện người dùng, thêm tính chất vật lý mà chỉ mất vài dòng mã

• Chuyển đổi giữa các nền tảng một cách dễ dàng.Viết một lần và

có thể xây dựng cho Android, iOS, Kindle Fire, và Nook Corona làm việc một các dễ dàng với các thiết bị kích cỡ khác nhau và

độ phân giải khác nhau

• Tiêu chuẩn công nghiệp: Corona xây dựng dựa trên tiêu chuẩn công nghiệp như OpenGL, OpenAL, Google Maps, Box2D, Facebook, Game Center

1.2.5.3 GameSalad

Website: http://gamesalad.com/

Hình 1.7 GameSalad GameSalad là một nền tảng để phát triển trò chơi, hoàn toàn dựa trên giao diện thị giác và không cần kĩ năng lập trình Chủ yếu nhắm tới đối tượng khách hàng là những người có tiềm năng phát triển trò chơi nhưng lại thiếu đi

kĩ năng lập trình Ban đầu GameSald chỉ phát triển trên hệ điều hành iOS, và sau đó thì mở rộng sang Android và HTML5 Hiện có trên 300.000 nhà phát triển, tạo ra trên 60.000 trò chơi và khoảng 10.000 là dành cho iOS Năm ngoái, khoảng 15% số trò chơi được bày bán trên iOS App Store được tạo ra

Trang 32

Kit được thiết kế

hình ảnh đơn giản nhưng ch

Nhược điểm:

ng 60 đã leo lên top 100 tại App Store Mỹ, 10 trong s

giành cho IOS 7

Hình 1.8 Sprite Kit

ư viện được xây dựng ngay trong IOS nên không

t kì một thư viện số (Extra Libray) hay một mã ngu

a Ngoài ra, nó được viết và phát triển bởi chính Apple nên biết được rằng nó sẽ được Apple hỗ tr

ớm nhất có thể

công cụ để cắt và thể hiện hiệu ứng ngay trong Xcode

p trình và quản lý game một cách dễ dàng do cấu trúc c

ế để làm chuyện đó Hỗ trợ các dạng video và hiưng chắc chắn sẽ được cải thiện trong tương lai

, 10 trong số đó

ng ngay trong IOS nên không cần phải

t mã nguồn nào

i chính Apple nên trợ và cập nhật

ng ngay trong Xcode

u trúc của Sprite

ng video và hiệu ứng ương lai

Trang 33

• Một khi sử dụng Sprite Kit ngh

hệ sinh thái của Apple N

điều hành khác nh

• Sprite Kit đang ở

thứ hoàn toàn không ch

cho việc tham gia vào vi

những lập trình viên có thâm niên cao th

Trang Web Việt Nam có th

ng Sprite Kit nghĩa là cuộc sống của bạn s

a Apple Nếu bạn muốn đưa game của b

u hành khác như Android thì nó gần như là viết lại từ đ

ở thời kì đầu của nó Việc nó thành công hay thhoàn toàn không chắc chắn Thêm vào đó, Sprite Kit ch

tham gia vào việc tuỳ chỉnh các mã OpenGL nên

p trình viên có thâm niên cao thường không thích thú l

ã viết được trên các engine khác như Corona, Cocos2D

p với Sprite Kit Điều đó có nghĩa là bạn đang b

t phát cùng với tất cả mọi người

http://www.cocos2d-x.org/

Hình 1.9 Cocos2d-x

ột Engine hỗ trợ lập trình Game đa nền tảIOS, ANDROID, Blackberry, TIZEN, WP) Window, MacOS, HTML5,

những lập trình viên Trung Quốc (hay Korean?) phát

: Cocos2Dx hỗ trợ chủ yếu 3 ngôn ngữ: C++, Lua, Javascript

i nhất là Cocos2Dx – 3 RC0; (RC1 v

t Nam có thể tham khảo: http://cocos2d-x.vn/

n sẽ gắn liền với

a bạn lên các hệ đầu

c nó thành công hay thất bại là

ó, Sprite Kit chưa hỗ trợ

nh các mã OpenGL nên đối với

ng không thích thú lắm

Corona, Cocos2D

n đang bắt đầu từ

ảng : Mobile ( IOS, ANDROID, Blackberry, TIZEN, WP) Window, MacOS, HTML5, đại

hay Korean?) phát

: C++, Lua, Javascript

3 RC0; (RC1 vừa ra mắt)

x.vn/

Trang 34

Script Nhưng dùng bản Cocos2d

một lần, chạy được cho nhi

là mã nguồn mở và hỗ trợ Window, Mac OS IDE.( môi

ã phát triển nhiều Game nằm TOP của Appstore, CHPlay

ản khác là Cocos2d-iphone – dành riêng dùng ngôn ngữ lập trình Object – C) và m phát triển ứng dụng nền Web, dùng ngôn ng

n Cocos2d -x sẽ tốt hơn vì ĐA NỀN TẢ

c cho nhiều hệ thống khác nhau

CocosStudio đi kèm để hỗ trợ cho việc thiết kng…

http://libgdx.badlogicgames.com/index.html

Hình 1.10 LibGDX

t framework được sử dụng để phát triển các

a cho Desktop, Android, iOS, HTML5

m của Libgdx như sau:

ng: chúng ta chỉ cần viết code một lần nhưng có th

n tảng khác nhau Một ứng dụng của tính nă

ng dụng cho Android Để phát triển một Android, khi chạy thử ứng dụng, chúng ta cần chạy ứ

c trên thiết bị thật Việc này rất mất thời gian do Emulator

m và quá trình cài đặt cũng như chạy ứng dụng trên thi

Window, Mac OS IDE.( môi

a Appstore, CHPlay dành riêng để phát triển ) và một phiên bản

n Web, dùng ngôn ngữ Java

i gian do Emulator

ng trên thiết bị

Trang 35

thật cũng không khá hơn Với LibGDX, chúng ta có thể chạy ứng dụng trên PC, sau đó chỉ cần với vài dòng code, chúng ta có thể chạy ứng dụng này trên Android với hiệu năng tương đương Điều này giúp chúng ta kiểm thử và tìm lỗi ứng dụng nhanh hơn và hiệu quả hơn

• Hiệu năng: Hiệu năng của LibGDX thực sự rất ấn tượng do LibGDX sử dụng cả Java và mã nguồn C để tạo nên ứng dụng

• Cộng đồng: cộng đồng sử dụng LibGDX rất tuyệt vời với số lượng người dùng lớn Các lập trình viên luôn đóng góp và giúp đỡ cho cộng đồng Việc sửa lỗi cũng được cập nhật rất thường xuyên

• Tài liệu và ví dụ: rất đầy đủ với Javadoc LibGDX cũng cung cấp rất nhiều các ví dụ và demo với đầy đủ các chức năng từ đơn giản đến phức tạp

• Mã nguồn: mã nguồn mở với thiết kế rất rõ ràng và phù hợp với việc phát triển ứng dụng cho di động LibGDX cho phép người lập trình khả năng sử dụng các API từ các lớp thấp đến cao, tùy theo yêu cầu của người sử dụng

• Tính năng: LibGDX có rất nhiều tính năng như tạo hình, xử lý đồ họa 2D, 3D, xử lý âm thanh, quản lý các thiết bị vào ra, quản lý file hệ thống Cùng với đó là các công cụ đi kèm rất hữu ích như Texture Packer và Particle Editor

Trang 36

quan trọng nhất của OpenGL giúp cho vi

thời cung cấp khả năng qu

cảm ứng) và âm thanh

Một số đánh giá

• Giá thành: Hoàn toàn

• Hiệu năng: Tươ

ây là engineer phục vụ cho android

ột 2D Game Engine cho phép các lập trình viên có kinh

a có kinh nghiệm đều có khả năng phát triển các

t cách dẽ dàng Andengine bao gồm đầy đủ các thu

a OpenGL giúp cho việc dựng hình và tạo văng quản lý các thiết bị đầu vào (các sensor, màn hình

ánh giá về Andengine:

Giá thành: Hoàn toàn miễn phí

ng: Tương đối tốt, tuy nhiên chậm hơn so v

ư LibGDX ở phần trên)

ng: tương đối tốt, số lượng người sử dụng khá nhi

u và ví dụ: không có tài liệu cụ thể Đây là mộ

n khi chúng ta làm quen với Andengine Tuy nhiên có các ví

và các bài viết hướng dẫn của các lập trình viên (có thqua Internet) Do đó nếu bạn muốn sử dụng Andengine hãy chu

tìm hiểu bằng các ví dụ là chủ yếu

p trình viên có kinh

n các ứng dụng các thuộc tính

Trang 37

• Mã nguồn mở , thiết kế sử dụng nhiều phương thức trừu tượng (abstract) và kế thừa Hướng đối tượng tốt, tuy nhiên chưa thật sự tốt với nền tảng di động Android

• Tính năng: Có đầy đủ hầu hết các tính năng cơ bản để xây dựng một ứng dụng game Tuy nhiên vẫn chưa có nhiều tính năng giống như LibGDX

Điểm cộng dành cho Andengine chính là ở việc dễ sử dụng và dễ học hơn các Engine khác, đồng thời các tính năng cơ bản cũng khá đầy đủ cho việc xây dựng một game 2D đơn giản Hãy nhớ, Andengine chỉ thích hợp cho Game 2D Nếu yêu cầu về hiệu năng của bạn thật sự cao và game có nhiều hình ảnh phức tạp, cũng như hình ảnh vật thể là 3D, hãy tìm một Engine khác

1.2.5.8 Gideros

Hình 1.12 Gideros Gideros Studio là một game engine đa nền tảng dùng để phát triển game trên mobile Hiện nay Gideros đang hỗ trợ ios và android Gideros sử dụng Lua làm ngôn ngữ chính để phát triển (giống như corona SDK ) đây là ngôn ngữ rất đơn giản, dể học và dể sử dụng Ta chỉ cần viết code cho game bằng Lua và sau đó có thể build cho cả ios và android mà không có quá nhiều

sự thay đổi Gideros cung cấp cho chúng ta một bộ API đồ sộ và khá đầy đủ

Trang 38

(đồ họa, âm thanh, vật lý, c

nhanh chóng bằng cách s

trợ việc viết thêm plugin

rộng khác mà Gideros không h

1.3 Game Engine Unity3D

1.3.1 Giới thiệu về Unity3D

ng cách sử dụng các API có sẳn Ngoàn ra Gideros c

êm plugin để chúng ta có thể phát triển thêm các chideros không hỗ trợ sẵn

Game Engine Unity3D

Unity3D

ột Game Engine được xây dựng bởi đ

2004 Version hiện tại là 5.3.x có trên cả 2 nền t

ản đời đầu (1x-2x) chỉ hướng đến các nhà làm Game

ng khả năng đơn giản Tuy nhiên các phiên bạnh mẽ và những cải tiến vượt bậc, trở thành công c

u cá nhân và các công ty sử dụng (đặc biệt là thị trư

ủa Unity3D:

ng: Một trong các thế mạnh của Unity3D chính là kh

n như toàn bộ các nền tảng hiện có bao gồm: PlayStation 3, Xbox 360, Wii U, iOS, Android, Windows, Blackberry 10, OS X, Linux,

t Web và cả Flash Nói cách khác, chỉ với một gói engine, các

game cho bất kỳ hệ điều hành nào và dễ dàng chuy

ng hệ điều hành khác nhau Đồng thời, đây cpháp cho các game online đa nền tảng – có thể chơi đồng th

n cứng khác nhau như Web, PC, Mobile, Tablet…

Hình 1.13 Các nền tảng Unity3D hỗ trợ

giúp triển một cách ideros cũng hỗ

a Unity3D chính là khả

m: PlayStation 3, Xbox 360, Wii U, iOS, Android, Windows, Blackberry 10, OS X, Linux,

t gói engine, các dàng chuyển đổi đây cũng là giải

ng thời trên nhiều Web, PC, Mobile, Tablet…

Trang 39

• Dễ sử dụng: 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 Do được hướng đến đồng thời cả lập trình viên không chuyên và studio chuyên nghiệp, nên Unity3D khá dễ sử dụng Hơn nữa, đây là một trong những engine phổ biến nhất trên thế giới, người dùng có thể dễ dàng tìm kiếm kinh nghiệm sử dụng của “các tiền bối” trên các diễn đàn công nghệ

• Tính kinh tế cao: Unity Technologies hiện cung cấp bản miễn phí engine Unity3D cho người dùng cá nhân và các doanh nghiệp có doanh thu dưới 100.000 USD/năm Với phiên bản Pro, người dùng phải trả 1.500 USD/năm – một con số rất khiêm tốn so với những gì engine này mang lại

• Unity3D hướng tới người sử dụng chuyên nghiệp và cả nghiệp dư, nên khá

dễ sử dụng với ngôn ngữ lập trình bằng C#, JavaScript hoặc BOO

• Hỗ trợ Game 2D: Mặc dù tên gọi đầy đủ là Unity3D nhưng Unity không chỉ hỗ trợ việc xây dựng game 3D mà còn có thể xây dựng game 2D rất tốt

và có rất nhiều game 2D nổi tiếng trên các nền tảng khác nhau sử dụng Game Engine này

• Cung cấp các công cụ xử lý đồ hoạ, tích hợp sẵn thư viện vật lý, tính toán

Trang 40

documents, ebook phong phú và các buổi đào tạo được diễn ra thường xuyên.

• Cài đặt: chúng ta có thể vào trang chủ của Unity để tải phiên bản mới nhất

Ngày đăng: 22/03/2018, 19:34

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w