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

Đề tài lập trình game trên UNITY swordsman

40 11 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 đề Đề tài lập trình game trên UNITY Swordsman
Trường học Trường Đại Học Công Nghệ Thông Tin - Đại Học Quốc gia Hà Nội
Chuyên ngành Lập trình game
Thể loại đề tài
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 40
Dung lượng 2,27 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 MỞ ĐẦU Trong thời đại công nghệ thông tin như hiện nay, sản phẩm công nghệ ngày càngchịu sự đánh giá khắt khe hơn từ phía những người dùng, đặc biệt là về sản phẩm Gameđược nhận r

Trang 1

LỜI MỞ ĐẦU 4

LỜI CẢM ƠN 5

CHƯƠNG 1: TNG QUAN V UNITY 6

1.1 Unity là gì? 6

1.2 Quá trình phát triển game Unity 6

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

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

CHƯƠNG 2: T;M HI<U V UNITY ENGINE 10

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

2.1.1 Cư฀a s Sences 10

2.1.2 Cư฀a s Hierarchy 11

2.1.3 Cư฀a s Game 11

2.1.4 Cư฀a s Project 11

2.1.5 Cư฀a s Inspector 12

2.2 Các khái niệm cơ bản trong Unity 12

2.2.1 GameObject 12

2.2.2 Component 12

2.2.3 Sprite 12

2.2.4 Animation 13

2.2.5 Key Frame 13

2.2.6 Prefabs 13

2.2.7 Sounds 13

2.2.8 Script 13

2.2.9 Scenes 13

Trang 2

2.2.11 Camera 14

2.2.12 Transform 14

CHƯƠNG 3: TNG QUAN Đ TÀI 15

3.1 Giới thiệu ý tưởng và nội dung game 15

3.1.1 Giới thiệu ý tưởng 15

3.1.2 Nội dung game 15

CHƯƠNG 4: CƠ SỞ LÝ THUYẾT VÀ PHÂN TÍCH THIẾT KẾ 16

4.1 Giới thiệu về ngôn ngữ C# 16

4.2 Các công cụ sử dụng 17

4.2.1 Unity 2018.2.10f1 17

4.2.2 Adobe Photoshop CC 2018 20

4.2.3 Một Scrips sữ dụng trong game 23

CHƯƠNG 5: THIẾT KẾ GIAO DIỆN ĐỒ HỌA GAME 28

5.1 Tổng quan đồ họa màn chơi 28

5.1.1 Menu Game 28

5.1.2 Level Game 28

5.1.3 Options 29

5.1.4 Guide 29

5.1.5 End Game 30

5.1.6 Màn 1 30

5.1.7 Màn 2 31

5.1.8 Màn 3 31

5.1.9 Màn 4 32

5.1.10 Màn 5 32

Trang 3

5.2 Chi tiết màn hình 33

5.2.1 Màn hình Paused 33

5.2.2 Chướng ngại vật 34

CHƯƠNG 6: KẾT LUẬN 37

6.1 Kết quả 37

6.2 Đánh giá 38

6.2.1 Những điểm làm được 38

6.2.2 Những điểm chưa làm được 38

6.3 Hướng phát triển 38

 TÀI LIỆU THAM KHẢO 39

Trang 4

LỜI MỞ ĐẦU



Trong thời đại công nghệ thông tin như hiện nay, sản phẩm công nghệ ngày càngchịu sự đánh giá khắt khe hơn từ phía những người dùng, đặc biệt là về sản phẩm Gameđược nhận rất nhiều sự đánh giá từ phía các Game thủ, hay chỉ là những người chơi bìnhthường Ngành công nghiệp Game hiện nay có thể nói là bùng nổ, với tốc độ phát triểnđến chóng mặt, rất nhiều những Game hay và hấp dẫn đã được ra đời trong thời gian qua.Phía sau những Game phát triển và nổi tiếng như vậy đều có một Game Engine GameEngine là một công cụ hỗ trợ, một Middleware giúp người phát triển viết Game một cáchnhanh chóng và đơn giản, đồng thời cung cấp khả năng tái sử dụng các tài nguyên và mãnguồn cao do có thể phát triển nhiều Game từ một Game Engine

