本页目录

Zoko:浏览器 3D 推箱子(Sokoban)

game-off-2012 · lulea/game-off-2012

Zoko 是一款基于经典 Sokoban(推箱子)玩法的 3D 益智游戏,可在支持 WebGL 的现代浏览器中运行;目标是用尽量少的步数把所有箱子推到指定平台上。项目使用 HTML5、CSS3、CoffeeScript、WebGL、jQuery 和 Font Awesome,README 给出在线...

动作游戏 休闲 Three.js JavaScript 角色控制 碰撞检测 游戏状态管理 音频系统 中级
★ Stars 16 Forks 4 License 未明确 更新 2026-03-16

国内开发环境适配

Windows
AI 推断/待核验
Linux
AI 推断/待核验
macOS
AI 推断/待核验
引擎 / 框架:Three.js 暂无中文教程标记 未标记站长实测
为浏览器端游戏,README 声明在 Chrome 与 Firefox 测试;依赖 Meteor 运行环境,仓库与演示站(committer.meteor.com)当前可访问性与服务状态待核验;3D 模式需 WebGL,手柄支持依赖浏览器 GamePad API;音频与图片资源托管在原演示域名,可能无法加载。

中文项目介绍

这个项目是 GitHub 在 2012 年举办的 Game Off 游戏创作活动中提交的参赛作品,仓库名为 game-off-2012,游戏标题是 Core Committer(核心提交者)。它把一个开源项目的日常协作流程做成了街机式的小游戏:玩家扮演项目的核心提交者,需要挑选一个开源项目,并通过把不断落下的代码块分拣到正确的分支上来帮助这个项目成长。README 开头还附带了游戏预告片的 YouTube 链接和一张海报图,说明这是一个带完整包装(宣传片、教程图示、音乐)的 jam 作品,而不是单纯的技术原型。

玩法规则在 README 的 Instructions & Story 一节里写得很具体。屏幕上会掉落代码块,玩家要让代码块撞上颜色与之对应的分支,颜色匹配即为正确处理,颜色不匹配则会损失生命值;同时可以用攻击激光(空格键)主动摧毁那些颜色与当前分支不匹配的代码块。分支并非静态:当玩家摧毁了匹配的代码块,或者摧毁了一个空块时,分支状态会发生改变,改变后的分支会亮起,代码流也从另一个方向涌入,这就要求玩家不断重新判断当前的正确颜色。星星同样会朝分支方向移动,玩家需要在星星抵达分支时用提交者角色去收集,收集到的星星会让项目变得更受欢迎。整体节奏会随时间推移不断变难,作者在 README 里提醒玩家要提前做好准备。

操作方式覆盖键盘与手柄两套。键盘上,方向键负责移动,q 与 w 对应小于号与大于号方向的传送,TAB 键执行顺时针传送,空格键发动攻击,E 键用于进入或退出 3D 视角。手柄方面,玩家需要在进入游戏模式(即通过菜单之后)时插上手柄并按按键,右下角的 Gamepad 指示应显示为 on;如果手柄无法识别,README 建议先用 HTML5 Rocks 的手柄测试页验证设备是否可用,并提醒同一个浏览器标签页同一时间只能被手柄占用,测试完成后要关闭测试页。作者列出实际测试过的控制器包括 XBOX360 手柄、Logitech F310 GamePad 与 Attack3 Joystick,以及 PS3 手柄。

核心功能

核心特性

在功能层面,README 明确列出了几项特性:游戏同时提供 2D 与 3D 两种模式,因此同一套玩法可以在平面和立体视角之间切换;兼容支持 WebGL 的浏览器,3D 部分基于 three.js;作者在 Chrome 与 Firefox 中做过测试,其中 HTML5 GamePad 支持在 Chrome 下可用;游戏带有最高分与最近成绩的排行榜;支持通过 GitHub 账号授权登录来保存自己的分数;此外还内置了三首被作者形容为 wub wub 的背景音乐,并且可以关掉音乐。

技术实现方面,README 的 Tech Used 一节列出了完整的技术清单:后端与整体框架使用 Meteor,3D 渲染使用 three.js(WebGL),样式使用 Compass / SASS,浏览器特性检测使用 Modernizr,工具库使用 Lo-dash,DOM 操作用 jQuery,手柄输入则依赖 HTML5 GamePad API。也就是说,这个作品没有使用传统意义上的游戏引擎,游戏循环、碰撞判定、分支状态机与计分逻辑都由作者自己编写,three.js 只承担 3D 场景与渲染,Meteor 则更多用于分数与账号相关的服务端能力。源码的安装步骤写在仓库的 INSTALL.md 中。

平台与获取方式上,这是一个运行在浏览器里的网页游戏,项目主页为 committer.meteor.com,理论上可以在任意装有现代浏览器的桌面系统上运行,但 README 只声明在 Chrome 与 Firefox 下测试过,并未对操作系统做出官方声明,实际是否仍可在线游玩需要自行核验该域名是否还在服务。由于作品诞生于 2012 年,Meteor 的版本与依赖都相当古老,想从源码重新构建大概率需要考古式的环境配置,不能期待开箱即用;GitHub 登录与分数保存也依赖外部网络。仓库中没有提供打包好的可执行文件或压缩包下载链接。音乐来自 Flembaz 的 Indigo 作品集,以 Creative Commons 许可使用,游戏中出现的项目名与商标归各自所有者。

技术架构分析

技术要点

适合从这个项目学的东西比较集中:一是如何在纯 Web 技术栈里组织一个带状态机、计分、生命值与难度曲线的小游戏;二是 three.js 与 2D 画面混合、并在两种视角间切换的实践;三是 HTML5 GamePad API 的实际接入与兼容性排查方法;四是用 Meteor 这类实时全栈框架给游戏做排行榜和第三方账号登录的思路。需要注意的是,代码年代较早、依赖版本敏感,阅读时应把重点放在结构与玩法逻辑上,而不是照搬其依赖版本。

开源许可证与版权说明

许可证标识:未明确。源码、资源与依赖许可可能不同,请以官方仓库为准。本站仅做索引,不托管源码。

相似项目