Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图1)

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图2)01介绍

正如本系列的第一篇文章中所讨论的那样,区块链技术的当前状况使主流游戏行业无法在去中心化方面投入更多的资源。该行业面临的主要限制不仅包括区块链游戏可用的限制性计算能力,还包括缺乏实现软件开发所需生产力所需的工具。

在此背景下,Cartesi 提供了一个运行整个 Linux OS 的 Layer-2 区块链解决方案,以便可以使用主流工具和组件来开发应用程序逻辑。这可以从根本上提高生产力和可扩展性。最重要的是,Cartesi 的技术允许生成的 DApp 免受恶意代理的侵害,因为可以验证整个应用程序的执行并在链上强制执行正确的结果。所有这一切,同时仍然保持应用程序完全去中心化。

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图3)

上一篇文章中在 Cartesi 的德克萨斯州 HODL’em 展示应用程序上下文中介绍的回合制游戏智能合约,说明了 Cartesi 在游戏行业的实际用例中的愿景。有了这些合约,任何开发者都可以通过以任何偏好的语言实现其逻辑并使用主流软件组件在以太坊上创建回合制游戏,而无需编写一行 Solidity。在本文中,我们将进一步详细说明这些合约目前的工作方式,以及如何使用它们来开发任意回合制游戏。

说起中国象棋游戏其实已经有很悠久的历史了,现在越来越多的象棋游戏也是可以在线与好友共同切磋棋艺的,更是可以互动与棋友一同享受象棋游戏的精粹。

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图2)02体系结构

该框架基本上由一组智能合约组成,这些合约利用 Cartesi 的笛卡尔 SDK 为任何回合制游戏创建通用解决方案,以便在兼容 EVM 的区块链上开箱即用。智能合约可在 Cartesi 的公共 Github 存储库中获得,并且也已部署到 Polygon 的孟买 PoS 测试网。

天天象棋:

该框架的基本目标是允许开发人员通过使用主流工具构建其逻辑和 UI 来创建新游戏。游戏的 UI 应该使用 TurnBasedGame 智能合约来调解玩家之间的互动并解决任何争议。该框架假设游戏的结果应该导致玩家之间交换 ERC-20 代币。下图更好地说明了所有这些部分如何协同工作:

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图5)

由腾讯推出的《天天象棋》是一款棋牌类休闲游戏。顾名思义,这游戏以下象棋为主,而它的对局形式多种多样,对象棋爱好者来说,这是一款非常简单易上手的游戏。游戏画面的整体风格和音效都很复古,很符合象棋的意境。画面最大的特点是大部分游戏元素都取材自象棋的棋子和棋盘,与游戏主题保持了高度一致,但显得很单调,不符合现在年轻玩家的审美。音效的特点就是在对局过程中,棋子落到键盘上发出的碰撞声非常真实,给人强烈的真实感,从而弱化了无法手拿棋子的虚无感。

游戏全免费,没有充值项目,对所有玩家都是平等的,想在游戏中赢得对局只能靠自己的实力。想必这也是为数不多的全免费游戏了吧。而且象棋是中国传统文化中的精髓部分,借着腾讯这样的大型游戏平台,以大家都能接受的游戏方式传承下去,是值得点赞的。

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图6)

兵者:

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图7)

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图8)

《兵者》是一款将三十六计与中国象棋相结合的解谜游戏。游戏套用象棋棋盘的格式,遵循了象棋棋子的基本规则,“马走日,象飞田,车行直路炮翻山;士走斜路护将边,小兵一去不复返。”但是,《兵者》并不是一款象棋对弈的游戏,棋盘上留下的也不是象棋残局,所以你也会看到敌方有六个炮、四匹马、两个将这种“不合规矩”的阵势。

《兵者》的高明之处在于,套用象棋基理的同时,所表现的又超出象棋内容之外。《兵者》的每一关都与三十六计相关联,用象棋的棋局去解释三十六计的谜面,用仅有的小兵克敌制胜的过程,就是揭示三十六计主题思想的过程。《兵者》的核心在于破阵,这种意形合一的破阵设计需要耗费大量的精力,就实际体验来看,《兵者》完成得还不错。不管是玩法还是内容,《兵者》都算不上一款大作,但这样的小众作品,依然值得称赞。

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图9)

途游中国象棋:

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图10)

首先,游戏引擎集中了游戏的逻辑,可以认为是应用的“后端”。它可以用在 Linux 上运行的任何语言来实现。

在客户端,应向用户提供具有适当 UI 的前置客户端应用程序。当每个玩家轮到他时,它将利用游戏引擎执行必要的逻辑,跟踪游戏的状态。该应用程序还将与回合制游戏智能合约交互,以加入游戏、提交回合 / 移动,并在必要时提出争议。

