DOOM 开源引擎源码(id Software 初代 DOOM)
id Software 公开的初代 DOOM 源代码,限非盈利使用。README 说明:运行仍需...
game-off-2012 · lulea/game-off-2012
Zoko 是一款基于经典 Sokoban(推箱子)玩法的 3D 益智游戏,可在支持 WebGL 的现代浏览器中运行;目标是用尽量少的步数把所有箱子推到指定平台上。项目使用 HTML5、CSS3、CoffeeScript、WebGL、jQuery 和 Font Awesome,README 给出在线...
这个项目是 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 这类实时全栈框架给游戏做排行榜和第三方账号登录的思路。需要注意的是,代码年代较早、依赖版本敏感,阅读时应把重点放在结构与玩法逻辑上,而不是照搬其依赖版本。
id Software 公开的初代 DOOM 源代码,限非盈利使用。README 说明:运行仍需...
Frogatto & Friends 是一款 2D 横版动作冒险游戏,主角是一只青蛙;开发团队...
NBlood 是用 EDuke32 引擎技术与开发思路对 Build 引擎游戏所做的逆向工程移...