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

Who’S better – một trò chơi được xây dựng bằng unity engine

39 19 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

Tiêu đề Who’s better – một trò chơi được xây dựng bằng unity engine
Tác giả Nguyễn Đức Tài
Người hướng dẫn TS. Phạm Anh Phương
Trường học Trường Đại Học Sư Phạm - Đại Học Đà Nẵng
Chuyên ngành Cử Nhân Công Nghệ Thông Tin
Thể loại Báo cáo đồ án tốt nghiệp
Năm xuất bản 2019
Thành phố Đà Nẵng
Định dạng
Số trang 39
Dung lượng 2,38 MB

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

Nội dung

Nhằm tạo ra một ứng dụng trong việc giúp đỡ mọi người giải tỏa tâm lý và thư giản, em sẽ thực hiện lập trình một trò chơi và phát triển nó trên nền tảng Android có tên là Who’s Better..

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM – ĐẠI HỌC ĐÀ NẴNG

KHOA TIN HỌC

BÁO CÁO

ĐỒ ÁN TỐT NGHIỆP

TÊN ĐỀ TÀI WHO’S BETTER – MỘT TRÒ CHƠI ĐƯỢC XÂY DỰNG BẰNG UNITY ENGINE

Giảng viên hướng dẫn: TS PHẠM ANH PHƯƠNG

Sinh viên thực hiện: NGUYỄN ĐỨC TÀI

Lớp sinh hoạt: 15CNTT1

ĐÀ NẴNG, 04/2019

Trang 2

LỜI CẢM ƠN

4 năm học vừa qua là những trải nghiệm thật đáng nhớ và đầy khát khao của tuổi sinh viên Em được học nhiều thứ, được tiếp xúc với nhiều thứ mà có lẽ chỉ có ở quãng đường Đại học Và khoa tin trường Đại học

Sư Phạm Đà nẵng đã cho em gặt hái rất nhiều thứ trong cuộc hành trình này Em sẽ mãi không bao giờ quên được

Cho em được gửi lời cảm ơn đến Khoa Tin học, Trường Đại học Sư Phạm Đà Nẵng đã tạo điều kiện cho em được học tập và rèn luyện bản thân trong suốt 4 năm học vừa qua

Em xin chân thành cảm ơn thầy TS Phạm Anh Phương và các thầy

cô giáo Khoa Tin học, Trường Đại học Sư Phạm Đà Nẵng, những người giúp đỡ em trong việc hoàn thành đồ án tốt nghiệp đợt này

Xin trân trọng cảm ơn!

Đà Nẵng, ngày 25 tháng 04 năm 2019

Sinh viên thực hiện

Nguyễn Đức Tài

Trang 3

LỜI CAM ĐOAN

Em xin cam đoan:

1 Những nội dung trong báo cáo này là do em thực hiện dưới sự hướng dẫn của TS Phạm Anh Phương và các thầy cô trong khoa Tin học

2 Mọi tham khảo dùng trong báo cáo này đều được trích dẫn rõ ràng, đầy

Trang 4

Đà Nẵng, ngày tháng năm 2019

Trang 5

Đà Nẵng, ngày tháng năm 2019 Hội đồng phản biện

Trang 6

MỞ ĐẦU 1

1 Lý do chọn đề tài 1

2 Mục tiêu nghiên cứu 1

3 Đối tượng nghiên cứu 2

4 Giới hạn và phạm vi nghiên cứu 2

5 Phương pháp nghiên cứu 2

6 Bố cục đề tài 2

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 3

1.1 Game engine và các thành phần cơ bản 3

1.2 Unity Engine 5

1.2.1 Giới thiệu Unity Engine 5

1.2.2 Quá trình phát triển của Unity 7

1.2.3 Một số thống kê về Unity 7

1.2.4 Ưu điểm của Unity 8

1.2.5 Các thành phần trong Unity Editor 10

1.2.5.1 Cửa sổ Scenes 10

1.2.5.2 Cửa sổ Hierarchy 10

1.2.5.3 Cửa sổ Game 11

1.2.5.4 Cửa sổ Project 11

1.2.5.1 Cửa sổ Inspector 12

1.2.6 Các khái niệm cơ bản trong unity 12

1.2.6.1 GameObject 12

1.2.6.2 Component 13

1.2.6.3 Sprite 13

1.2.6.4 Animation 14

1.2.6.5 Key Frame 14

1.2.6.6 Prefabs 15

1.2.6.7 Sounds 15

1.2.6.8 Script 16

1.2.6.9 Scenes 17

