Tải bản đầy đủ (.docx) (56 trang)

Tìm hiểu binance smart chain và xây dựng game thể loại NFT

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.3 MB, 56 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
🙡🙡🙡

BÁO CÁO ĐỒ ÁN 2
Đề tài

Tìm hiểu Binance Smart Chain và
xây dựng game thể loại NFT
Giáo viên hướng dẫn: Th.S Đinh Nguyễn Anh Dũng
Sinh viên thực hiện:

MSSV

Nguyễn Nhật Long

18520304

Tưởng Thành Long

18520227

Tp Hồ Chí Minh, ngày 24 tháng 12 năm 2021


Nhận xét
…………………………………………………………………………………………
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….


……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….
……………………………………………………………………………………….


Lời cám ơn
Những trang đầu tiên của báo cáo này chúng em xin gửi lời biết ơn sâu sắc và chân thành
nhất từ nhóm chúng em đến giáo viên Ths Đinh Nguyễn Anh Dũng vì đã tận tình hướng
dẫn chúng em hồn thành đồ án này tốt nhất có thể, nếu khơng có sự hướng dẫn của cơ có
lẽ chúng em sẽ khơng thể hồn thành được tốt đến vậy. Trong q trình hồn thiện sản
phẩm cũng như báo cáo khó tránh khỏi những sai sót, mong nhận được góp ý từ các thầy
cơ để chúng em có thể cải thiện bản thân trong những dự án lần sau. Một lần nữa xin
chân thành cám ơn mọi người đã ủng hộ chúng em trong dự án lần này.


Lịch sử chỉnh sửa
Ngày


Tên

Ghi chú chỉnh sửa

28/12/2021

Nguyễn Nhật Long

Tạo tài liệu

29/12/2021

Nguyễn Nhật Long

Thêm và cấu trúc các mục của tài liệu

29/12/2021

Tưởng Thành Long Bổ sung tài liệu

30/12/2021

Nguyễn Nhật Long Thêm phần tài liệu thiết kế game

3/1/2022

Tưởng Thành Long Thêm phần Thiết kế smart contract

8/1/2022


Nguyễn Nhật Long Kiểm tra và chốt tài liệu


Mục lục
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
Giới thiệu đề tài
Khái niệm Play to earn
Play to earn đã phát triển thế nào?
Khái niệm Blockchain
Blockchain
Tiền điện tử
Binance Smart Chain

1
1
1
1
3
3
4
5

CHƯƠNG 2: NGHIÊN CỨU CÔNG NGHỆ SỬ DỤNG
Unity
Giới thiệu
Chainsafe
Blockchain
Tiền điện tử
Metamask
Binance Smart Chain

Play 2 earn
NFT
Smart contract
Proof of stake

7
7
7
7
8
8
8
8
8
9
9
9

CHƯƠNG 3: TÀI LIỆU THIẾT KẾ GAME
Giới thiệu
Bối cảnh
Tham chiếu
Áp dụng
Play to earn
Game loop
Nhân vật
Thành phần nhân vật
Một số nhân vật mẫu
Tóc


11
11
11
11
12
12
12
12
13
14
14


Thân
Tai
Mắt
Râu
Miệng
Lai nhân vật
Mơ hình tạo doanh thu

14
16
18
19
19
20
21

CHƯƠNG 4: THIẾT KẾ SMART CONTRACT

Chuẩn thiết kế smart contract
ERC-20
ERC-721
Ý tưởng thiết kế
Kết quả

22
22
22
23
24
26

CHƯƠNG 5: THIẾT KẾ GIAO DIỆN
Sơ đồ liên kết màn hình
Danh sách màn hình
Mơ tả màn hình
Màn hình chính
Màn hình lai
Màn hình kho đồ cá nhân
Màn hình chợ

27
27
27
27
28
29
30
31


CHƯƠNG 6: HIỆN THỰC
Quy trình làm việc
Quy trình
Kế hoạch
Giai đoạn nghiên cứu và lên kế hoạch
Giai đoạn hiện thực
Công cụ
Quản lý mã nguồn
Quản lý tài liệu và lưu trữ

