1. Trang chủ
  2. » Tất cả

Đồ án 2 đề tài xây dựng game vui

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng game vui Organstopia Game FPS sử dụng vật phẩm NFT
Tác giả Phạm Hoài Bảo
Người hướng dẫn ThS. Đỗ Thị Thanh Tuyền, Trần Thị Hồng Yến
Trường học Trường Đại học Công nghệ Thông tin, Đại học Quốc gia TP.HCM
Chuyên ngành Kỹ thuật phần mềm
Thể loại đồ án cuối kỳ
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 80
Dung lượng 2,16 MB

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

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN VỀ ĐỒ ÁN (6)
    • 1.1. Thông tin đồ án (6)
    • 1.2. Kế hoạch thực hiện (6)
  • CHƯƠNG 2. TỔNG QUAN VỀ ĐỀ TÀI (7)
    • 2.1. Đặt vấn đề (7)
    • 2.2. Phạm vi (8)
    • 2.3. Mục tiêu (9)
    • 2.4. Phương pháp thực hiện (9)
    • 2.5. Công cụ sử dụng (9)
  • CHƯƠNG 3. Giới thiệu công nghệ (11)
    • 3.1. NFT (11)
    • 3.2. ChainSafe (12)
    • 3.3. Unity Game Engine (13)
    • 3.4. Unity Gaming Services (UGS) (15)
      • 3.4.1 UGS Economy (16)
      • 3.4.2 UGS Remote Config (18)
      • 3.4.3 UGS Cloud Code (19)
      • 3.4.4 UGS Cloud Save (21)
      • 3.4.5 Cloud Build (22)
    • 3.5. Discord Rich Presence (23)
    • 4.1. Sơ đồ Kiến trúc hệ thống (25)
    • 4.2. Danh sách các tác nhân của hệ thống (25)
    • 4.3. Danh sách các use case (26)
    • 4.2. Đặc tả Use case (29)
    • 4.5. Xây dựng sơ đồ thực thể liên kết (60)
  • CHƯƠNG 5. THIẾT KẾ GAME (61)
    • 5.1 Vũ khí NFT (61)
    • 5.2 Gameplay (63)
    • 5.3 Economy (65)
    • 5.4 Cốt truyện (67)
  • CHƯƠNG 6. THIẾT KẾ GIAO DIỆN (68)
    • 6.1 NFT Market Place (68)
    • 6.2 Màn Hình Đăng Nhập (70)
    • 6.3 Menu Game (71)
    • 6.4 Ingame (74)
  • CHƯƠNG 7. CÀI ĐẶT VÀ HƯỚNG DẪN (77)
    • 7.1. Source Code (77)
    • 7.2. Cài đặt (77)
    • 7.3. Điều khiển (78)

Nội dung

-Thiết kế những tính năng, cơ chế hoạt động trong Game game - Tạo ra một Collection các NFT trên OpenSea để sử dụng - Tiếp tục thiết kế những tính năng, cơ chế hoạt động trong Game b

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỒ ÁN CUỐI KỲ

❖ Giảng viên hướng dẫn ❖

Trang 2

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

, ngày tháng ……… năm 2022

Người nhận xét (Ký tên và ghi rõ họ tên)

Trang 3

LỜI CẢM ƠN

Đầu tiên, em xin gởi lời cảm ơn chân thành đến tập thểquý Thầy Cô Trường Đại học Công nghệthông tin –Đại học Quốc gia TP.HCM và quý Thầy Cô khoa Công nghệ phần mềm đã trang bịcho nhóm những kiến thức nền tảng để thực hiện đề tài này

Đặc biệt, xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới cô Đỗ Thị Thanh Tuyền, người đã trực tiếp tận tình hướng dẫn nhóm em trong suốt quá trình thực hiện

đồ án, và cô Trần Thị Hồng Yến đã giúp đỡ nhiều khó khăn trong thời gian qua hoàn thiện đồ án này

Thành phố Hồ Chí Minh, ngày 24 tháng 12 năm 2022

Sinh viên thực hiện

Trang 4

MỤC LỤC

CHƯƠNG 1 TỔNG QUAN VỀ ĐỒ ÁN 6

1.1 Thông tin đồ án 6

1.2 Kế hoạch thực hiện 6

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

2.1 Đặt vấn đề 7

2.2 Phạm vi 8

2.3 Mục tiêu 9

2.4 Phương pháp thực hiện 9

2.5 Công cụ sử dụng 9

CHƯƠNG 3 Giới thiệu công nghệ 11

3.1 NFT 11

3.2 ChainSafe 12

3.3 Unity Game Engine 13

3.4 Unity Gaming Services (UGS) 15

3.4.1 UGS Economy 16

3.4.2 UGS Remote Config 18

3.4.3 UGS Cloud Code 19

3.4.4 UGS Cloud Save 21

3.4.5 Cloud Build 22

3.5 Discord Rich Presence 23

24 CHƯƠNG 4 THIẾT KẾ HỆ THỐNG 25

