1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng game rừng xanh 3d trên unity

69 322 3

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

Nội dung

Biểu tượng Unity Unity được viết trên nền C++, tuy nhiên để sử dụng Unity, người dùng chỉ cần biết 1 trong 3 ngôn ngữ là C#, JavaScript, hoặc Boo, với JavaScript là đơn giản và dễ sử dụ

Trang 1

LỜI CẢM ƠN

Để hoàn thành được tốt báo cáo này, em xin cảm ơn thầy cô giáo và đặc biệt xin

gửi lời cảm ơn chân thành nhất đến cô giáo Ths.Nguyễn Hiền Trinh, cô đã hướng

dẫn dìu dắt và tạo điều kiện giúp đỡ em trong thời gian thực hiện đề tài đồ án tốt nghiệp Cô không chỉ truyền lại cho chúng em những kiến thức chuyên nghành mà còn rèn luyện cho chúng em nghị lực, khát khao vươn lên, phát huy khả năng tư duy sáng tạo trong mọi lĩnh vực Cuối cùng em xin cảm ơn gia đình, bạn bè đã tạo điều kiện tốt nhất để em có thể hoàn thành đề tài này!

Thái Nguyên, Ngày….Tháng…Năm 2017

Sinh Viên: Phạm Hải Yến

Trang 2

2

LỜI CAM ĐOAN

Em xin cam đoan rằng số liệu, kết quả nghiên cứu trong đồ án này là trung thực

và không trùng lặp với các đề tài khác Em cũng xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện đồ án này đã được cảm ơn và các thông tin trích dẫn trong đồ án đã được chỉ rõ nguồn gốc

Sinh viên

Phạm Hải Yến

Trang 3

MỤC LỤC

LỜI CẢM ƠN 1

LỜI CAM ĐOAN 2

MỤC LỤC 3

DANH MỤC HÌNH ẢNH 5

LỜI MỞ ĐẦU 8

CHƯƠNG 1GIỚI THIỆU TỔNG QUAN UNITY VÀ NGÔN NGỮ LẬP TRÌNH C#9 1.1 Giới thiệu về Unity 9

1.1.1 Dự án Unity, tài nguyên và phông cảnh 10

1.1.2 GameObjects, Transforms và Components 12

1.1.3 Camera 14

1.1.4 Lưới và hình học 15

1.2 Scripting và giao diện lập trình ứng dụng của Unity 16

1.3 Hiệu suất, định hình và bảng điều khiển trạng thái 18

1.4 Vật liệu của đối tượng 20

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

1.5.1 Nguồn gốc ra đời và lịch sử phát triển của ngôn ngữ lập trình C# 22

1.5.2 Các đặc trưng của ngôn ngữ lập trình C# 23

1.6 Một số kiểu ứng dụng NET có thể tạo ra bằng C# 26

1.6.1 Console Application 26

1.6.2 WPF Application 26

1.6.3 Windows Forms Application 27

1.6.4 Windows Forms Control Library 27

1.6.5 Web Application 27

CHƯƠNG 2 KHẢO SÁT, PHÂN TÍCH, XÂY DỰNG Ý TƯỞNG KỊCH BẢN GAME 28

2.1 Khảo sát thị trường Game và nhu cầu người chơi 28

2.2 Ý tưởng và kịch bản xây dựng Game 3D rừng xanh 32

2.2.1 Ý tưởng 32

2.2.2 Kịch bản 32

2.2.3 Phân tích thiết kế hướng đối tượng với UML 40

CHƯƠNG 3 XÂY DỰNG GAME RỪNG XANH 48

Trang 4

4

3.1 Thiết kế thành phần 48

3.2 Xây dựng Game Rừng Xanh 55

3.3 Kết quả thực hiện 62

KẾT LUẬN 67

TÀI LIỆU THAM KHẢO 68

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 69

Trang 5

DANH MỤC HÌNH ẢNH

Hình 1 Biểu tượng Unity 10

Hình 2 Thuộc tính Inspector 13

Hình 3 Giao diện Scene 14

Hình 4 Các thuộc tính của Camera 14

Hình 5 Khung nhìn của Camera 15

Hình 6 Giao diện của MonoDevolop 17

Hình 7 Thuộc tính của Profiler 18

Hình 8 Bảng trạng thái Stats 19

Hình 9 Doanh thu của thị trường Game 2015 28

Hình 11 Thể loại Game và số lượng người chơi 29

Hình 12: khảo sát thị trường Game theo giới tính 29

Hình 13.Khảo sát độ tuổi tham gia Game qua Pekemon Go 30

Hình 14 Nhân vật Jada 33

Hình 15 Hình ảnh Mèo 33

Hình 16 Hình ảnh Tê Giác 33

Hình 17 Hình ảnh Voi 34

Hình 18 Hình ảnh Hổ 34

Hình 19 Hình ảnh Hổ, Thỏ 34

Hình 20.21 Quái vật Blue Dragon 35

Hình 24.25 Quái vật Purple Dragon 36

Hình 26.27 Quái vật King Dragon 36

Hình 28.29 Quái vật Green Dragon 36

Hình 30.31 Nhân vật vật quái vật Alien 37

Hình 32.33 Nhân vật quái vật Guard 37

Hình 34.35 Nhân Vật quái vật Rhino 38

Hình 36.37 Nhân Vật quái vật Insect 38

Hình 38.39 Quái vương Troll 39

Hình 40 Hình ảnh Rừng Xanh 40

Hình 41 Biểu đồ Use case 42

Hình 42 Biểu đồ cộng tác Start game 42

Hình 43 Biểu đồ tuần tự Start game 42

Trang 6

6

Hình 44 Biểu đồ tuần tự Setting 43

Hình 45 Biểu đồ cộng tác Setting 43

Hình 46 Biểu đồ tuần tự Help 44

Hình 47 Biểu đồ cộng tác Help 44

Hình 48 Biều đồ tuần tự di chuyển nhân vật Jada 45

Hình 49 Biểu đồ cộng tác di chuyển nhân vật Jada 45

Hình 50 Biểu đồ cộng tác bắn súng nhân vật Jada 45

Hình 51 Biều đồ tuần tự bắn súng của nhân vật Jada 46

Hình 52 Biểu đồ hoạt động game 46

Hình 53 Thành phần của Main Camera 48

Hình 54 Thành phần thiết kế bối cảnh 49

Hình 55 Bối cảnh từ góc nhìn từ trên xuống 49

Hình 56 Thiết kế thành phần ánh sáng 50

Hình 57 Thiết kế thành phần nhân vật quái vật 52

Hình 58 Thiết kế thành phần nhân vật Jada 53

Hình 59 Thiết kế thành phần điểm, kết thúc và thắng Game 54

Hình 60 Thiết kế thành phần âm thanh 54

Hình 61 Giao diện khởi động Unity 55

Hình 62 Hình ảnh tạo Project 56

Hình 63 Các bước tạo C#Scripts 56

Hình 64 Giao diện MonoDevelop 57

Hình 65 Trạng thái chuyển đổi Animator của Jada 57

Hình 66 Trạng thái chuyển đổi GamOver, Winner 58

Hình 67 Trạng thái chuyển đổi của quái vật Alien và Rhino 58

Hình 68.Trạng thái chuyển đổi của Dragon(Blue, Yellow, Purple, Green) 58