1.2.6.10 Assets 17

Trang 7

1.2.6.12 Transform 18

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ 19

2.1 Mục tiêu đề tài 19

2.2 Yêu cầu chức năng 19

2.3 Yêu cầu phi chức năng 19

2.4 Phân tích thiết kế hệ thống 19

2.4.1 Ý tưởng của trò chơi 19

2.4.2 Thể loại trò chơi 19

2.4.3 Đối tượng người chơi 19

2.4.4 Lối chơi cơ bản 19

2.4.5 Phong cách đồ họa và âm thanh 20

2.4.6 Gameplay 20

2.4.6.1 Nhiệm vụ của người chơi 20

2.4.6.2 Vật phẩm trong trò chơi 20

2.4.6.3 Cửa hàng trong trò chơi 20

2.4.6.4 Map Level 20

2.5 Sơ đồ use-case 21

2.6 Sơ đồ lớp 22

2.7 Cơ sở dữ liệu 22

2.8 Sơ đồ tuần tự 23

CHƯƠNG 3 : TRIỂN KHAI VÀ KẾT QUẢ ĐẠT ĐƯỢC 24

3.1 Môi trường triển khai: 24

3.2 Sản phẩm đạt được 24

3.2.1 Màn hình logo của trò chơi 24

3.2.2 Màn hình loading của trò chơi 25

3.2.3 Màn hình menu của trò chơi 26

3.2.4 Màn hình settings, themes, statistics của trò chơi 27

3.2.5 Màn hình các mini games 28

3.2.6 Màn hình lúc vượt qua một mini game 29

3.2.7 Màn hình lúc game over 29

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

Trang 8

2 Hạn chế của đề tài: 30

3 Hướng phát triển: 30

TÀI LIỆU THAM KHẢO 31

Trang 9

MỞ ĐẦU

1 Lý do chọn đề tài:

Sự phát triển của Công nghệ Thông tin ở nước ta đang bước vào thời kì mới với việc triển khai rộng rãi các ứng dụng tin học cho các tổ chức và xã hội Không ai còn nghi ngờ gì về vai trò của Công nghệ Thông tin trong đời sống, trong khoa học kỹ thuật, kinh doanh, cũng như trong mọi mặt của xã hội, ngay cả đối với một cá nhân

Công nghệ Thông tin đang từng bước đi vào cuộc sống của chúng ta như một người bạn đồng hành, nó có vai trò rất lớn trong sự phát triển của đất nước và trong đời sống của con người

Nhằm tạo ra một ứng dụng trong việc giúp đỡ mọi người giải tỏa tâm lý

và thư giản, em sẽ thực hiện lập trình một trò chơi và phát triển nó trên nền

tảng Android có tên là Who’s Better

Với sự lôi cuốn, sáng tạo của trò chơi, em hi vọng người chơi sẽ có những giây phút thoải mái và tràn đầy niềm vui sau những giờ học, giờ làm việc căng thẳng, góp phần vào xây dựng một xã hội đầy niềm vui

2 Mục tiêu nghiên cứu

Mục tiêu

 Xây dựng được một trò chơi bằng công cụ lập trình game Unity Engine

 Xây dựng được một trò chơi mà có thể giúp người chơi giải tỏa tâm lý

và thư giản

 Rèn luyện bản thân trong môi trường làm việc chuyên nghiệp, môi trường làm việc nhóm, môi trường nhiều người trong một tập thể chung

Nhiệm vụ nghiên cứu

 Khảo sát những ứng dụng trò chơi mà đa số người dùng quan tâm

Trang 10

 Phát họa ý tưởng và triển khai

 Thiết kế giao diện UI

 Xây dựng các màn hình với các giao diện

 Xây dựng các levels và modes của trò chơi

 Quy trình phát triển trò chơi

 Nhu cầu sử dụng game trên thị trường và hướng phát triển của game đa nền tảng trong thời gian tới

4 Giới hạn và phạm vi nghiên cứu

 Nghiên cứu xây dựng game trên phạm vi có thể chơi ở mức độ cơ bản bằng công cụ Unity Engine

 Các tài liệu về Unity

5 Phương pháp nghiên cứu

 Phương pháp quan sát, khảo sát nhu cầu thực tiễn

 Lập phiếu khảo sát nhu cầu của khách hàng

 Phân tích, xử lý thống kê kết quả đã điều tra

6 Bố cục đề tài:

- Đề tài chia làm 3 chương:

+ Chương 1: Cơ sở lý thuyết

