本文适用于有开发创建 NFT 游戏的想法并希望大致了解所需流程和工具的人。我们不会详细介绍每种编程语言,但我们会链接重要资源并提供有关NFT游戏开发的全景视角。
用熟悉的语言学习 以太坊开发 :NFT实战 | Java | Php | Python | .Net / C# | Golang | Node.JS | Flutter / Dart
1、NFT 及其标准
NFT代表 Non-Fungible Tokens,根据定义,它是不可替代的,这意味着它们不会通过使用而被消耗,
是独一无二的,并且不能被交易为具有相同类型和价值的其他东西。这与货币的运作方式完全相反,
例如你的1 美元可以与另外 1 美元互换。
NFT 是一种数字资产,一种通证,具有独特的属性。他们持有关于所有者是谁的信息,这些信息是
公共记录的,可以随时进行验证。它们代表独特的物品并存储在区块链中。
以太坊是第一个创建和探索 NFT 空间的区块链,然而,它不再是这个游戏中的唯一参与者。
在每个区块链上都存在多个标准,可以将标准想象为你将在 SmartContract 中使用的功能的模板。
每个标准都提供了在创建 NFT 期间需要填充的特定功能和属性。
NFT 的第一个也是最著名的标准是ERC721。该标准允许每项资产都是独一无二的,不会被破坏或复制,并提供了跟踪和转移它的基本功能。它还为资产提供了定义其独特性和稀有性的某些属性或特征。如需了解ERC721标准详情,可以查看这个出色的ERC721实战教程。
以太坊区块链上不太常见的其他标准还包括ERC 998和ERC 1155。 它们与 ERC721 具有相似的特征,但它们可以同时持有不可替代和可替代的通证,因此持有一组独特的数字资产。此功能对于游戏用例非常有趣,其中游戏的货币(可替代)和收藏品(不可替代)可以存储在一起。
正如我们之前评论的那样,以太坊并不是唯一提供 NFT 功能的区块链。该区块链最近遇到的问题之一是高昂的交易费用(“gas”)和可扩展性问题。在著名的 Cryptokitties 游戏大受欢迎之后,gas价格急剧上涨,其背后的公司创建了Flow 区块链,专为游戏和加密收藏品而设计。
Tezos区块链还有一个不可替代的标准FA2,它提供了极大的灵活性来处理不同的游戏项目。
其他区块链,如Palm区块链,正专注于为文化和创意构建 NFT 生态系统。Solana 区块链是游戏中的最新参与者,重点关注艺术并承诺解决以太坊和其他基于以太坊的区块链所面临的可扩展性问题。
由于 NFT 的空间仍在探索和测试中,因此正在不断提出新的标准。出于这个原因,建议在决定一个标准之前检查标准列表。
2、2021 NFT 和 NFT 游戏的兴起
尽管 NFT 已经出现了五年多(有史以来第一个 NFT诞生于 2014 年),但似乎 2021 年是 NFT 崛起的一年。
2021 年,流行艺术家以 NFT 的形式以数百万美元的价格出售他们的艺术作品,而在今年,像 Cryptopunks 这样的旧 NFT 项目正在获得巨大的价值,并将 NFT 带入主流讨论。
随着 NFT 的普及,我们正在试验 NFT 游戏的普及。一些非常早期的 NFT 游戏,如Cryptokitties或Mooncatrescue于 2017 年发布,但直到 2021 年,它们才引起了更广泛的公众关注,并在主流中引起了轰动。
像Axie Infinity这样的游戏在今年大受欢迎,并在 2021 年 6 月成为最昂贵的
NFT集合,销售额超过 4000 万美元。
那么,你已经听说过成功的 NFT 游戏,并且很想了解它们是如何构建的?或者,也许你有一个想法并想构建一个 NFT 游戏?开始吧。
第 1 步:NFT游戏设计
定义想法和工作模型
首先,你应该考虑想要构建的NFT游戏类型。是关于策略还是战斗,或者更像是一个谜题,也许你更喜欢冒险或角色扮演游戏,或者你更喜欢运动类的游戏?
一旦确定了NFT游戏风格,你应该对区块链内外已经存在的类似游戏进行一些研究。不要试图发明*,首先要从过去的成功中学习并获得启发。
设计思维等非线性问题解决方法模型可以帮助你快速构思和实验。设计思维以人为本,旨在确保开发的解决方案满足真正的用户需求。这是一种协作的工作方式,允许多学科开发团队做出更好的决策并与用户一起快速测试想法,包括反馈作为解决方案过程的基本部分。
在探索问题空间的过程中,与你的团队一起进行一些创意研讨会、访谈、头脑风暴或角色扮演会议可能会有所帮助。
在过去的十年中,工程师们开始集中强调创造性思维在需求工程中的重要性,这是构建具有竞争力和创新产品的决定性因素。
此外,它可以很有趣。你会和你的团队聚在一起,每个人都可以表达他们的想法。最后,你很可能会有很多令人惊叹的方法,但也会意识到你想往哪个方向发展。从那里你必须把这个想法变成一个实际的产品。尝试定义游戏的最基本规则,但同时要小心,不要进入细节。你的角色会有升级的能力吗?你可以与其他用户互动吗?不要被细节分心,专注于主要思想。尝试使游戏尽可能简单。想想你希望你的 MVP(最小可行产品)拥有的最重要的特性。可以将所有其他想法写在某种积压的其他地方,但如果这是你的第一个应用程序,不要太疯狂。
将具有创造力的人才带入NFT游戏团队
大多数第一个成功的NFT 游戏有什么共同点?
他们有可爱的生物。
是的,这有点通用,但是,除非你想要一个简单的像素艺术人物,否则你的团队需要一些创造性思维、设计师、2D 或 3D 图形艺术家或经验丰富的程序员。
即使是简单的像素猫,也可能具有挑战性。不要低估创造性工作。
举个例子,我们尝试了用于mooncatrescue 游戏的像素编辑器。左图下方是mooncatrescue游戏中猫的示例,右图是使用像素编辑器第一次绘制猫的灾难性尝试:
第二步:NFT游戏开发
在这一步中,我们将介绍在创建 NFT 游戏时需要考虑的主要问题,例如使用什么平台,移动平台还是网络?以及如何选择你的技术栈。我们将介绍最受欢迎的选择。基于区块链技术构建的应用程序称为DApps,代表去中心化应用程序。在接下来的部分中,我们将使用术语 DApp,当我们谈论的技术一般可用于任何 DApp而不是专门为 NFT 游戏选择时。
可以在此处找到有关 DApp 的更多信息。
NFT游戏是网络应用程序还是移动应用程序?
在构建NFT游戏 DApp 时,可能遇到的第一个问题是你希望最终用户如何与之交互。通过他们的网络浏览器(网络应用程序),或者使用移动应用程序?
Web 应用程序具有高可用性,可以通过任何浏览器从世界各地访问,并且具有决定性:台式机、手机或平板电脑,这使得它们更容易被更广泛的受众访问。尽管如此,移动应用程序可以提供更强大的功能,并且可以比 Web 应用程序更快,但开发成本可能更高。
在构建移动应用程序时,你可以在原生应用程序和非原生应用程序之间进行选择。原生应用程序是为特定操作系统 (OS) 构建的,并且能够访问通知、相机访问等功能。但是由于每个操作系统都不同,因此你必须为每个操作系统构建不同的版本。iOS 和 Android 可能是当今最常用的操作系统,但列表要大得多:Windows OS、Blackberry OS、Bada、Symbian OS,更不用说开源替代品,如 Ubuntu、PureOS、Mobian OS 等。
非原生应用程序不会为您提供相同的功能访问权限,但它们更容易构建且成本更低,因为你可能只需要一个适用于所有操作系统的版本。
因此,在决定构建原生移动应用程序之前,你应该非常确定自己确实需要这些功能,然后再决定朝那个方向发展。你不仅需要为不同的设备和操作系统开发不同的版本,而且还需要通过审核流程才能被 AppStore 接受。
如果你有兴趣构建一个既可用作 Web 应用程序又可用作移动应用程序的混合应用程序,PWA(渐进式 Web 应用程序)可能是你正在寻找的。它们是移动开发中的最新产品,不需要通过 App Store 分发。此外,它们甚至可以离线使用,并且能够推送消息,这是迄今为止只有本地应用程序才能提供的功能,这是一个主要优势。不幸的是,Apple 限制了对本机功能的访问,并且旧版本的 iOS 不兼容。
你可能已经意识到,在决定解决方案之前,有必要对你的目标群体(及其设备)进行彻底的研究。最简单、最快的解决方案是 Web 应用程序,因此在本文中,这也将是我们所展示的内容。
有关本地和非本地移动应用程序之间差异的更多信息,哪种移动应用程序可能是适合你的解决方案,请查看这篇文章。
有关移动应用程序和网络应用程序之间的优缺点的进一步分析,请查看本文。
为NFT游戏选择合适的技术栈
在规划技术栈时,你应该考虑团队已经习惯了什么。特别是如果你想要快速发展。
由于存在众多技术替代方案和组合,我们在本文中专注于特定架构,但将对其他可用选项进行评论,以便你可以决定哪种技术最适合自己的项目。
在 GitHub 上有很多很棒的游戏或模板可用于构建 NFT 游戏,因此在开始之前,请尝试查找一些可以分叉的游戏,这样你就不必从头开始。它将为你节省大量时间,并且你将学到很多东西。开源之美。
在研究 NFT 游戏的架构时,你会发现很多视频,但其中很多视频都过于详细,你需要独自处理如何连接这些部分或如何实际部署 NFT 的任务游戏。
一个突出的教程在 16 分钟内解释了如何建立一个完整的 NFT 应用程序架构。但是,设置整个项目不会花费你 16 分钟,因为该视频的创建者已经预先准备了大部分代码。他更愿意向你解释前端、后端、托管和智能合约是如何连接的。
如果你不熟悉GitHub,我建议你观看一些教程并习惯它,因为它是最流行的版本控制程序(如果你想在本地构建软件或克隆存储库,你一定需要它)。在线查找教程和资源非常容易。你可以尝试的是这个真正从基础开始的教程,即使
你从未与命令行进行过交互。
设置NFT游戏项目环境
为了设置连接到Ethereum、Corda、Hyperledger Fabric或其他区块链的 NFT 应用程序,Truffle Suite为 SmartContracts 提供了一个开发环境,其中包含用于连接到前端、部署和测试的工具。另一种选择是Embark,它不太受欢迎,因此提供的教程也较少。
NFT游戏前端技术
前端可以用JavaScript或TypeScript编写,尽管使用 TypeScript 会迫使你对你的类型更加严格,这将帮助你保持井井有条,尤其是在更大的团队中。作为框架,你可以在React和Vue之间进行选择。Angular 也是一个前端框架,但对于一个简单的 Web 应用程序来说,它过于复杂和繁重。
React 是用于构建 DApp 的最流行的框架,但如前所述,根据团队的经验,Vue 也可能是一种选择。
Truffle suit 最初是为了与 React 连接而构建的,但自 2019 年以来,他们提供了一个 Vue 插件。
最后,前端的托管可以在Netlify上完成,这是网站的一个免费选项。
选择NFT游戏的加密钱包
对于NFT游戏登录和身份验证,你可以使用加密钱包。加密货币钱包就像一个物理钱包,但是是数字的。你可以将不同的货币和代币存储在这些钱包中。不同的钱包提供不同的服务,因此人们将不同的钱包用于不同的目的,要获取有关选项的更多信息,请查看本文。
我们遇到的大多数基于区块链的应用程序,包括CryptoKitties,
都使用MetaMask钱包,因为它非常受欢迎并具有一定的优势:它是一个非托管钱包(这意味着你对自己的密钥负责,而不是第三方负责)和可以持有 NFT,这是并非所有钱包都提供的功能。此外,它非常易于使用,可以通过插件轻松添加到你的浏览器中。如果你的 DApp 不使用 MetaMask,那么没有人会使用你的 DApp。
NFT游戏智能合约技术
所以基本上,前端会将它从 MetaMask 获得的用户地址发送到 智能合约,智能合约 将从区块链中
获取属于该地址的 NFT 的 URL。要与 智能合约 通信,你可以使用Web3js 库,它将帮助你监听事件、设置gas参数、调用 智能合约 中的函数并自定义你的交易。你可以将其与可用于与后端通信的 restAPI 进行比较。智能合约 将通过Infura进行通信,这是一种与区块链通信的流行 API。
在 智能合约 中,你定义了所有规则和功能,如果要构建集中式游戏,公司将负责这些规则和功能。
智能合约不能被重写(有一些例外,例如超过 50% 或 100% 的网络/区块链/持币人决定需要更新某些东西)。你的应用程序的安全性和质量取决于你的 智能合约。如前所述,你为 NFT 选择的标准也将规定哪些功能必须包含在你的智能合约中。
为部署在以太坊网络上的 NFT 游戏编写智能合约的流行语言有 Solidity 、Vyper和Yul。最受欢迎和使用最广泛的语言是Solidity,它与 JavaScript 非常相似,但如果你更熟悉
Python,也许Vyper可能是你的选择。
为了编写 智能合约,openzeppelin库将为你提供构建安全应用程序的支持。
NFT游戏后端技术
智能合约 只请求 NFT 的 URL,因为整个 NFT 太大而无法在区块链上安全。使用此 URL,前端将向
后端发出axios请求,并将元数据请求到此 NFT。在这个非常简单的设置中,元数据和 NFT 存储在托管在Heroku上的后端中。
对于现实生活中的应用程序,你不应该这样做,因为你在集中空间中存储和创建数据。使用分散的应用程序,然后使用来自集中空间的数据将抵消区块链带来的许多优势。这称为Oracle 问题。为了解决这个问题,我们需要使用像Chainlink这样的技术。这有助于在不影响其去中心性的情况下将链下数据添加到链上区块链。
对于后端,node.js是一种流行的 Web 开发语言,因为它具有很强的可扩展性。如果你熟悉 JavaScript,那么将非常容易使用它。尤其是在使用KOA框架时,它旨在成为 eb 应用程序和 API 的更小、更具表现力和更强大的基础。
后端会将元数据(包括 NFT 的名称、ID 和图像的 URL)发送到前端。使用此信息,前端可以向后端发送另一个请求,其中包含 NFT 图像的 URL。然后前端可以显示可用数据,用户可以看到其 NFT 的名称和图像。
第 3 步:NFT游戏测试
为了测试你的 NFT 游戏,可以使用Rinkeby或Ropsten 测试网或任何其他你可能已经拥有的以太坊。如果你还没有使用任何你需要通过水龙头获得一些以太币,例如对于 Ropsten,你可以使用这个链接。在开发阶段,Truffle 提供了一个名为Ganache的工具,可以让你非常轻松地创建模拟区块链。
第 4 步:NFT游戏部署和推广
已经测试了你的NFT游戏并准备好启动了吗?然后是准备主网的时候了。请不要着急。投入足够的时间来测试和检查安全威胁。请参阅下面来自 OpenZeppelin 的完整指南,以准备主网。可以在这里找到另一个关于以太坊区块链部署的出色指南。
你的NFT游戏还没有准备好上线?别担心,在部署你的 NFT 游戏之前还有很多工作要做。你应该考虑开始参与和建立社区。创作一些内容(文章、视频……),打开 Discord 频道,分享,传播信息。
原文链接:NFT游戏开发指南 — 汇智网