Hình 69 Trạng thái chuyển đổi của quái vật quái vật Guard 59

Hình 70 Trạng thái chuyển đổi của quái vật Troll 59

Hình 71 Trạng thái chuyển đổi của quái vật Insect 59

Hình 72 Trạng thái chuyển đổi của quái vật quái vật King Dragon 60

Hình 73 Thiết kế animation GameOverLevel 1 60

Hình 74 Thiết kế Animation GameWinLevel 1 60

Hình 75 Thiết kế animation GameOverLevel 2 61

Trang 7

Hình 76 Thiết kế Animation GameWinLevel 2 61

Hình 77 Hình ảnh bối cảnh game 62

Hình 78 Hình ảnh nhà của Jada 62

Hình 79 Hình ảnh giao diện Menu 63

Hình 80 Hình ảnh giao diện Audio 63

Hình 81 Hình ảnh thông tin nút Help 64

Hình 82 Hình ảnh khi bắt đầu chơi 64

Hình 83 Hình ảnh giáo diện khi kích chuột vào Pause 65

Hình 84 Hình ảnh giáo diện khi chơi 65

Hình 85 Hình ảnh khi người chơi thua 66

Hình 86 Hình ảnh khi người chơi thắng 66

Trang 8

8

LỜI MỞ ĐẦU

Thị trường Game phát triển từng ngày cùng với sự phát triển của công nghệ Game không giới hạn độ tuổi, không gian, địa lý, văn hóa, người chơi liên kết với nhau giữa đời thực và môi trường ảo với những nhân vật đời thực xen huyền thoại Và nhu cầu chơi game để thư giãn hay luyện tập tư duy, chiến thuật, sự sáng tạo ngày càng phát triển phát triển ở nhiều khía cạnh

Để đáp ứng lại yêu cầu của thực tế em đã có ý tưởng về xây dựng Game Rừng Xanh 3D trên phần mềm Unity cùng ngôn ngữ C# Ngôn ngữ lập trình C# là một ngữ bậc cao với giao diện bắt mắt, khả năng biên dịch và xử lý chương trình nhanh và hiểu quả C# còn hỗ trợ nhiều về mặt giao diện đồ họa, thích hợp cho xây dựng các chương trình thuật toán, các chương trình cần đồ họa cao và rèn luyện khả năng lập trình

Nội dung báo cáo gồm 3 phần :

Chương 1: Giới thiệu tổng quan Unity và ngôn ngữ lập trình C#

Chương 2: Khảo sát, phân tích, xây dựng ý tưởng kịch bản game

Chương 3: Xây dựng Game Rừng Xanh 3D

Trang 9

CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN UNITY VÀ NGÔN NGỮ LẬP TRÌNH C# 1.1 Giới thiệu về Unity

Unity xuất hiện lần đầu tiên từ năm 2005, nhưng mãi đến phiên bản 3.5 vào tháng 2/2012 thì nó mới thực sự bùng nổ và trở nên nổi tiếng Sức mạnh của nó có thể tạo ra những trò trò chơi chiến đấu với chất lượng hạng cao Ngoài ra, Unity còn hỗ trợ rất nhiều nền tảng khác nhau như: Windows, Mac, Linux, Android, iOS, PS3, Xbox360, Wii U, và cả môi trường web nữa

Giống như Construct 2, quy trình phát triển trong Unity khá trực quan cho người mới bắt đầu Một trò chơi điển hình thường được chia thành nhiều bối cảnh, và mỗi bối cảnh chứa nhiều đối tượng khác nhau trong trò chơi Mỗi đối tượng trò chơi

đó lại có một số các kịch bản đi kèm, và những kịch bản này sẽ xác định hành vi và tương tác cho đối tượng đó Các kịch bản được viết bằng UnityScript (Unity là một phiên bản JavaScript), C#, hoặc Boo

Có lẽ đặc trưng hữu dụng nhất của Unity chính là kho Asset Store của nó Người dùng có thể tạo ra các tài nguyên (các mô hình, chuyển động, GUI, kịch bản, công cụ, hệ thống, v.v…), và ta cũng có thể mua và import vào trong dự án của mình Nếu như tốc độ phát triển của Unity vẫn chưa đủ nhanh, thì ta có thể tăng tốc độ phát triển trò chơi của ta bằng cách import các tài nguyên có sẵn để tránh việc ta phải làm lại những thứ đã có rồi

Trò chơi Engine Unity được tạo ra bởi Unity Technologies, thành lập bởi David Helgason (CEO), Nicholas Francis (CCO), and Joachim Ante (CTO) tại Copenhagen, Đan Mạch vào năm 2005 với tiêu chí tối ưu hóa việc sản xuất trò chơi cho những nhà phát triển nhỏ với giá thành hợp lí nhất có thể Unity mạnh bởi khả năng Cross-Platform của nó, cho phép xây dựng các phần mềm trên nhiều hệ máy mà chỉ cần code 1 lần, giúp việc làm trò chơi trở nên nhanh chóng và giảm tối thiểu kinh phí Với những phiên bản mới, Unity cho phép người dùng xây dựng ứng dụng của mình trên nhiều hệ máy hơn với những chức năng phức tạp mà chỉ các hãng phát triển trò chơi lớn sở hữu Trong thời điểm hiện tại Unity hỗ trợ xây dựng ứng dụng cho các hệ máy như Windows, Mac, Linux, Web, Flash, Xbox 360, Playstation 3, Wii U, Android và IOS

Trang 10

10

Hình 1 Biểu tượng Unity

Unity được viết trên nền C++, tuy nhiên để sử dụng Unity, người dùng chỉ cần biết 1 trong 3 ngôn ngữ là C#, JavaScript, hoặc Boo, với JavaScript là đơn giản và dễ

sử dụng nhất, tuy nhiên với 1 số hạn chế nên C# được đa số chuyên gia ưa chuộng hơn, ngôn ngữ Boo được cho là tốt nhất, tuy nhiên do ngôn ngữ được rất ít người sử dụng, nên gần như không bao giờ thấy tài liệu hoặc code liên quan đến Unity được viết bằng ngôn ngữ Boo

Để sử dụng được library của Unity người sử dụng phải derive các class của mình từ MonoBehaviour, JavaScript tự động derive từ nó MonoBehaviour sẽ cho người dùng các method để xứ lí các properties của object trong môi trường 3D , để sử dụng được code script người dùng chỉ việc drag và drop script đã viết lên Game Objects(các object trong scene) trong Scene(1 khung cảnh trong trò chơi, nó có thể là

1 phần của trò chơi, hay cả trò chơi có thể được xây dựng trong 1 cảnh và xử lì bởi script) Các giá trị public sẽ được thể hiện qua cửa sổ Inspector(dùng để hiển thị các thuộc tính của các phần tử thuộc trò chơi object) cho phép người dùng dễ dàng modify các giá trị trong script 1 cách nhanh chóng, 1 script có thể chạy tại nhiều Game Objects cùng 1 lúc riêng biệt với các giá trị khác nhau Dĩ nhiên ngoài sử dụng các method mà MonoBehaviour cung cấp, các ngôn ngữ lập trình vẫn giữ nguyên các phương thức của nó, người dùng có thể đưa các phương thức đó vào phần mềm của mình khiến khả năng xử lí tốt hơn, như áp dụng SQLite hay XML

1.1.1 Dự án Unity, tài nguyên và phông cảnh

