终端 ASCII 画面
游戏完全在终端中运行,使用 ASCII 字符表示玩家、野兽、方块等元素,例如玩家为 `◄►`,普通野兽为 `├┤`,超级野兽为 `╟╢`,蛋为 `○○`,孵化后的野兽为 `╬╬`,可移动方块为 `░░`,静态方块为 `▓▓`。
beast · dominikwilkowski/beast
这是一款用 Rust 编写的终端 ASCII 游戏,它致敬 Dan Baker 等人于 1984 年推出的同名作品 BEAST。该项目已发布到 crates.io,包名为 beast1984,并提供 Homebrew 安装方式。游戏需要 POSIX 兼容终端(采用 stty 风格的模式切换),只能...
BEAST 是一款用 Rust 编写的终端 ASCII 游戏,它是对 1984 年由 Dan Baker、Alan Brown、Mark Hamilton 和 Derrick Shadel 共同创作的经典 ASCII 游戏《BEAST》的致敬之作。该项目由 Dominik Wilkowski 开发,已发布至 crates.io,包名为 beast1984,并提供了 Homebrew 安装方式。游戏完全运行在终端中,采用 ASCII 字符绘制画面,玩家需要操控角色在关卡中移动方块来碾压野兽,体验复古的街机乐趣。
README 中明确说明,游戏需要 POSIX 兼容的终端(即支持 stty 风格的模式切换),因此只能在类 Unix 系统上运行。Windows 用户需要通过 WSL(Windows Subsystem for Linux)来安装和运行。项目使用 Rust 语言构建,代码结构清晰,并提供了详细的安装、玩法、高分榜、与原版差异等文档章节。
游戏的目标是在一系列关卡中生存下来,通过移动方块来碾压野兽。具体规则如下:
◄► 表示,每回合可以移动或推动方块。├┤)会向玩家位置移动,玩家可以用可移动方块(░░)将其碾压。╟╢)更难杀死,必须将其挤压在静态方块(▓▓)上才能消灭。○○)在关卡开始时处于休眠状态,但会随时间孵化成孵化野兽(╬╬)。游戏完全在终端中运行,使用 ASCII 字符表示玩家、野兽、方块等元素,例如玩家为 `◄►`,普通野兽为 `├┤`,超级野兽为 `╟╢`,蛋为 `○○`,孵化后的野兽为 `╬╬`,可移动方块为 `░░`,静态方块为 `▓▓`。
玩家需要移动方块来碾压野兽,野兽会每回合向玩家位置移动。随着关卡推进,会出现超级野兽、蛋等更具挑战性的敌人。
游戏内置与在线服务器同步的全局高分榜,玩家可以输入自己的名字与全球玩家竞争,前 100 名会被保存。
支持通过 Homebrew 或 Cargo 安装,也可以从源码构建。
作者在 README 中详细列出了与原版的不同之处,例如棋盘尺寸从 38x21 扩大到 50x30,增加了全局高分榜、帮助屏幕分页、背景颜色动画等,同时移除了原版中的拉拽方块、爆炸方块和多人模式等功能。
cargo test 进行测试,并遵循 cargo fmt 格式化规范。stty 风格模式切换,实现非阻塞输入和屏幕刷新,确保在类 Unix 系统上流畅运行。游戏提供了多种安装方式:
brew tap dominikwilkowski/beast https://github.com/dominikwilkowski/beast.git,然后 brew install dominikwilkowski/beast/beast,最后运行 beast 即可开始游戏。cargo install beast1984,然后运行 beast。git clone https://github.com/dominikwilkowski/beast.git,进入目录后执行 cargo build --release。注意:游戏需要 POSIX 兼容终端,Windows 用户需在 WSL 中运行。
该项目适合对 Rust 语言和终端游戏开发感兴趣的开发者学习。通过阅读源码,可以了解如何在终端中处理输入输出、实现游戏循环、设计简单的 AI 寻路算法以及管理游戏状态。同时,项目结构清晰,测试完备,是学习 Rust 项目组织和测试编写的良好范例。
id Software 公开的初代 DOOM 源代码,限非盈利使用。README 说明:运行仍需...
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...
Frogatto & Friends 是一款 2D 横版动作冒险游戏,主角是一只青蛙;开发团队...