Từ xu hướng phát triển và những bất cập trên, đồ án này sẽ khảo sát và nghiên cứu

về Engine Unity – một Game Engine rất phổ biến và không kém mạnh mẽ hiện nay nhằmthực nghiệm việc phát triển một trò chơi (Demo) bắn máy bay 2D Chuẩn bị kiến thức và

kỹ năng cho định hướng nghề nghiệp (phát triển Game) sau này của chúng em, góp phầnvào sự phát triển của ngành công nghiệp Game nước nhà Các chương đầu trong tài liệu

sẽ trình bày lần lượt các khái niệm chung về Game Engine và thế giới 2D

Các chương tiếp theo sẽ giới thiệu về Engine Unity bao gồm các đặc điểm, tínhnăng, công cụ và thành phần trong Engine này Sau những nội dung về thiết kế, tài liệu sẽtrình bày về việc lập trình trên Unity khi giới thiệu về ngôn ngữ lập trình cùng các lớp,hàm trong thư viện dựng sẵn của Unity thông qua các ví dụ thực tế khi phát triển mộtgame bắn máy bay 2D Cuối cùng là giới thiệu về bối cảnh, cốt truyện, tài liệu hướng dẫn

Trang 5

sử dụng của trò chơi Demo cùng chương tổng kết về các khó khăn và những thành quảtrong suốt quá trình phát triển trò chơi Demo trên Unity

Đặc biệt với lòng biết ơn sâu sắc nhất chúng em xin gửi lời cảm ơn Thầy Nguyễn

Hồ Minh Đức là giảng viên trực tiếp hướng dẫn giúp đỡ chúng em trong quá trình thựchiện đồ án chuyên ngành Công Nghệ Phần Mềm

Trong thời gian nghiên cứu cũng như trong quá trình làm báo cáo đề tài, khôngtránh khỏi thiếu sót Chúng em rất mong nhận được sự góp ý quý báu của quý Thầy Cô,anh chị và các bạn

Xin chân thành cảm ơn!!!

Trang 6

CHƯƠNG 1: TNG QUAN V UNITY

1.1 Unity là gì?

Unity là mô vt “cross- flatform game engine” tạm hiểu là công cụ phát triển game đanền tảng được phát triển bơ฀i Unity Technologies Game engine này được sử dụng để pháttrển game trên PC, consoles, thiết bị di đô vng và trên websites

1.2 Quá trình phát triển game Unity

Ra mắt đầu tiên vào năm 2005 tại sự kiê vn Apple’s Worldwide Developer Conferencebơ฀i nhà sáng lâ vp David Helgason, trải qua hơn 12 năm phát triển, nay Unity đã có version5.5 hoàn thiê vn hơn về rất nhiều mă vt

Tháng 5-2012 theo cuô vc khảo sát Game Developer Megazine được công nhâ vn làGame engine tốt nhất cho mobile Năm 2014 Unity thắng giải “Best Engine” tại giải UK’sannual Develop Industry Exellence

Trang 8

Hình 1.3b

1.4 Ưu điểm của Unity