在区块链上,回合制游戏大厅合约负责匹配想要使用相同参数玩相同类型游戏的用户。一旦玩家匹配,合约就会开始游戏并将每个玩家的 ERC-20 代币锁定在其中。当前的实现能够处理任何回合制游戏,并提供一种非常简约的玩家匹配方法。当然,可以使用更具体和 / 或复杂的匹配逻辑来开发替代的大厅合约。

主要的回合制游戏合约的目的是在其玩家之间调解游戏。它不知道任何特定游戏的内部逻辑,因此可以处理任何玩家质押 ERC-20 代币,依次提交轮次,最后根据游戏结果在他们之间重新分配这些代币的任何事情。在这种情况下,正常游戏的生命周期将包括以下与合约的交互:

作为途游游戏旗下颇受用户喜爱的游戏之一,途游中国象棋一直以高质量、高优质为产品理念,将打造精品放在首位,为广大象棋爱好者提供多种玩法。早前,途游中国象棋每天活跃用户超过30万,在棋类应用下载中一直热度颇高。途游中国象棋功能完善,玩法丰富多变,在线对弈中设置了严谨的积分成长体系,同时支持人机对弈,可选择从新手到大师的多个难度级别。老少皆宜,适合全民天天玩的经典棋牌游戏。

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图11)

在这个焦躁的年代,很少有人能静下心来下一盘象棋,于是强大的移动平台被利用了起来,各种手机象棋游戏层出不穷,不仅可以利用碎片时间放松自己,也能在节奏越来越快的生活中得到精神上的放松。

↓↓↓ 点击"阅读原文" 【下载相关应用】

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图12)

当游戏开始时,会发出一个事件来通知玩家的客户端应用程序一切都已设置并准备就绪。然后,玩家通过将数据作为不透明的字节对象发送来提交回合,这些数据被记录在链上作为无可争议的游戏日志。这与避免任何数据可用性问题相关,因为在发生争议的情况下,只有在保证必要数据可用的情况下才能进行验证。因此,数据通常应该存储在链上。但是,这对可以使用的数据大小造成了一定的限制,即使对于像 Polygon 这样的侧链,它仍然最多限制在几十 KB。未来,Cartesi 的 Noether 侧链可用于为数十兆字节的大块数据提供廉价的短期存储,这将进一步拓宽去中心化应用的可能性。

在任何时候,都可以调用回合制游戏合约 来挑战游戏状态,无论是在游戏过程中抗议非法移动,还是在结束时对声称的结果提出异议。在任何情况下,当前的实现都假设当游戏受到挑战时,它不再安全地进行下去。合约因此停止接受任何新的回合提交象棋技巧,收集整个记录的游戏日志,并调用笛卡尔合约来触发一个计算来验证正确的结果,然后在链上执行。

验证计算本身由笛卡尔验证器节点在链下执行,该节点使用特定于游戏的验证器 Cartesi 机器重播所有提交的回合。这台机器启动整个 Linux 操作系统,因此能够执行客户端应用程序中使用的相同游戏引擎,即使同时保留证明所执行计算正确性的能力。因此,验证器能够安全地计算游戏的真实结果,除此之外,它还应该包括逻辑来决定是否以及如何在出现不当行为的情况下惩罚玩家,例如提交非法移动或声称错误结果。玩家通常也应该因无故触发挑战而受到惩罚。

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图2)03构建游戏:国际象棋

国际象棋游戏原则上足够简单,可以直接在第 1 层上执行,也可以使用任何其他第 2 层技术。然而,作为一个回合制游戏,它也是一个很好的例子来说明如何使用 Cartesi 在兼容 EVM 的区块链上轻松实现此类游戏,而无需编写任何 Solidity——但仍确保它们是完全可验证的!我们的公共 Github 存储库中提供了此国际象棋游戏的有效实现(没有客户端应用程序)。

构建它的第一步是编写游戏引擎,它本质上可以是在 Linux 上运行的任何东西。对于此示例,我们将简单地使用名为 chess.js 的 Chess 的现有 JavaScript 实现。需要注意的是,对于更复杂的应用程序,这不是推荐的方法,因为 Cartesi 机器在 RISC-V 仿真器中运行,因此应该使用编译语言或库来提高效率。

由于这是 JavaScript,我们可以先在主机上使用 Node.js 处理引擎的逻辑。例如:

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图14)

之后,我们可以将此代码放在一个文件中,并使用 webpack 等工具将所有依赖项捆绑到一个 .js 文件中。然后可以使用包含的 QuickJS 解释器在 Cartesi 机器内执行此包。就是这样:我们现在有一个国际象棋引擎,它运行在 EVM 兼容区块链的第 2 层解决方案上!

