本页目录

开源竞技音游 Quaver(垂直下落式节奏游戏)

Quaver · Quaver/Quaver

Quaver 是一款由社区驱动的开源竞技类垂直下落式节奏游戏,包含两种游戏模式与在线排行榜,并内置谱面编辑器与多人模式。项目使用 C# 编写,基于 .NET 8 SDK 与 MonoGame,采用 MPL 2.0 许可证;已在 Steam 上架,支持 Windows、Mac 和 L...

动作游戏 休闲 其他 JavaScript 角色控制 碰撞检测 敌人 AI 游戏状态管理 中级
★ Stars 812 Forks 113 License MPL-2.0 更新 2026-11-13

国内开发环境适配

Windows
AI 推断/待核验
Linux
AI 推断/待核验
macOS
AI 推断/待核验
引擎 / 框架:其他 暂无中文教程标记 未标记站长实测
浏览器游戏,无需本地编译;项目依赖为前端库,README 未提供国内镜像或 CDN 说明。演示页托管在 GameJolt,国内访问可能不稳定,建议核验或改为本地运行。

中文项目介绍

《Raging Gardens(狂怒菜园)》是 2012 年 GitHub Game Off 游戏开发挑战赛的参赛作品,并在官方公布的获奖名单中获得荣誉提名(Honorable Mention)。它是一款完全运行在浏览器里的 HTML5/JavaScript 小品级街机游戏,主题设定非常直白:晴朗的农夫菜园里,一只饿着肚子的忍者兔溜进来偷拔胡萝卜,但盯上这片菜地的显然不止它一个,一群同样饥饿的对手正快速逼近。玩家要做的就是在有限时间里尽可能多地把胡萝卜拔到手,同时用各种不那么正经的“兔忍术”把竞争者赶开。游戏体量不大,但从玩法循环、素材制作到工程组织都相当完整,是一次典型的 Game Jam 式产出。

核心玩法围绕一条三分钟倒计时展开。玩家用方向键在菜园地图上移动忍者兔,靠近胡萝卜后按住 Z 键(在部分键盘布局下也支持 Y 键)持续拔取,才能把萝卜从土里拉出来。对手会不断靠近争抢,此时有两种反制手段:其一是按 Q 键,消耗一根已获得的胡萝卜,让兔子放屁把身边的对手推开;其二是按 W 键,消耗两根胡萝卜,在当前位置放置一个“胡萝卜叉图腾”作为诱饵,把敌人吸引过去,从而为自己争取到去别处继续拔萝卜的时间。也就是说,胡萝卜在这个游戏里同时是“分数”“弹药”和“道具成本”,玩家需要在得分与消耗之间不断做取舍,这让规则极简的操作具备了基本的策略张力。

核心功能

核心特性

技术实现上,项目使用了 Crafty.js 这一 JavaScript/HTML5 游戏引擎来搭建场景与实体,并组合了多个当时流行的前端库:jQuery 负责常规 DOM 与工具性操作,Backbone.js 提供模型抽象,Require.js 作为模块加载器组织代码结构,Modernizr 用于检测浏览器对 HTML5/CSS3 特性的支持情况。敌人寻路方面引入了 javascript-astar,这是 A* 搜索算法的一个 JavaScript 实现,让靠近菜园争抢胡萝卜的对手能够在地图上绕开障碍向目标移动。README 还特别提到,整个游戏是在 Cloud9 这个在线 IDE 中开发完成的,对当时的 Web 开发者来说是一个颇有代表性的工作流选择。

素材方面,游戏的美术与图形由 Stremena Tuzsuzova 专门为《Raging Gardens》创作;背景音乐使用的是 OpenGameArt 上 HaelDB 的曲目 “trouble-in-the-garden”;音效则来自 freesound.org 上多位作者(skinhat、Walter_Odington、thanvannispen、HerbertBoland、Erdie、annannienann、Syna-Max、HardPCM、djgriffin 等)的采样,作者用 Audacity 对几乎所有样本做了剪辑与处理以贴合游戏氛围。授权上需要注意:游戏代码部分采用 MIT 许可证,但不包含游戏美术,也就是说代码可以自由复用,美术资源并不能随代码一起按 MIT 处理,二次使用需要另行确认。

技术架构分析

技术要点

运行环境方面,这是一款纯前端的浏览器游戏,仓库 README 给出的浏览器支持表显示:Chrome 23.0/24.0 与 Firefox 17.0/18.02 可正常游玩,Safari 5.1.7 与 IE 10.0 虽被标记为支持,但带星号说明——在这两个浏览器下游戏音效当时无法正常播放。README 并未针对具体操作系统给出说明,因此在不同桌面系统上的表现需要实际打开页面核验。除仓库源码外,作者在 GameJolt 上提供了在线试玩页面,可以直接在浏览器里体验,无需安装。

如果把它当作学习材料,这个项目适合用来观察几件事:Crafty.js 的实体/组件式写法如何组织玩家、敌人、胡萝卜与图腾这类对象;Require.js 在小型游戏里怎样拆分模块;A* 寻路在“敌人追逐目标物”这种简单 AI 场景中的落地方式;以及用消耗型资源(胡萝卜)同时驱动计分、推击和诱饵三套机制的设计思路。同时也要注意它的时代局限:代码写于 2012 年,依赖的库版本与现代浏览器和构建工具链存在差距,音效格式在部分浏览器上仍有兼容问题,直接照搬到今天的项目里通常需要替换或升级依赖。

开源许可证与版权说明

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

相似项目