免费开源游戏引擎 GDevelop:从克隆仓库到跑起编辑器、写出第一个扩展
【免费下载链接】GDevelop🎮 Open-source, cross-platform 2D/3D/multiplayer game engine designed for everyone.项目地址: https://gitcode.com/GitHub_Trending/gd/GDevelop
做游戏却不想啃引擎源码?GDevelop 把这条路铺平了:事件系统加模块化行为,2D、3D、多人游戏都能做,MIT 协议意味着你的作品可以随意发布和售卖。而这篇文章面向另一类人——想把功能塞进引擎里的你:给对象加一个新行为、让事件面板多一个动作。跟着走,一两个小时内你就能看到自己的扩展出现在编辑器里。
先认识仓库的 5 个顶层目录
在敲任何命令前,值得花两分钟搞清楚代码放在哪。仓库拆成职责明确的五块:
| 目录 | 干什么的 |
|---|---|
Core/ | C++ 核心类,定义游戏结构,支撑 IDE 与工具链 |
GDJS/ | 用 TypeScript 写的游戏引擎本体,2D 靠 PixiJS、3D 靠 Three.js 渲染 |
GDevelop.js/ | 把 C++ 核心编译成 WebAssembly 的 JS 绑定,供 IDE 调用 |
newIDE/ | 编辑器本体,React + Electron |
Extensions/ | 内置扩展,平台行为、物理、灯光、文本都在这里 |
记住一句话就够:你改扩展只碰Extensions/,改引擎才进GDJS/Runtime/。两者之间的桥梁是编辑器自带的 watcher——编辑器运行时它会自动重新构建引擎,改完代码直接跑一次场景预览即可生效。
GDevelop 编辑器界面,展示事件系统与对象属性编辑
装 3 样东西,然后跑起来
准备清单很短:Git、Node.js、一个顺手的代码编辑器(VS Code 即可,建议带上 Prettier 和 ESLint 插件)。Yarn 可有可无。
然后是最短路径:
git clone https://gitcode.com/GitHub_Trending/gd/GDevelop cd GDevelop/newIDE/app && npm install && npm startnpm start之后浏览器会自动打开本地服务,看到编辑器界面就算跑通了——这一步同时就是验证方式,不用额外跑测试。有两个高频坑先说在前面:Linux 上若报ENOSPC,是文件监视上限太低,调高 inotify 即可;想跑 Electron 桌面版,需保持npm start的终端不关,另开终端在newIDE/electron-app/里执行npm install && npm run start。
扩展长什么样:先读一遍官方示例
写自己的代码之前,先把Extensions/ExampleJsExtension/读一遍——仓库自带的示例扩展,声明、工具函数、行为、对象、PixiJS 渲染器一个不少,是最可靠的对照手册。
一个 JS 扩展固定由两半组成:
- 声明:文件名必须叫
JsExtension.js,放在Extensions/下你自己的目录里。它向 IDE 注册扩展名、动作、条件、表达式、属性和依赖; - 运行时实现:TypeScript 文件,按惯例叫
xxxtools.ts(通用函数)、xxxruntimebehavior.ts(行为)、xxxruntimeobject.ts(对象)。
行为要继承gdjs.RuntimeBehavior,关注构造函数、doStepPreEvents、doStepPostEvents这几个钩子就够了;对象则继承gdjs.RuntimeObject,再配一个 Pixi 渲染器。细节别硬记,写的时候对照示例文件抄结构。
GDevelop 开发的游戏作品,展示引擎在不同品类上的表现
验证与求助:控制台就是你的调试台
扩展改动不需要手动打包,编辑器开着时JsExtension.js和 runtime 文件的变更会被自动导入。判断是否成功就两条:改声明文件后在开发者控制台按 Ctrl+R(macOS 用 Cmd+R)重载,改 runtime 文件后重新跑一次预览。
卡住时,永远先打开开发者控制台:
- 启动时看到
Loaded x JS extensions.,说明扩展加载完成; - 看到
GDJS Runtime update,说明你刚改的文件已导入; - 出现红色报错就点开它,参数没传够、API 用错,绝大多数"静默 bug"都在这里现形。
官方文档在 GDJS/ 目录下有入口,运行时 API 的类级说明(RuntimeBehavior、RuntimeScene等)可直接在引擎源码旁读到;更深的架构问题,Core/GDevelop-Architecture-Overview.md 值得通读一遍。
下一步:挑一个官方扩展改个参数
别一上来就写新目录——先去Extensions/PlatformBehavior/这类成熟扩展里动一个数值或加一条动作,走一遍"改声明 → 看控制台 → 跑预览"的完整循环。等这条链路你闭着眼都能走通,再新建Extensions/MyExtension/,从JsExtension.js里声明一个最简单的动作开始,就是你的第一个真正属于 GDevelop 生态的扩展了。
【免费下载链接】GDevelop🎮 Open-source, cross-platform 2D/3D/multiplayer game engine designed for everyone.项目地址: https://gitcode.com/GitHub_Trending/gd/GDevelop
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考