4.1 Sơ đồ Kiến trúc hệ thống 25

4.2 Danh sách các tác nhân của hệ thống 25

4.3 Danh sách các use case 26

4.2 Đặc tả Use case 29

4.5 Xây dựng sơ đồ thực thể liên kết 60

Trang 5

CHƯƠNG 5 THIẾT KẾ GAME 61

5.1 Vũ khí NFT 61

5.2 Gameplay 63

5.3 Economy 65

5.4 Cốt truyện 67

CHƯƠNG 6 THIẾT KẾ GIAO DIỆN 68

6.1 NFT Market Place 68

6.2 Màn Hình Đăng Nhập 70

6.3 Menu Game 71

6.4 Ingame 74

CHƯƠNG 7 CÀI ĐẶT VÀ HƯỚNG DẪN 77

7.1 Source Code 77

7.2 Cài đặt 77

7.3 Điều khiển 78

Trang 6

và NFT

-Thiết kế những tính năng, cơ chế hoạt động trong Game

game

- Tạo ra một Collection các NFT trên OpenSea để sử dụng

- Tiếp tục thiết kế những tính năng, cơ chế hoạt động trong Game

bằng công cụ ChainSafe

- Cài đặt nhưng cơ chế vật lí cơ bản trong Game

- Xử lí kết nối giữa UGS Cloud Save và Game

- Cài đặt quá trình kiểm tra NFT trong wallet để cung cấp vật phẩm tương ứng cho người dùng

-Code Shop bằng Cloud code và storage

-Phát triển các cơ chế nâng cao trong game -Tìm kiếm và tạo thêm những Asset đồ họa cần thiết

-Kiểm tra sự tương tác của game đối với hệ thống Cloud và các NFT service

nghiệm người dùng -Phát trên thêm các Level của Game -Sửa những lỗi và vấn đề phát sinh

Trang 7

Ba thị trường hàng đầu mà từ đó ngành công nghiệp trò chơi điện tử tạo ra doanh thu hàng trăm tỷ đô la là điện thoại di động, PC và máy chơi game Về trò chơi truyền thống, người chơi mua trò chơi điện tử và các loại bảng điều khiển mới nhất, đồng thời tiền sẽ chảy theo một hướng, từ họ đến nhà phát triển trò chơi điện

tử Đổi lại khoản đầu tư này, tiện ích và giá trị mua hàng trong trò chơi thậm chí không ở mức tối đa Người chơi tích lũy tiền xu và vật phẩm bằng cách đạt được một cột mốc quan trọng trong trò chơi Nhưng họ không sở hữu những vật phẩm này bên ngoài hệ sinh thái trò chơi

Ngược lại, các trò chơi hỗ trợ blockchain tập trung nhiều hơn vào việc tạo ra giá trị và cho phép người chơi nắm bắt tốt hơn tiện ích và giá trị của tài sản có được thông qua mua hàng trong trò chơi, chơi trò chơi thông thường hoặc các sự kiện quảng cáo Ví dụ: khi người chơi mua một vật phẩm trong trò chơi điện tử truyền thống, lợi ích duy nhất là vật phẩm đó cải thiện trò chơi Nhưng trong các trò chơi điện tử sử dụng mã thông báo không thể thay thế (NFT) đa nền tảng, mặt hàng đã mua đó có thể chuyển nhượng được, có thể đổi thành tiền mặt hoặc các tài sản và lợi

Trang 8

ích khác Các trò chơi NFT cho phép người chơi chuyển thu nhập của họ sang một trò chơi khác hoặc trao đổi nó với bất kỳ người chơi nào khác bằng tiền điện tử

Trò chơi NFT mang lại lợi ích cho cả nhà đầu tư và người chơi So với các trò chơi truyền thống, trò chơi NFT mang đến cho nhà phát hành một số lợi thế nhất định như: Tiềm năng thu hút vốn đầu tư mạo hiểm Ở giai đoạn đầu, các nhà đầu tư trực cảm thấy tiềm năng của thị trường này; đó là lý do tại sao các nhà phát triển và chủ sở hữu trò chơi muốn nhảy vào nhóm các giải pháp trò chơi dựa trên chuỗi khối

để thu hút các nhà đầu tư mạo hiểm Thu nhập từ App Store hoặc Play Store Nhà phát triển có thể kiếm được phần trăm phí tải xuống khi nhiều người dùng tải xuống trò chơi NFT từ App Store hoặc Play Store Càng nhiều lượt tải xuống, doanh thu của nhà xuất bản càng cao Ngoài ra, các sự kiện đặc biệt, giảm giá lễ hội và mua hàng trong ứng dụng là nguồn doanh thu ổn định cho các nhà phát triển trò chơi Doanh thu từ phí giao dịch Khi người chơi bán hoặc trao đổi NFT, nhà phát triển có thể tính phí giao dịch Đôi khi, giao dịch này có thể là một số tiền đáng kể để lợi nhuận sẽ tỷ lệ thuận

