NFT游戏开发教程2022
Posted 新缸中之脑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NFT游戏开发教程2022相关的知识,希望对你有一定的参考价值。
在创建应用程序时,开发游戏可能会相对繁重。一项更具挑战性的任务是为去中心化网络开发游戏。这是因为 Web3 开发领域一直缺乏基本的开发工具。但是,有了合适的工具箱,游戏开发就不会那么困难了,
用自己熟悉的语言学习 以太坊开发 :Java | Php | Python | .Net / C# | Golang | Node.JS | Flutter / Dart
1、什么是 NFT?
NFT 是 Non-Fungible Token的缩写,它们最近变得非常流行。人气提升的众多原因之一是对艺术家的明显好处,NFT 已被证明是艺术家从加密社区获得支持的绝佳方式。然而,这些不可替代的通证到底是什么?
顾名思义,NFT 就是一种通证。这些数字通证能够代表独特物品的所有权。借助这项技术,几乎可以对任何东西进行代币化,从艺术品到房地产。部分价值源于只有一个人可以成为正式所有者这一事实。为了确保这种所有权,NFT 由以太坊等区块链保护。这使得在不出售代币的情况下无法复制 NFT 或修改所有权记录。从本质上讲,NFT 可以充当实物资产的数字所有权。
“不可替代”一词是一个经济术语,用于具有独特属性的商品/资产,例如不同的歌曲或独特的棒球卡。这些是不可互换的物品,因为它们具有不同的特性。因此,例如,很难将房子的价值与一首歌曲进行比较。不可替代的对立面是可替代的。另一方面,这些是由值而不是它们的属性定义的项目。因此,这使得可替代通证可以互换。
从传统的角度来看,在数字世界中复制物理资产的属性一直存在问题。很难确保虚拟资产的唯一性、稀缺性和所有权证明。然而,现在有了区块链技术,这是可能的,并且 NFT 启用了新的资产互联网。
2、NFT游戏概述
在这个教程中,我们将仔细研究如何创建自己的 NFT 游戏,使用大约 100 行代码,我们可以创建一个功能齐全的 NFT 游戏,其中玩家化身由可以在 2D 环境中移动的令牌表示。在此示例中,我们将使用 Aavegotchi NFT。但是,任何其他 NFT 的逻辑都是相同的,这意味着我们不仅限于 Aavegotchis。
NFT 游戏开发过程的一个良好开端是解释我们即将创建的游戏的安全性。安全性是一个非常重要的问题,因为 NFT 游戏有时会奖励真正的奖品。因此,作弊是被禁止的,我们需要确保我们的应用程序可以防止这种情况发生。
为了确保游戏环境不会作弊,我们会将大部分游戏逻辑放在后端代码中。因此,前端的主要任务是询问服务器向一个方向移动头像是否有效。这意味着我们可以防止用户入侵应用程序和在游戏中作弊。
那么,你可能会问,这一切怎么可能只用 100 行代码呢?嗯,简短的回答是 Moralis。
3、使用 Moralis 开发 NFT 游戏
为了实现更快、更轻松的Web3开发过程,我们需要合适的工具。Web3 的终极开发平台是 Moralis。Moralis 使我们能够轻松创建 NFT 游戏并显着缩短开发过程。Moralis 已经弄清楚了所有 dApp 的基本逻辑,作为平台用户,我们可以访问它的所有功能。
Moralis 是为去中心化网络开发dApp(去中心化应用程序)的中间件。借助 Moralis 平台提供的强大
开发工具,我们可以大大缩短开发时间。最重要的是,这不仅适用于 NFT 游戏,也适用于一般的 dApp 开发。Morials为用户提供无限可扩展的后端基础设施,让用户专注于应用程序的前端。因此,可以将开发后端的繁重工作交给 Moralis,还通过提供有价值的工具来促进开发过程。其中一些是Speedy Nodes、Moralis NFT API、Moralis Price API等等。因此,Moralis 是 dApp 和 NFT 游戏开发的终极平台。
我们的 NFT 游戏的两个非常重要的功能是实时警报和检查NFT 余额的能力。我们将使用这些 Moralis 工具从区块链获取实时数据,并检查用户是否拥有任何 NFT。
此外,Moralis 还为一般的 dApp 开发提供了其他出色的工具。一些示例包括对IPFS的原生支持、跨链兼容性以及对开发人员的大力支持。Moralis博客还提供出色的指南,供你查看并更好地了解 Moralis 用户的可能性。
由于我们将在开发 NFT 游戏时使用 Moralis,所以第一步就是立即注册 Moralis!
4、为 NFT 游戏开发设置 Moralis
在为游戏本身编写代码之前,我们必须导入 Moralis SDK(软件开发工具包)并初始化 Moralis。此外,要初始化 Moralis,我们必须首先创建一个服务器。
- 创建 Moralis 服务器
我们要做的第一件事是使用 Moralis 设置服务器。使用 Moralis 创建服务器非常简单,只需几分钟。要初始化服务器,我们需要登录 Moralis 并单击“+创建新应用”按钮。单击后,将出现一个下拉菜单,其中包含三个选项。选择哪个选项并不重要,但对于这个例子,我们推荐一个测试网。一旦选择了要启动的服务器类型,我们需要为我们的服务器提供一个名称,选择一个区域,然后选择网络。一旦完成了我们的选择,就可以简单地点击“添加实例”按钮来启动服务器。启动服务器可能需要几分钟,但它很快就会启动并运行。
- 导入Moralis SDK
我们可以通过几行代码轻松导入 Moralis SDK。这样做的原因是让我们能够在代码中访问开发工具包,以便在编程时访问库和其他有价值的工具。导入 SDK 如下所示:
- 初始化 Moralis
最后,我们还需要初始化 Moralis。为此,需要找到我们服务器的 URL 和应用程序 ID。我们可以通过
单击相关服务器的“查看详细信息”按钮来找到它。然后,代码将与你的应用 ID 和服务器 URL 类似:
5、验证用户
当我们游戏的玩家访问网站时,我们需要让他们能够登录并进行身份验证。此身份验证通过 MetaMask 进行,如果你不熟悉此扩展,请查看 Metamask 的此细分。这很简单,我们只需要一行代码:
此外,使此功能出色的是 Moralis 集成。当用户登录并执行该行代码时,将向你的 Moralis 数据库添加一个新用户。我们可以通过单击相关服务器的三个点然后按“仪表板”来查看服务器数据库中的所有用户。
在仪表板界面的最左侧,我们将看到“浏览器”、“Webhooks”、“工作”等不同的选项卡。在“浏览器”选项卡下,我们可以找到几个不同的页面。一个例子是“用户”页面,所有用户的加密地址都会出现在这里。然而,对于本教程来说更重要的是,我们可以在“EthNFTOwners”页面下看到用户的所有 NFT。这非常神奇,只需一行代码,我们就可以查看从用户的加密地址到他们的 NFT 的所有内容。
这展示了 Moralis 的魔力,这只是我们可以用大约 100 行代码创建 NFT 游戏的众多原因之一。此外,
这表明 Moralis 如何帮助加速dApp 的开发过程,从而使整个行业受益。
6、NFT 游戏图形开发
我们游戏开发过程的下一步是设置游戏的图形。在此示例中,我们使用了一个名为Phaser的库,这是一个免费、快速且开源的 html5 游戏库,这里有一个出色的Phaser教程。Phaser可用于创建简单的绘图,例如我们用于 NFT 游戏的绘图。因此,要初始化 Phaser 游戏库,代码示例如下所示:
下面是我们游戏的屏幕截图:
7、NFT 游戏生命周期
接下来,我们介绍游戏的生命周期。这是所有游戏都有的东西,从游戏加载一堆东西开始。所以,这里的一个例子是我们可以使用一个名为“preload”的函数来加载游戏背景:
如你所见,我们只预加载了游戏的背景,但上面的屏幕上有一些头像。但是,我们无法预加载头像,因为它们属于玩家,我们不知道玩家正在玩什么。因此,我们不知道要在屏幕上放置什么头像。有关玩家化身的数据从区块链中获取并加载到应用程序的另一部分。
此外,正如你在代码中看到的,我们还执行了一个“ping()”函数。这很重要,因为我们需要开始 ping 服务器。这样做的原因是服务器需要知道此时有哪些玩家正在玩游戏。此 ping 功能每秒不断重复。这是函数的样子:
8、控制和订阅
在我们为游戏的图形创建函数之后,可以添加控件并设置对 GameState 的订阅。然而,这是什么意思?如果我们查看 Moralis 中的服务器数据库,我们会看到一个名为“GameState”的选项卡。GameState 告诉我们每个玩家/化身在地图上的位置。这意味着一旦 GameState 发生变化,订阅就会更新每个客户端。因此,每当其他玩家在世界上移动时,我们都会收到警报。
使用 Moralis,可以避免使用 WebSockets 构建复杂的基础设施、连接到 WebSockets 的逻辑、发送数据等所有麻烦;我们可以利用这个平台。我们所需要的只是实现上面的订阅代码。这意味着我们只需要几行代码来确保我们的游戏知道地图上每个玩家的状态。
9、更新功能
一旦我们设置了对 GameState 的订阅并为我们的游戏建立了控件,我们还需要一个更新函数。此功能正在侦听按下了哪些键,然后向服务器发送移动角色的请求。部分更新函数看起来像这样,它是向上移动我们的头像的请求:
然而,这个片段的一个关键点是我们并没有立即移动游戏中的角色。我们只是向服务器发送请求来执行此操作。这样做的原因是服务器确定是否可以朝那个方向移动角色。因此,在不实际玩游戏的情况下无法移动角色,并且服务器禁止用户作弊。
10、绘制状态
最后,我们有一个绘制游戏状态的函数。“drawState”函数的第一部分是关于新玩家的。如果玩家未知,该函数会从你的 Moralis 服务器获取玩家 SVG,它直接从区块链获取。但是,在查看 NFT 游戏的后端代码时,我们将更深入地研究如何获取 SVG。
如果不是新玩家,游戏只是简单地在游戏环境中移动玩家的头像。此示例中的代码如下所示:
因此,总而言之,只需要实现少数几个功能就可以让玩家在 2D 环境中四处移动。此外,代码还需要订阅 GameState,以便为客户端提供游戏中所有其他玩家的实时更新,我们用几行代码就完成了。
这些都是前端,NFT 游戏开发过程非常简单,具有编程和javascript的基本知识就可以。
如果你发现应用程序的前端易于开发,那么后端就更加简单,这要感谢 Moralis。在我们的 NFT 游戏的后端,我们会发现更多的游戏逻辑和一堆在有人玩游戏时前端调用的函数。这里的第一个示例是用于移动头像的函数。
11、玩家化身的移动
每当玩家试图通过按下键盘键来移动他们的头像时,前端都会调用此移动函数。该函数接收头像应该移动的方向,然后更新应用程序的状态。
如你所见,move 函数也调用了“updateState”函数。这个函数移动头像,在这个例子中,它向玩家喜欢的方向移动用户五个单位。
但是,正如你所看到的,还有一条注释说明我们可以在此处添加更多逻辑。因此,我们可以添加化身可以拾取的项目,或者创建化身无法移动的边界/障碍物。服务器可以检查玩家移动的方向是否有东西,并在必要时限制移动。
12、持久状态函数
这个游戏中的另一个函数是“persistState”函数,这是将 GameState 保存到我们服务器数据库的地方。
这个函数看起来像这样:
保存状态后,每个客户端都将使用新的 GameState 进行更新,这就是客户端和服务器之间实时通信的方式。这是一个简洁的解决方案,只需不到十行代码,结合前端的订阅功能。
13、Ping功能实现
在后端,我们还有一个 ping 函数,它简单地检查用户何时 ping 服务器,然后将其保存到游戏状态。
此外,我们还使用此函数从区块链中获取 SVG。我们在这里做的第一件事是向用户查询他们的 NFT。
基于这些信息,我们可以从区块链中获取用户的 SVG。
如你所见,ping 函数代码调用了另一个名为“getSVGString”的函数,这就是我们从区块链获取 SVG 的方式。乍一看,这个函数看起来很吓人,因为 ABI 相当庞大。但是,我们可以从 Aavegotchi 合约中复制并粘贴 ABI。
14、结束语
这些是我们创建第一个 NFT 游戏所需的所有功能。我们已经实现了从实时更新到与服务器检查移动是否有效的所有功能。这一点也不复杂,只要有合适的工具,我们可以在几分钟内制作出这款游戏!
原文链接:NFT游戏快速开发教程 — 汇智网
以上是关于NFT游戏开发教程2022的主要内容,如果未能解决你的问题,请参考以下文章