本页目录

开源体素游戏引擎 Luanti(原 Minetest)

luanti · luanti-org/luanti

Luanti(原 Minetest)是一个免费开源的体素游戏引擎与游戏创作平台,强调易于制作模组和创建游戏。项目以 C++ 开发,涉及 Lua 模组生态,采用 LGPLv2.1+ 许可。适合想搭建体素世界、开发沙盒游戏或扩展模组的开发者了解与参与。

益智解谜 无明确引擎 JavaScript 游戏状态管理 UI 系统 渲染技术 入门
★ Stars 992 Forks 398 License 未明确 更新 2026-10-31

国内开发环境适配

Windows
未知
Linux
未知
macOS
未知
引擎 / 框架:无明确引擎 暂无中文教程标记 未标记站长实测
项目依赖 jQuery,需自行引入 jQuery 与 blockrain.css;国内环境建议将依赖本地化,避免依赖不稳定 CDN。README 未给出构建步骤或包管理器安装方式,具体依赖版本与兼容性待核验。

中文项目介绍

Blockrain.js 是一个把经典俄罗斯方块(Tetris)封装成 jQuery 插件的网页小游戏组件,面向的是「在自己的页面里快速嵌入一个能玩的方块游戏」这类需求,而不是要发行一款独立游戏。README 开头即点明它是「HTML5 + JavaScript 的俄罗斯方块(带自动游玩)」,并在致谢中说清楚血统:代码源自 @mrcoles 的 HTML5 俄罗斯方块实现,被认为是最优秀的同类版本之一,之后经过修改与重构,被包装成 jQuery 插件,并额外补充了大量方法,让主题替换与页面集成变得简单。这一背景意味着它的价值更多在于「可复用的游戏组件 + 可读的方块逻辑」两层,而不是画面或内容体量。

接入流程非常轻量,README 用三步讲完:先在页面里创建一个任意标签的元素(div、article、figure 都行),并务必通过 CSS 给它设定明确的宽度和高度;然后引入 jQuery 与 blockrain.js;最后用 $('.game').blockrain() 完成初始化。样式表被「强烈建议」引入,因为它为界面提供了若干关键样式,当然也可以按需改写成自己的视觉风格。示例里用的是 250×500 像素的容器,这也暗示了它按容器尺寸铺排棋盘的取向,容器本身并没有被插件强行限定成固定尺寸。

主题系统是这个插件最花心思的部分。开箱即用的主题包括 candy、modern、retro、vim、monochrome、gameboy、aerolab,以及后来加入的 custom。自定义主题通过向 BlockrainThemes 追加对象来完成,可配置的字段包括主背景色 background、可选的背景网格 backgroundGrid、覆盖标准配色的 primary(下落中的方块)与 secondary(已落定的方块)、方块描边 stroke、用于增加质感的内描边 innerStroke,以及按七种方块(line、square、arrow、rightHook、leftHook、rightZag、leftZag)分别指定颜色的 blocks 映射。backgroundGrid 除了纯色外还能接受 base64 编码的纹理图片,README 就用一个复古 vim 主题做了示范。更进一步,complexBlocks 允许为每一种方块单独指定图片路径,还可以传数组让插件为每个方块随机挑一张图,README 甚至打趣说「现在你连正方形块都能旋转了」;但前提是图片必须与仓库自带的自定义方块素材保持相同的旋转角度与宽高比格式。

核心功能

核心特性

可调选项覆盖了从玩法到手感的各个层面:autoplay 让机器人接管操作、autoplayRestart 在机器人失败后自动重开,从而形成永不停的演示循环;showFieldOnStart 决定开始界面是否铺一排随机方块以增强观感;theme 接受主题名或主题对象;blockWidth 控制棋盘横向格数(标准为 10 格);autoBlockWidth 与 autoBlockSize 组合则改为根据容器尺寸动态计算格子大小,README 明确说这对响应式背景很有用;difficulty 提供 normal、nice、evil 三档;speed 数值越大下落越快。界面文案也被开放成选项,包括开始提示 playText、按钮文字 playButtonText、结束提示 gameOverText、重开按钮 restartButtonText 与分数标签 scoreText。回调方面有 onStart、onRestart、onGameOver(score),以及消行时触发的 onLine(lines, scoreIncrement, score),可以拿到本次消除行数、本次得分增量与总分,足以对接外部计分板或统计。

运行时控制通过 jQuery 插件惯用的「字符串方法名 + 参数」方式分派:start、restart、gameover 用于推进局面,pause 与 resume 处理暂停恢复,autoplay(true|false) 随时开关机器人,controls(true|false) 开关玩家输入,theme 可以在运行时切换主题名或直接传入主题对象,score 则直接返回当前分数。这种设计让游戏状态能被宿主页面的其他逻辑(按钮、菜单、教学引导)随意驱动,也是它作为「组件」而非「页面」的体现。工程侧,README 说明执行 gulp build 会产出 /build 下的完整压缩源码,其内容本质上是 License、依赖库、主题与源码依次拼接后再压缩,主题示例可参考 src/blockrain.jquery.themes.js。

运行环境上,它是一个纯前端浏览器组件,只需页面能加载 jQuery 与两个静态文件,不依赖后端服务;官方演示站挂在 aerolab.github.io 上,可以直接打开试玩、观察自动游玩与主题切换效果。不过 README 并未给出正式的浏览器兼容矩阵,也没有说明 npm 发布方式、版本号策略或许可证细节,这些都需要到仓库中另行核验;国内环境使用时,把 jQuery、blockrain.js 与 blockrain.css 本地化托管通常比依赖境外 CDN 更稳妥,若要用 gulp 构建则需自备 Node 环境与依赖源。

技术架构分析

技术要点

适合从它身上学的东西相当具体:一是 jQuery 插件的标准封装范式,即 $.fn 扩展配合方法名字符串分派、链式返回与选项默认值合并;二是把棋盘状态、下落、消行、计分组织成一个小型游戏循环的思路;三是主题与素材的抽象分层,把配色、纹理、贴图从逻辑里剥离出来;四是 autoplay 所代表的简易自动决策实现,可以当作入门级的游戏 AI 观察样本。需要注意的是,README 未提及自动化测试、性能基准与移动端触控支持等细节,若用于正式产品,应当先在目标浏览器与设备上实测其表现。

开源许可证与版权说明

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

相似项目