NFT mang lại những thay đổi cho ngành công nghiệp trò chơi và tăng thêm tiềm năng tăng trưởng Trước đây, ý tưởng mua một món đồ không tiêu hao trị giá 15.000 đô la có vẻ điên rồ Tuy nhiên, mọi người hiện đang làm điều này bởi vì nó

có thể được bán lại với nhiều tiền hơn và là duy nhất Không có những người khác bằng nhau Nó không được mua vì bạn thích hay không, mà vì giá trị mà nó có được khi là một NFT Công nghệ Blockchain đã đóng một vai trò đột phá trong ngành công nghiệp trò chơi điện tử và các thị trường khác Những người đã nắm bắt công nghệ này đã bắt đầu nhận được nhiều kết quả tích cực

2.2 Phạm vi

Phạm vi môi trường:

• Ứng dụng có thể hoạt động trên các thiết bị Windows

• Đăng nhập bằng Ví tiền Metamask

• Các vật phẩm NFT sẻ được cung cấp công khai trên nền tảng OpenSea

Trang 9

Phạm vi chức năng:

• Kết nối đến ví tiền điện tử để đăng nhập

• Sử dụng NFT để làm các Vũ khí mà người chơi có thể sử dụng

• Game 3D chạy trên nền tảng Unity Engine

• Người chơi sử dụng vũ khí để tiêu diệt các mục tiêu, đồng thời giải quyết các câu đố

để tiến tới màn chơi tiếp theo

• Economy, procession của người chơi sẽ được lưu trữ trên Cloud

2.3 Mục tiêu

Hiểu rõ cấu trúc và cách sử dụng của Unity Engine Nâng cao tính ứng dụng của

NFT, đưa chúng đến gần hơn với những người chưa tiếp cận Ứng dụng khả năng

đồng bộ dữ liệu của các nền tảng cloud để lưu trữ và sử dụng dữ liệu thời gian thực Tạo ra một sản phẩm Game đáp ứng được nhu cầu của nhiều người chơi

2.4 Phương pháp thực hiện

Kết nối đến ví tiền điện tử để đăng nhập

Sử dụng NFT để làm các Vũ khí mà người chơi có thể sử dụng

Game 3D chạy trên nền tảng Unity Engine

Người chơi sử dụng vũ khí để tiêu diệt các mục tiêu, đồng thời giải quyết các câu đố

để tiến tới màn chơi tiếp theo

Economy, Procession của người chơi sẽ được lưu trữ trên Cloud

2.5 Công cụ sử dụng

Trang 10

Trong quá trình thực tiện đề tài đồ án, em đã sử dụng các công cụ sau:

• Unity: Game Engine

• Jetbrains Rider: IDE

• Blender, Autodesk Maya: Các phần mềm thiết kế đồ họa phục vụ việc thiết kế

Model cũng như Visual Effect cho game

• Unity Gaming Services (UGS): Dịch vụ hỗ trợ Backend development, game

operations, và game monetization

• Github: Source Control

• Metamask: MetaMask là một ví tiền điện tử phần mềm được sử dụng để tương

tác với các Ethereum block

• OpenSea: Nền tảng marketplace cho NFT

• Chainsafe SDK: Hỗ trợ kết giữa Unity và Ví Metamask

• Discord SDK: Hiển thị hoạt động người chơi trên Discord

Trang 11

CHƯƠNG 3 Giới thiệu công nghệ

sẽ được truy xuất từ crypto wallet, mà bất kì người chơi khác đều có thể xem được số lượng NFT mà người chơi đó sở hũu và giá trị hiện tại của những NFT đó Người chơi buôn bán các NFT với nhau và quy đổi thành tiền mặt thông qua một hệ thống được gọi

là marketplace

Trò chơi NFT cũng giống như trò chơi điện tử truyền thống Người chơi có thể nhận được vật phẩm và tiền xu trong các trò chơi điện tử cổ điển bằng cách đạt được các cấp độ mới

Trang 12

hoặc sau các trận chiến Tuy nhiên, những giải thưởng này vẫn còn trong trò chơi và người chơi không có chúng bên ngoài trò chơi Sự khác biệt giữa trò chơi điện tử truyền thống

và trò chơi NFT là người chơi có thể chuyển thu nhập của họ sang một trò chơi khác hoặc trao đổi nó với bất kỳ người chơi nào khác bằng tiền điện tử Hiện tại, các vật phẩm và

đồ vật từ trò chơi điện tử đã có sẵn cho bất kỳ người chơi nào Trước đây, chỉ những người

có kỹ năng trò chơi nâng cao hoặc trả phí mới có thể nhận được một số vật phẩm nhất định Tuy nhiên, NFT chỉ có thể được sở hữu bởi một người chơi Công nghệ chuỗi khối dựa trên sự phát triển của NFT trò chơi điện tử cho phép tính xác thực của một yếu tố được đăng ký là duy nhất Và đây là cơ sở của trò chơi điện tử NFT Các đồ vật độc đáo

