Rustic:完善的纯粹 Rust 技术栈实现的国际象棋引擎,多平台支持(甚至包括嵌入式设备树莓派)

2022-06-30 16:48:07 浏览数 (1)

一个朋友咨询想自己做一个游戏平台,特别提到棋类的完善。在游戏概念发展上,要比目前的游戏平台全面,跟上时代潮流。比如拿国际象棋来说,要引入近几十年国际象棋发展中,产生的新概念。

但笔者并不懂游戏开发,所以说不出什么门道。笔者偶尔玩的游戏也有限,最喜欢的莫过于国际象棋。和朋友沟通后,一时兴起搜索了下开源界。仅就国际象棋而言,发现了一个很有趣的游戏引擎,特此发个短文分享给 Rust 爱好者。

这款国际象棋游戏引擎叫做 rustic,是 2019 年下半年开始开发的。纯粹 Rust 技术栈实现,目前仅有星星 30 个左右。作者完全是从头开发的,未从任何其它国际象棋引擎做任何派生。但是,rustic 集成了许多近几十年产生的新概念,包括国际象棋的玩法和编程开发方面。作者说:该引擎站在过去的国际象棋引擎巨人的肩膀上。

引擎特性

国际象棋的概念和新发展,笔者不做赘述,感兴趣的可以自行搜索。仅就游戏引擎的编程开发和实现方面,rustic 实现了如下功能特性:

  • 游戏引擎
    • 位板展示
    • 魔术移动
    • 换位表
    • UCI 协议
  • 游戏搜索
    • Alpha/Beta 搜索
    • 静默搜索
    • “将”位扩展
  • 移位顺序
    • TT 移位优先级
    • MVV-LVA
  • 游戏评估
    • 棋子盘点
    • 游戏桌计算

目前正在开发的功能特性包括:

  • XBoard 协议
  • 搜索中的修建项完善
  • 游戏暂停/结束时的锥形评估
  • 更多评估术语
  • 惰性 SMP
  • ……

用户界面

一款游戏,直接展示给玩家,并和其交互的用户界面非常重要。目前,一些开源的用户界面已经非常完善和精美。所以 rustic 引擎不提供自己的用户界面,而是使用 UCIXBoard 协议,与图形用户界面进行通信。

当前,rustic 引擎已经可以与以下游戏用户界面集成:

  • Arena Chess GUI
  • XBoard/Winboard
  • CuteChess
  • Tarrasch
  • The Shredder GUI
  • Fritz / Chessbase series
  • Scid vs PC (database)
  • Banksia GUI

有些用户界面未有列出,但 rustic 引擎作者很热情。如果 rustic 引擎使用者想集成到其它自己感兴趣的用户界面,可以提出 PR,rustic 引擎作者将免费(免费程度未知)支持。

平台支持,包含桌面版本

目前,rustic 引擎提供很多平台支持,甚至包括嵌入式设备树莓派 Raspberry Pi、Buster 等。

  • Windows(包括 Windows 10)
    • 32 位,通用版
    • 64 位,通用版
    • 64 位,旧版本
    • 64 位,popcnt
    • 64 位,bmi2
  • Linux(目前主要是测试在 Debian 8 稳定版及以上,但其它 Linux 版本也支持)
    • 64 位,通用版
    • 64 位,旧版本
    • 64 位,popcnt
    • 64 位,bmi2
  • 树莓派(Raspberry Pi、Buster)
    • 32 位

如前文所述,最主要的是,rustic 引擎作者很有激情,支持力度相当大。如果喜欢国际象棋游戏,又不想在网上乱七八糟的游戏平台泄露个人隐私的话,可以自己架一个游戏服务器,和好友,或者其它匿名玩家快乐地下棋。

当然,rustic 引擎和其支持的用户界面,对于用户注册、聊天、记分,以及其它互动是完全支持的。只不过笔者个人,喜欢匿名游戏平台,不用注册,没有聊天交友一类乱七八糟的拓展,就是去随机下一盘棋。

谢谢您的阅读!

参考资料:

  • rustic github 仓库
  • rustic 官网及文档
  • 开源的游戏类用户界面,见文章“用户界面”一节

0 人点赞