当然,我们不只是执行预定义的国际象棋运动,而是希望根据其日志真正重播特定比赛,并确定在出现不当行为时该怎么做。为此,当我们的验证器被实例化时,它将从回合制游戏合约接收以下信息:

元数据:玩家之前商定的游戏可选参数;这可能包括超时限制或起始板配置;

玩家:参与的玩家及其各自在游戏中锁定的资金;

转元数据:告知哪个玩家在什么时间提交了哪个回合;

转数据:玩家提交的移动顺序;内容是特定于游戏的,在这种情况下,将对应于以标准代数表示法 (SAN) 表示为字符串的国际象棋走法——例如上面使用的“b3”和“g5”走法;

验证信息:通知哪个玩家挑战游戏并触发验证;如果结果是由玩家声明的,它还包括声明的结果和声明的人。

因此,完整的机器需要包含代码来读取和解释这些数据,以便为国际象棋验证器提供数据。此外,如上所述,它还应包括惩罚非法移动、虚假声明或任何其他类型不当行为的逻辑。幸运的是,这一切都可以在主机上使用主流工具来实现和测试,就像任何常规软件一样,以确保一切都按预期工作。这是一个巨大的生产力提升,真的很难夸大。

在设置并完成所有实现之后,我们需要通过将所有代码捆绑到闪存驱动器中来有效地创建验证器 Cartesi 机。然后可以使用指向测试数据的输入驱动器执行机器,以确保验证器也在 Cartesi 的 RISC-V 仿真器中正确运行。最后,我们可以构建在笛卡尔验证器节点中使用的最终 Cartesi 机器模板,它不会使用测试数据,而是期望在实例化时由笛卡尔自动填充这些输入驱动器。

毋庸置疑,要完成一个完全可操作的游戏的实现,应该创建一个具有良好用户界面的适当前端应用程序。实际上,这可以是使用相同游戏引擎的任何客户端应用程序,因此可以是桌面、Web 甚至移动应用程序。唯一的要求是应用程序必须与部署的智能合约交互才能加入和开始游戏。游戏开始后,它应该与其他玩家交流棋步,这通常通过将每一回合提交到回合制游戏合约来完成。可选地,可以使用其他技术来最小化每次提交作为交易的需要。例如,应用程序可以允许玩家之间使用签名消息(例如状态通道)进行直接通信,并且在发生争议时仅提交包含完整游戏日志的回合。当然,这需要验证机还包括用于分析和验证玩家签名的逻辑。

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图2)04部署和运行

要设置实际使用的游戏,第一步是将验证器 Cartesi 机部署到笛卡尔验证器节点,当请求游戏验证时,该节点将被调用。出于开发目的,可以使用笛卡尔 SDK 环境,它在本地运行所有内容,并且已经包含两个验证器节点。

在实际部署中,可以考虑几种替代的验证器节点拓扑。在仲裁设置中,应用程序本身定义了一组第三方验证器节点,以便在发生争议时使用。另一方面,在以用户为中心的拓扑中,玩家自己安装和运行自己的验证器节点。回合制游戏合约允许这两种设置,最终由客户端应用程序在提交加入和开始游戏的请求时定义。

无论是真实部署还是开发部署,即使没有客户端应用程序,也始终可以对游戏进行测试。为此,该项目提供了许多安全帽任务,允许玩家通过从命令行与回合制游戏合约通信来加入、开始并与任何游戏完全交互。

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图2)05结论

在本文中,我们展示了如何利用主流软件组件和工具,使用 Cartesi 在兼容 EVM 的区块链上轻松部署回合制游戏。展示了一个示例,其中使用 JavaScript 中可用的现有库快速开发国际象棋游戏,而无需接触任何 Solidity。

回合制游戏的用例说明了我们的愿景,即使用 Cartesi 的可验证计算 VM 来释放去中心化应用程序的潜力,从而显着提高区块链应用程序开发的复杂性和生产力。

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图2)06下一步是什么

Cartesi 增加区块链应用程序复杂性的潜力将在本系列的下一篇文章中进一步探讨,我们将深入探讨使用 C++ 库实现复杂的心理扑克引擎。与国际象棋一样,此引擎实现将与回合制游戏合约结合使用,以构建德州 HODL'em,这是有史以来第一个为以太坊区块链构建的完全去中心化的扑克游戏。

有兴趣深入研究回合制游戏合约吗?通过申请我们的赠款计划,支持我们的超级明星研发团队的举措或探索新的举措。立即申请 Cartesi Labs!

Cartesi 如何改变游戏:展示国际象棋手机象棋软件哪款好用?3款象棋软件推荐 象棋技巧(图18)