Chức năng cốt lõi đa dạng bao gồm: cung cấp công cụ dựng hình (kết 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

Hỗ trợ đa nền tảng: Một trong các thế mạnh của Unity3D chính là khả 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áchkhá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ảiphá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…

Trang 9

Tính kinh tế cao: Unity Technologies hiện cung cấp bản miễn phí engine Unity3Dcho người dùng cá nhân và các doanh nghiệp có doanh thu dưới 100.000 USD/năm Vớibả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 10

CHƯƠNG 2: T;M HI<U V UNITY ENGINE

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

Hình 2.1 2.1.1 Cư฀a s Sences

Phần này phần hiển thị các đối tượng trong scenes một cách trực quan, có thể lựachọn các đối tượng, kéo thả, phóng to, thu nhỏ, xoay các đối tượng

Phần này có để thiết lập một số thông số như hiển thị ánh sáng, âm anh, cách nhìn2D 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ăngquan trọng nhất của Unity

Trang 11

2.1.2 Cư฀a s Hierarchy

Tab hierarchy là nơi hiển thị các Game Object trong Sences hiện hành Khi các đốitượ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

Tương tự trong tab Project, Hierarchy cũng có một thanh tìm kiếm 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

2.1.3 Cư฀a s Game

Đây là mạn hình demo Game, là góc nhìn từ camera trong game

Thanh công cụ trong cửa sổ game cung cấp các tùy chỉnh về độ phân giải man hình,thông số (stats), gizmos, tùy chọn bật tắt các component

Đườ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ácthư 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

Trang 12

2.1.5 Cư฀a s Inspector

Cửa sổ Inspector hiển thị chi tiết các thông tin về Game Object đang làm việc, kể cảnhững component được đính kèm và thuộc tính của nó Bạn có thể điều chỉnh, thiết lậpmọi thông số và chức năng của Game Object thông qua cửa sổ Inspector

Mọi thuộc tính thể hiện trong Inspector đều có thể dễ dàng tuỳ chỉnh trực tiếp màkhông cần thông qua một kịch bản định trước Tuy nhiên Scripting API cung cấp một sốlượng nhiều và đầy đủ hơn do giao diện Inspector là có giới hạn

Các thiết lập của từng component được đặt trong menu Các bạn có thể click chuộtphải, hoặc chọn icon hình bánh răng nhỏ để xuất hiện menu

Ngoài ra Inspector cũng thể hiện mọi thông số Import Setting của asset đang làmviệc như hiển thị mã nguồn của Script, các thông số animation, …

2.2 Các khái niệm cơ bản trong Unity

2.2.3 Sprite

Là một hình ảnh 2D của một game object có thể là hình ảnh đầy đủ, hoặc có thể là một bộ phận nào đó

Trang 13

ta chỉ việc tạo ra một đối tượng ban đầu, các đồng tiền còn lại sẽ sử dụng prefabs Hoặc khi ta lát gạch cho một cái nền nhà, các viên gạch cũng được sử dụng là prefabs.

Trang 14

2.2.12 Transform

Là 3 phép biến đổi tịnh tiến, quay theo các trục, và phóng to thu nhỏ một đối tượng

CHƯƠNG 3: TNG QUAN Đ TÀI

Trang 15

3.1 Giới thiệu ý tưởng và nội dung game

3.1.1 Giới thiệu ý tưởng

Game chủ yếu tập trung vào 1 nhân vật là Swordsman của dòng 2d platformer haycòn gọi là game đi màn vượt chướng ngại vật và tiêu diệt các chướng ngại vật trên đường

đi của nhân vật Lối chơi của các game này liên quan chủ yếu tới việc di chuyển nhân vậtphải có 1 số kĩ năng nhật định để có thể vượt qua các chướng ngại vật ví dụ như dụng vàogai nhân vật mất đi 1 máu trong tổng 5 máu hiên có Nếu nhân vật mà người chơi điềukhiển không được tốt và tuột xuống còn 0 máu thì sẽ quay lại vị trí xuất phát của mànchơi hiên tại, người chơi phải thật sự cẩn thận và có sự tập trung cao độ trong các bước dichuyễn mỗi màn chơi đều có rất nhiều bẫy đặt sẵn và quái rất khó giết Qua mỗi màn sốlượng bẫy cũng như quái cản trơ฀ sẽ càng tăng lên tạo cho người chơi sự ức chế, cũng nhưhứng thú khi muốn vượt qua cho được màn chơi đó Game được phát triển dựa tên ýlươ฀ng của game Mario huyền thoại, nên sẽ tạo nên sự thân thuộc và dễ hòa nhập với cáchchơi mà game đã quy định

3.1.2 Nội dung game

Game dựa trên câu chuyện về nhân vật Swordsman Một samurai đang tìm trên

đường quay về đất nước để cứu nguy cho đất nước trước sự tấn công của quái vật đến từ

lũ quái vật không gian, với vũ khí tiên tiến hiện đại vài các trụ lazer công thành Ngườichơi sẽ hóa thân vào nhật vật để tìm đường quay về, trên đường đi có rất nhiều quái vậtkhông gian hay trụ lazer cỡ nhỏ và cỡ lớn người chơi phải hết sức tập trung để có thể quacác màn và diệt Boss để giải cứu quê hương

Trang 16

CHƯƠNG 4: CƠ SỞ LÝ THUYẾT VÀ PHÂN TÍCH THIẾT KẾ

4.1 Giới thiệu về ngôn ngữ C#

C# (đọc là "C thăng" hay "C sharp" ("xi-sáp")) là một ngôn ngữ lập trình hướng đốitượng được phát triển bơ฀i Microsoft, là phần khơ฀i đầu cho kế hoạch NET của họ Têncủa ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng theo ECMA là C#, chỉ bao gồmdấu số thường Microsoft phát triển C# dựa trên C++ và Java C# được miêu tả là ngônngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java

C# được thiết kế chủ yếu bơ฀i Anders Hejlsberg kiến trúc sư phần mềm nổi tiếng vớicác sản phẩm Turbo Pascal, Delphi, J++, WFC

C# theo một hướng nào đó, là ngôn ngữ lập trình phản ánh trực tiếp nhất đến.NETFramework mà tất cả các chương trình.NET chạy, và nó phụ thuộc mạnh mẽ vàoFramework 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ìnhdọ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, v.v, phản ánh rõ ràng những đặc trưng của.NET runtime

So sánh với C và C++, ngôn ngữ này bị giới hạn và được nâng cao ơ฀ một vài đặcđiểm nào đó, nhưng không bao gồm các giới hạn sau đây:

 Các con trỏ chỉ có thể được sử dụng trong chế độ không an toàn Hầu hết cácđối tượng được tham chiếu an toàn, và các phép tính đều được kiểm tra tràn bộđệm Các con trỏ chỉ được sử dụng để gọi các loại kiểu giá trị; còn những đốitượng thuộc bộ thu rác (garbage-collector) thì chỉ được gọi bằng cách thamchiếu

 Các đối tượng không thể được giải phóng tường minh

Trang 17

 Chỉ có đơn kế thừa, nhưng có thể cài đặt nhiều interface trừu tượng (abstractinterfaces) Chức năng này làm đơn giản hóa sự thực thi của thời gian thực thi.

 C# thì an-toàn-kiểu (typesafe) hơn C++

 Cú pháp khai báo mảng khác nhau("int[] a = new int[5]" thay vì "int a[5]")

 Kiểu thứ tự được thay thế bằng tên miền không gian (namespace)

*.FBX hay *.dae, *.3DS, *.dxf và *.obj, nhưng định dạng *.FBX hay được dùng vì đượctố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)