Khi tạo 1 trò chơi trong Unity, ta sẽ tiếp xúc với 1 dự án (project), khi đó các khái niệm cần quan tâm là tài nguyên (assets) và phông cảnh (scenes)

Unity là một dự án ứng dụng cơ bản Mỗi lần tạo một trò chơi mới, tương ứng với việc sẽ tạo một dự án mới Trong Unity, 1 dự án bằng 1 trò chơi Một dự án đơn

Trang 11

giản là nơi chứa tất cả các file, các dữ liệu của người dùng Nó tương ứng với một thư mục trên ổ cứng và thư mục chính sẽ chứa tất cả các thư mục con, các file mà ta sử dụng trong suốt quá trình phát triển Để tạo một dự án mới, chọn File New Project trên thanh thực đơn của chương trình Unity Khi nhấn đồng thời 2 phím Crtl+N Unity không tạo ra một trò chơi mới mà đơn giản chỉ tạo ra một phông cảnh mới (Scene), phông cảnh thể hiện một môi trường hoàn thiện trong trò chơi

Hộp hội thoại Project Wizard cho phép lựa chọn vị trí gốc để đặt dự án Có thể chọn thêm vào các gói tài nguyên của Unity, lựa chọn thiết lập mặc định cho trò chơi của mình là 2D hay 3D Cuối cùng chọn nút bấm Create để tạo một dựa án trò chơi mới Khi tạo xong một dự án mới, Unity cung cấp cho chúng ta một giao diện mặc định Đây là nơi sẽ mất tương đối nhiều thời gian trong quá trình tạo ra một trò chơi mới Trong giao diện có thể thấy phần Project Panel là nơi ta quản lý các tài nguyên (âm thanh, hình ảnh, các đối tượng do người dùng tạo ra, code…) Tại đây có thể tạo mới các thư mục, tài nguyên Hoặc cũng có thể lựa chọn 1 tài nguyên đã tồn tại Để thay đổi, hiển thị và xử lý một tài nguyên bất kì sử dụng sự kiện click chuột trái vào tài nguyên đó, để mở với một phần mềm khác sử dụng sự kiện double click của chuột trái

Để tạo mới và thêm tài nguyên từ bên ngoài sử dụng chuột phải vào phần giao diện của Assets và lựa chọn Create hoặc Import

Tài nguyên (Assets) và tệp (file) dự án

Tài nguyên là phần không thể thiếu tạo ra trò chơi, như đã trình bày ở phần trên

để thêm và quản lý tài nguyên ta có thể sử dụng Project Panel Có thể có nhiều loại tài nguyên khác nhau trong một trò chơi: mô hình, texture, đoạn phim, hình động, âm thanh, dữ liệu văn bản…Để tạo ra các tài nguyên này nhà phát triển phải sử dụng một

số phần mềm khác có liên quan (photoshop, vegaspro…), tuy nhiên khi chúng được tải vào một dự án Unity thì chúng ta có thể quản lý chúng Sử dụng menu với lựa chọn Assets, cho phép tạo mới và thêm một tài nguyên mới một cách dễ dàng

Cách thức Unity quản lý và sử dụng các loại tài nguyên khác nhau là khác nhau Tuy nhiên để quản lý một cách thông minh các tài nguyên nên tạo ra các thư mục khác nhau để lưu các tài nguyên thuộc loại khác nhau Việc phân loại này sẽ mang đến sự rõ ràng, dễ quản lý cho dự án trò chơi ta đang phát triển Để thực hiện điền này chọn Create Folder

Trang 12

12

Phông cảnh (Scene)

Sau khi tạo dự án và thêm vào các tài nguyên sẽ tới công việc mà ta sẽ bắt đầu tạo ra các mức độ cho trò chơi Trong Unity, mức độ hay các môi trường khác nhau được quản lý, lưu trữ thành các phông cảnh (Scene) khác nhau Để tạo mới một phông cảnh lựa chọn phần Menu File New Scene hoặc có thể dùng phím tắt Ctrl+N Để lưu lại một phông cảnh Menu File Save Scene hoặc dùng phím tắt Ctrl+S Trong giao diện Scene cho phép nhà phát triển thiết kế, kéo, thả, thay đổi các tài nguyên được quản lý, đồng thời có thể lựa chọn những chế độ hiển thị khác nhau: lựa chọn chế độ hiển thị 2D, 3D hoặc lựa chọn các dạng màu sắc, hiệu ứng…Giao diện thiết kế chính để thiết đặt các tài nguyên và hậu cảnh cho một trò chơi khi chúng được tạo ra

1.1.2 GameObjects, Transforms và Components

Bên trong mỗi phông cảnh chứa các Game Objects, các đối tượng trò chơi này

có thể là nhân vật, camera, ánh sáng, trang bị… Tất cả các đối tượng trong Unity khi được quản lý bởi Scene đều là các Game Objects Ta có thể kéo thả các tài nguyên cần thiết vào trong một Game Objects và một Game Objects có thể quản lý cùng một lúc nhiều loại tài nguyên và cũng có thể quản lý một Game Objects khác Trong bảng điều khiển Hierachy là danh sách các Game Objects có trong Scene hiện tại Và trong một dự án trò chơi ta phải làm việc với rất nhiều Game Objects Để tạo một Game Objects đơn giản là chọn phần Menu Game Objects Create Empty, khi đó Scene hiện tại sẽ được thêm một Game Objects rỗng Ta cũng có thể sử dụng phím tắt Ctrl+Shift+N để có được tính năng tương tự Trong trường hợp ta muốn tạo một dạng Game Objects khác thay vì một Game Objects rỗng chọn Menu Game ObjectsCreate Other, khi đó lựa chọn đối tượng mà Unity hỗ trợ sẵn để thêm vào Để nhân đôi một Game Objects đơn giản là sử dụng phím tắt Ctrl+D Hoặc trong bảng điều khiển Hierachy chuột phải vào đối tượng cần thay đổi và lựa chọn các tính năng tương ứng

Trong Unity mỗi Game Objects có thể chứa nhiều thành phần Mỗi thành phần này tương ứng là một đối tượng thuộc một lớp trong lập trình Khi khởi tạo một thành phần bất kì hoặc một Game Objects bất kỳ sẽ chứa một thành phần mặc định là Transform

Đây là thành phần quản lý cơ bản cho mỗi đối tượng trong trò chơi, có thể thấy các thuộc tính của thành phần này như hình 2 Mỗi một đối tượng trong trò chơi đều có

Trang 13

ít nhất một thành phần Transform, và nó cung cấp khả năng thay đổi các thuộc tính cơ bản của một đối tượng là vị trí, góc quay và tỉ lệ co giãn Ta có thể thay đổi các thuộc tính này và từ đó thay đổi vị trí mà đối tượng được vẽ ra hướng và kích thước của chúng Khi lập trình trong Unity, dựa trên thành phần Transform này mà người lập trình có thể điều khiển đối tượng Trong giao diện Scene ta có thể sử dụng chuột để thay đổi các thuộc tính này và với sự hỗ trợ của các phím tắt W (để thay đổi vị trí), E (để quay) và R (để giãn và thay đổi kích thước) Trong trò chơi 2D ta chỉ quan tâm tới 2 thành phần tọa độ theo trục X và Y Tuy nhiên trong các trò chơi 3D ta phải quan tâm thêm tới trục Z Bằng việc sử dụng tính năng thiết kế và camera tương ứng ta có thể thay đổi các thuộc tính cơ bản của đối tượng trong không gian Đây là thế mạnh của công cụ Unity khi việc thay đổi các thuộc tính của đối tượng được hỗ trợ tương tốt và nhà phát triển không phải quá vất vả để thiết kế ra một không gian trong màn chơi