32
32
32
33
33
33
34
34
34

CHƯƠNG 7: KẾT QUẢ
Hình ảnh trong game
Kiểm thử

41
41
46

CHƯƠNG 8: ĐÁNH GIÁ


48


Đánh giá sản phẩm
Ưu điểm
Hạn chế
Hướng phát triển và mở rộng
Gameplay
Phong cách đồ họa
Đưa tiền ảo lên sàn

48
48
48
48
48
51
51


CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
1.1.

Giới thiệu đề tài

Với đề tài hướng đến 1 thể loại có thể gọi là mới đối với thế giới những năm gần đây, đó
là thể loại “Play to earn” - nghĩa là chơi game kiếm tiền. Thuật ngữ “Play to earn” bắt đầu
bùng nổ khi nào cơn sốt tiền điện tử nóng dần lên ở giai đoạn 2018 - 2021, các đồng tiền
số tăng giá liên tục cùng với sự ứng dụng công nghệ blockchain ngày càng rộng rãi thì

việc ra đời thể loại Play to earn là điều tất yếu.
Vậy với 1 chủ đề mang tính tầm nhìn và mới mẻ trong xã hội 4.0 hiện nay, nhóm em đã
quyết định nghiên cứu, thử nghiệm và ứng dụng những công nghệ, kiến thức tìm hiểu
được để có thể tạo ra 1 game Play to earn của riêng mình.

1.2.

Khái niệm Play to earn

Play to Earn là một mơ hình trong đó một nền tảng cung cấp cho người chơi cơ hội kiếm
được bất kỳ dạng tài sản trong trị chơi có thể chuyển sang thế giới thực như một tài
nguyên có giá trị.
Đặc biệt là trong vũ trụ blockchain và NFT. Play to Earn mang lại cho player một cơ hội
hiệu quả để tạo ra doanh thu bằng cách tham gia vào game. Player tạo ra giá trị cho
những người chơi và nhà phát triển khác bằng cách tham gia vào hệ sinh thái trong trị
chơi và kiếm tài sản cho những đóng góp của họ.

1.3.

Play to earn đã phát triển thế nào?

Như những ngành công nghiệp khác, chơi game online cũng chứng kiến vô số xu hướng
như game đấu trường chiến đấu online nhiều người chơi (MOBA). Hàng loạt cái tên
được nêu lên và danh sách này không ngừng tăng.

1


Theo statista, người ta ước tính rằng thị trường trị chơi toàn cầu sẽ lên tới 268,8 tỷ USD
vào năm 2025, tăng từ mức 178 tỷ đô la Mỹ vào năm 2021. Việc xem xét chơi game thực

sự được khuyến khích ở nhiều quốc gia.
Ngành cơng nghiệp tiền điện tử đã nhận ra tiềm năng của phân khúc đang phát triển này
mà cơng nghệ dựa trên blockchain có thể tác động tích cực lên nó. Điều này phần lớn có
thể xảy ra thông qua sự bùng nổ của Non Fungible Token (NFT). Các nhà phát triển hiểu
rằng họ có thể tạo và chuyển giao giá trị hữu hình trong hệ sinh thái gaming, cung cấp
thêm động lực cho những ai dành thời gian chơi game.
Đây là cách mơ hình Play to Earn và đặc biệt liên quan đến tiền điện tử ra đời và bắt đầu
phát triển nhanh chóng.
Trong bài viết này, mình và mọi người chủ yếu khám phá mơ hình Play to Earn trong
ngành cơng nghiệp tiền điện tử, một số khái niệm cần quan tâm và các game Play to Earn
nổi tiếng hàng đầu.

2


1.4.

Khái niệm Blockchain
1.4.1. Blockchain

Blockchain (chuỗi khối), tên ban đầu block chain là một cơ sở dữ liệu phân cấp lưu trữ
thông tin trong các khối thông tin được liên kết với nhau bằng mã hóa và mở rộng theo
thời gian Mỗi khối thông tin đều chứa thông tin về thời gian khởi tạo và được liên kết tới
khối trước đó, kèm một mã thời gian và dữ liệu giao dịch. Blockchain được thiết kế để
chống lại việc thay đổi của dữ liệu: Một khi dữ liệu đã được mạng lưới chấp nhận thì sẽ
khơng có cách nào thay đổi được nó.