Trang 18

Hình 4.2.1

Ngoài ra khi bạn design đượ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à bạn có thể chạy demo game của bạn ngay trongkhidesign, nó có hỗ trợ hai chế độ là Scene và Game, rất thuận tiện cho việc test thử cácmodulGame

Unity3D có 2 loại phiên bản, một cho người dùng free, và một phiên bản pro thì mấtphí

Khi tải Unity về các bạn cài đặt bình thường, đến khi kết thúc cài đặt nền các bạnchọn phiên bản Pro thì cần phải mua, còn nếu là người dùng free thì các bạn chọn kíchhoạt qua web, chỉ cần có kết nối mạng internet, sau đó chọn cài đặt thủ công và nhậpmail, chọn free là bạn có thể sử dụng một bản Unity free

Trang 19

Unity hỗ trợ 3 ngôn ngữ phát triển chính là C#, UnityScript (dựa trên Javascript) vàBoo Boo là ngôn ngữ ít được sử dụng nhất và thường được khuyên không nên dùng C#

là ngôn ngữ được dùng phổ biến nhất trong cộng đồng Unity với rất nhiều plugin và ví dụ

sử dụng ngôn ngữ này Bạn có thể cân nhắc sử dụng Unityscript tuy nhiên có thể bạn sẽgặp vấn đề khi tương tác với một số plugin được viết bằng C#