Hình 2 Thuộc tính Inspector

Trang 14

Hình 4 Các thuộc tính của Camera

Dựa trên điểm đặt của camera, hướng nhìn, độ phân giải… mà có đối tượng sẽ được hiển thị lên màn hình Tuy nhiên trong một trò chơi không phải chỉ có thể có 1

Trang 15

camera mà còn có thể có nhiều camera khác nhau, đặc biệt trong trò chơi 3D có nhiều đối tượng khác nhau, mỗi đối tượng có hướng nhìn hoàn toàn khác nhau vì thế hình ảnh chúng nhìn thấy cũng là khác nhau Để tạo 1 camera mới cho 1 Game Objects chọn Menu GaneObject CreateOther Camera

Hình 5 Khung nhìn của Camera

1.1.4 Lưới và hình học

Trong Unity, lưới là một loại tài nguyên Nó là một trong những tài nguyên thông dụng nhất trong một video trò chơi Mỗi một mô hình hoặc một đối tượng hoặc bất cứ thứ gì có thể nhìn thấy được trong phông cảnh của ta đều là lưới Đối thủ, người chơi, tường, sàn, địa hình, bầu trời và nhiều thứ khác… tất cả đều là ví dụ của lưới

Lưới được tạo thành bởi 3 phần chính: hình học, bản đồ và hoạt cảnh Hình học được tạo lên bởi các vector, các cạnh và các mặt Cùng nhau 3 thành phần đó xây dựng lên một mô hình hoàn chỉnh và nó là bề mặt của dữ liệu Lưới tạo là sự lồi lõm đặc biệt trong trò chơi 3D, tuy nhiên trong trò chơi 2D lưới chỉ ở dạng đặc biệt như billbroad hoặc mặt phẳng Lưới được thể hiện là một hình chữ nhật gồm 4 điểm được nối với nhau, trên thực tế nó là 2 hình tam giác vuông được gắn với nhau ở cạnh huyền Điều này rất thích hợp với camera và nó giống như một tờ giấy được dùng để hiển thị ảnh, texture 2D Trò chơi 2D có đặc điểm là camera được căn lề 4 góc với mỗi đối tượng trong phông cảnh Unity mang đến đối tượng Plane có thể vận hành giống như vậy

Ta có thể thêm vào trong phông cảnh của mình bằng cách chọn GameObjectsCreateOther Plane Tuy nhiên, Plane trong Unity là hình thức khảm các vector, cạnh khi chạy bởi các hàng, cột quan bề mặt của mặt phẳng…

Trang 16

16

1.2 Scripting và giao diện lập trình ứng dụng của Unity

Scripting là thành phần quan trọng, cần thiết và thường sử dụng trong Unity Nó cung cấp cho ta khả năng điều khiển mạnh mẽ đối với các đối tượng, sự kiện trong trò chơi của chúng ta Trong Unity Scripting có thể được viết bởi 3 ngôn ngữ là C#, JavaScript và Boo Và tất nhiên ta có thể lựa chọn 1 trong 3 ngôn ngữ trên để thực hiện dự án trò chơi của mình Để tạo một Script trong dự án của ta chọn MenuAssets Create C# Script Để lựa chọn các ngôn ngữ khá ta cũng tiến hành tương

tự Để chuyên nghiệp trước khi tạo 1 Script hãy tạo một thư mục, trong phần tài nguyên của ta để lưu những Script được viết ra

MonoDevelop

Ta có thể chỉnh sửa code của mình bằng 3 cách khác nhau: Sử dụng công cụ lập trình Microsoft Visual Studio hoặc bằng Notepad++ Tuy nhiên Unity cung cấp một công cụ soạn thảo, chỉnh sửa code tên là MonoDevelop, nó có thể liên kết với mã nguồn C# một cách mặc định Để mở tệp mã nguồn của ta đơn giản là click đúp chuột vào tệp

mã nguồn của ta trong Unity, ngay lập tức MonoDevelop sẽ hoạt động và cung cấp cho

ta một giao diện có thể lập trình và thay đổi nội dung mã nguồn của ta

Mọi Script mới được tạo ra với lựa chọn là ngôn ngữ C# đều được khởi tạo một đoạn mã nguồn mặc định Một lớp mới được tạo ra với định nghĩa là được kế thừa từ lớp MonoBehaviour, lớp này là một phần giao diện lập trình mà Unity cung cấp

MonoBehaviout là lớp cơ bản cho tất cả các thành phần Điều này có nghĩa là Scirpt C# được mặc định cấu hình là một thành phần Như thế, nó là một loại có thể kéo và thả trong giao diện của Unity và tất nhiên là có thể kéo thả vào các Game Objects trong phông cảnh Script có thể điều khiển các thành phần, cài đặt các hành động của đối tượng, từ đó các đối tượng trong trò chơi có thể vận động, tương tác với nhau và tạo lên một thế giới ảo

Trang 17

Hình 6 Giao diện của MonoDevolop Thành phần

Các thành phần tồn tại trong các Game Objects Tất cả các thành phần nằm trong đối tượng có thể nhận và xử lý các sự kiện thông dụng của đối tượng đó Đó là các hàm kế thừa từ lớp MonoBehaviour và có thể được viết đè trong các lớp được chỉnh sửa bởi người phát triển Hai sự kiện thông dụng mà mỗi thành phần có thể xử lý

là Start và Update Nói đơn giản, hàm Start được gọi trong Script khi một đối tượng Game Objects được khởi tạo trong phông cảnh Khi mà đối tượng được vẽ trên màn hình và chúng vận động thì hàm Update được gọi lại liên tục để thay đổi các thuộc tính, trạng thái của đối tượng Trong Unity trong một giây hàm Update được gọi lại 25 lần, nghĩa là trong một giây có 25 khung hình được sinh ra và thay đổi trên màn hình Tài liệu tham khảo thêm tại:

http://docs.unity3d.com/Documentation/ScriptReference/MonoBehaviour Giao diện lập trình ứng dụng của Unity (API) là một thư viện gồm nhiều lớp, trong đó các nhà phát triển có thể dễ dàng tạo ra các đoạn Script cho trò chơi đang phát triển Mọi tham chiếu và hướng dẫn sử dụng có thể được tìm thấy theo địa chỉ như sau: http://docs.unity3d.com/Documentation/ScriptReference Trong thư viện mà Unity cung cấp có chứa nhiều các lớp hữu dụng cho việc phát triển các trò chơi 2D và 3D

Trang 18

18

Một số lớp quan trọng có thể được nhắc đến như: Vector2, Vector3, Screen, Game Objects, Transform, Mesh, Input……

1.3 Hiệu suất, định hình và bảng điều khiển trạng thái

Làm sao để một trò chơi chạy tốt là một vấn đề tương đối chứ không phải tuyệt đối Một trò chơi chạy tốt trên máy tính này cũng có thể chạy kém trên máy tính khác hoặc vẫn chiếc máy tính đó tại một thời điểm khác Một triệu chứng của hiệu suất kếm