Một chuỗi khối giống như một nơi để lưu trữ dữ liệu bán công cộng trong một không
gian chứa hẹp (khối). Bất cứ ai cũng có thể xác nhận việc bạn nhập thơng tin vào vì khối
chứa có chữ ký của bạn, nhưng chỉ có bạn (hoặc một chương trình) có thể thay đổi được

dữ liệu của khối đó vì chỉ có bạn cầm khóa bí mật cho dữ liệu đó.
Vì thế chuỗi khối hoạt động gần giống như một cơ sở dữ liệu, ngoại trừ một phần của

3


thơng tin được lưu trữ - header của nó là cơng khai.
Dữ liệu lưu trữ có thể là một giá trị hoặc một số dư tiền mã hóa. Một chuỗi khối hoạt
động như một hệ thống lưu chuyển giá trị thay thế mà không một cá nhân hay tổ chức
bên thứ ba nào có thể thay đổi được nó (vì q trình lưu trữ dữ liệu đã được mã hóa). Nó
dựa trên quyền cơng khai và bí mật, nhìn cơng khai nhưng kiểm sốt bí mật.

1.4.2.

Tiền điện tử

Tiền điện tử là một loại tiền tệ kỹ thuật số, được thiết kế với mục đích làm phương tiện
trao đổi thay thế cho tiền pháp định. Tiền điện tử sử dụng thuật toán để bảo mật và xác
nhận các giao dịch cũng như kiểm soát việc thành lập các đơn vị mới trong một mạng
lưới tiền điện tử nhất định. Về cơ bản, tiền điện tử là một dạng cơ sở dữ liệu giới hạn đầu
vào, khơng ai có thể thay đổi nếu không đáp ứng đủ một số điều kiện xác định sẵn.
Một trong những vấn đề quan trọng nhất mà bất kỳ mạng lưới thanh toán nào cũng phải
giải quyết đó chính là “lặp chi” (double spending). Đây là một kỹ thuật lừa đảo bằng cách
thực hiện hai giao dịch để chi tiêu cùng số dư của một tài khoản. Giải pháp truyền thống
là dựa vào “bên thứ ba” – một máy chủ trung tâm – lưu giữ thông tin số dư và chi tiết
giao dịch. Tuy nhiên, phương pháp này địi hỏi người có thẩm quyền để giữ và kiểm sốt
thơng tin cá nhân của bạn trong tay.
Trong một mạng lưới phi tập trung như Bitcoin, mỗi thành phần tham gia đều phải làm
công việc này. Mọi thứ đều được vận hành qua Blockchain – một sổ cái công cộng ghi
chép mọi giao dịch trong một mạng lưới mà bất cứ thành phần tham gia nào cũng có thể

tiếp cận. Vì đó, mọi người trong mạng lưới có thể truy vấn số dư của tất cả các tài khoản.
Mọi giao dịch đều có dạng một tệp tin có chứa key công khai của người gửi và người
nhận (các địa chỉ ví) và số lượng coin được dịch chuyển. Các giao dịch cũng cần được
xác nhận bởi người gửi bằng một “mã khóa cá nhân” – private key. Tất cả những điều
trên là lý thuyết căn bản của thuật toán crypto. Cuối cùng, giao dịch sẽ được đưa lên
mạng lưới nhưng vẫn cần được xác nhận.

4


