區塊鏈遊戲是基於區塊鏈技術開發的遊戲,允許玩家真正擁有遊戲內的資產(如角色、裝備、土地等)。這些資產通常以非同質化代幣(NFT)形式表示,並存儲在去中心化的區塊鏈上。
區塊鏈遊戲通過智能合約運行,遊戲內資產以 NFT 或加密貨幣形式存在於區塊鏈上。玩家可通過遊玩、完成任務或參與遊戲內經濟系統來獲取收益,並可將這些收益轉換為現實中的價值。
遊戲中的角色、武器、皮膚等,以 NFT 形式存在玩家錢包,而非遊戲公司的伺服器。
以同質化代幣(Fungible Token)作為遊戲貨幣。
持有者可投票決定遊戲發展方向、資金用途與規則修改(DAO)。治理權的載體有兩種形式:
把 NFT 當作入場資格,持有者才能參與特定活動或獲得獎勵。
玩家創作地圖、道具、關卡,並透過鏈上機制確認版權與分潤。
土地 NFT是這類遊戲的基礎:
玩家可把 NFT 租給他人使用並分成(如遊戲公會的 scholarship 模式),降低新手入門門檻。
不只是資產上鏈,而是規則和遊戲狀態全部放在區塊鏈上。
| 優點 | 挑戰 |
|---|---|
| 真正的資產所有權 | 遊戲性常被賺錢壓過,玩法不夠好玩 |
| 開放經濟、可跨遊戲 | 代幣經濟設計困難,易通膨或崩盤 |
| 創作者收益透明 | 手續費(Gas fee)與操作門檻高 |
| 防作弊、可驗證 | 法規不明確(證券、賭博認定) |
| 社群共治、可擴充 | 駭客攻擊、詐騙與資產安全風險 |
市場已從早期的 P2E 熱潮轉向 Play-and-Own:先把遊戲做好玩,區塊鏈只作為資產所有權的底層,甚至對玩家隱藏技術細節,如內嵌錢包、免 Gas 費。Layer 2 與側鏈(Immutable、Ronin 等)也讓交易更快更便宜。
真正的跨平台需要三樣東西:公開的擁有紀錄、公開的檔案格式、別家願意支援。NFT 只解決了第一樣。其餘兩樣都有人在推動,但進度差很多:檔案格式進展不錯,別家願意支援最難,目前推得最用力的是 Epic,而且它不用區塊鏈。
主流 3D 產業在推動,進展不錯。電影、工業模擬、電商都需要通用的 3D 格式,所以推動者是大公司聯盟,不是 NFT 圈。
這些格式管的是外觀和骨架,管不到道具在遊戲裡的效果。一把劍的攻擊力、能不能用,仍由每個遊戲自己決定。
這一項最難。Epic 最積極,但走中心化路線。
| 項目 | 公開擁有紀錄 | 檔案格式 | 別家支援 |
|---|---|---|---|
| NFT 遊戲 | 有 | 各做各的 | 很少 |
| Epic(UE6 計畫) | 沒有,記在 Epic 帳號 | UE6 遊戲之間通用 | 以 Fortnite 玩家為誘因,合作遊戲未定 |
| Roblox | 沒有 | 平台內通用 | 平台上的遊戲大多直接支援 |
目前沒有人三樣都做到。NFT 陣營只有第一樣。Epic 和 Roblox 則是把所有遊戲放進同一家公司的平台,繞過了格式和支援的問題,卻回到最早的疑慮:公司倒了,東西就沒了。
Ronin 是一個專為遊戲應用設計的以太坊側鏈,主要用於支援遊戲內資產交易與管理。它由 Sky Mavis 開發,最初為熱門遊戲 Axie Infinity 提供基礎設施。
Ronin 作為遊戲區塊鏈的領先平台,以高效能和低成本優勢支援遊戲內資產管理與交易。然而,為了提升安全性與去中心化水平,其技術和治理仍需持續優化。
RON 幣是 Ronin 網絡的原生加密貨幣,主要用於支持 Ronin 區塊鏈上的交易和應用生態系統。Ronin 是由 Sky Mavis 開發的區塊鏈,最初設計為支持熱門遊戲 Axie Infinity 的專用網絡,後來擴展為更加多元化的去中心化應用(DApp)平台。
隨著區塊鏈遊戲和元宇宙概念的興起,RON 幣在支持這些新興技術和應用方面扮演了重要角色。雖然市場表現可能隨市場波動,但 Ronin 區塊鏈的持續發展為 RON 幣提供了穩定的應用場景。
Gala Games 是一個去中心化遊戲平台,旨在透過區塊鏈技術賦予玩家真正的數位資產所有權。該平台提供多種遊戲,玩家可透過遊戲內 NFT 獲取獎勵,並使用 GALA 代幣進行交易和治理。
Decentraland 是一個基於以太坊的去中心化虛擬世界,允許用戶購買、建設和交易虛擬土地及數位資產。該平台使用 MANA 代幣作為交易和治理工具,使玩家能夠在這個元宇宙中創建獨特的體驗。
Hooked Protocol 是一個專注於 Web3 大規模採用的教育與社交平台,通過遊戲化學習和社交挖礦,幫助新用戶快速熟悉區塊鏈技術。其原生代幣 HOOK 用於網絡激勵、治理和應用支付。
STEPN 是一款基於 Solana 和 BNB Chain 的 Web3 運動應用,採用「Move-to-Earn」模式,鼓勵用戶透過運動獲取代幣獎勵。用戶需購買 NFT 運動鞋,然後透過步行、慢跑或跑步賺取代幣。該平台使用雙代幣經濟模型,其中 GMT(Green Metaverse Token)是治理代幣,而 GST(Green Satoshi Token)則用於日常獎勵與消耗。
GMT 是 STEPN 的治理代幣,總供應量固定為 60 億枚,主要用於社區治理、NFT 運動鞋升級以及遊戲內特殊功能。用戶可以透過運動、質押或參與投票來獲取 GMT。
| 特性 | GMT | GST |
|---|---|---|
| 代幣類型 | 治理代幣 | 遊戲內代幣 |
| 總供應量 | 60 億枚(固定) | 無上限(依遊戲需求增發) |
| 獲取方式 | 運動、質押、治理投票 | 運動、任務獎勵 |
| 主要用途 | 治理、NFT 升級、特殊功能 | 修復鞋子、鑄造新鞋、升級 |
STEPN 作為 Move-to-Earn 模式的先驅,已吸引大量用戶參與,但其經濟模式的可持續性仍需驗證。未來發展可能包括新功能、品牌合作,以及進一步拓展 GMT 的應用場景,以確保其長期價值。
更多詳情可訪問 STEPN 官方網站。
《MapleStory Universe》是 NEXON 推出的區塊鏈版本《楓之谷》,旨在將經典遊戲與區塊鏈技術結合,讓玩家能夠真正擁有並交易遊戲內的資產。
在《MapleStory Universe》中,遊戲內的角色、道具等資產可以透過區塊鏈技術轉化為 NFT(非同質化代幣)。這意味著玩家可以擁有這些數位資產的所有權,並在遊戲內外進行交易,提升了遊戲資產的價值和流通性。
遊戲內設有 NESO 等代幣,玩家可以透過遊戲活動獲取,並用於購買、交易 NFT 資產。這種代幣經濟模型鼓勵玩家積極參與遊戲,並為生態系統的發展做出貢獻。
為了支持玩家生成內容(UGC),《MapleStory Universe》引入了 Synergy Apps,這些應用程式允許玩家自行開發遊戲環境,並與原始遊戲內容互動。這不僅豐富了遊戲內容,也為玩家提供了更多創作和盈利的機會。
《MapleStory Universe》計劃持續整合區塊鏈技術,推出更多功能和活動,並與社群共同建構一個健康且可持續的遊戲內經濟系統。
以下影片提供了《楓之谷元宇宙鏈遊》的介紹,供您參考:
《Shatterline》是一款第一人稱射擊遊戲,由Frag Lab開發,並由Wargaming發行。該遊戲提供PvE合作模式和PvP競技模式,結合了快節奏戰鬥與戰略元素,為玩家帶來沉浸式的射擊體驗。
《Shatterline》導入區塊鏈技術,使玩家能夠真正擁有遊戲內的數位資產,並提升遊戲的經濟系統與透明度。
隨著區塊鏈技術的發展,《Shatterline》可能進一步深化其應用,例如引入DAO(去中心化自治組織),讓玩家參與遊戲決策,或實現更廣泛的跨遊戲資產互通性,打造真正的元宇宙遊戲生態。
| 遊戲 | 年份 | 類型 | 值得一提 |
|---|---|---|---|
| Huntercoin | 2014 | 2D 多人收集金幣 | 最早的鏈上遊戲之一,整個遊戲跑在自己的區塊鏈上,每個動作都寫進鏈裡 |
| Etheria | 2015 | 六角地塊世界 | 以太坊上線三個月就推出。作者早就不維護了,合約卻一直能用:2021 年被重新發現時,有人出價 70 ETH 想買一塊地 |
| Loot Survivor | 2023 | 地城冒險 | 跑在 Starknet 上,角色的血量、經驗、武器都存在鏈上 |
| Influence | 2024 | 太空策略 MMO | 2024 年 6 月在 Starknet 上線,所有動作都在鏈上 |
| Realms: Eternum | 2024 | 即時戰略 MMO | 以季為單位進行。2026 年加了 60 分鐘一局的 Blitz 模式,人類和 AI 代理一起對戰;目前暫停中,還沒公布回歸日期 |
| Dark Forest |
Etheria 正好回應公司倒了怎麼辦的疑問:作者走了,規則和擁有權都還留在鏈上。
這是一個 8x8 棋盤上的收集金幣遊戲。玩家加入後用 move 往四個方向走,踩到金幣就得 1 分,金幣隨即換到新位置。位置、分數、規則全部存在合約裡,任何人都能另外做介面來操作它。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract TinyChainGame {
uint8 public constant SIZE = 8;
struct Player {
uint8 x;
uint8 y;
uint32 score;
bool joined;
}
mapping(address => Player) public players;
uint8 public coinX = 4;
uint8 public coinY = 4;
uint256 public nonce;
event Joined(address indexed player);
event Moved(address indexed player, uint8 x, uint8 y);
event CoinCollected(address indexed player, uint32 score, uint8 newCoinX, uint8 newCoinY);
function join() external {
require(!players[msg.sender].joined, "already joined");
players[msg.sender] = Player(0, 0, 0, true);
emit Joined(msg.sender);
}
// direction: 0 = 上, 1 = 下, 2 = 左, 3 = 右
function move(uint8 direction) external {
Player storage p = players[msg.sender];
require(p.joined, "join first");
if (direction == 0) {
require(p.y != 0, "wall");
p.y -= 1;
} else if (direction == 1) {
require(p.y != SIZE - 1, "wall");
p.y += 1;
} else if (direction == 2) {
require(p.x != 0, "wall");
p.x -= 1;
} else if (direction == 3) {
require(p.x != SIZE - 1, "wall");
p.x += 1;
} else {
revert("bad direction");
}
emit Moved(msg.sender, p.x, p.y);
if (p.x == coinX && p.y == coinY) {
p.score += 1;
nonce += 1;
bytes32 seed = keccak256(abi.encodePacked(blockhash(block.number - 1), msg.sender, nonce));
coinX = uint8(uint256(seed) % SIZE);
coinY = uint8(uint256(seed >> 8) % SIZE);
emit CoinCollected(msg.sender, p.score, coinX, coinY);
}
}
}