+ Chương 2: Phân tích thiết kế

+ Chương 3: Giới thiệu trò chơi, phân tích các thành phần của trò chơi

+ Phần cuối: Kết luận và hướng phát triển

Trang 11

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1 Game engine và các thành phần cơ bản

Game engine là một thành phần cơ bản không thể thiếu trong quá trình hoàn thành một tựa game Game engine là một khung phần mềm (software framework) chuyên dụng để phát triển game trên các nền tảng khác nhau Đứng vai trò giữa nền tảng ứng dụng và các mã logic và tài nguyên để xây dựng nên thế giới game phức tạp Thông thường, một game engine hoàn chỉnh phải đảm bảo các phương thức, tác vụ để xây dựng nên một môi trường

đồ họa 2D hoặc 3D Ngày nay, các game engine nổi tiếng đều có thể tích hợp

cả 2 môi trường này vào một engine

Bằng việc sử dụng đặc dụng cho lập trình game, các game engine sẽ mang nhiều thành phần hữu dụng khi làm game mà các framework ứng dụng khác thường không chú trọng tới Như thay vì có các đối tượng xây dựng nên các cửa sổ, thanh sổ, menu, game engine được tối ưu hóa để hiển thị các giao diện pop-up trên môi trường đồ họa cập nhật liên tục hay xử lý âm thanh sao cho giống thật nhất trong không gian 3D Sau đây là danh sách các thành phần

cơ bản thường gặp ở các game engine:

 Bộ xử lý đầu vào: phần mềm game đặc thú khác biệt so với các phần

mềm máy tính khác ở tính yêu cầu người chơi tương tác cao, liên tục với trò chơi Và trong nhiều trò chơi, khả năng xử lý tình huống nhanh nhạy của người chơi chính là chìa khóa để đạt được mục tiêu của trò chơi đó Vì vậy việc đảm bảo các thao tác của người chơi được nhận chính xác và xử lý nhanh nhất luôn là một yếu tố cơ bản bắt buộc đối với game engine Các xử lý đầu vào này có thể là từ nhiều thiết bị khác nhau như phím, chuột, bàn điều khiển game, tay cầm điều khiển,v.v nhưng mô hình chung đều được mapping với các chức năng trong game sao cho hợp lý và đồng bộ giữa các nền tảng

Trang 12

 Bộ xử lý đồ họa: đồ họa chính là điểm hấp dẫn người chơi ngay khi

nhìn vào một tựa game Dù trò chơi được định hình phong cách đồ họa 2D hay 3D phức tạp thì việc xử lý đồ họa là cuộc việc đòi hỏi xảy ra thường xuyên và cập nhật liên tục từng mili giây trong quá trình ứng dụng game khởi chạy Bộ xử lý đồ họa chịu trách nhiệm render các thành phần đồ họa đồng thời tiết kiệm tài nguyên máy tính nhất có thể

để đảm bảo một trải nghiệm tốt nhất cho người chơi

 Bộ xử lý âm thanh: bên cạnh đồ họa đẹp thì âm thanh hấp dẫn chính là

điều tạo nên cảm xúc cho người chơi Bộ xử lý âm thanh đảm nhận tái tạo những âm thanh chính xác, đặc biệt là ở môi trường 3D Bằng các

kỹ thuật xử lý âm thanh, như tăng giảm âm lượng xa gần, hòa âm, nhiễu âm… và chất lượng các bài nhạc nền, hiệu ứng tốt có thể làm cho người chơi như đang hòa vào thế giới thật

 Bộ xử lý mạng: rất nhiều trò chơi ngày nay có tính năng đa người chơi,

tức là nhiều người chơi có thể kết nối với nhau và tận hưởng trò chơi cùng lúc Bộ xử mạng đóng vai trò quan trọng kết nối người chơi với server và đảm bảo trải nghiệm cho mọi người chơi trên hệ thống là như nhau Giảm thiểu độ trễ, tiết kiệm dữ liệu, đồng bộ hóa dữ liệu giữa các client là những công việc chính mà bộ xử lý mạng đảm nhận trong một game engine

 Bộ mô phỏng vật lý: vật lý luôn là yếu tốt rút ngắn khoảng cách giữa

đời thực và trò chơi Mô phỏng các thông số môi trường vật lý như trọng lực, lực ma sát, phản lực, va chạm, cân nặng, v.v là tính năng chính của bộ mô phỏng vật lý Hiện có 3 bộ mô phỏng vật lý phổ biến