là tình trạng lag, giật, treo cứng máy Các triệu chứng này có thể là kết quả của các cuộc xung đột phần mềm, hệ thống phần cứng đã cũ hoặc cũng có thể là lỗi phần cứng…

Với những nguyên nhân có thể khắc phục từ phía người dùng chẳng hạn như cập nhật trình điều khiển, thay phần cứng quá cũ, gỡ bỏ các người dùng chẳng hạn như cập nhật trình điều khiển, thay phần cứng quá cũ, gỡ bỏ các phần mềm xung đột Tuy nhiên với các nguyên nhân xuất phát từ chính trò chơi do kiến trúc, phương pháp lập trình không hợp lý… Ta cần chuẩn đoán, tìm kiếm vấn đề phát sinh để giải quyết một cách hợp lý Unity cung cấp cho chúng ta một số công cụ để đo lường và đánh giá sự hiệu quả của trò chơi khi chúng chạy Công cụ này là Profiler, bảng điều khiển thống

Trang 19

thông số trong trò chơi của ta như tốc độ khung hình, bộ nhớ, trạng thái các texture Bảng này áp dụng cho máy mà ta đang sử dụng để chạy trò chơi, vì vậy khi đánh giá hiệu suất hãy chắc chắn ta đang thử nghiệm trò chơi của mình trên phần cứng là đầu ra khi trò chơi hoàn thành Những thử nghiệm trên phần cứng khác nhau gây ra những sự khác nhau về hiệu suất của ta Tính chất quan trọng để xem có thể xem trên bảng trạng thái bao gồm: FPS (frames per second), draw calls, Tris, VRAM, Usage…

Hình 8 Bảng trạng thái Stats FPS (khung hình trên mỗi giây): là số khung hình trò chơi của ta thực sự duy

trì trong mỗi giây Không có một con số chính xác nào cho việc xác định bao nhiêu khung hình cho mỗi giây là tốt nhất Tuy nhiên, hầu như không bao giờ FPS dưới 15,

vì mắt con người bắt đầu nhận thức được lag và giật khi tốc độ khung hình nhỏ hơn giá trị này Đồng thời thường tốc độ khung hình là trên 25 Tiếp đó, ta phải để ý tới sự nhất quán của tham số FPS, nó có thể biến động nhỏ tùy thuộc vào chi phí tính toán trong quá trình trò chơi chạy, nhưng không được giao động quá nhiều và nói chung nếu nhất quán được là tốt nhất

Tris: là tham số liệu kê tổng số các hình tam giác hiện đang được kết xuất ra

màn hình trong khung hình hiện tại (không phải tổng số tam giác trong các phông cảnh) Số lượng tam giác này càng nhiều thì máy phải tính toán càng nhiều, vì lý do đó

về mặt lý thuyết giá trị này càng thấp thì càng tốt nhưng phải đảm bảo tính thẩm mỹ và mục tiêu thiết kế đề ra

Trang 20

20

1.4 Vật liệu của đối tượng

Vật liệu và cấu trúc là nguyên liệu cho các trò chơi Tất cả đồ họa trong trò chơi của ta: nhân vật, bối cảnh, các hiệu ứng, các hệ thông thực đơn Đều được thể hiện qua hình thức vật liệu và kết cấu Nói một cách đơn giản tất cả những gì nhìn thấy trên màn hình đều là vật liệu và kết cấu

Để bắt đầu làm việc với vật liệu chúng ta có thể sử dụng một dự án có trước, hoặc có thể tạo một dự án Để đơn giản hãy tạo một dự án mới và một khối cầu trong

dự án Đầu tiên hãy thêm một quả cầu vào trong dự án của ta bằng cách chọn GameObjects CreateOther Sphere Tiếp đó tạo vật liệu bằng cách chọn AssetsCreate Material hoặc chọn bảng điều khiển project chuột phải Create Material Bước tiếp theo kéo vật liệu vừa tạo được vào khối cầu, khi đó vật liệu vừa tạo trở thành một thành phần của đối tượng cầu mà ta đã tạo ra Chọn đối tượng hình cầu và chúng ta có thể thay đổi màu sắc của nó thông qua vật liệu mà chúng ta vừa thêm vào

Mesh Renderers

Có một cách khác để gán vật liệu cho đối tượng là lựa chọn thuộc tính Mesh Renderer của chúng trong giao diện Inspector, sau đó lựa chọn vật liệu cho đối tượng trong phần Materials Khi có nhiều đối tượng và ta muốn thay đổi màu sắc cùng nhau khi ta thay đổi màu của một vật liệu thì chúng cần phải lựa chọn tham số Materials ánh

xạ tới cùng một vật liệu trong Assets Điều đó tạo thuận lợi rất nhiều khi ta thay đổi màu sắc của một tập các đối tượng và cũng là một phương pháp tiết kiệm tài nguyên trong trò chơi

Shaders

Vật liệu không chỉ là việc chỉ định màu sắc của một đối tượng, có rất nhiều đặc tính của bề mặt được mô tả qua vật liệu Để có thể nhìn thấy những đặc tính khác nhau cần điều chỉnh nhiều yếu tố, chúng được xây dựng qua các thuật toán, các công thức

để xác định cách hiển thị trên bề mặt đối tượng Qua đó người quan át có thể thấy được sự khác biệt giữa sự nhãn bóng kim loại và sự thô giáp của gỗ hay sự mềm mại của vải Shader là một phương thức được các nhà phát triển đồ họa sử dụng khi tương tác với phần cứng nhằm tính toán các giá trị hiển thị của vật liệu Unity cung cấp các lựa chọn Shader khác nhau cho các vật liệu Shader mặc định được lựa chọn là Diffse

Trang 21

Chúng ta có thể thay thế bằng cách lựa chọn những dạng khác mà Unity đã cung cấp sẵn, ví dụ ta muốn thêm ánh sáng và tạo ra một điểm sáng bóng trên đối tượng chọn Bumped Specular

Làm việc với texture

Vật liệu không chỉ định nghĩa không chỉ định nghĩa màu sắc, độ đậm nhạt hay những hiệu ứng ánh sáng và cảm giác bề mặt, để hoàn hảo hơn cho quá trình quan sát các nhà phát triển sử dụng các texture thường là các ảnh Một vật liệu có thể chứa hoặc không chứa các texture, các texture này là các ảnh (*.bmp, *.jpg, *.png) có thể được nạp vào một vật liệu màu sắc bề mặt của một đối tượng Việc lập bản đồ UV điều khiển lưới bọc quanh bề mặt tạo ra cấu tạo của một loại vật liệu Chúng ta có thể làm

ví dụ về việc tạo một bề mặt cỏ cho quả cầu khi sử dụng texture

Để làm được điều này, ta thêm vào dự án trò chơi của mình các texture từ kho địa hình chuẩn Unity: Chọn Assets Import Package Terrain Assets Một cách khác ta có thể chọn bảng điều khiển Project chuột phải Import PackegeTerrain Assets Tuy nhiên có thể sẽ không thành công nếu các tài nguyên không nằm trên máy của ta, khi đó chúng ta phải tiến hành kết nối với máy chủ của Unity và lấy những tài nguyên đó về qua mạng Internet Để thay đổi texture cho đối tượng chúng ta quan tâm, đầu tiên hãy chọn đối tượng đó từ Hierarchy Mesh Renderer Base (RGB), tiếp đó lựa chọn texture mà chúng ta đã import vào dự án

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

