
Gaming: Solana đang thay đổi sân chơi như thế nào
Mục lục
- Bài viết này nói về điều gì?
- Tại sao nên chọn gaming Web3?
- Dành cho game thủ
- Dành cho nhà phát triển
- Tại sao nên xây dựng trên Solana?
- Công cụ xây dựng game Solana
- Anchor
- Cài đặt
- Cách sử dụng và ví dụ
- Turbo
- Cài đặt
- Quy trình phát triển
- Hỗ trợ Solana
- Magicblock
- Solana Unity SDK
- Cài đặt, cấu hình và sử dụng
- Ví dụ triển khai Jupiter
- Chuyển một chương trình sang Unity
- SOAR
- Solana Unreal SDK
- Cài đặt
- Cách sử dụng
- Honeycomb
- Cài đặt
- Ví dụ sử dụng
- GameShift
- Tiếp nhận người dùng
- Tạo tài sản
- Kết luận
- Tài nguyên bổ sung / Nội dung nên đọc thêm
Bài viết này nói về điều gì?
Không phải khóa của bạn thì không phải crypto của bạn. Châm ngôn cốt lõi trong đặc tính của crypto này cũng phù hợp với trò chơi điện tử. Việc tích hợp blockchain vào lĩnh vực gaming không chỉ là một cải tiến. Đây là sự chuyển dịch mô hình, mang lại quyền sở hữu tài sản phi tập trung và quyền tự chủ. Solana đang đi đầu trong sự chuyển dịch này. Solana cung cấp nền tảng hợp đồng thông minh nhanh nhất để khai thác lợi ích của Web3. Nhờ tốc độ cao, phí thấp và dễ dự đoán cùng độ trễ thấp của Solana, các nhà phát triển có thể tạo ra những trải nghiệm gaming độc đáo không thể có ở nơi nào khác.
Bài viết này khám phá tiềm năng của blockchain trong gaming — xem xét các lập luận ủng hộ gaming Web3 và lý do nhà phát triển game nên cân nhắc xây dựng trên Solana. Bài viết cũng trình bày cách cài đặt, cấu hình và sử dụng các framework cũng như nền tảng phổ biến để tạo game tích hợp Solana.
Tại sao nên chọn gaming Web3?
Dành cho game thủ
Không có vật phẩm sưu tầm nào trong trò chơi điện tử có thể sánh với Counter-Strike. Tùy vào độ hiếm và float, một số skin hiếm nhất trong Counter Strike 2 (tức diện mạo vũ khí trong game) có thể trị giá hàng nghìn đô la. Neon, một nhà giao dịch nổi tiếng trong cộng đồng Counter-Strike, từng sở hữu kho skin trị giá hơn 100.000 USD. Ngày 13 tháng 10 năm 2023, anh đã bị cấm nhầm bởi Hệ thống chống gian lận của Valve (VAC) sau khi bật tính năng Anti-lag+ của AMD. Lệnh cấm VAC khiến kho vật phẩm của người chơi không thể giao dịch, đồng nghĩa kho vật phẩm trị giá 100.000 USD của Neon bị gắn vĩnh viễn với tài khoản của anh. Valve đã chính thức phản hồi vấn đề, và may mắn là Neon đã được gỡ lệnh cấm. Counter-Strike 2 vẫn gặp vấn đề với các lệnh cấm nhầm trong game.
Trên một nền tảng gaming truyền thống như Steam, luôn tồn tại rủi ro tiềm ẩn rằng bạn sẽ mất quyền truy cập vào game hoặc vật phẩm sưu tầm đã mua. Không có gì ngăn Valve tước tài sản của bạn. Điều này có vẻ khó xảy ra vì sẽ gây tổn hại nghiêm trọng đến danh tiếng và phá hủy toàn bộ cộng đồng người chơi. Tuy nhiên, họ có thể tăng tỷ lệ rơi của vật phẩm hiếm, từ đó làm giảm giá trị của chúng. Đây chính xác là điều đã xảy ra với Team Fortress 2. Bất kể giá trị ra sao, mọi game bạn mua và mọi vật phẩm trong game bạn thu thập đều do một thực thể tập trung quản lý. Game thủ phải phụ thuộc vào các công ty gaming. Thậm chí Ethereum được tạo ra vì bản cập nhật 3.10 của World of Warcraft. Vitalik Buterin đã nói rất nhiều về “nỗi kinh hoàng của sự tập trung hóa” sau khi Blizzard giảm sức mạnh phép hút sinh lực của nhân vật anh, phá hỏng công sức chơi game suốt nhiều năm. Game thủ đã chán cảnh phải phụ thuộc vào các thực thể tập trung. Gaming Web3 mang đến một lối thoát.
Gaming Web3 là một sự chuyển dịch mô hình. Mô hình này tận dụng công nghệ blockchain để phi tập trung hóa quyền sở hữu tài sản và quy trình ra quyết định. Nó bảo đảm tính minh bạch và bảo mật, giúp người chơi thực sự sở hữu tài sản trong game của mình trên nhiều nền tảng. Kết quả là hình thành các nền kinh tế ảo như thị trường skin của Counter-Strike, đồng thời có được lợi ích về tính minh bạch, bảo mật và khả năng kết hợp. Các nền kinh tế này tạo điều kiện cho những mô hình gaming mới lấy người dùng làm trung tâm, chẳng hạn như chơi để kiếm tiền (P2E), trong đó người chơi nhận được phần thưởng có giá trị trong thế giới thực từ quá trình chơi game.
Đây hoàn toàn không phải là một khái niệm ngách. Tiềm năng cách mạng hóa ngành của gaming Web3 đã được thể hiện qua nhiều game thành công và có sức ảnh hưởng. Ví dụ, Decentraland cung cấp một thế giới ảo nơi người chơi có thể mua, bán và phát triển bất động sản dưới dạng NFT. Tokens.com đã trả hơn 2 triệu USD cho bất động sản tại khu trung tâm của Decentraland. Điều này cho thấy tiềm năng của nền kinh tế ảo, trải nghiệm kỹ thuật số và không gian cá nhân trong hệ sinh thái Web3. Tương tự, các game chơi để kiếm tiền như Axie Infinity và ứng dụng phong cách sống như STEPN (một nền tảng vận động để kiếm tiền) đã thu hút sự chú ý trên toàn thế giới khi cho thấy người chơi có thể tạo thu nhập thông qua việc chơi game. Các game như Star Atlas và Aurory cũng đạt được thành công tương tự trên Solana. Đây không phải những ví dụ riêng lẻ. Chúng thuộc một xu hướng rộng lớn hơn, nơi gaming vượt ra ngoài phạm vi giải trí và hòa nhập với các hệ thống kinh tế, xã hội trong thế giới thực.
Dành cho nhà phát triển
Sự xuất hiện của gaming Web3 mở ra những cơ hội mới cho nhà phát triển game, vượt xa giới hạn của mô hình gaming hiện tại:
- Thị trường sâu hơn và bảo đảm về niềm tin: Gaming Web3 tạo ra các thị trường sâu và vững mạnh hơn. Nhà phát triển game có thể tiếp cận người dùng toàn cầu, nơi những người tham gia tương tác với mức độ tin cậy cao hơn. Mọi quyền sở hữu và giao dịch trong game đều có thể xác minh và không thể thay đổi. Điều này có được nhờ tính minh bạch và bảo mật vốn có của blockchain.
- Tận dụng các chương trình on-chain hiện có: Nhà phát triển có thể dễ dàng tích hợp các chương trình hiện có cùng tài sản liên quan vào game. Điều này rút ngắn thời gian đưa sản phẩm ra thị trường, đồng thời cho phép nhà phát triển game tập trung vào tính sáng tạo và đổi mới thông qua việc cộng tác trong hệ sinh thái
- Đổi mới về kinh tế và lối chơi: Nhà phát triển game có thể thiết kế các vòng lặp kinh tế và lối chơi phức tạp, tận dụng những ứng dụng hoặc trải nghiệm on-chain khác. Khả năng kết nối này cho phép tạo ra các thế giới game phong phú, linh hoạt, nơi hành động trong một game có thể gây hiệu ứng lan tỏa sang game khác
- Khuyến khích mod: Tính mở của blockchain mang đến cho nhà phát triển cơ hội xây dựng game theo cách thúc đẩy hoạt động mod. Sự cởi mở này có thể tạo ra đổi mới do cộng đồng dẫn dắt, nơi người chơi đóng góp vào quá trình phát triển của game. Đây là sự chuyển dịch từ môi trường mã nguồn đóng sang mô hình phát triển cộng tác, lấy cộng đồng làm trung tâm
Blockchain không chỉ cung cấp một nền tảng để xây dựng game. Chúng còn là cầu nối tiên phong cho những hình thức trải nghiệm kỹ thuật số tương tác mới. Blockchain mở đường cho một hệ sinh thái gaming linh hoạt và có tính tham gia cao hơn.
Tại sao nên xây dựng trên Solana?
Phí giao dịch thấp và dễ dự đoán đóng vai trò thiết yếu đối với gaming Web3. Game thủ không muốn trả mức phí cắt cổ để chơi game. Solana có phí giao dịch thấp, thường dưới 0,001 USD, với phí trung bình không dành cho biểu quyết dao động trong khoảng 0,000005 đến 0,00007 SOL. Nhờ thị trường phí cục bộ, các khoản phí này cũng dễ dự đoán. Chúng cô lập tình trạng tắc nghẽn, bảo đảm rằng chỉ những giao dịch cố truy cập các khu vực trạng thái có nhu cầu cao mới phải chịu phí tăng. Điều này khác với các mạng dựa trên gas như Ethereum, nơi phí giao dịch khó dự đoán và một giao dịch đơn giản có thể tốn hơn một trăm đô la trong thời điểm tắc nghẽn nghiêm trọng.
Kiến trúc của Solana mang lại khả năng kết hợp vượt trội. Với người chơi, điều này đồng nghĩa trải nghiệm người dùng được tinh giản chỉ với một ví duy nhất. Người chơi không cần lo lắng về sự phức tạp của việc bridge sang các nền tảng khác nhau. Mọi thứ đều có thể truy cập và kết nối với nhau trong hệ sinh thái Solana. Với nhà phát triển game, khả năng kết hợp mang đến vô số cơ hội. Nhà phát triển có thể dễ dàng tích hợp và tận dụng các chương trình on-chain hiện có (ví dụ: quan hệ đối tác giữa The Remnants và Magic Eden). Điều này bảo đảm thanh khoản của tài sản game không bị phân mảnh giữa các L2 hoặc shard khác. Solana thúc đẩy một hệ sinh thái có khả năng kết hợp, tạo điều kiện để các game, cộng đồng và ứng dụng khác trên mạng cộng tác liền mạch.
Tốc độ cao và độ trễ thấp là yếu tố thiết yếu đối với gaming. Giao dịch chậm có thể cản trở việc cập nhật trạng thái game, gây giật lag không thể chấp nhận và kéo dài thời gian chờ. Điều này sẽ tạo ra trải nghiệm người dùng tệ hơn gaming truyền thống. Solana được thiết kế để đạt thông lượng giao dịch cao. Mạng xử lý trung bình 400 giao dịch do người dùng tạo mỗi giây (TPS) và đạt hơn 2.000 TPS khi nhu cầu cao. Với những cải tiến sắp ra mắt như Firedancer, Solana có tiềm năng mở rộng để hỗ trợ mọi ứng dụng phổ thông truyền thống. Solana cũng đặt mục tiêu thời gian slot là 400 mili giây (tức thời gian để mỗi sổ cái tiếp nhận giao dịch và tạo block). Thời gian này có thể dao động từ 500–600 mili giây tùy theo nhu cầu mạng, giúp Solana trở thành blockchain nhanh nhất hiện có. Nhờ đó, Solana là cơ sở dữ liệu thời gian thực hoàn hảo cho các thể loại như game chiến thuật, game theo lượt, game xây dựng thành phố và game nhàn rỗi.
Forever Games là những game hoàn toàn on-chain. Đây là trường hợp tích hợp blockchain ở mức cao nhất, trong đó trạng thái và logic của game chạy hoàn toàn trên blockchain. Kết quả là một game liên tục hoạt động, kết nối với hệ thống giao thức, dApp và chương trình phong phú, đồng thời có rào cản gia nhập thấp. Các ví dụ trên Solana gồm:
- SolanaCiv: game chiến thuật 4X lấy cảm hứng từ Sid Meier’s Civilization
- Geoverse: game nhập vai quản lý tài nguyên với góc nhìn từ trên xuống
- The Heist: game nhàn rỗi dựa trên rủi ro với mức cược cao, chỉ dành cho người nắm giữ NFT của game
- Sol-Chess: công cụ cờ vua được viết bằng Anchor
Với một game thủ, thời gian phản hồi 400 mili giây nghe thật tệ đối với game đua xe hoặc bắn súng thời gian thực. Tuy nhiên, không phải mọi thứ đều cần được đưa trực tiếp lên on-chain. Chẳng hạn, các tích hợp nhỏ hơn như dùng NFT để đại diện cho vật phẩm trong game, dùng token cho giao dịch mua trong ứng dụng và dùng ví của người chơi để xác thực đều có thể được triển khai nhanh chóng. Hiện có rất nhiều công cụ để bạn bắt đầu tích hợp với Solana ngay hôm nay.
Công cụ xây dựng game Solana
Bài viết này xem xét một số framework và nền tảng phổ biến để xây dựng game tích hợp Solana. Để giữ bài viết ngắn gọn, chúng tôi không trình bày một số công cụ nhưng đã liên kết chúng trong phần tài nguyên bổ sung bên dưới. Trong đó có các công cụ như Godot Solana SDK hoặc Mẫu khởi đầu Phaser 3 TypeScript. Trong bài viết này, chúng ta sẽ tìm hiểu cách cài đặt, cấu hình và sử dụng các công cụ sau:
Anchor
Các framework như Anchor giúp việc phát triển game on-chain trở nên dễ dàng hơn đáng kể. Anchor là một framework mạnh mẽ dùng để nhanh chóng xây dựng các chương trình bảo mật. Nó đơn giản hóa quy trình phát triển bằng cách giảm mã soạn sẵn, xử lý nhiều bước kiểm tra bảo mật, tự động tạo thư viện client và cung cấp một môi trường kiểm thử toàn diện. Cách dễ nhất để phát triển một game hoàn toàn on-chain là lưu trữ logic và trạng thái của game trong chương trình Anchor. Anchor hỗ trợ bằng cách trừu tượng hóa sự phức tạp trong mô hình lập trình cấp thấp của Solana. Nhờ đó, nhà phát triển có thể tập trung vào việc phát triển game thay vì vật lộn với SVM.
Cài đặt
Bạn cần Rust để sử dụng Anchor. Có thể cài đặt Rust tại đây hoặc bằng lệnh sau:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shAnchor cũng khuyến nghị người mới làm quen với Rust đọc chín chương đầu của sách Rust. Các chương này trình bày những kiến thức cơ bản vì phần lớn trường hợp không yêu cầu kiến thức Rust nâng cao để viết chương trình Anchor.
Anchor cũng yêu cầu Bộ công cụ Solana:
# macOS and Linux
sh -c "$(curl -sSfL https://release.solana.com/v1.17.7/install)"
# Windows
cmd /c "curl https://release.solana.com/v1.17.7/solana-install-init-x86_64-pc-windows-msvc.exe --output C:\solana-install-tmp\solana-install-init.exe --create-dirs"Bạn có thể xác nhận phiên bản solana mong muốn đã được cài đặt bằng cách chạy lệnh solana --version.
Bạn cũng cần Yarn, có thể cài đặt bằng trình quản lý gói npm: npm install --global yarn.
Bạn nên cài đặt Anchor bằng trình quản lý phiên bản Anchor (avm). Có thể cài đặt công cụ này bằng cargo: cargo install --git <https://github.com/coral-xyz/anchor> avm --locked --force. Sau đó, chúng ta có thể cài đặt và sử dụng phiên bản mới nhất:
avm install latest
avm use latest
# Verify the installation
avm --versionCách sử dụng và ví dụ
SolanaCiv được phát triển hoàn toàn on-chain bằng Anchor. Hoạt động quản lý tài nguyên, tuyển mộ đơn vị, nghiên cứu công nghệ mới, chiến đấu với quân man rợ và giao dịch đều diễn ra on-chain. Dự án còn có mã nguồn mở! Điều này có nghĩa bạn có thể dùng nó làm tài liệu tham khảo để phân tích logic và trạng thái của game, qua đó tìm hiểu cách mọi thứ được lưu trữ on-chain.
Clockwork là công cụ tự động hóa mã nguồn mở dành cho Solana. Công cụ này đặc biệt hữu ích khi phát triển game vì hỗ trợ lên lịch giao dịch và xây dựng chương trình tự động dựa trên sự kiện. Có thể cài đặt bằng lệnh sau: cargo install -f --locked clockwork-cli và tích hợp tốt với Anchor. Bạn có thể tìm thấy danh sách ví dụ về cách sử dụng Clockwork tại đây.
Solana Playground là môi trường phát triển mã dựa trên trình duyệt để kiểm thử và triển khai chương trình. Môi trường phát triển tích hợp (IDE) của nền tảng là lựa chọn lý tưởng cho những nhà phát triển mới làm quen với Anchor và muốn học cách phát triển game Solana. Nền tảng có một số hướng dẫn Anchor liên quan đến gaming on-chain. Ví dụ, Tiny Adventure là hướng dẫn làm game on-chain thân thiện với người mới bắt đầu. Hướng dẫn này chỉ cho bạn cách dùng Anchor để di chuyển nhân vật game sang trái và phải, cũng như cách dùng Program Derived Address (PDA) để lưu dữ liệu game. Hướng dẫn cũng trình bày cách thiết lập giao diện người dùng trong Next.js bằng bộ điều hợp ví Solana. Bạn có thể tìm thấy mã hoàn chỉnh tại đây.
Để nhanh chóng tạo một chương trình Anchor có client TypeScript, hãy dùng lệnh npx create-solana-game, sau đó nhập tên game của bạn. Lệnh này tinh giản quy trình phát triển Anchor và TypeScript, đồng thời tạo cấu trúc cho một dự án hoàn toàn mới. Công cụ do Jonas Hahn và Beeman phát triển, có trong kho lưu trữ solana-developers trên GitHub.
Turbo
Turbo là công cụ game 2D thế hệ mới kiêm marketplace, được thiết kế để hỗ trợ các nhà phát triển độc lập. Công cụ này có một số tính năng cải tiến:
- Game tự động tải lại nóng mỗi khi mã, shader hoặc sprite được sửa đổi
- Game chạy không giao diện để bạn có thể xác minh trạng thái game trên máy chủ từ xa
- Công cụ chạy trên WebAssembly và WebGPU nên có thể hoạt động trên mọi nền tảng
- Các API tích hợp sẵn của công cụ thân thiện với người mới bắt đầu
Jozanza đang xây dựng Turbo bằng Rust. Do được xây dựng bằng Rust, nhà phát triển có thể dễ dàng tái sử dụng các struct Anchor trong chương trình của mình mà không cần SDK hoặc plugin. Dự án hiện vẫn ở giai đoạn phát triển ban đầu. Tuy nhiên, trang web của dự án có một số ví dụ có thể chạy trong trình duyệt, cho thấy sức mạnh và trải nghiệm phát triển trực quan của Turbo. Bạn cũng có thể xem hướng dẫn “Hello, world!” tại đây.
Cài đặt
Để bắt đầu sử dụng Turbo, trước tiên chúng ta phải cài đặt mọi phần phụ thuộc Rust liên quan:
# Download and run the rust installer
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Add wasm targets
rustup target add wasm32-unknown-unknown wasm32-wasi
# Install cargo-watch
cargo install cargo-watchTiếp theo, chúng ta cần tải xuống và chạy trình cài đặt cho giao diện dòng lệnh Turbo (CLI):
sh -c "$(curl -sSfL https://turbo.computer/install.sh)"Sau khi cài đặt xong, chúng ta có thể dùng lệnh turbo-cli -h để bảo đảm Turbo CLI đã được cài đặt đúng cách. Với lệnh này, bạn sẽ thấy thông tin sử dụng Turbo:
Run Turbo games natively on desktop
Usage: turbo-cli
Commands:
init Initializes a new Turbo project in Rust
run Runs a Rust Turbo project
help Print this message or the help of the given subcommand(s)
Options:
-v, --version Print version
-h, --help Print help
-V, --version Print versionQuy trình phát triển
Turbo có một số macro giúp đơn giản hóa quy trình phát triển. Nói thêm một chút, macro Rust là công cụ siêu lập trình mạnh mẽ để tạo mã (tức mã viết ra mã khác). Chúng giúp giảm mã soạn sẵn và cho phép sử dụng các mẫu mã có tính biểu đạt cao hơn.
Macro println là một cách triển khai tùy chỉnh của macro println tiêu chuẩn. Macro này định dạng một chuỗi rồi chuyển chuỗi đó đến hệ thống ghi log của công cụ game:
macro_rules! println {
($fmt:expr $(, $($arg:tt)*)?) => {
$crate::sys::log(&format!($fmt, $($($arg)*)?))
};
}Macro cfg được dùng cho mục đích cấu hình. Nó công khai hàm config, hàm này trả về một số nguyên 64 bit kết hợp con trỏ tới chuỗi cấu hình và độ dài của chuỗi. Điều này hữu ích khi chuyển dữ liệu cấu hình từ Rust sang một môi trường khác như WebAssembly:
macro_rules! cfg {
($toml:expr) => {
#[no_mangle]
pub unsafe extern "C" fn config() -> u64 {
let ptr = $toml.as_ptr() as u64;
let len = $toml.len() as u64;
(len << 32 | ptr)
}
};
}Macro init hữu ích cho việc quản lý trạng thái game. Nó định nghĩa một struct và cung cấp các phương thức để tải cũng như lưu trạng thái. Macro triển khai các phương thức load và save cho struct, sử dụng Borsh để duy trì trạng thái:
macro_rules! init {
(struct $StructName:ident { $($fields:tt)* } = $default:expr) => {
...
};
}Macro go được dùng để định nghĩa logic chính của game. Nó bọc một khối mã trong hàm có thể được gọi từ môi trường bên ngoài như WebAssembly. Macro này cũng định nghĩa một điểm đầu vào cho logic game và một hàm run_snapshot để chạy game bằng ảnh chụp nhanh trạng thái:
macro_rules! go {
($($body:tt)*) => {
use $crate::prelude::*;
#[no_mangle]
#[allow(overflowing_literals, non_upper_case_globals)]
pub unsafe extern "C" fn run() {
use std::f32::consts::PI;
$($body)*
}
pub fn run_snapshot(snapshot_data: &[u8]) -> Vec {
$crate::run_snapshot(snapshot_data, || unsafe { run() })
}
};
}Turbo cũng sử dụng macro strike từ crate struckstruck để nâng cao khả năng định nghĩa struct của Rust. Thông thường, các struct lồng nhau phải được định nghĩa riêng. Macro strike cho phép định nghĩa một struct với các struct lồng nhau ngay trong cùng một chỗ. Tính năng này đơn giản hóa mã, giúp các cấu trúc dữ liệu phức tạp dễ đọc và súc tích hơn. Nó cũng tự động áp dụng tuần tự hóa Borsch cho toàn bộ cấu trúc. Đồng thời, macro derive của struct cấp cao nhất được truyền đến mọi struct lồng nhau.
Vì vậy, toàn bộ quy trình làm việc của nhà phát triển cho một dự án Turbo như sau:
// Defne the game configuration using the turbo::cfg! macro
turbo::cfg! {r#"
name = "Grand Theft Auto VI"
version = "1.0.0"
author = "Ichigo"
description = "Vice City but pixelated"
[settings]
resolution = [256, 144]
tile_size = [32, 32]
"#}
// Define the game state initialization using the turbo::init! macro
turbo::init! {
...
}
// Implement the game loop using the turbo::go! macro
turbo::go! {
// Load the game state
let mut state = GameState::load();
...
}Hỗ trợ Solana
Turbo khác với các công cụ phát triển game dựa trên Rust khác vì sẽ hỗ trợ đầy đủ Solana. Ví dụ, công cụ có thể lấy dữ liệu tài khoản từ RPC và giải mã dữ liệu đó chỉ bằng hai dòng mã. Công cụ cũng tự động đăng ký nhận cập nhật tài khoản qua WebSockets, nhờ đó dữ liệu của bạn luôn được cập nhật:
// Get the Solana account data
let response = solana::get_account("pubkey");
// Decode the account data
let decoded = response.decode_anchor::();
// And now we can work with on-chain data!
if let Ok(data) = decoded {
...
}Magicblock
Magicblock là một framework mã nguồn mở linh hoạt để xây dựng game on-chain. Framework này cho phép bất kỳ ai tạo và chơi game trên Solana hoặc SVM. Magicblock sở hữu bộ công cụ phong phú, cho phép nhà phát triển xây dựng game hoàn toàn on-chain hoặc tích hợp Solana vào game hiện có. Framework gồm các tính năng sau:
- Solana Unity SDK
- Trình tạo IDL → C#
- WebSockets gốc
- SOAR (Thành tích và bảng xếp hạng on-chain trên Solana)
- Tích hợp Solana Mobile Stack
Với tất cả các tính năng này, Magicblock hướng tới việc trừu tượng hóa sự phức tạp để nhà phát triển có thể tập trung tạo ra trải nghiệm người dùng tốt nhất có thể. Framework được cấp phép MIT này do Magicblock Labs duy trì (tức Andrea và Peak).
Solana Unity SDK
Solana Unity SDK là một gói mã nguồn mở chứa các công cụ giúp nhà phát triển game tích hợp NFT, token và chương trình on-chain dựa trên Solana vào game Unity. SDK tận dụng Solana Unity Core, một framework tương thích với .NET Standard 2.0, tích hợp Solana với hệ sinh thái .NET. Framework này có nhiều tính năng như hỗ trợ đầy đủ JSON RPC API, dịch ngược lệnh, hỗ trợ Solana Mobile Stack và các thao tác DEX gốc.
Bạn có thể tìm thấy danh sách game mẫu được xây dựng trong Unity bằng Solana Unity SDK tại đây.
Cài đặt, cấu hình và sử dụng
Để sáng tạo bằng Unity, hãy tải Unity Hub tại đây. Unity Hub quản lý nhiều bản cài đặt Unity Editor, cho phép bạn làm việc và tạo dự án mới trên nhiều phiên bản khác nhau. Trước khi tiếp tục, hãy bảo đảm hệ thống đáp ứng các yêu cầu sau:
- Hệ điều hành: Windows 7 SP1+, 8, 10, chỉ phiên bản 64 bit; Mac OS X 10.13+; Ubuntu 16.04, 18.04 và CentOS 7
- GPU: Card đồ họa hỗ trợ DX10 (shader model 4.0)
Sau khi cài đặt Unity, chúng ta có thể tạo và mở một dự án mới.
Khi dự án mới đang mở, hãy mở cửa sổ Package Manager. Bạn có thể truy cập cửa sổ này từ menu trên cùng của Unity bằng cách chọn Window > Package Manager.
Khi cửa sổ mở ra, hãy nhấp vào nút thêm (+) trên thanh trạng thái. Các tùy chọn thêm gói sẽ xuất hiện. Sau đó, chọn “Add package from git URL” trong menu.
Nhập URL Git https://github.com/magicblock-labs/Solana.Unity-SDK.git vào hộp văn bản rồi nhấp vào “Add”. Bạn có thể cài đặt một phiên bản gói cụ thể bằng cách nhập https://github.com/magicblock-labs/Solana.Unity-SDK.git#X.Y.Z và thay X.Y.Z bằng phiên bản mong muốn. Bạn có thể tìm thấy tất cả bản phát hành hiện có tại đây.
Sau khi cài đặt Solana Unity SDK, hãy nhập Samples bằng bảng inspector của Package Manager. Nội dung này gồm một cảnh mẫu mà bạn có thể tham khảo hoặc chỉnh sửa để tích hợp vào dự án Unity. Cảnh này nằm trong thư mục Scenes và chứa ví dụ về xác thực ví cũng như hoán đổi token qua Orca. Thư mục Scripts chứa nhiều ví dụ script, bao gồm script dành cho hoạt động hoán đổi Orca. Có thể gắn script Web3.cs vào bất kỳ đối tượng nào trong dự án. Script này là điểm đầu vào chính của Solana Unity SDK. Đây là một singleton quản lý kết nối với Solana, hỗ trợ đăng nhập bằng ví, ký giao dịch và nhiều thao tác khác. Thư mục Prefabs chứa các mẫu lưu cấu hình Object. Bạn có thể dùng chúng để tạo các phiên bản của cùng một tài sản và tái sử dụng xuyên suốt dự án.
Kênh YouTube của Magicblock có các hướng dẫn về kết nối ví Solana với Unity, lấy khóa công khai và số dư của ví, thực hiện kiểm thử với ví trong game và xây dựng công cụ cờ vua on-chain.
Kho lưu trữ GitHub của Solana Unity SDK cũng chứa một số script mẫu, từ giải mã lệnh đến xây dựng giao dịch.
Ví dụ triển khai Jupiter
Ngoài Orca, Jupiter còn được hỗ trợ nguyên bản trong Solana Unity SDK. SDK cung cấp các phương thức tiện ích để hỗ trợ báo giá hoán đổi cũng như xây dựng và gửi giao dịch hoán đổi.
Để thực hiện hoán đổi, trước tiên chúng ta phải tạo một phiên bản IDexAggregator và cung cấp một tài khoản mặc định. Phiên bản này sẽ được dùng để tương tác với Jupiter:
IDexAggregator dex = new JupiterDexAg(Web3.Account);Sau đó, chúng ta định nghĩa các token muốn hoán đổi. Trong ví dụ này, chúng ta sẽ đổi SOL lấy BONK:
TokenData tokenA = await dex.GetTokenBySymbol("SOL");
TokenData tokenB = await dex.GetTokenBySymbol("BONK");Tiếp theo, chúng ta lấy báo giá cho giao dịch hoán đổi. Đây là hình thức của báo giá khi hoán đổi 1 SOL:
SwapQuoteAg swapQuote = await dex.GetSwapQuote(
tokenA.MintAddress,
tokenB.MintAddress,
DecimalUtil.ToUlong(1, tokenA.Decimals)
);
var quote = DecimalUtil.FromBigInteger(swapQuote.OutputAmount, tokenB.Decimals);
// Logs the expected amount of BONK
Debug.Log(quote);Chúng ta cũng có thể hiển thị đường đi của giao dịch hoán đổi để tăng tính minh bạch:
Debug.Log(string.Join(" -> ", swapQuote.RoutePlan.Select(p => p.SwapInfo.Label)));Giờ đây, chúng ta có thể tạo giao dịch hoán đổi, ký bằng ví và gửi đi:
Transaction tx = await dex.Swap(swapQuote);
await Web3.Wallet.SignAndSendTransaction(tx);Chuyển một chương trình sang Unity
Nhà phát triển có thể dùng gói Solana Unity Anchor để tích hợp chương trình Anchor vào Unity. Gói này chứa trình chuyển đổi IDL sang C#. Trình chuyển đổi giúp tinh giản việc chuyển đổi IDL của Anchor (tức dạng biểu diễn JSON của chương trình Solana) thành mã C# cho dự án Unity. Quy trình tích hợp gồm hai bước chính:
- Cài đặt: lệnh
dotnet tool install -g Solana.Unity.Anchor.Toolđược dùng để cài đặt Solana Unity Anchor Tool. Cờ-gbảo đảm gói được cài đặt trên toàn hệ thống, loại bỏ nhu cầu cài đặt công cụ này cho mỗi dự án mới - Tạo mã: lệnh
dotnet anchorgen -i idl/file.json -o src/ProgramCode.csđược dùng để tạo bản biểu diễn C# của chương trình. Lệnh này chuyển đổi IDL đã chỉ định thành tệp C# sẵn sàng sử dụng trong Unity.
Nhà phát triển có thể chuyển chương trình Solana sang môi trường Unity một cách hiệu quả bằng cách làm theo các bước này. Bạn có thể xem video hướng dẫn từng bước về quy trình này do Jonas Hahn thực hiện tại đây.
SOAR
Thành tích và Xếp hạng On-Chain trên Solana (SOAR) là một chương trình được thiết kế để cung cấp giải pháp liền mạch cho việc quản lý bảng xếp hạng, thành tích, hồ sơ người chơi và tự động phân phối phần thưởng trên Solana. Chương trình hỗ trợ nhiều tính năng, bao gồm:
- Tạo bảng xếp hạng
- Quản lý thành tích
- Hỗ trợ client TypeScript
- Tương tác với chương trình SOAR thông qua các lệnh gọi Cross-Program Invocation (CPI)
Khả năng hỗ trợ Solana Unity SDK hiện đang được phát triển và dự kiến sẽ sớm ra mắt.
Có thể dễ dàng tích hợp SOAR vào dự án chỉ với vài dòng mã. Ví dụ:
import { SoarProgram, GameType, Genre } from "@magicblock-labs/soar-sdk";
const provider = anchor.AnchorProvider.env();
anchor.setProvider(provider);
const client = SoarProgram.get(provider);
let game = Keypair.generate();
let title = "Game1";
let description = "Description";
let genre = Genre.Action;
let gameType = GameType.Web;
let nftMeta = Keypair.generate().publicKey;
let _auths = auths.map((keypair) => keypair.publicKey);
// Retrieve the bundled transaction.
let { newGame, transaction } = await client.initializeNewGame(game.publicKey, title, description, genre, gameType, nftMeta, _auths);
// Send and confirm the transaction with the game keypair as signer.
await client.sendAndConfirmTransaction(transaction, [game]);Đoạn mã trên được lấy trực tiếp từ tài liệu Magicblocks về SOAR. Đoạn mã bắt đầu bằng cách nhập các mô-đun cần thiết từ @magicblock-labs/soar-sdk, bao gồm SoarProgram, GameType và Genre.
Lớp SoarProgram cho phép client truy cập mọi lệnh trong chương trình SOAR on-chain. Lớp này cũng có chức năng suy ra PDA và truy xuất nhiều tài khoản.
Sau đó, đoạn mã khởi tạo một nhà cung cấp Anchor (anchor.AnchorProvider.env()) và đặt làm nhà cung cấp mặc định cho các hoạt động tiếp theo (anchor.setProvider(provider)). Tiếp đến, một client SoarProgram được tạo bằng nhà cung cấp đã thiết lập trước đó.
Đoạn mã bắt đầu khởi tạo một trò chơi mới. Một cặp khóa mới cho trò chơi được tạo, đồng thời các thông tin thiết yếu như tên, mô tả, thể loại (ví dụ: Genre.Action) và loại trò chơi (ví dụ: GameType.Web) được xác định. Một cặp khóa metadata NFT cũng được tạo cho trò chơi. Sau đó, danh sách quyền hạn (_auths) được chuẩn bị để xác định quyền kiểm soát truy cập trong trò chơi.
Phương thức initializeNewGame được gọi trên client SOAR, với khóa công khai, tên, mô tả, thể loại, loại trò chơi, metadata NFT và các quyền hạn của trò chơi được truyền vào. Phương thức này trả về một đối tượng newGame và chuẩn bị transaction tạo trò chơi mới để gửi đi. Transaction được gửi và xác nhận bằng phương thức sendAndConfirmTransaction có trên client SOAR. Cặp khóa của trò chơi được dùng làm bên ký transaction, qua đó bảo đảm transaction được nhà sáng tạo trò chơi cấp quyền.
Việc khởi tạo client và thiết lập một trò chơi on-chain mới bằng SOAR rất đơn giản. Giờ đây, chúng ta có thể sử dụng GameClient để đăng ký trò chơi, tạo bảng xếp hạng và truy cập trạng thái trò chơi. Khả năng là vô tận.
Địa chỉ chương trình của SOAR là SoarNNzwQHMwcfdkdLc6kvbkoMSxcHy89gTHrjhJYkk và bạn có thể xem tài liệu TypeScript của chương trình tại đây.
Solana Unreal SDK
Solana Unreal SDK là một plugin và bộ công cụ cho phép nhà phát triển xây dựng trò chơi blockchain trên Solana bằng Unreal Engine 5. Bộ công cụ chứa các mẫu khởi đầu cho trò chơi trực tuyến nhiều người chơi (MMO) tích hợp Solana, bao gồm cả mẫu máy chủ trò chơi. Bộ công cụ cũng có các tính năng như:
- Đầy đủ chức năng của Solnet trong C++ và Blueprint Visual Scripting
- Hệ thống ví trong trò chơi với khả năng bảo vệ và mã hóa dữ liệu
- Đúc NFT Metaplex
- Xử lý thanh toán
Plugin này tận dụng Solnet và sức mạnh của môi trường chạy .NET để nhà phát triển có thể giao tiếp trực tiếp với Solana mà không cần xây dựng toàn bộ thư viện C++ từ đầu. LinkStream có thể gửi thông điệp transaction từ trò chơi đến các ví như Tranquility thông qua máy chủ TCP và giao thức client. Ban đầu, đội ngũ Star Atlas xây dựng SDK này, còn Bifrost gần đây đã fork và cập nhật mã. Trong phần tiếp theo về cài đặt, chúng ta sẽ tham chiếu bản dựng của đội ngũ Star Atlas. Quy trình đối với Bifrost cũng tương tự.
Cài đặt
Trước tiên, chúng ta phải cài đặt Epic Games Launcher để sử dụng Unreal Engine. Tiếp theo, cần tạo tài khoản Epic Games và đăng nhập. Sau khi đăng nhập, hãy chuyển đến thẻ Unreal Engine và nhấp vào nút Install để tải phiên bản mới nhất. Bạn có thể xem hướng dẫn chi tiết về quy trình này tại đây. Lưu ý các yêu cầu hệ thống được khuyến nghị cho Unreal Engine 5:
- Windows 10 64-bit, Intel hoặc AMD bốn nhân, 2,5 GHz trở lên, RAM 8 GB
- macOS Big Sur, Intel bốn nhân, 2,5 GHz trở lên, RAM 8 GB
- Linux Ubuntu 18.04, Intel hoặc AMD bốn nhân, 2,5 GHz trở lên, RAM 32 GB
Mở Epic Games Launcher và khởi chạy phiên bản Unreal đã cài đặt:
Tạo một dự án mới và chọn C++ làm mẫu dự án:
Bây giờ, hãy đóng trình chỉnh sửa và mở thư mục Project Location đã thiết lập khi tạo dự án. Sau đó, tạo một thư mục Plugins mới trong thư mục gốc:
Sao chép plugin vào thư mục Plugins. Nhấp chuột phải vào tệp .uproject trong thư mục gốc và chọn Generate Visual Studio project files. Nhấp đúp vào tệp .sln rồi mở dự án bằng IDE C++ của bạn. Sau đó, mở tệp tại Source/<ProjectName>/<ProjectName>.build.cs. Thêm tên plugin vào PublicDependencyModuleNames. Trong trường hợp này, chúng ta sẽ nhập Foundation:
Thêm tên plugin vào tệp .uproject:
Đóng IDE và tạo lại các tệp dự án. Sau đó, mở solution của dự án (tức là tệp .sln) để hoàn tất quá trình cài đặt.
Cách sử dụng
Bạn có thể tìm thấy toàn bộ nội dung liên quan đến plugin trong Plugins > Solana SDK ở trình duyệt nội dung. Blueprint LinkStream nằm trong Plugins > Solana SDK Content > Blueprints. Blueprint này cho phép nhà phát triển giao tiếp với Solnet. Có thể dùng bản đồ sandbox trong thư mục Maps làm tài liệu tham khảo để thiết lập Solana SDK đúng cách. Nội dung chi tiết về cách sử dụng chung, cách tùy chỉnh trình bao bọc LinkStream hoặc cách giao tiếp với REST API để xác thực máy chủ có trên GitHub của Solana Unreal SDK. Bạn có thể xem hướng dẫn chi tiết hơn về cách tương tác với Solana bằng Unreal SDK tại đây.
Việc Unreal tập trung vào tối ưu hóa và các hiệu ứng hậu kỳ 3D giúp tạo ra những trò chơi chân thực như ảnh so với các trình chỉnh sửa khác như Unity. Một ví dụ phổ biến về độ chân thực cao này là Star Atlas. Star Atlas là một trò chơi chiến thuật nhập vai đưa người chơi khám phá không gian sâu thẳm. Trò chơi tràn ngập cơ hội, những cuộc chinh phục lãnh thổ và âm mưu chính trị. Các trò chơi khác như Yaku Corp tận dụng khả năng tạo hình chân thực của Unreal Engine để xây dựng những MMORPG nhập vai sống động.
Honeycomb
Honeycomb là một giao thức do Tumi Labs phát triển nhằm đơn giản hóa quy trình phát triển trò chơi Web3. Honeycomb là một bộ chương trình on-chain và công cụ nén trạng thái giúp xử lý các chức năng quan trọng trong vòng đời trò chơi. Tất cả chương trình đều được thiết kế theo hướng tương tác lẫn nhau và mô-đun hóa. Các chương trình này cũng có thể được tùy chỉnh theo nhu cầu riêng của nhà phát triển. Bộ công cụ phát triển hạ tầng của Honeycomb tập trung vào các chức năng cốt lõi sau:
- Phần thưởng cho người chơi không hoạt động (staking)
- Nhiệm vụ
- Hộp vật phẩm hoặc phần thưởng RNG (rút thăm)
- Bang hội / Nhóm
- Token trò chơi (lưu ký và không lưu ký)
- Tài sản kỹ thuật số có thể thay đổi
- Tạo và quản lý tài sản kỹ thuật số
- Hồ sơ người chơi
- Cơ cấu phí
Các công cụ của Honeycomb được chia thành những danh mục sau:
- Hive Control: chương trình chính quản lý toàn bộ quyền và hoạt động ủy quyền của các cơ quan quản lý chương trình trên khắp Honeycomb
- Asset Hub: bộ công cụ để tạo và quản lý tài sản trong trò chơi
- Nectar Utility: bộ công cụ tiện ích được thiết kế để NFT có thể cung cấp các tính năng trò chơi độc đáo như phần thưởng token khi không hoạt động (staking), nhiệm vụ và hộp vật phẩm
- Buzz Kit: bộ công cụ hỗ trợ các bang hội trong trò chơi. Tumi Labs cũng dự định phát triển các chương trình ghép trận và quản lý trạng thái trò chơi trong bộ công cụ này
Cài đặt
Nhà phát triển có thể tương tác với Honeycomb bằng JavaScript SDK và @solana/web3.js:
# Using npm
npm install @solana/web3.js @honeycomb-protocol/hive-control
# Using yarn
yarn add @solana/web3.js @honeycomb-protocol/hive-controlVí dụ sử dụng
Sau khi cài đặt, nhà phát triển có thể khởi tạo một đối tượng Honeycomb bằng một đối tượng Connection của Solana:
import * as web3 from "@solana/web3.js";
import { Honeycomb } from "@honeycomb-protocol/hive-control";
const honeycomb = new Honeycomb(
new web3.Connection("https://api.mainnet-beta.solana.com")
);Từ đây, khả năng là vô tận. Ví dụ, nhà phát triển có thể tương tác với IdentityClient để quản lý danh tính và hồ sơ người dùng. guestIdentity là danh tính mặc định được dùng làm phần giữ chỗ cho đến khi một cặp khóa hoặc ví được đăng ký với phiên bản Honeycomb. Có thể liên kết một cặp khóa làm danh tính bằng lệnh sau: honeycomb.use(keypairIdentity(<keypair>);. Tương tự, có thể đăng ký một đối tượng ví (Solana Wallet Adapter) làm danh tính bằng hàm walletIdentity có trên phiên bản Honeycomb. Danh tính có thể được dùng cho mục đích xác thực, chẳng hạn như ký thông điệp hoặc transaction.
Một ví dụ thú vị khác là HttpClient. Mô-đun này hỗ trợ các yêu cầu HTTP bằng Axios hoặc Fetch, qua đó cung cấp các chức năng liên quan đến HTTP. Mô-đun cho phép tùy chỉnh header của yêu cầu và cung cấp các phương thức để thực hiện yêu cầu GET, POST, PUT và DELETE:
// Make a GET request
honeycomb
.http()
.get("/users", { authToken: "myAuthToken" })
.then((response) => {
console.log("GET Response:", response);
})
.catch((error) => {
console.error("GET Error:", error);
});
// Make a POST request
const userData = { name: "John Doe", email: "john@example.com" };
honeycomb
.http()
.post("/users", { data: userData })
.then((response) => {
console.log("POST Response:", response);
})
.catch((error) => {
console.error("POST Error:", error);
});Điều này đặc biệt hữu ích vì nhà phát triển có thể truy cập API của bên thứ ba, chẳng hạn như API Digital Asset Standard (DAS), để truy vấn các tài sản kỹ thuật số on-chain khác nằm ngoài trò chơi.
Các đoạn mã này được điều chỉnh từ tài liệu Honeycomb Protocol. Bạn có thể xem tài liệu SDK tại đây.
GameShift
GameShift là nền tảng do Solana Labs ra mắt, giúp nhà phát triển trò chơi dễ dàng tích hợp các thành phần Web3 thông qua một API duy nhất. Nền tảng này hướng đến việc hỗ trợ tạo ra trải nghiệm Web2 thân thiện với người dùng, đồng thời khai thác lợi ích của việc chơi game trên Solana. GameShift mang lại trải nghiệm người dùng liền mạch trong hệ sinh thái Web3 bằng cách xử lý toàn bộ phí gas, hoạt động tương tác với blockchain và ví. GameShift API có bốn mảng chính:
- Tạo tài sản: đúc tài sản trò chơi với metadata có cấu trúc
- Giao dịch tài sản: mua và bán tài sản bằng USD trên các marketplace mang thương hiệu riêng, dự kiến sớm ra mắt
- Thanh toán: thanh toán bằng thẻ tín dụng và tích hợp xử lý thanh toán được hỗ trợ tại hơn 170 quốc gia, với khả năng bảo vệ hoàn tiền 100%
- Tự lưu ký tài sản trong ví: cho phép người chơi nắm giữ và giao dịch tài sản trong ví không lưu ký (tức là không cần mật khẩu hay cụm từ hạt giống!)
Nhà phát triển có thể bắt đầu với GameShift bằng cách tạo tài khoản trên bảng điều khiển GameShift, thiết lập tổ chức, thêm nhà phát triển vào tổ chức, thêm trò chơi và quản lý khóa API dành cho nhà phát triển. Toàn bộ quy trình được trình bày tại đây.
Các giao dịch tiền pháp định yêu cầu tài khoản người bán. Có thể tạo tài khoản theo hai bước:
- Xác minh doanh nghiệp (KYB): yêu cầu nhà phát triển cung cấp thông tin về doanh nghiệp để tuân thủ luật chuyển tiền. Hiện tại, GameShift chỉ hỗ trợ quyết toán tiền pháp định vào các tài khoản ngân hàng có trụ sở tại Hoa Kỳ
- Thiết lập tài khoản quyết toán tiền pháp định: khi sẵn sàng bật thanh toán bằng tiền pháp định trong môi trường production, nhà phát triển phải liên hệ với GameShift để nhận liên kết đến biểu mẫu tiếp nhận người bán. Thông tin KYB được thiết lập qua biểu mẫu này. Việc xác thực có thể mất vài phút, nhưng một số trường hợp có thể cần được xét duyệt thủ công
Mọi hoạt động trên GameShift đều được sắp xếp trong các tổ chức:
Tiếp nhận người dùng
Sau khi thiết lập xong mọi thứ, nhà phát triển có thể tương tác với REST API. Nhà phát triển có thể đăng ký người dùng để cấp cho họ quyền truy cập các tính năng marketplace, tài sản on-chain và luồng thanh toán. Việc này được thực hiện bằng cách gửi yêu cầu POST HTTP đến https://api.gameshift.dev/users, sử dụng khóa API, địa chỉ email của người dùng và một referenceId (một giá trị duy nhất, chẳng hạn như UUID) trong phần nội dung yêu cầu:
curl --request POST \
--url https://api.gameshift.dev/users \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'x-api-key: ' \
--data '
{
"referenceId": "exampleReferenceId",
"email": "user@example.com"
}Sau khi người dùng được đăng ký, thông tin và tài sản của họ có thể được truy xuất bất cứ lúc nào. Để truy xuất thông tin và tài sản của người dùng, có thể gửi yêu cầu GET HTTP đến https://api.gameshift.dev/users/{the-user-id-you-used-to-register}/assets:
curl --request GET \
--url https://api.gameshift.dev/users/exampleReferenceId/assets \
--header 'accept: application/json' \
--header 'x-api-key:Nếu thành công, một danh sách tài sản của người dùng được phân trang sẽ được trả về:
{
"data": [
{
"id": "dcde5bc8-b30b-46b6-b4da-0763953b2484",
"collectionId": "36c97125-04a5-4dc3-b92a-029d74a42287",
"attributes": [],
"name": "Example Asset",
"description": "Example Description",
"imageUrl": "https://solana.com/src/img/branding/solanaLogoMark.png",
"status": "Committed",
"owner": {
"address": "",
"referenceId": "exampleReferenceId"
}
}
],
"meta": {
"page": 1,
"perPage": 50,
"totalPages": 1
}
}Bạn có thể tìm thấy tất cả đoạn mã cho quy trình tiếp nhận tại đây.
Tạo tài sản
Ví dụ, nhà phát triển có thể tạo tài sản trò chơi on-chain bằng mã bằng cách gửi yêu cầu POST HTTP đến https://api.gameshift.dev/assets:
curl --request POST \
--url https://api.gameshift.dev/assets \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'x-api-key: ' \
--data '
{
"details": {
"description": "Example description",
"imageUrl": "https://solana.com/src/img/branding/solanaLogoMark.png",
"name": "Example Asset",
"attributes": [
{
"displayType": "Formatted Attribute Name",
"traitType": "attribute-name",
"value": "attribute-value"
}
]
},
"destinationUserReferenceId": "exampleUserId"
}
'Tài sản yêu cầu các thông tin sau:
- description - chuỗi 64 ký tự cung cấp thông tin về tài sản
- name - chuỗi 32 ký tự dùng để nhận dạng tài sản
- imageUrl - liên kết trực tiếp đến hình ảnh đại diện cho tài sản
- displayType - tiêu đề được định dạng, không bắt buộc
- traitType - tên của đặc điểm, không bắt buộc
- value - trường không bắt buộc, đại diện cho giá trị của thuộc tính
Yêu cầu POST HTTP cũng cần referenceId của người dùng, được cung cấp qua trường destinationUserReferenceId. Bạn có thể xem nội dung chi tiết hơn về cách làm việc với tài sản trò chơi tại đây.
Kết luận
Việc tích hợp công nghệ blockchain vào trò chơi, đặc biệt thông qua Solana, đánh dấu một bước tiến lớn trong cách chúng ta nhìn nhận và tương tác với thế giới kỹ thuật số. Các công cụ như Anchor, Turbo, Magicblock cùng Solana Unity SDK và Solana Unreal SDK cho phép nhà phát triển tạo ra những cách chơi mới. Giờ đây, người chơi có thể phát triển các nền kinh tế ảo và tương tác trong những mạng lưới xã hội chưa từng có một cách hoàn toàn minh bạch, dễ tiếp cận hơn bao giờ hết. Các nền tảng như Honeycomb và GameShift tiếp tục minh họa tiềm năng của trò chơi Web3 bằng cách đơn giản hóa quy trình phát triển và tăng cường mức độ tương tác của người chơi.
Solana đang đi đầu trong cuộc cách mạng trò chơi này. Cộng đồng trò chơi Solana phát triển đều đặn, với các cuộc thi hackathon chuyên biệt và những trò chơi mới liên tục xuất hiện. Solana Labs và Solana Foundation dẫn dắt các sáng kiến, xây dựng hướng dẫn, công cụ và nền tảng để giúp cộng đồng non trẻ này phát triển. Khi xây dựng trên blockchain nhanh nhất hiện có, tiềm năng phát triển của trò chơi là vô tận.
Nếu đã đọc đến đây, cảm ơn bạn! Hãy nhập địa chỉ email bên dưới để không bao giờ bỏ lỡ thông tin cập nhật mới nhất về Solana. Bạn đã sẵn sàng tìm hiểu sâu hơn chưa? Hãy tham gia Discord của chúng tôi để bắt đầu xây dựng tương lai của trò chơi trên blockchain có hiệu năng cao nhất ngay hôm nay.
Tài nguyên bổ sung / Nội dung nên đọc thêm
- Trò chơi tung đồng xu với tính ngẫu nhiên VRF
- Ứng dụng / Thư viện Dart và Flutter cho Solana
- Godot SDK
- Hội thảo phát triển trò chơi on-chain của Superteam Germany
- Mẫu khởi đầu Phaser 3 TypeScript
- Kho lưu trữ GitHub các ví dụ trò chơi Solana
- Solana Playground
- Mục niêm yết đã xác minh trên Unity Asset Store cho Solana Unity SDK
Bài viết liên quan
Đăng ký nhận tin từ Helius
Luôn cập nhật những thông tin mới nhất về phát triển Solana và nhận thông báo khi chúng tôi đăng bài