Trong mạng lưới tiền điện tử, chỉ có những thợ đào mới có thể xác nhận các giao dịch
bằng cách giải các bài tốn được mã hóa. Họ sẽ nhận các giao dịch, đánh dấu hợp lệ và
phát tán ra tồn mạng lưới. Sau đó, mọi node của mạng lưới sẽ bổ sung vào cơ sở dữ liệu.
Một khi giao dịch đã được xác nhận thì sẽ khơng thể xóa và đảo ngược quy trình. Thợ
đào sẽ nhận được phần thưởng cộng với phí giao dịch.
Về cơ bản, mạng lưới tiền điện tử dựa vào sự đồng thuận tuyệt đối của tất cả các thành
phần trong không gian để xác nhận tính hợp lệ của số dư và giao dịch. Nếu các node của
mạng lưới không chấp nhận, hệ thống sẽ dừng hoạt động. Tuy nhiên, có rất nhiều luật lệ
được xây dựng và lập trình vào trong hệ thống để giúp ngăn chặn rủi ro này.
Tiền điện tử có chứa tiền tố crypto chính là vì quy trình đồng thuận của cộng đồng được
đảm bảo bởi một thuận toán crypto (mã hố) an tồn. Cùng với những yếu tố đã được nêu
trên, tiền điện tử trở thành một khái niệm khiến việc “đặt niềm tin vào bên thứ ba” trở
nên hoàn toàn dư thừa.

1.4.3.

Binance Smart Chain

Binance Smart Chain (BSC) là một nền tảng blockchain chạy trên máy ảo của Ethereum,
nó đồng thời chạy song song với Binance Chain, mơ phỏng mô cấu trúc mạng máy ảo

bên dưới như sau:

5


Bản chất chất của Binance Smart Chain là nhân bản blockchain của Ethereum khởi tạo
chuỗi khối bằng kết hợp hai thuật toán bằng chứng cổ phần (Proof of Stake) và thuật toán
bằng chứng ủy quyền (Proof of Authority). Thiết kế này cho phép khả năng tương thích
chuỗi chéo (cross-chain) đồng thời từ cả ba mạng BCS, BNB và Ethereum.
Ưu điểm của blockchain này giúp các tài sản có thể được di chuyển nhanh chóng giữa
các mạng, do đó kết hợp được khả năng giao dịch nhanh với chức năng hợp đồng thơng
minh lại với nhau. Điển hình là token BEP-2 và BEP-8 của Binance Chain cũng có thể
được hốn đổi với token BEP-20 của Binance Smart Chain và có thể Swap các token
ERC20 của Ethereum sang Binance Smart Chain. Bên cạnh đó các tính năng trên dApp
trên Ethereum có thể chuyển đổi trên Binance Smart Chain đồng thời cả Binance Chain.

6


CHƯƠNG 2: NGHIÊN CỨU CƠNG NGHỆ SỬ DỤNG
2.1.

Unity
2.1.1. Giới thiệu

Hình 2.1.1.1 Logo của Unity

Unity là một game engine đa nền tảng được phát triển bởi Unity Technologies, chủ yếu
để phát triển video game cho máy tính, consoles và điện thoại.
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#. Tuy

nhiên, bạn ln có thể sử dụng hệ thư viện rộng lớn của Unity thay vì tự code chúng, và
chỉ thực hiện lập trình kéo thả, khơng cần 1 dịng code nào.
Unity nổi tiếng với giá rẻ, tính năng đa nền tảng, và hỗ trợ cộng đồng lớn. Vì những lý do
này và nhiều lý do khác, Unity là một trong những game engine được sử dụng rộng rãi
nhất.

2.1.2.

Chainsafe

Hình 2.1.2.1 Logo của Chainsafe

ChainSafe là một công cụ để kết nối Unity với Blockchain. ChainSafe cho phép ta kết nối
trực tiếp với blockchain và thực hiện các lời gọi hàm trên smart contract. Đây là điểm ưu
việt của ChainSafe so với các công cụ blockchain khác trên Unity như Enjin và tránh
được các trung gian.
ChainSafe có 3 tính năng chính:
-

Đọc smart contract

-

Kết nối với Metamask
7


-

Thông qua Metamask, gọi hàm trên smart contract


2.2.

Blockchain
2.2.1. Tiền điện tử