4.2.1.1 Ưu điểm và nhược điểm

 Unity có rất nhiều tính năng tuyệt vời:

 Unity có một cồng đồng rất lớn về asset và plugin – trong đó có rất nhiềuresources free và có nhiều thứ rất đáng bỏ tiền

 Unity có bộ công cụ rất trực quan và editor có thể mơ฀ rộng bằng plugins

 Unity hỗ trợ rất nhiều định dạng asset khác nhau và có thể tự động chuyển đổiđến định dạng phù hợp nhất với nền tảng thích hợp

 Unity hỗ trợ nhiều nền tảng: di động, desktop, web và console

 Việc triển khai đến các nền tảng khác nhau cũng khá dễ quản lý

 Bạn có thể dễ dàng xây dựng một game 3D mà không cần cấu hình quá phứctạp

 Unity bản free có hầu hết những tính năng quan trọng nhất

 Unity bản trả phí phù hợp với các developer chuyên nghiệp

 Tuy nhiên Unity cũng có vài nhược điểm mà bạn cần cân nhắc:

 Việc hợp tác rất khó khăn Unity sử dụng một server asset rất hiệu quả để hỗ trợcác đội phát triển phần mềm hợp tác với nhau Tuy nhiên nếu bạn không sửdụng nó thì việc chia sẽ code và asset giữa các thành viên trong team có thể gây

ra những vấn đề nghiêm trọng Lựa chọn tốt nhất là sử dụng một số công cụquản lý resource bên ngoài nhưng có một vài binary file không thể merge được

Trang 20

với nhau và việc cập nhật asset có thể gây nên một số vấn đề trong scenes, mấtkết nối đến script và các đối tượng khác.

 Hiệu năng chưa thật sự ấn tượng cho đến khi Unity 5 ra mắt Unity 5 đã chạyhầu hết trên một luồng duy nhất và hầu như không sử dụng thêm 1 nhân phụnào trên các thiết bị di động Bộ biên dịch chưa được tối ưu tốt cho các bộ xử lýARM trên hầu hết các thiết bị di động Để giải quyết vấn đề này thì Unity đãquyết định transpile (source-to-source compiler) sang C++ và sử dụng LLVM

để tối ưu được nhiều hơn thay vì giải quyết vấn đề này trực tiếp trên các phiênbản sau này

 Mã nguồn của engine không được công bố kể cả cho những người dùng chấpnhận trả tiền Điều đó có nghĩa là nếu bạn gặp một bug với engine bạn phải chờUnity fix chúng trong các bản tiếp theo Điều này có thể gây nên những vấn đềnghiêm trọng với project của bạn

4.2.2 Adobe Photoshop CC 2018

Adobe Photoshop (thường được gọi là Photoshop) là một phần mềm chỉnh sửa đồhọa được phát triển và phát hành bơ฀i hãng Adobe Systems ra đời vào năm 1988 trên hệmáy Macintosh Photoshop được đánh giá là phần mềm dẫn đầu thị trường về sửa ảnhbitmap và được coi là chuẩn cho các ngành liên quan tới chỉnh sửa ảnh Từ phiên bảnPhotoshop 7.0 ra đời năm 2002, Photoshop đã làm lên một cuộc cách mạng về ảnhbitmap Phiên bản mới nhất hiện nay là Adobe Photoshop CC

Ngoài khả năng chính là chỉnh sửa ảnh cho các ấn phẩm, Photoshop còn được sửdụng trong các hoạt động như thiết kế trang web, vẽ các loại tranh (matte painting vànhiều thể loại khác), vẽ texture cho các chương trình 3D gần như là mọi hoạt động liênquan đến ảnh bitmap

Adobe Photoshop có khả năng tương thích với hầu hết các chương trình đồ họa kháccủa Adobe như Adobe Illustrator, Adobe Premiere, After After Effects và Adobe Encore

Ngày đăng: 18/12/2022, 10:50

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

w