多物理量模拟
在落沙颗粒之外,同时模拟气压与气流速度、热量、重力,以及物质之间的相互作用。
bwapi · bwapi/bwapi
BWAPI 是免费开源的 C++ 框架,用于与即时战略游戏《星际争霸:母巢之战》交互,供学生、研究者与爱好者编写能实际对局的 AI 代理。默认仅向 AI 暴露可见游戏状态,隐藏迷雾中单位信息并禁止用户输入,以便编写不作弊的 AI;这些默认设置...
《The Powder Toy》是一款用 C++ 编写、基于 SDL 的桌面版「落沙」物理沙盒。它把经典落沙玩法扩展成一套相当完整的物质模拟系统:除了颗粒堆积,还模拟气压、气流速度、热量与重力,以及不同物质之间数量繁多的相互作用。
README 用几个很直白的设问概括了它能做什么:想炸点东西?想操作一座核电站?想自己造一颗 CPU?这些都可以在游戏里尝试,而且不止于此。
游戏提供建材、液体、气体与电子元件等各类元素,可以搭建复杂机械、枪械、炸弹、逼真的地形,以及几乎任何你能想到的装置。搭好之后,你可以去挖掘它们、观看爆炸效果、布置精细的电路布线、摆弄小人,或者直接操作自己造的机器运转。社区里已有成千上万的存档可供浏览和游玩,你也可以上传自己的作品。
项目本身免费,源码以 GNU 通用公共许可证分发,因此你可以自行修改,也可以参与开发。
在落沙颗粒之外,同时模拟气压与气流速度、热量、重力,以及物质之间的相互作用。
涵盖建材、液体、气体与电子元件,可用于搭建机械、武器、地形等装置。
支持挖掘、爆炸、布线,以及操控小人等玩法。
可浏览并游玩社区制作的数千个存档,也能上传自己的创作。
可以自动化操作,甚至为游戏编写插件。
源码以 GPL 分发,欢迎自行修改或协助开发。
README 没有在正文中展开编译步骤,而是指向官方 Wiki 主页面上的「Powder Toy Development Help」一节,构建方法请以该文档为准。
获取游戏的方式:从 Powder Toy 官网下载最新版本,或在 Steam 上获取。若想使用保存存档等在线功能,需要在官网注册账号;官方论坛同样可以在网站上访问。
上手方式非常直接:用鼠标点选元素,然后像用画图软件一样在场地里绘制,剩下的就是观察会发生什么。
README 给出的常用按键包括:
TAB 在圆形、方形、三角形笔刷之间切换;[ 与 ] 调整笔刷大小,鼠标滚轮同样可以改变笔刷尺寸。空格 暂停,F 暂停并单步前进一帧。Z 缩放,0–9 切换视图模式。E 打开元素搜索,B 进入装饰编辑菜单。S 保存图章,L 载入上次保存的图章,K 打开图章库。P 或 F2 将截图保存为 .png。Ctrl + C/V/X 复制、粘贴、剪切,Ctrl + Z 撤销,Ctrl + Y 重做。Ctrl 拖动鼠标为矩形选区,按住 Shift 拖动为直线;中键或 Alt + 左键 取样元素。W 循环重力模式,Y 循环空气模式,U 开关环境热量,N 开关牛顿引力。F11 切换全屏。此外还支持命令行参数,例如 scale:SIZE 调整窗口缩放、kiosk 全屏模式、open FILE 打开存档或图章、ptsave:SAVEID 打开在线存档、disable-network 禁用网络连接,以及 cafile: / capath: 指定证书路径等。
这个项目适合作为「模拟类沙盒」的阅读样本:可以顺着元素定义与相互作用、气压与热量等物理量的更新、SDL 渲染与输入处理这几条线索阅读源码,再结合 Lua API 观察脚本层如何与模拟核心交互。由于构建细节集中在 Wiki,动手编译前建议先通读官方开发帮助,避免在依赖配置上走弯路。
Endless Sky 是一款 C++ 编写的 2D 沙盒式太空探索游戏,玩法接近 Elite、Esc...
OpenRCT2 是《过山车大亨 2》(RollerCoaster Tycoon 2)的开源重实现项目,...
OpenLoco 是 Chris Sawyer《Locomotion》的开源重实现,对应一款模拟经营运输...