có thể được bán trên các chợ trong trò chơi và kiếm thu nhập

3.2 ChainSafe

ChainSafe là SDK miễn phí làm cầu nối giữa dự án game với công nghệ blockchain, giúp tạo ra những NFT trong game ChainSafe hỗ trợ những tính năng cơ bản, thiết yếu cho bất kỳ dự án game NFT nào:

• Tương thích với Ethereum, Binance Smart Chain, Polygon, Avalanche, Moonbeam, xDAI, Harmony và nhiều EVM khác

• Tương thích với mainnet, ropsten, kovan, rinkeby, goerli

• Cho phép lấy số dư từ bất kỳ tài khoản nào

• Gửi Ethereum, BSC, Polygon hoặc bất kỳ token nào vào bất kỳ tài khoản nào

• Kết nối với bất kỳ hợp đồng token NFT nào: ERC721, ERC1155, ERC20

Trang 13

ChainSafe phép các tính năng hấp dẫn như liên kết các giao dịch vi mô trong trò chơi như giao diện hoặc vật phẩm với NFT, bản thân những giao dịch này có thể được chuyển sang các trò chơi và hệ sinh thái khác Bạn có thể chuyển tiến trình/chỉ số của một nhân vật hoặc người chơi dưới dạng NFT sang một môi trường khác Không cần phải nói, chúng tôi vô cùng phấn khích về tương lai điều này sẽ hỗ trợ chơi game!

Cài đặt đơn giản như kéo và thả tệp SDK vào Unity Bằng cách sử dụng ChainSafe Gaming SDK, Game Developer giờ đây có thể kết nối các ứng dụng trò chơi của họ với kinh tế học tiền điện tử của hệ sinh thái Web 3.0 (thông qua việc sử dụng giao diện đăng nhập đơn giản với các ví Web3 như Metamask, Walletconnect, v.v.)

3.3 Unity Game Engine

Unity là game engine hoàn toàn miễn phí mạnh mẽ với lượng công cụ đa dạng, đáp ứng gần như đầy đủ nhu cầu phát triển hoàn chỉnh một tựa game của các studio indie Unity hiện nay còn hỗ trợ triển khai lên đến 27 nền tảng khác nhau, trong đó có cả nền tảng mục tiêu của nhóm là Android và iOS Ngoài ra, nguồn tài nguyên asset và plugin phong phú, bao gồm cả miễn phí lẫn có phí, giúp nới rộng giới hạn sáng tạo

Trang 14

Ngoài ra Unity còn cung cấp dịch quảng cáo và thanh toán trong trò chơi giúp đơn giản hóa các chiến lược kiếm tiền Ngoài ra, Engine này được trang bị tốt để tận dụng các công nghệ đã có trên mọi điện thoại thông minh — chẳng hạn như GPS, gia tốc kế, con quay hồi chuyển — để mở ra vô số khả năng cho các team phát triển

— mà không gặp nhiều rắc rối, ngay cả khi không được lên kế hoạch là một tựa game đa nền tảng trong quá trình phát triển

Với Unity Teams – một tính năng và lợi ích tuyệt vời – bạn và nhóm của mình có thể làm việc hết công suất Các tính năng nâng cao của nó giúp đơn giản hóa quy trình làm việc giữa các thành viên

Trang 15

Một khía cạnh khác không thể không nhắc đến, đó chính là cộng đồng người dùng đông đảo Cộng đồng hoạt động sôi nổi và sẵn sàng hỗ trợ lẫn nhau Số lượng bài viết, video hướng dẫn đồ sộ và đủ chi tiết, đáp ứng được nhu cầu tham khảo của nhóm

3.4 Unity Gaming Services (UGS)

Unity Gaming Services là một nền tảng đầu cuối được thiết kế để giúp bạn xây dựng, tương tác và phát triển trò chơi của mình, là cách nhanh nhất để tạo và quản lý các game cho nhiều người chơi trên đa nền tảng

• Thêm các tính năng xã hội và nhiều người chơi vào trò chơi của bạn

• Sử dụng logic trò chơi phía máy chủ để đảm bảo một sân chơi bình đẳng

• Cho phép người chơi của bạn truy cập dữ liệu trò chơi của họ trên nhiều nền tảng trò chơi khác nhau

Trang 16

• Chạy thử nghiệm A/B và đo lường dữ liệu trò chơi từ các dịch vụ khác nhau để đưa

ra các quyết định thiết kế

• Cung cấp nội dung mới mà không cần cập nhật ứng dụng của bạn

• Chạy các sự kiện đã lên lịch và cung cấp nội dung đa dạng cho trò chơi của bạn trong các sự kiện đó

• Thu hút người chơi bằng hệ thống trung thành và phần thưởng thú vị, lũy tiến

Bằng việc dễ dàng cài đặt thông qua một Package có sẵn, việc tích hợp các Service vào game có thể thực hiện rất dễ dàng

3.4.1 UGS Economy