Tiền điện tử, crypto, tiền ảo, tiền mã hóa, … là nhưng tên gọi khác nhau của một loại tài
sản, có thể dùng để giao dịch, mua bán, trao đổi ở trong cùng cộng đồng những người sử
dụng loại tiền đó. Tiền ảo khơng giống như tiền pháp định (hay tiền fiat, được ban hành
và kiểm sốt bởi chính phủ), nó được kiểm sốt bởi thị trường nơi mà ai cũng có thể trao
đổi và giao dịch 24/7. Hoạt động dựa trên công nghệ Blockchain, tiền điện tử hiệnn đang
trở thành xu thế cho các dự án cũng như nhà đầu tư mới nổi tham gia.

2.2.2.

Metamask

Metamask là ví điện tử, ban đầu được sử dụng để tương tác với các chuỗi khối Ethereum
nhưng hiện nay metamask đã cho phép người dùng thêm các mạng lưới riêng vào để sử
dụng hoặc thử nghiệm.

2.2.3.

Binance Smart Chain

Có thể coi nó là 1 mạng lưới riêng độc lập với sàn Binance chúng ta hay nhắc đến. BSC
là 1 blockchain sử dụng thuật toán Proof of Staked Authority (PoSA), là mơ hình kết hợp
giữa Poof of Authority và Proof of Stake. BSC phục vụ tất cả những lập trình viên mong
muốn xây dựng ứng dụng với tính năng Smart Contract, nhất là những dApp chú trọng
vào tài sản kỹ thuật số có thể giao dịch được, vì Binance Smart Chain cũng cho phép phát

hành token kỹ thuật số và giao dịch trên cả hai chuỗi.

2.2.4.

Play 2 earn

Play to earn là tên gọi đầy đủ cho thể loại game “chơi để kiếm tiền”, tiền được nhắc đến ở
đây có thể là token, sau khi nhận được token đó người chơi có thể giữ hoặc đem nó lên
sàn để bán với giá thị trường từ đó có thể quy đổi ra tiền pháp định. Game play 2 earn
cuốn hút vì có thêm NFT, khiến cho các vật phẩm của người chơi sở hữu là độc nhất và
nhà phát hành game không thể điều chỉnh cũng như định giá bán của nó hay đột nhiên
thêm nó vào túi của mình để kiếm lời.

2.2.5.

NFT

NFT (Non-fungible token) là một loại tài sản số sử dụng công nghệ blockchain (chuỗi
khối) - tương tự như Bitcoin - để tạo ra một chuỗi mã độc nhất đại diện cho một vật phẩm

8


nào đó và khơng thể thay thế. Các chuỗi mã này thường được dùng để định danh phiên
bản số của các tác phẩm nghệ thuật, bài hát hay hiện tượng mạng.

2.2.6.

Smart contract


Smart Contract là một giao thức đặc biệt nhằm xử lý, xác minh hoặc thực thi các hợp
đồng kỹ thuật số. Smart Contract có khả năng tự động thực hiện các điều khoản, các thoả
thuận giữa các bên trong hợp đồng một cách đáng tin cậy mà không cần bên thứ ba đảm
bảo.
Smart contract được xây trên blockchain, và là một trong những sáng kiến của
Blockchain 2.0. Smart contract có thể được sử dụng để lưu trữ thơng tin, và là nền tảng
của các cryptocurrency mới và của NFT.
Về lập trình, smart contract cũng tương tự một lớp bình thường. Khác với lớp bình
thường, smart contract cũng có một số tính chất đặc biệt:
-

Hàm view, pure là các hàm không làm thay đổi dữ liệu của smart contract và vì
vậy, khơng tốn phí để gọi. Khác với hàm thường, sẽ phải trả phí để đồng bộ hố dữ
liệu trên mọi máy.

-

Modifier cho phép định nghĩa các điều kiện được người dùng định nghĩa

-

Smart contract chỉ được có 1 constructor.

-

Smart contract có quyền tạo ra smart contract khác.

-

Ngồi ra, có nhiều hàm được định nghĩa sẵn trong ngôn ngữ.


2.2.7.

Proof of stake