là Hovak (3D), PhysX(3D) và Box2D (2D), ngoài ra có hàng trăm, hàng nghìn các bộ mô phỏng khác được xây dựng tùy chỉnh tùy theo yêu cầu của tựa game.Trong trò chơi này sử dụng bộ mô phỏng vật lý Chipmunk được viết bằng ngôn ngữ C được tích hợp sẵn trong Unity Engine

Trang 13

 Giao diện người dùng: giao diện người dùng là thành phần không thể

thiếu trong các trò chơi, dù từ đơn giản đến phức tạp, 2D hay 3D Được

sử dụng để xây dựng các thành phần bổ trợ tương tác cung như cung cấp thông tin cho người chơi Và tương tự như bộ xử lý đồ họa, giao diện người dùng được cập nhật mỗi khung hình và việc một game engine có bộ xử lý tối ưu đem lại lợi ích lớn về hiệu suất cho trò chơi

 Mã: ngoài các thành phần trên cấu tạo nên một thế giới ảo hoàn hảo

nhưng để phối hợp chúng hoạt động cùng với các tài nguyên tạo nên một trò chơi sinh động thì phải có các đoạn mã logic xây dựng nên gameplay cho trò chơi Đây là thành phần cơ bản của một game engine

mà lập trình viên thường hay tiếp xúc nhất để xây dựng nên một trò chơi đúng theo thiết kế và tối ưu hiệu năng cho trò chơi

Phần lớn các nhà sản xuất lớn để sở hữu các game engine tự xây dựng mạnh mẽ Bên cạnh đó, còn có rất nhiều game engine miễn được các nhà làm game ưa chuộng để đưa những ý tưởng trở thành sự thật mà Cococ2d-x là một trong số đó

1.2 Unity Engine

1.2.1 Giới thiệu Unity Engine

- Unity là một phần mềm làm game đa nền tảng được phát triển bởi Unity Technologies, mà chủ yếu để phát triển video game cho máy tính, consoles và điện thoại Lần đầu tiên nó được công bố chạy trên hệ điều hành OS X, tại Apple's Worldwide Developers Conference vào năm 2005, đến nay đã mở rộng 27 nền tảng

- Unity hỗ trợ đồ họa 2D và 3D, các chức năng được viết chủ yếu qua ngôn ngữ C# Hai ngôn ngữ lập trình khác cũng được hỗ trợ: Boo, đã bị loại cùng với việc phát triển Unity 5 and UnityScript bị loại vào tháng 8 năm 2017 sau khi phát hành Unity 2017.1 UnityScript là một ngôn ngữ lập trình độc quyền có cú pháp tương tự JavaScript Phần mềm nhắm mục tiêu các đồ họa APIs sau: Direct3D trên Windows và Xbox

One; OpenGL trên Linux, macOS, và Windows; OpenGL ES trên

Android và iOS; WebGL trên web; và APIs độc quyền trên các máy chơi video game Ngoài ra, Unity hỗ trợ APIs cấp thấp như Metal trên iOS và macOS và Vulkan trên Android, Linux, và Windows, cũng như

Trang 14

Direct3D 12 trên Windows và Xbox One Trong 2D games, Unity cho phép nhập sprites và một renderer thế giới 2D tiên tiến Đối với 3D games, Unity cho phép thiết lập các đập điểm kĩ thuật của các kết cấu

và độ phân giải mà công cụ trò chơi hỗ trợ, cung cấp các hỗ trợ cho bump mapping, reflection mapping, parallax mapping, cảnh không gian ambient occlusion (SSAO), hiệu ứng bóng đổ bằng cách sử dụng

shadow maps, render thiết lập toàn cảnh đến hiệu ứng.Unity cũng cung cấp các dịch vụ cho nhà phát triển, bao gồm: Unity Ads, Unity

Analytics, Unity Certification, Unity Cloud Build, Unity Everyplay, Unity IAP, Unity Multiplayer, Unity Performance Reporting and Unity Collaborate

- Unity nổi bật với khả năng xây dựng trò chơi chạy trên nhiều nền tảng Các nền tảng được hỗ trợ hiện nay là Android, Android TV, Facebook Gameroom, Fire OS, Gear VR, Google Cardboard, Google Daydream, HTC Vive, iOS, Linux, macOS, Microsoft HoloLens, Nintendo 3DS family,Nintendo Switch, Oculus Rift Unity trước đây cũng đã hỗ trợ

7 nền tảng khác chạy trên Unity Web Player Unity Web Player là một plugin của trình duyệt chạy trên Windows và OS X, đã bị gỡ bỏ vì lợi ích của WebGL