Giúp dựng nền kinh tế tùy chỉnh trong trò chơi và cung cấp cho người chơi của bạn các giao dịch mua liền mạch, chuyển đổi tiền tệ, quản lý vật phẩm, v.v Tích hợp một nền kinh tế đầy đủ tính năng vào trò chơi của bạn và quản lý nó thông qua một bảng điều khiển được sắp xếp hợp lý

Xác định tài nguyên của nền kinh tế trong trò chơi của bạn và số dư cửa hàng, quyền sở hữu và lịch sử mua hàng cho người chơi của bạn Cập nhật nền kinh tế của bạn trong thời gian thực mà không cần cập nhật ứng dụng trò chơi

Trang 17

• Vật phẩm: Các vật phẩm thể hiện định nghĩa về tài nguyên được tạo như một phần của cấu hình Người chơi có thể sở hữu các phiên bản vật phẩm trong kho (ví dụ: nhiều bản sao của cùng một thanh kiếm, khiên, mũ) và không giống như tiền tệ, mỗi phiên bản có thể có thuộc tính riêng

• Mua hàng: Người chơi có thể mua tiền tệ trong trò chơi và vật phẩm trong kho bằng các loại tiền tệ trong trò chơi và vật phẩm trong kho khác nhau (mua hàng ảo) hoặc bằng cách sử dụng tiền thật thông qua mặt tiền cửa hàng kỹ thuật số

• Configuration: giúp giám sát dịch vụ Tiết kiệm từ Configuration của nó Hỗ trợ chi phối việc quản lý và xuất bản các tài nguyên trong trò chơi của bạn, đồng thời cho phép bạn thêm dữ liệu Tùy chỉnh

• Publication: Áp dụng economy, chuyển cấu hình hiện tại sang trò chơi của bạn, cho phép người chơi của bạn tương tác với nó

Trang 18

3.4.2 UGS Remote Config

Unity Remote Config là một dịch vụ đám mây điều chỉnh thiết kế trò chơi của bạn mà không cần triển khai các phiên bản mới của ứng dụng Với Cấu hình từ xa, bạn có thể:

• Điều chỉnh trò chơi của bạn cho phù hợp với các kiểu người chơi khác nhau

• Điều chỉnh độ khó trò chơi của bạn trong thời gian gần như thực

• Thay đổi chất lượng đồ họa dựa trên thiết bị để tối ưu hóa hiệu suất

• Triển khai các tính năng mới dần dần trong khi theo dõi tác động

• Điều chỉnh cài đặt trò chơi cho các khu vực khác nhau hoặc phân khúc người chơi khác

• Chạy thử nghiệm chiến dịch so sánh màu sắc, kiểu dáng, giá cả, v.v

• Bật hoặc tắt các sự kiện theo mùa, ngày lễ hoặc các sự kiện nhạy cảm với thời gian khác

• Bật hoặc tắt tính năng cho các phân khúc người chơi cụ thể hoặc trên toàn bộ cơ sở người dùng

Tạo và quản lý môi trường để nhóm Overide trò chơi (Campaigns) và Cài đặt lại với nhau theo cách hỗ trợ quy trình phát triển và triển khai của bạn Các môi trường cũng có thể được cấu trúc để phù hợp với ứng dụng của bạn sao cho Cài đặt và Overide trò chơi

Trang 19

cụ thể chỉ được truy xuất và cập nhật khi cần, do đó, Có thể sử dụng lại các Phím cài đặt

và Overide trò chơi

Xác định Overide trò chơi kiểm soát người chơi nào nhận được bản cập nhật cài đặt nào

và khi nào Unity quản lý việc phân phối và chỉ định các cài đặt đó với tác động tối thiểu đến hiệu suất Không cần cập nhật ứng dụng của bạn Khi người chơi khởi chạy trò chơi của bạn, Cấu hình từ xa sẽ phát hiện các thuộc tính theo ngữ cảnh được sử dụng làm điều kiện Overide trò chơi, dựa trên Unity, ứng dụng, người dùng hoặc tiêu chí tùy chỉnh mà bạn xác định Sau đó, dịch vụ sẽ trả về các cài đặt tùy chỉnh cho mỗi người chơi theo Overide trò chơi áp dụng cho họ Điều này cho phép những người chơi khác nhau sử dụng cùng một phiên bản trò chơi của bạn có những trải nghiệm hơi khác nhau Nó cũng cho phép bạn hiểu tác động của từng trải nghiệm đối với doanh nghiệp của bạn

3.4.3 UGS Cloud Code

Một trò chơi hiện đại yêu cầu rất nhiều thành phần để thành công, chẳng hạn như nền kinh

tế trong trò chơi, kho lưu trữ dữ liệu người chơi và cấu hình cài đặt động Việc sử dụng các thành phần này từ thiết bị trình phát không phải lúc nào cũng tốt hơn vì nó có thể dẫn

Trang 20

đến các vấn đề bảo mật và gây ra sự phức tạp không cần thiết Đôi khi, bạn cần cách ly logic trò chơi của mình khỏi thiết bị khách, chẳng hạn như khi:

Bạn cần cập nhật logic trò chơi ngay lập tức mà không yêu cầu người chơi cập nhật phiên bản đã cài đặt của họ

Bạn muốn ngăn những người dùng ác ý thay đổi mã máy khách, thay đổi trạng thái của

họ và gian lận Bạn cũng có thể muốn ngăn người dùng thiết kế ngược logic trò chơi của mình

Bạn muốn sử dụng nhiều dịch vụ trực tuyến mà không khiến trò chơi trở nên chậm chạp hoặc khó viết trên ứng dụng trò chơi khi bạn tích hợp với nhiều thành phần phía máy chủ hơn

Thông thường, bạn tạo và duy trì một máy chủ trò chơi có thể xử lý các trường hợp sử dụng này Tuy nhiên, việc quản lý, mở rộng quy mô và nâng cấp hiệu quả cơ sở hạ tầng phụ trợ có thể đòi hỏi rất nhiều nỗ lực Bạn cũng cần quản lý tính tương thích của nhiều thành phần, bao gồm:

• Phần cứng

• bảo mật máy chủ

• API trò chơi

Bằng cách sử dụng Cloud Code của Unity để viết mã phía máy chủ không trạng thái trên

cơ sở hạ tầng được quản lý hoàn toàn, bạn có thể tập trung hơn vào việc phát triển logic trò chơi của mình Cloud Code tự động cung cấp dung lượng máy chủ dựa trên tải để bạn

có thể đảm bảo rằng người chơi của mình nhận được trải nghiệm tốt mà không có bất kỳ

độ trễ hoặc thời gian ngừng hoạt động nào Cloud Code cũng đảm bảo rằng bạn chỉ trả tiền cho những gì bạn sử dụng vì không bao giờ có bất kỳ tài nguyên nào bị lãng phí khi trò chơi không nhận được lưu lượng truy cập Ngoài ra, vì mã của bạn chạy trong hộp cát

an toàn nên bạn có thể bảo vệ logic trò chơi của mình khỏi kỹ thuật đảo ngược Tích hợp

Trang 21

liền mạch với các dịch vụ Unity khác cho phép bạn viết mã liên kết trong nhiều thành phần mà không cần quan tâm đến xác thực hoặc tính tương thích Bạn có thể ngay lập tức triển khai mã cho các trò chơi trực tiếp mà không cần triển khai bản cập nhật ứng dụng khách yêu cầu người dùng cập nhật bản cài đặt của họ

3.4.4 UGS Cloud Save

Bạn có thể sử dụng dịch vụ Cloud Save của Unity để lưu dữ liệu liên tục của người chơi (chẳng hạn như tiến độ trò chơi) từ trò chơi vào đám mây, làm cho dữ liệu này độc lập với thiết bị Vì dựa trên đám mây nên người chơi có thể truy cập dữ liệu của họ ở mọi nơi

và trên nhiều thiết bị, giảm thiểu việc mất dữ liệu khi người chơi thay đổi thiết bị hoặc cài đặt lại trò chơi

Trang 22

Dữ liệu người chơi chủ yếu phù hợp với dữ liệu gắn với một người chơi cụ thể (chẳng hạn như lưu trạng thái trò chơi và tùy chọn người chơi) mà những người chơi khác không cần truy cập

3.4.5 Cloud Build

Unity Cloud Build là một tích hợp liên tục tự động tạo các bản dựng đa nền tảng trong Đám mây trong vài phút Bạn có thể Cloud Build quay lại những phiên bản trước của hệ thống để:

• Tự động hóa các bản build mới

• Build game nhanh hơn

Trang 23

3.5 Discord Rich Presence

Rich Presence là một tính năng mới của Discord cho phép bạn hiển thị dữ liệu độc đáo, thú vị và có thể thao tác trong hồ sơ của người dùng Discord khi họ chơi trò chơi của bạn

Tích hợp Rich Presence cho phép người chơi và cộng đồng của chúng tôi tương tác theo nhiều cách hơn với nhau và trò chơi

Rich Presence là một cách hiệu quả để tích hợp trò chơi của bạn với Discord Để làm điều đó một cách hiệu quả nhất Rich Presence được thiết kế cho ba điều sau:

• Hiển thị dữ liệu thú vị, độc đáo, có thể thực hiện được trong hồ sơ của người dùng

Discord

Trang 24

Dữ liệu trong hồ sơ người chơi của bạn là thứ đầu tiên mà những người khác trên Discord sẽ thấy về trò chơi Hiển thị dữ liệu như:

• Artwork của game

Trang 25

4.2 Danh sách các tác nhân của hệ thống

STT Tác nhân của hệ thống Ý nghĩa

1 Người chơi Người dùng trực tiếp chơi trò chơi

2 Người dùng Discord Người dùng xem thông tin trò chơi trên

Discord

DashBoard

Trang 26

Bảng 4.1 Danh sách các tác nhân của hệ thống

