引擎归 C++,玩法归 Lua:一个打砖块游戏的分层写法
Posted on 五 02 10月 2026 in Tech • Tagged with tech, lua, cpp, sdl, sol2, game, gamedev
想改一下小球的速度,却要等三分钟重新编译整个 C++ 工程——这是自己拿 C++ 写游戏时最劝退的一件事。这篇借一个真实的 SDL 打砖块项目(eliasdaler/sdl_breakout)讲清楚一种分层写法:C++ 只当"引擎",负责窗口、渲染、音频、输入这些慢变的底层;游戏玩法整个搬到 Lua,改了存盘就生效。文章拆解 sol2 怎么把 C++ 的类和函数暴露给 Lua、GC 怎么接管 SDL 资源,最后附上我把它移植到 macOS 时踩的三个坑和改法。代码引用来自该项目 master 分支,移植改动在 macOS + Apple clang 上实测。
Continue reading