C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch NET của họ Tên của ngôn ngữ bao gồm ký tự thăng theoMicrosoft nhưng theo ECMA là C#, chỉ bao gồm dấu số thường Microsoft phát triển C# dựa trênC++ và Java C# được miêu tả là ngôn ngữ có được sự cân bằng giữa

C++, Visual Basic, Delphi và Java

C# là ngôn ngữ lập trình phản ánh trực tiếp nhất đến NET Framework mà tất cả các chương trình NET chạy, và nó phụ thuộc mạnh mẽ vào Framework này Mọi dữ liệu cơ sở đều là đối tượng, được cấp phát và hủy bỏ bởi trình dọn rác Garbage-Collector (GC) và nhiều kiểu trừu tượng khác chẳng hạn như class, delegate, interface, exception… Phản ánh rõ ràng những đặc trưng của NET runtime

Trang 22

22

Ngôn ngữ lập trình C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mười mấy

kiểu dữ liệu được xây dựng sẵn Tuy nhiên, ngôn ngữ C# có ý nghĩa cao khi nó thực thi những khái niệm lập trình hiện đại C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần component, lập trình hướng đối tượng Những tính chất đó hiện diện trong một ngôn ngữ lập trình hiện đại Và ngôn ngữ C# hội đủ những điều kiện như vậy, hơn nữa nó được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java

Ngôn ngữ lập trình C# được đánh giá là dễ học và kết hợp được nhiều ưu điểm của các ngôn ngữ lập trình hướng đối tượng Java và C++ Do đó ngôn ngữ C# được sử dụng rộng rãi nhất C# có thể được viết với bất kỳ trình soạn thảo văn bản nào như Notepad của Windows, và sau đó biên dịch với trình biên dịch dòng lệnh của C#, csc.exe luôn đi kèm với Net framework Do đó mà ngày nay, C# được rất nhiều các coder trên thế giới ưa chuộng và tìm hiều

1.5.1 Nguồn gốc ra đời và lịch sử phát triển của ngôn ngữ lập trình C#

Ngôn ngữ C# được phát triển bởi đội ngũ kỹ sư của Microsoft, trong đó người dẫn đầu là Anders Hejlsberg và Scott Wiltamuth Cả hai người này điều là những người nổi tiếng, trong đó Anders Hejlsberg được biết đến là tác giả của Turbo Pascal, một ngôn ngữ lập trình PC phổ biến Và ông đứng đầu nhóm thiết kế Borland Delphi, một trong những thành công đầu tiên của việc xây dựng môi trường phát triển tích hợp (IDE) cho lập trình client/server

Tháng 7 năm 2000, Microsoft đã bắt đầu hé lộ về nền tảng NET Framework, đồng thời cũng giới thiệu về ngôn ngữ mới của họ Ban đầu, ngôn ngữ này được đặt

tên là COOL – C-like Object Oriented Language, cùng với một vài cái tên tạm thời khác như COM3, Lightnight trước khi được đặt tên C#

Ngày 12/2/2002 đánh dấu bước quan trọng đầu tiên trong “cuộc đời” của NET Framework, khi phiên bản 1.0 cùng với Visual Studio.NET 2002 được chính thức ra mắt Chính NET Framework 1.0 là điểm nhấn đáng chú ý nhất và làm cho Visual Studio NET 2002 khác biệt hẳn với Visual Studio 6.0 đã phát hành năm 1998 Lần đầu tiên, Microsoft giới thiệu về “lập trình hợp nhất”, với việc lấy NET Framework làm nền tảng Giờ đây, dù có dùng đến ngôn ngữ nào, kết quả sau khi dịch vẫn là CIL (Common Intermediate Language), được thực thi bởi CLR (Common Language Runtime) và sử dụng chung BCL (Base Class Library).NET Framework 1.1 cũng mở

Trang 23

ra một “truyền thống” là kể từ đây, các HĐH Windows đều được cài đặt sẵn phiên bản NET Framework mới nhất

Windows Server 2003 tiên phong với phiên bản 1.1, sau đó là Windows Vista với NET 3.0, và gần đây nhất là Windows 7/Server 2008 với NET 3.5 SP1 NET Framework 3.0 không phải là một phiên bản mới hoàn toàn, thực tế là một bản nâng cấp của, NET 2.0, hay đúng hơn là một bản nâng cấp cho thư viện của NET 2.0 Hơn

10 qua năm không phải là dài, nhưng với lĩnh vực công nghệ thì đó là thời gian đủ để

có những sự trưởng thành Với sự hậu thuẫn của Microsoft và sự ủng hộ mạnh mẽ của giới công nghệ, đặc biệt là cộng đồng lập trình viên, NET đã đi được những bước dài, trở thành một trong những nền tảng mạnh mẽ và phổ biến nhất Hy vọng NET 4.0 và các phiên bản sau này sẽ tiếp tục những thành công mà NET Framework đã đạt được trong một thập kỉ qua

1.5.2 Các đặc trưng của ngôn ngữ lập trình C#

Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được tạo

từ nền tảng phát triển hơn Microsoft bắt đầu với công việc trong C và C++ và thêm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn Nhiều trong số những đặc tính này khá giống với những đặc tính có trong ngôn ngữ Java Không dừng lại ở đó, Microsoft đưa ra một số đặc trưng khi xây dựng ngôn ngữ này Những đặc trưng này được được tóm tắt như sau:

• C# là ngôn ngữ đơn giản

• C# là ngôn ngữ hiện đại

• C# là ngôn ngữ đơn giản

C# loại bỏ một vài sự phức tạp và rối rắm của những ngôn ngữ như Java và C++, bao gồm việc loại bỏ những macro, những template, đa kế thừa, và lớp cơ sở ảo (virtual base class) Chúng là những nguyên nhân gây ra sự nhầm lẫn hay dẫn đến những vấn đề cho các người phát triển C++ Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++ Nếu chúng ta thân thiện với C và C++ thậm chí là Java, chúng ta sẽ

Trang 24

24

thấy C# khá giống về diện mạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngôn ngữ C và C++, nhưng nó đa được cải tiến để làm cho ngôn ngữ đơn giản hơn Một vài trong các sự cải tiến là loại bỏ các dư thừa, hay là thêm vào những cú pháp thay đổi

• C# là ngôn ngữ hiện đại

Điều gì làm cho một ngôn ngữ hiện đại? Những đặc tính như là xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật mã nguồn là những đặc tính được mong đợi trong một ngôn ngữ hiện đại C# chứa tất cả những đặc tính trên Nếu là người mới học lập trình có thể chúng ta sẽ cảm thấy những đặc tính trên phức tạp và khó hiểu Tuy nhiên, cũng đừng lo lắng chúng ta sẽ dần dần được tìm hiểu những đặc tính qua các chương trong cuốn sách này

Ghi chú: Con trỏ được tích hợp vào ngôn ngữ C++ Chúng cũng là nguyên nhân

gây ra những rắc rối của ngôn ngữ này C# loại bỏ những phức tạp và rắc rối phát sinh bởi con trỏ.Trong C#, bộ thu gom bộ nhớ tự động và kiểu dữ liệu an toàn được tích hợp vào ngôn ngữ, sẽ loại bỏ những vấn đề rắc rối của C++

Trang 25

• C# là ngôn ngữ hướng module