4.3 Danh sách các use case

STT Use case Ý nghĩa

1 Đăng Nhập ví điện tử Đăng nhập vào ví điện tử bằng

extention trên brower

2 Xem vũ khí Vào Scene Inventory để xem những tất

cả vũ khí đã và chưa sỡ hữu cũng như thông số từng vũ khí

3 Chọn màn chơi Bắt đầu màn chơi đầu tiên hoặc chọn một

màn chơi bất kì nếu đã có tiến trình

4 Di chuyển nhân vật (trong màn

chơi)

Nhân vật di chuyển trong màn chơi

5 Bắn đạn (trong màn chơi) Nhân vật tạo ra projectile hoặc raycast từ

7 Nạp đạn (trong màn chơi) Nạp đạn cho vũ khí đang sử dụng

8 Xem Minimap (trong màn chơi) Hiển thị minimap của màn chơi và vị trí

người chơi trên bản đồ

9 Tạm dừng (trong màn chơi) Quản lý hóa đơn của các dịch vụ tại sân

11 Mở khóa vật cản (trong màn

chơi)

Mở khóa vật cản khi người chơi sở hữu chìa khóa có cùng NameTag

Trang 27

12 Đổi vũ khí (trong màn chơi) Thay đổi vũ khí đang sử dụng

13 Xem thông tin vũ khí đăng sử

dụng (trong màn chơi)

Xem tên cũng như số đạn có thể sử dụng

và số lần nạp đạn

14 Hoàn Thành màn chơi Hiển thị kết quả màn chơi đã hoàn thành

15 Chơi lại màn chơi Khởi tạo lại màn chơi

16 Thoát khỏi màn chơi Thoát ra Menu từ trong màn chơi

17 Nhận Kinh nghiệm Nhận Kinh nghiệm khi hoàn thành màn

Trang 28

20 Nhận reward từ Daily Reward Nhận tiền và vật phẩm khi đăng nhập

hằng ngày từ Daily Reward

22 Mua trong shop Mua những vật phẩm đang mở bán trong

Shop

23 Xem vũ khí sở hữu Xem thông tin cụ thể của Vũ khí đã sở

hữu

24 Xem Credits Xem thông tin Credit của Game

26 Xem thông tin trò chơi Discord Xem thông tin quá trình chơi game trên

Trang 29

28 Thay đổi giá trị các Reward Thay đổi các Reward có thể nhận được

cũng như các chỉ số trong Battle Pass

Bảng 4.2 Danh sách các use case

4.2 Đặc tả Use case

4.2.1 Đặc tả Use – case đăng nhập

Tóm tắt Đăng nhập vào ví điện tử để kiểm tra những NFT sở hữu

Tác nhân chính Người chơi

Dòng sự kiện 1 Ấn vào nút đăng nhập ở màn hình Đăng nhập

2 Đăng nhập vào pop-up Metamask được mở ra ở Brower nhờ Chainsafe

3 Nhập mật khẩu để Unlock ví Metamask và Sign

4 Address của ví được dẫn xuất đến game

5 Truy xuất đến UGS Authecation để kiểm tra có tồn tại tài khoản tương ứng và khởi tạo nếu chưa có

6 Load màn hình Menu

Điều kiện tiên

quyết

Cài đặt Metamask extension trên Brower chính

Hậu điều kiện Nếu Đăng nhập thành công chuyển sang màn hình Menu

Điểm mở rộng Không có

4.2.2 Đặc tả Use – case Xem thông tin vũ khí

Tóm tắt Vào Scene Inventory để xem những tất cả vũ khí đã và chưa

sỡ hữu cũng như thông số từng vũ khí

Tác nhân chính 1 Chọn nút Inventory ở màn hình Menu

2 Game kiểu tra dữ liệu NFT được Chainsfe đưa về từ ví MetaMask

Trang 30

3 Hiển thị danh sách những tất cả vũ khí và cho Sử dụng những vũ khí có NFT tương ứng

4 Truy xuất dữ liệu đến UGS economy để lấy số lượng Currency và các item của tài khoản người chơi

5 Hiển thị Currency và Item

Điều kiện tiên

quyết

Có kết nối với Internet

Hậu điều kiện Không có

Điểm mở rộng Nhấn vào vũ khí để xem các chỉ số tương ứng của vũ khí đó

Trang 31

Dòng sự kiện 1 Chọn nút Play trên màn hình Menu

2 Truy xuất đến UGS cloud save để lấy dữ liệu tiến trình của tài khoản

3 Hiển thị những màn chơi có thể truy cập dựa vào dữ liệu đã truy xuất

Tóm tắt Nhân vật người chơi di chuyển tự do trong màn chơi

Tác nhân chính Người chơi

Trang 32

Dòng sự kiện

1 Nhận input di chuyển từ người chơi

2 Game kiểu tra Collision của người chơi có chạm phải vật cản ở Vector di chuyển tương ứng

3 Hiển thị Animation và Sound Effect khi di chuyển

