Show HN: Rewriting Scratch 3.0 from scratch in Lua (browser-free native runtime)
4 months ago
- #GameDevelopment
- #Scratch
- #LÖVE
- ScratchLove是用Lua为LÖVE框架原生重实现的Scratch 3.0运行时环境,旨在突破浏览器限制
- 支持桌面端、移动端、嵌入式Linux系统、游戏主机和掌上游戏设备等多种平台
- 特性包括:完整Scratch 3.0兼容性、跨平台支持、通过LuaJIT实现高性能、基于IR的编译器和优化通道
- 额外功能:延迟加载、自动清理、视觉效果、SVG渲染和基于颜色的碰撞检测
- 当前限制:仅支持画笔扩展;缺少用户输入、麦克风输入和完整云变量支持
- 安装需要LÖVE 11.x,运行测试可选装LuaJIT
- 使用方式:支持本地.sb3文件运行、Scratch项目ID加载或拖放操作
- 利用LÖVE的跨平台能力分发至Windows、macOS、Linux、Android、iOS及掌机设备
- 项目结构包含:编译器、虚拟机、渲染器、画笔、音频、加载器、解析器、UI、工具类、resvg、测试和库目录
- 开发技巧:调试模式运行、跳过编译、使用超时机制进行测试
- 贡献准则强调类型注解、测试覆盖、文档规范和代码风格
- 许可证:GNU Affero通用公共许可证v3.0(AGPL-3.0)
- 鸣谢TurboWarp、Scratch团队、LÖVE及所有贡献者