Blockchain - NFT Game - Base functionalities (Coding) - P2
Medium
Blockchain - NFT Game - Các tính năng cơ bản (Coding) - P2 Sau khi bài viết trước đó mình có chia sẽ về flows cơ bản của NFT Game thì rất vui có rất nhiều người đón nhận và những feedbacks thật sự hữu ích Từ đó mình lại improve thêm docs 1 cách dễ dàng tiếp cận hơn và bổ xung thêm khá nhiều kiến thức cũng như các vấn đề thực tế khi xây dựng 1 NFT Game Bạn nào muốn tìm hiểu hoặc review thì có thể xem ở bài viết này: https://www.linkedin.com/posts/thanh-vo-7185a9171_m%C3%B4-t%E1%BA%A3-c%C3%A1c-lu%E1%BB%93ng-c%E1%BB%A7a-1-game-nft-activity-6918819050974306304-cDyQ?utm_source=linkedin_share&utm_medium=member_desktop_web Do có rất nhiều bạn cũng muốn chia sẽ nhiều hơn về mặt kĩ thuật + coding. Nay bài viết này mình cũng chia sẽ vài tính năng thực tế Note: Để mọi người hiểu rõ flows hơn thì là cách mình thực hiện sẽ không phải on chain 100%. Và có những thông tin (như thuộc tính, giá, hình ảnh, ...) sẽ được lưu ở database. Mục đích là dễ custom. Trên blockchain chỉ tạo NFT, còn việc NFT đó là gì thì sẽ được control ở off chain 1. Buy NFTs/Boxes(items) from team (Mua NFTs/Boxes từ nhà phát hành) - Thông thường đối với những NFT Game mới ra mắt thường sẽ có 1 đợt như là hot sales cho những users có thể mua items sớm với giá hời - Thường sẽ có 2 cách + (1.1) Bên nhà phát hành mint sẵn: Việc này khá là tốn chi phí Gas, thực tế nếu ví dụ mint ra 1000 items mà chỉ bán được 10 items thì là 1 sự lãng phí khá lớn + (1.2) Mình sẽ tạo ở database thay vì trên blockchain (Pre-mint): Việc này được gọi là off chain. Các items chỉ tạo sẵn ở database. Khi user thực sự mua, lúc này mới mint - Và chi phí mint user sẽ là người chịu - Trong case này mình dùng (1.2) + Cách thực hiện: Đối với cách này thì phải dùng signature được tạo ra từ BE và gửi về FE. FE mới connect wallet để tạo transaction liên quan + Ở trên Blockchain thì sẽ verify lại 1 lần để đảm bảo signature hợp lệ => Sau đó sẽ charge user với mức phí và mint mới 1 item 2. Open starter box (Mở 1 box và box này mở ra được nhiều NFTs) - Ví dụ: khi bạn mua được Box xịn (starter box). Box này có cơ hội mở ra được 3 NFTs (3 vật phẩm trong game) - Thường sẽ có 2 cách + (2.1) Burn box và sau đó mint ra 3 NFTs + (2.2) Thay vì burn box thì mình sẽ chỉ cần mint 2 NFTs. Dưới database mình sẽ đổi type của box => NFT. Mục đích là tiết kiệm phí Gas 3. Crafting NFTs - Giải thích: Vài game sẽ có việc này. Tức là trong game user chơi hay ví dụ đánh quái được rớt ra 1 vật phẩm - Vật phẩm đó bản chất vẫn chỉ là ở trong database của game (off chain). Rồi 1 ngày user muốn đem vật phẩm đó ra bán ở Marketplace - Lúc này user sẽ thực hiện 1 lệnh gọi là withdraw - Nhưng đối với withdraw 1 NFT off chain thì việc này sẽ gọi là Crafting NFT - Cách thực hiện: Đối với chức năng withdraw thì luôn phải dùng signature để bảo đảm thông tin được verify tránh việc gian lận xảy ra + Và khi gửi lên blockchain trong payload sẽ kèm thông tin là withdraw có kèm mint hay không + Nếu cần mint thì Game Contract sẽ gọi sang NFT Contract để mint 1 NFT với vào address của user + Nếu không cần thì chỉ cần chuyền NFT từ Game Contract sang wallet của user Mình nghĩ đây là 3 chức năng khá phức tạp trong quá trình mình làm. Còn lại như Sell in Market, Deposit/Withdraw items/token cũng khá cơ bản nhưng nếu bạn cần thêm thông tin về cách thực hiện thì đừng ngần ngại comment để mình biết và có thể ra bài tiếp theo nhé (Nếu có khó khăn cần tham khảo cách coding cũng comment luôn nha) #blockchain #nftgame #sharing #coding
30 tháng 7 năm 2022 pm 4:32