Mã nguồn C# có thể được viết trong những phần được gọi là những lớp, những lớp này chứa các phương thức thành viên của nó Những lớp và những phương thức có thể được sử dụng lại trong ứng dụng hay các chương trình khác Bằng cách truyền các mẫu thông tin đến những lớp hay phương thức chúng ta có thể tạo ra những mã nguồn dùng lại có hiệu quả

• C# sẽ là một ngôn ngữ phổ biến

C# là một trong những ngôn ngữ lập trình mới nhất Có một số lý do để trở thành một ngôn ngữ phổ biến Một trong những lý do chính là Microsoft và sự cam kết của NET

Microsoft muốn ngôn ngữ C# trở nên phổ biến Mặc dù một công ty không thể làm một sản phẩm trở nên phổ biến, nhưng nó có thể hỗ trợ Cách đây không lâu, Microsoft đa gặp sự thất bại về hệ điều hành Microsoft Bob Mặc dù Microsoft muốn Bob trở nên phổ biến nhưng thất bại C# thay thế tốt hơn để đem đến thành công sơ với Bob Thật sự là không biết khi nào mọi người trong công ty Microsoft sử dụng Bob trong công việc hằng ngày của họ Tuy nhên, với C# thì khác, nó được sử dụng bởi Microsoft Nhiều sản phẩm của công ty này đa chuyển đổi và viết lại bằng C#

Trang 26

26

Bằng cách sử dụng ngôn ngữ này Microsoft đa xác nhận khả năng của C# cần thiết cho những người lập trình Micorosoft NET là một lý do khác để đem đến sự thành công của C# .NET là một sự thay đổi trong cách tạo và thực thi những ứng dụng

Ngoài hai lý do trên ngôn ngữ C# cũng sẽ trở nên phổ biến do những đặc tính của ngôn ngữ này được đề cập trong mục trước như: đơn giản, hướng đối tượng, mạnh mẽ

• C# là ngôn ngữ hướng đối tượng

Những đặc điểm chính của ngôn ngữ hướng đối tượng (Object-oriented language) là sự đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình (polymorphism) C# hỗ trợ tất cả những đặc tính trên

• C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo

Như đa đề cập trước, với ngôn ngữ C# chúng ta chỉ bị giới hạn ở chính bởi bản thân hay là trí tưởng tượng của chúng ta Ngôn ngữ này không đặt những ràng buộc lên những việc có thể làm C# được sử dụng cho nhiều các dự án khác nhau như là tạo

ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bản tính, hay thậm chí những trình biên dịch cho các ngôn ngữ khác

1.6 Một số kiểu ứng dụng NET có thể tạo ra bằng C#

Ngôn ngữ lập trình C# hỗ trợ nhất nhiều các ứng dụng để phục vụ cho người dùng Sau đây là một số ứng dụng chính hay được lập trình viên ưa chuộng sử dụng

1.6.1 Console Application

Là các ứng dụng thuần văn bản chạy trên DOS WinDow Các ứng dụng dạng này thường không có giao diện người dùng đồ họa, các nhập xuất đều thông qua các console chuẩn (dạng dòng lệnh như DOS)

1.6.2 WPF Application

WPF viết tắt của Windows Presentation Foundation, là hệ thống API mới hỗ trợ việc xây dựng giao diện đồ hoạ trên nền Windows Được xem như thế hệ kế tiếp của WinForms, WPF tăng cường khả năng lập trình giao diện của lập trình viên bằng cách cung cấp các API cho phép tận dụng những lợi thế về đa phương tiện hiện đại Là một

bộ phận của NET Framework 3.0, WPF sẵn có trong Windows Vista và Windows Server 2008 Đồng thời, WPF cũng có thể hoạt động trên nền Windows XP Service Pack 2 hoặc mới hơn, và cả Windows Server 2003

Trang 27

1.6.3 Windows Forms Application

Giống như trong NET, sử dụng Visual studio.NET tạo các ứng dụng Windows Form đơn giản hơn nhiều Visual studio.NET giảm số lượng mã rắc rối mà các nhà phát triển phải viết, cho phép các nhà phát triển tập trung vào giải quyết các vấn đề kinh doanh

1.6.4 Windows Forms Control Library

Một Windows Control là một ActiveX control Đằng sau sự thực thi của một Window control, là sự biên dich sang một DLL để có thể cài đặt trên máy khách .NET SDK cung cấp một tiện ích dùng để tạo một vỏ bọc cho các ActiveX control, vì thể chúng có thể được đặt trong Windows Forms Giống trường hợp này các Web Control, Windows Control được tạo thành từ một lớp khác System.Windows.Forms.Control

1.6.5 Web Application

ASP là một công nghệ của Microsoft dùng để tạo các trang web có nội dung động Một trang ASP thực chất là một file HTML có nhúng các khối server-side VBScript hay JavaScript Khi một trình duyệt khách yêu cầu một trang ASP page, web server sẽ sinh ra mã HTML, xử lí các server-side script khi chúng đến Thường thì các script sẽ truy cập vào một cơ sở dữ liệu để lấy dữ liệu, và biểu diễn trên trang HTML ASP là cách đơn giản nhất để tạo các ứng dụng browser-based

Trang 28

28

CHƯƠNG 2 KHẢO SÁT, PHÂN TÍCH, XÂY DỰNG Ý TƯỞNG KỊCH BẢN GAME 2.1 Khảo sát thị trường Game và nhu cầu người chơi

Thị trường Game phát triển từng ngày cùng với sự phát triển của máy tính, internet, điện thoại, máy tính bảng và hình thành nền một nền công nghiệp Game gặt hái hàng tỷ đô mỗi năm Dự báo về thị trường Game toàn cầu trong tương lai của Newzoo, doanh thu sẽ tiếp tục tăng lên đến con số 107 tỷ USD vào năm 2017

Hình 9 Doanh thu của thị trường Game 2015

Năm 2014, lợi nhuận từ Game tại Đông Nam Á đã chạm mức 1,1 tỷ USD, và tới năm 2017, khả năng cao con số này sẽ tăng gấp đôi lên 2,2 tỷ Trên nhiều tiêu chí, Đông Nam Á tương tự như châu Âu, không chỉ về lượng dân số mà quan trọng hơn là

về sự đa dạng các quốc gia độc lập Từ góc nhìn thị trường Game, điều này dẫn tới những khác biệt to lớn về thành phần người chơi, các thể loại được ưa chuộng và thói quen chi tiêu

Hình 10 So sánh tăng trưởng thị trường Game theo khu vực 2014

Trang 29

Thể loại Game phổ biến nhất đối với các Gamer tại “Big 6” là đua xe Đây cũng

là thể loại phổ biến nhất đối với riêng các Gamer chi tiền vào Game Gần 1/3 (32%) người chơi cho biết họ chi tiền vào Game để có những trải nghiệm vui vẻ hơn, lý do lớn thứ 2 là để mở khóa các màn chơi mới

Hình 11 Thể loại Game và số lượng người chơi

Hiện nay, hàng loạt các loại Game khủng ra đời, với nhiều sức hấp dẫn từ thiết

kế, đồ họa, hình ảnh sinh động, cấu hình bắt mắt, tư duy, chiến thuật giúp cải thiện trí

nhớ, sự tập trung, cải thiện thị lực, khi chơi Game thể thao có xu hướng chơi thể thao