Proof of stake là một biện pháp để tin tưởng rằng một block mới trong blockchain được
tạo ra với hàm ý tốt, khơng có giao dịch nào sai hoặc giả mạo. Cách hoạt động là Miner
(người đào coin) sẽ khoá một lượng tiền để stake. Khi được hệ thống blockchain yêu cầu
một Miner nào đó tạo một block mới, Miner đó có nghĩa vụ tạo block đó. Nếu Miner
khơng tạo block, blockchain sẽ xoá lượng tiền mà Miner dùng để stake. Tương tự, nếu
Miner tạo block giả và bị các Verifier (người kiểm chứng) phát hiện, blockchain sẽ xoá
lượng tiền được stake đó. Khi Miner tạo block, Miner sẽ thu về phí giao dịch và phí
block. Vì vậy, Miner có động lực rõ ràng tạo block có càng nhiều phí giao dịch càng tốt.
Biện pháp này tốn ít tài nguyên xử lý hơn Proof of work cũ, và các blockchain đang

9


chuyển đổi sang sử dụng biện pháp này.

10


CHƯƠNG 3: TÀI LIỆU THIẾT KẾ GAME
3.1.

Giới thiệu
3.1.1. Bối cảnh

Game lấy bối cảnh ngồi khơng gian với các nhân vật là những chú chuột, là 1 người

chơi, bạn có thể mua 2 chú chuột giống và lai chúng ra nhiều chú chuột đẹp hơn, hiếm
hơn, từ đó tiếp tục lai và bán để kiếm Token, sau đó có thể đem đổi ở sàn giao dịch để lấy
tiền định danh.

3.1.2.

Tham chiếu

Crytokitties có lẽ khơng phải là một cái tên q xa lạ với những ai đang u thích và đầu
tư dịng game crypto, play to earn. Cryptokitties có thể nói là một trong những game đầu
tiên áp dụng công nghệ blockchain và sử dụng tiền điện tử như tiền tệ chính thức cho tựa
game này.

Với mơ hình play 2 earn mới mẻ và bắt kịp xu thế, crypto kitties đã khẳng định được vị
thế của mình khi doanh thu vừa ra mặt đạt hàng triệu đô, được các quỹ đầu tư lớn chú ý
tới và tranh giành,

11


3.1.3.

Áp dụng

Vậy để áp dụng vào game, chúng em đã quyết định giữ ngun mơ hình của cryptokittes,
tự tạo ra một game NFT của riêng mình. Thay vì làm về các chú mèo, nhóm em sẽ lấy
chủ đề là các chú chuột ngồi khơng gian, cách chơi cũng giống như cryptokitties, người
chơi có thể lai và bán các nhân vật đó trên chợ, tạo ra những giống chuột mới đẹp hơn và
cảm hứng cho người chơi.


3.1.4.

Play to earn

Người chơi có thể kiếm tiền bằng cách bán những con thú lai được từ con vốn ra và bán
lên thị trường, khi có người mua thì tiền sẽ được thanh tốn và chuyển về cho chủ của
con đó.

3.1.5.

Game loop

Học hỏi từ thành công vang dội của cryptokitties

3.2.

Nhân vật

Nhân vật của chúng ta là những chú chuột không gian, mỗi bộ phận mang 1 đặc điểm duy
truyền riêng được quy định bởi id 256bit.

12


Sau đó dãy id 256bit được cắt ra từng phần và mỗi phần đảm nhiệm làm id cho 1 bộ
phận, chiêu thức hoặc các thông số khác ảnh hưởng đến trị chơi

3.3.

Thành phần nhân vật


3.3.1.
3.3.2.
#

Một số nhân vật mẫu
Tóc
Tên

1

Trump

2

France

Hình ảnh

13


3

Candy

3.3.3.

Thân


#

Tên

1

Thanos

2

Eggy

Hình ảnh

14


3

Furr

4

Diet

5

NomNom

15



6

Dinosaur

3.3.4.

Tai

#

Tên

1

Mochi

2

Gang Yellow

Hình ảnh

16


3

Bao Bao


4

Gang Pink

5

Ball

3.3.5.
#

Mắt
Tên

Hình ảnh

17


1

Nobita

2

Arggg

3


Slippy

3.3.6.

Râu

#

Tên

1

Normal

2

Zicc

Hình ảnh

18


×