JumPHP,用于复古 2D 游戏的 PHP 游戏引擎
用 PHP 编写一次游戏:它就能在 Windows、macOS 和 Linux 的窗口中运行,也能在电脑和手机的浏览器中运行。免费开源(MIT 许可证)。
JumPHP 是什么?
JumPHP 是一个用 PHP 编写复古 2D 游戏的框架。在桌面端,游戏运行于 PHP 8.5 及 SDL2、OpenGL 和 OpenAL 扩展之上:真正的窗口、声音和手柄。在浏览器中,同一个 PHP 8.5 和同样的扩展被编译为 WebAssembly:OpenGL 变成 WebGL,OpenAL 变成 Web Audio,游戏就是一个普通的静态网页。
一切(PHP、Composer、Emscripten、Web 服务器、测试)都在 Docker 中运行,只需一个命令:bin/jumphp。
引擎提供的功能
- 场景、实体、动画精灵、摄像机和现成的菜单。
- 瓦片地图(Tiled 编辑器或文本行),支持斜坡和单向平台的碰撞检测。
- 键盘、手柄、鼠标和触控操作,在一个动作配置文件中描述。
- 生成或加载的音效(wav、ogg、mp3)、音乐和 3D 定位音效。
- 使用 OpenGL / WebGL 实现 3D 和后期处理,可置于 2D 之下或之上。
- 通过中继服务器实现在线多人游戏,以及 HTTP 请求、存档和多语言翻译。
- 繁重的计算放到线程或 Web Worker 中,永不阻塞帧。
- 真正会玩游戏的测试,以及无需屏幕的截图。
你可以用它做什么
平台跳跃、街机、射击或赛车游戏,根据原版 Amstrad CPC 磁盘重制的 8 位游戏,还有桌面应用(HTML 页面加 PHP,基于 Tauri)、不用 HTML 的图形应用和命令行程序。
完成的游戏可以变成网页、适用于 Linux 和 Windows 的单个可执行文件、安装程序、Android 或 Apple 应用,也可以发布到这个 playground 上。
开始使用
composer create-project jumphp/jumphp my-games
cd my-games
bin/jumphp new breakout "BREAKOUT"
bin/jumphp install breakout
bin/jumphp run breakout
新游戏是一个小而完整的平台跳跃游戏(菜单、关卡、玩家、金币),你可以把它改造成自己的作品;bin/jumphp build 会把它变成网页。之后只需 Docker:PHP、Composer 和 Emscripten 都在它的容器中运行。
或者在工作室里描述你的游戏:你的 Claude 会用 JumPHP 编写它并发布到这里。 创建游戏 →
深入了解
- 文档和教程
- JumPHP IDE – 为你的 PHP 游戏和应用打造的免费 IDE
- 引擎扩展
- 用 JumPHP 制作的游戏
- 源代码 · Packagist
常见问题
JumPHP 免费吗?
是的。JumPHP 采用 MIT 许可证开源,jumphp.net playground 也是免费的,无论是玩游戏还是发布游戏。
制作游戏需要安装 PHP 吗?
不需要。PHP 8.5、Composer、Emscripten 和测试,全部通过 bin/jumphp 命令在 Docker 中运行。玩家只需要一个浏览器,或者游戏的可执行文件。
同一份代码能同时在桌面端和浏览器中运行吗?
能。浏览器运行的是编译为 WebAssembly 的同一个 PHP 8.5 和同样的扩展。只需遵守几条规则:永远不要阻塞帧,网络和文件操作都通过引擎进行。
可以使用 Composer 包吗?
可以,只要它们是纯 PHP 编写的:浏览器中不存在任何额外的 PHP 扩展。