起因想要用 TS/JS 做一个桌面端小游戏,但选择框架的时候,但是发现并没有一个很好的选择。
- Electron 过于庞大,内部集成了 node.js 和 chrome 谷歌浏览器
- Tauri 虽然客户端小,但是使用系统自带的 WebView 渲染,会导致不同机器运行结果不一致
于是我准备使用 xbintsc,去编译这款桌面小游戏。
首先 xbintsc 优势:
- 构建体积小,最小可达 200kb ,编译可选 node 扩展(支持部分 node.js 的 API)最小可达 300kb ,编译可选 GUI 扩展(可视化界面 HTML 渲染)最小可达 3MB
- 冷启动速度是 node.js 的 120 倍+,且原生支持 HTML+CSS 渲染。
- 全平台支持(使用 LLVM 构建不同平台二进制产物,使用 GPU 的 SDL 进行渲染并在不同平台使用 Vulkan/Metal 进行编译)
直接让 AI 开发了鹈鹕骑车小游戏,并使用 xbintsc 编译了,截图如下:
编译后的结果大概是 5M 左右,运行效果很流畅,当然直接打开源码的 HTML 也可以直接玩。
小游戏源码地址:https://github.com/zy445566/xbintsc/tree/main/examples/gui/pelican-bike
当然有兴趣下载鹈鹕骑车小游戏编译结果,也编译了多个不同平台 windows/mac/ubutun26+的版本。
编译结果地址:https://github.com/zy445566/xbintsc/releases/tag/v0.3.69
选择 pelican-bike-demo-v0.3.69-multi-platform.zip 下载,解压后选择自己的平台就能运行。
由于该游戏目前没有做签名,所以可能会有系统的安全性拦截。 macOS 打开后需要:打开“系统设置” → “隐私与安全性”,向下滚动到“安全性”,选择“仍要打开”运行。 Windows 打开后,如出现“Windows 已保护你的电脑”,点击“更多信息”,点击“仍要运行”。
大家有兴趣,也可以用 xbintsc 编译一款自己的小游戏,甚至可以跟 Ai Agent 说“用 xbintsc [ https://github.com/zy445566/xbintsc ] 帮我生成一个鹈鹕骑车小游戏”
