shapez.io 形状工厂
一款受 Factorio 启发的开源 2D 基地建造游戏,玩家通过切割、旋转、合并和染色几何图形来搭建自动化生产线,完整源码基于自研引擎与 JavaScript 实现。
爱鲜报评分
0.0
0 人评分
7k
星数
否
中文
JavaScript
主语言
是
活跃
301
贡献者
人工分析
EDITORIAL推荐理由
这是少数把完整商业游戏源码开源的项目,代码结构清晰、模块划分合理,非常适合研究浏览器端游戏引擎、渲染管线与自动化玩法设计。虽然官方已转向 shapez 2,但社区版仍在持续维护,学习价值依然很高。
适用场景
- 学习 2D 游戏引擎与渲染架构
- 研究自动化/工厂类游戏玩法设计
- 开发游戏 MOD 与自定义关卡
- 浏览器端 Canvas 性能优化实践
- 作为游戏开发教学与二次创作素材
优点
- 完整开源一款已上架 Steam 的商业游戏,参考价值极高
- 自研引擎代码相对干净,模块边界清晰易读
- 内置 MOD 系统与示例代码,扩展方便
- 支持多语言翻译,社区活跃(Discord)
- 纯 JavaScript + Canvas,无需复杂环境即可运行
缺点
- 官方仓库已停止活跃维护,新功能转向 shapez 2
- 基于 ES5 编写,部分写法偏老旧,缺少 TypeScript 类型
- 构建依赖 Node 16、Yarn、Java、ffmpeg 等多个工具链
- 游戏逻辑层存在较多 hack 代码,阅读门槛不低
上手难度
进阶
shapez.io 是什么
shapez.io 是一款受 Factorio 启发的开源 2D 基地建造游戏。玩家需要搭建传送带、开采机与加工设备,通过切割、旋转、合并、染色几何图形来完成越来越复杂的生产目标。游戏已在 Steam 上架,同时提供网页版在线试玩。
官方已推出续作 shapez 2(支持多层工厂、列车、流体等),本仓库不再活跃维护,持续开发请关注 Community Edition。
技术架构
游戏基于作者自研的引擎,核心与 YORG.io 3 共享,整体采用 JavaScript(ES5 为主) 编写,渲染基于 Canvas。
- 引擎层代码相对整洁,游戏逻辑层则带有较多历史包袱
- 出于性能考虑,刻意避免使用部分 ES2015 特性,例如关键循环中不用
Array.prototype.forEach - 资源文件统一打包进图集(atlas),修改后自动重建
构建与运行
构建前需要准备以下环境:
ffmpeg已加入 PATH- Node.js 16 与 Yarn
- Java(纹理打包工具依赖)
大致流程为:在根目录执行 yarn,进入 gulp 目录再次执行 yarn 与 yarn gulp,随后会自动在浏览器中打开调试版本。调试构建默认开启若干调试开关,可在 src/js/core/config.js 中调整。
MOD 与翻译
- MOD 资源与文档位于
mod_examples/目录,包含多个示例,方便快速上手 - 翻译文件位于
translations/,不过官方目前不再审核新的翻译提交
适合谁
如果你对浏览器端游戏引擎、自动化玩法设计或大型 JavaScript 项目工程化感兴趣,这个仓库是很好的学习样本;若只是想玩,直接前往 Steam 或官网体验即可。
评论
- 暂无评论,来写第一条吧。