- Unity là bộ công cụ phát triển phần mềm mặc định (SDK) cho máy chơi game video gameWii U của Nintendo, kèm theo bản miễn phí của Nintendo với mỗi giấy phép phát triển Wii U Unity Technologies gọi việc kết hợp sản xuất SDK với một bên thứ ba là "industry first"

- Ngôn ngữ lập trình: Unity hỗ trợ 1 ngôn ngữ: C#

Logo của Unity

Trang 15

1.2.2 Quá trình phát triển của Unity

- Ra mắt đầu tiên vào năm 2005 tại sự kiện Apple’s Worldwide

Developer Conference bởi nhà sáng lập David Helgason, trải qua hơn

12 năm phát triển, nay Unity đã có version 5.5 hoàn thiện hơn về rất nhiều mặt Tháng 5-2012 theo cuộc khảo sát Game Developer

Megazine được công nhận là Game engine tốt nhất cho mobile Năm

2014 Unity thắng giải “Best Engine” tại giải UK’s annual Develop Industry Exellence

1.2.3 Một số thống kê về Unity

- Tính đến quý 3 năm 2016 đã có 5 tỉ lượt download game và ứng dụng được phát triển bởi Unity

- 2,4 tỉ thiết bị di động đã từng tải ít nhất 1 ứng dụng bởi unity

- Số lượng người dùng (gamer) của Unity đạt tới con số 770 triệu, trong khi đó số người thường xuyên sử dụng Twitter là 310 triệu người

- Sự thay đổi trong cách thức chơi game của người chơi hay nói cách khác là xu hướng mọi người tập trung vào game trên di động nhiều hơn

Trang 16

1.2.4 Ưu điểm của Unity

xuất đồ họa) cho các hình ảnh 2D hoặc 3D, công cụ vật lý (tính toán và phát hiện va chạm), âm thanh, mã nguồn, hình ảnh động, 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 Nhờ có các engine mà công việc làm game trở nên

ít tốn kém và đơn giản hơn

năng hỗ trợ gầ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, trình duyệt Web và cả Flash Nói cách khác, chỉ với một gói engine, các studio có thể làm game cho bất kỳ hệ điều hành nào và dễ dàng convert chúng sang những hệ điều hành khác nhau Đồng thời, đây cũng là giải pháp cho các game online đa nền tảng – có thể chơi đồng thời trên nhiều hệ điều hành, phần cứng khác nhau như Web, PC, Mobile, Tablet…

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ễ

Trang 17

dàng tìm kiếm kinh nghiệm sử dụng của “tiền bối” trên các forum 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 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

Trang 18

1.2.5 Các thành phần trong Unity Editor

1.2.5.1 Cửa sổ Scenes

quan, có thể lựa chọn các đối tượng, kéo thả, phóng to, thu nhỏ, xoay các đối tượng

anh, cách nhìn 2D hay 3D -Khung nhìn Scene là nơi bố trí các Game Object như cây cối, cảnh quan, enemy, player, camera… trong game

Sự bố trí hoạt cảnh là một trong những chức năng quan trọng nhất của Unity

1.2.5.2 Cửa sổ Hierarchy

hành Khi các đối tượng được thêm hoặc xóa trong Sences, tương ứng với các đối tượng đó trong cửa sổ Hierarchy

giúp quản lý và thao tác với các Game Object hiệu quả hơn đặc biệt là với các dự án lớn

Trang 19

1.2.5.3 Cửa sổ Game

giải man hình, thông số (stats), gizmos, tùy chọn bật tắt các

component

1.2.5.4 Cửa sổ Project

nguyên (Assets) trong game của bạn

mục tương tự như Windows Explorer Khi click vào một nhánh trên cây thư mục thì toàn bộ nội dung của nhánh đó sẽ được hiển thị ở

khung bên phải Ta có thể tạo ra các thư mục mới bằng cách Right click -> Create -> Folder hoặc nhấn vào nút Create ở góc trên bên trái cửa sổ Project và chọn Folder Các tài nguyên trong game cũng có thể được tạo ra bằng cách này

vào những tài nguyên thường sử dụng Chúng ta có thể đưa các tài nguyên vào Favorites bằng thao tác kéo thả

- Đường dẫn của thư mục tài nguyên hiện tại Chúng ta có thể dễ dàng tiếp cận các thư mục con hoặc thư mục gốc bằng cách click chuột vào mũi tên hoặc tên thư mục

Ngày đăng: 01/05/2021, 23:31

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