ngoài đời thật hơn, cải thiện tư duy, kế hoạch, chiến lược Với sự phát triển của các

thiết bị công nghệ thì việc tiếp cận Game giải trí của người dùng ngày càng dễ dàng hơn Do vậy thu hút người chơi ở mọi lứa tuổi

Hình 12: khảo sát thị trường Game theo giới tính

Trang 30

30

Điển hình Game Pokemon Go ra đời tháng 7 năm 2016 là sự kết hợp giữa đời thực và môi trường ảo, Game Pokemon Go cũng đã đem lại một sự bùng nổ trong thị trường Game và thu hút rất nhiều lứa tuổi tham gia

Hình 13.Khảo sát độ tuổi tham gia Game qua Pekemon Go

Thời đại hội nhập ngày càng phát triển, nhu cầu người chơi mở rộng theo từng lứa tuổi, khu vực Nên Thị trường Game ngày càng phát triển đa dạng, phong phú với các thể loại:

 MMORPG (Massively Multiplayer Online Role Playing Games): là Game nhập vai trực tuyến nhiều người chơi Đây là thể loại Game online phổ biến nhất và có

số lượng người chơi đông đảo nhất Ví dụ về loại MMO này, bao gồm: Võ Lâm Truyền Kỳ, Mu Online, TERA, Lineage

 MOBA (Multiplayer Online Battle Arena): Tức là các trò chơi trực tuyến mô phỏng các trận chiến Thể loại Game online này mới xuất hiện nhưng đã có sức hấp dẫn không thể "chối từ" Các đại diện tiêu biểu bao gồm DotA 2, League of Legends

 MMORTS (MMO Real Time Strategy Games): Đây là thể loại Game online

có lối chơi chiến thuật thời gian thực Các game "đỉnh" của dòng MMO này bao gồm Age of Empires, Rise of Nations, War of Legends

Trang 31

 MMOFPS (MMO First Person Shooter Games): Tức là thể Game online bắn súng trực tuyến Sau MMORPG thì MMOFPS cũng là dòng Game có số lượng fan đông đảo Một số trò chơi hấp dẫn nên chơi qua đó là Counter Strike, Unreal Tournament, Halo, Planetside

 MMOSG (MMO Sports Games): Các tín đồ của dòng Game thể thao như FIFA, PES thì nên chơi thể loại Game online này

 MMOR (MMO Racing Games): Tương tự như MMOSG, nếu thích tốc độ thì hãy đắm mình vào dòng Game online đua xe trực tuyến như Need for Speed, Drift City, Project Torque

 MMORG/MMODG (MMO Rythm/Music Games hoặc MMO Dancing Games): Những Game online lấy đề tài về âm nhạc và vũ đạo Các đại diện phổ biến bao gồm Dance Dance Revolution, Audition Online

 MMOMG (MMO Management Games): Dòng Game online thích hợp đến những Game thủ muốn nâng cao kỹ năng quản lý của mình Nếu yêu thích thể loại MMO này thì nên chơi The Sims Online, Monopoly City Streets, Virtonomics

 MMOSG (MMO Social Games): Thể loại Game online nhấn mạnh đến yếu

tố xã hội Các "ứng viên" tiêu biểu không thể bỏ qua của dòng MMOG này là Second Life, Club Caribe, Everquest, Dotsoul, Furcadia

 MMOBBG/MMOBBRPG (MMO Bulletin Board Games hay MMO Bulletin Board Role Playing Games): Đây là thể loại Game online có lối chơi giống các trò chơi bảng (Board Game) tại các nước phương Tây Một số trò chơi nổi bật như QuestFor Magic, BladeMaster

 MMOPG (MMO Puzzle Games): Thể loại Game giải đố trực tuyến như Three Rings, Puzzle Pirates

 MMOCCG (MMO Collectible Card Games): Thể loại Game đánh bài như Magic:The Gathering Online, Alteil, Astral Masters, Astral Tournament Công nghệ thì luôn thay đổi chóng mặt, nó khiến cho ngành công nghiệp Game

có những bước tiến vô cùng quan trong Nếu như trong lịch sử loài người từng chứng khiến sự thay đổi từ đồ họa 2D lên 3D, thì giờ đây thực tế ảo sẽ là bước ngoặt tiếp theo

mà nhân loại cần làm chủ nó Các nhà làm game cũng thử nghiệm thực tế ảo thông qua các trò chơi nổi tiếng như Left 4 Dead hay DotA 2, thậm chí còn mang nó lên dòng game bắn súng huyền thoại một thời Counter Strike (Half-Life) Nhưng đây mới chỉ là

Trang 32

32

giai đoạn khởi đầu cho một sự bùng nổ của trong tương lai, thực tế ảo sẽ mở ra 1 kỉ nguyên mới cho lĩnh vực công nghiệp giải trí số của nhân loại nói chung và ngành Game nói riêng Game thủ hứa hẹn sẽ có cơ hội trải nghiệm những tương tác giải trí tuyệt vời

2.2 Ý tưởng và kịch bản xây dựng Game 3D rừng xanh

2.2.1 Ý tưởng

Người lùn Jada sống một mình ở trong Rừng Xanh, anh làm bạn với các thú rừng Bỗng một ngày xuất hiện những con quái vật xâm chiếm khu rừng, chúng giết các thú rừng và muốn giết Jada, Jada phải chiến đấu với những quái vật để giành sự sống cho mình và khu rừng Jada tuy nhỏ bé, cô đơn nhưng khát vọng được sống và niềm tin chiến thắng luôn tràn đầy, Jada muốn chiến đấu hết mình để bảo vệ khu rừng

và những thú rừng còn lại

Câu chuyện này muốn gửi thông điệp tới người chơi nói chung hay các bạn học

sinh, sinh viên nói riêng là:” Cuộc sống bao giờ cũng đầy rẫy những khó khăn, thử

thách sẽ quật ngã những ai yếu đuối và thời gian không chờ ai bao giờ Vì thế hãy trân trọng từng phút giây còn tồn tại, hãy sống cho thật trọn vẹn, thật ý nghĩa, trân trọng những gì bên cạnh bạn và luôn luôn có niềm tin dẫn lối bạn đi”

2.2.2 Kịch bản

Nhân vật Chính Jada: là người lùn duy nhất còn sống trong rừng, đáng yêu

Anh làm bạn với các thú rừng, anh bảo vệ rừng và thú rừng Jada luôn có một khẩu súng để phòng vệ Jada đại diện cho cái thiện, chính nghĩa

Để di chuyển nhân vật, người chơi ấn các nút “→” hoặc phím “D” để sang phải,”←” hoặc phím “A” để sang trái, ”↑” hoặc phím “W” để đi lên ,”↓” hoặc phím

“S” để đi lùi lại, kích chuột trái để bắn súng và di chuyển chuột để xoay nhân vật

Trang 33

Hình 14 Nhân vật Jada Bạn bè của Jada(thú rừng của Rừng Xanh): mèo trắng, voi nâu, tê giác trắng, hổ, thỏ

Hình 15 Hình ảnh Mèo

Hình 16 Hình ảnh Tê Giác

Trang 34

34

Hình 17 Hình ảnh Voi

Hình 18 Hình ảnh Hổ

Hình 19 Hình ảnh Hổ, Thỏ

Ngày đăng: 07/11/2017, 11:07

TỪ KHÓA LIÊN QUAN

w