Ant 引擎的一些改进计划
内容提要
本文讨论了游戏引擎的开发和改进,包括针对不同游戏类型的框架和对Ant引擎的使用和改进。作者认为可视化编辑器不重要,更需要快速验证游戏设计想法的功能。作者还讨论了UI上的工作和对RmlUI方案的满意度,以及动画模块和材质系统的改进。最后,作者提到了对手机平台游戏开发的不感兴趣和对引擎的简化和改进的计划。
延伸解读
独立开发者的引擎取舍:够用就好
作者作为Ant引擎唯一活跃用户,独自开发游戏三个月,发现引擎缺失的同时,也明确了现阶段引擎“够用就好”的定位。这种取舍源于独立开发者的现实:精力有限,游戏开发优先。作者更享受引擎完善带来的顺畅感,但游戏开发中“手跟不上心”的烦闷促使他先完成手头项目。这提醒我们,工具改进应服务于当前目标,而非追求完美。
UI与游戏逻辑的通信设计:死锁与异步
文章指出UI层和游戏逻辑跑在不同Lua VM和线程,通过RPC通信,但游戏逻辑中阻塞调用会导致死锁。作者通过封装model对象自动同步差异数据来缓解,但认为ECS可能需要async stage来更自然地处理异步流程。这反映了多线程架构下通信设计的复杂性,以及引擎抽象需要平衡易用性与灵活性。
半透明渲染:性能与易用性的矛盾
运行时将对象改为半透明渲染的需求,暴露了引擎材质系统的不足。作者最终采用预生成半透明材质并打patch的方案,因为不透明与半透明在渲染管线上有本质性能差异。作者认为理想情况是开发者只需设置参数,而引擎应解决底层复杂性。这体现了引擎设计需要在性能优化和开发者体验之间找到平衡。
平台策略与未来简化方向
作者不打算在手机平台开发游戏,因此计划简化引擎中为手机支持增加的复杂度,如远程调试、VFS同步、触摸屏支持等,同时增强PC开发体验,尤其是美术资源自动编译。此外,材质编译模块过于复杂,计划改进;gfx层可能用Vulkan重写,并更关注2D管线。这些计划都指向一个方向:让引擎更专注于PC和2D游戏开发体验。
Q&A
Ant引擎的改进计划主要包括哪些方面?
Ant引擎的改进计划包括针对不同游戏类型的二次封装框架、UI层和游戏层的消息通讯改进、动画模块和材质系统的优化,以及简化引擎复杂度以增强PC开发体验。
作者对可视化编辑器的看法是什么?
作者认为可视化编辑器不重要,更需要的是快速验证游戏设计想法的功能,因此暂时不维护可视化编辑器。
在使用Ant引擎时遇到了哪些问题?
使用Ant引擎时,作者遇到缺乏API文档的问题,导致只能阅读源代码,并且对某些模块的设计不满意,常有修改引擎的冲动。
作者对RmlUI方案的满意度如何?
作者对RmlUI方案比较满意,但指出UI层和游戏层的消息通讯存在设计问题,需要改进。
材质系统的改进需求是什么?
材质系统需要改进,特别是在运行时半透明渲染的需求上,涉及到性能优化问题。
作者对手机平台游戏开发的态度是什么?
作者不打算在手机平台上开发游戏,认为在触摸屏手机上玩游戏失去了兴趣,因此希望简化引擎的复杂度以增强PC开发体验。