4 Cập nhật vị trí của người chơi theo hướng di chuyểnsd

5 Nhận input thay đổi hướng nhìn

6 Hiện thị Animation khi đổi hướng nhìn

7 Cập nhật hướng của Camera tương ướng với góc nhìn

từ input

8 Nhận input nhảy

9 Check Collision phía trên nhân vật

10 Hiển thị Animation và Sound Effect khi nhảy

11 Thêm lực Force cho nhân vật theo Vector.y

12 Hiển thị Animation và Sound Effect khi nhân vật chạm đất

Điều kiện tiên

quyết

Đã load màn chơi

Hậu điều kiện Không có

Trang 33

Điểm mở rộng Không có

4.2.5 Use case – Bắn đạn

Tóm tắt Nhân vật tạo ra projectile hoặc Raycast (đạn) để bắn vào

những mục tiêu

Tác nhân chính Người chơi

Dòng sự kiện 1 Nhận input bắn đạn từ người chơi

2 Kiểu tra Object vũ khí tương ứng

3 Kiểm tra số đạn trong vũ khí

4 Tạo ra các raycast hoặc projectile tương ứng với loại đạn của Object vũ khí, và số lượng tương ứng với Súng

5 Các Đạn được tạo ra có chỉ số damage tương ứng với Node cha là Object vũ khí

6 Hiển thị Animation và Effect khi bắn đạn

7 Dựa vào loại súng và chỉ số FireRate của object vũ khí

để xác định có tiếp tục tạo ra đạn

8 Trừ số lượng đạn hiện có trong Vũ khí

9 Cập nhật UI hiển thị đạn trong vũ khí

Trang 34

Điều kiện tiên

quyết

Đã Load màn chơi, object Súng còn đạn

Hậu điều kiện Nếu Use Case thành công, chủ sân có thể thực hiện những

thao tác với hệ thống

Điểm mở rộng Khi đạn collision chạm vào mục tiêu thì mục tiêu sẽ bị trừ

máu

4.2.6 Đặc tả Use – case Tiêu diệt mục tiêu

Tóm tắt Tiêu diệt mục tiêu khi mục tiêu hết máu do va chạm với

Colision của đạn từ người chơi

Tác nhân chính Người chơi

Trang 35

Dòng sự kiện 1 Khi các Object đạn được tạo ra và di chuyển

2 Khi collision của đạn chạm phải collision khác

3 Nếu Collison khác là Mục tiêu, trừ máu của mục tiêu

đó

4 Hiển thị Effect khi đạn chạm vật thể

5 Nếu mục tiêu hết máu, Hủy bỏ mục tiêu đó ,Hiển thị Effect tiêu diệt mục tiêu

Điều kiện tiên

quyết

Đã load màn chơi

Hậu điều kiện Không có

Trang 36

Điểm mở rộng Không có

4.2.7 Đặc tả Use – case Nạp đạn

Tóm tắt Nạp lại đại cho vũ khí để có tiếp tiếp tục bắn mục tiêu

Tác nhân chính Người chơi

Dòng sự kiện 1 Nhận Input nạp đạn từ người chơi hoặc tự động thực

hiện sau khi người chơi dùng hết đạn

2 Kiểm tra số đạn còn lại trong vũ khí và số đạn có thể nạp

3 Hiển thị Effect và Animation nạp đạn

4 Cập nhật số đạn trong vũ khí

5 Cập nhật UI hiển thị số đạn trong vũ khí

Trang 37

Điều kiện tiên

4.2.8 Đặc tả Use – case Hiển thị Minimap

Tóm tắt Hiển thị bản đồ thu nhỏ của màn chơi cũng như vị trí hiện tại

của người chơi trên bản đồ đó

Tác nhân chính Người chơi

Trang 38

Dòng sự kiện 1 Hiển thị Minimap ở góc màn hình về Màn chơi đã

Trang 39

4.2.9 Đặc tả Use – case Tạm dừng màn chơi

Tóm tắt Tạm dừng màn chơi và

Tác nhân chính Chủ sân, nhân viên

Dòng sự kiện 1 Nhận Input tạm dừng màn chơi

2 Ngưng bộ đếm thời gian của màn chơi

3 Hiển thị Bảng Menu tạm dừng

4 Chọn nút Resume để quay lại màn chơi

5 Cho bộ đếm thời gian hoạt động lại

Trang 40

Tóm tắt Spawn chìa khóa khi người chơi hoàn thành một thử thách, và

ẩn đi khi chạm vào collision của người chơi

Tác nhân chính Người chơi

Dòng sự kiện 1 Spawn Object chìa khóa với nameTag khi hoàn thành

thử thách ở một màn chơi

2 Hiển thị Effect khi spawn chìa khóa

3 Khi Nhân vật di chuyển và Collision chạm Collision của chìa khóa

4 Ẩn Render Object chìa khóa và đặt Node parent là nhân vật đang điều khiển

Điều kiện tiên

Ngày đăng: 01/02/2023, 21:10

w