
Candy引擎是一款由闲鱼技术团队开发的嵌入式、轻量级、易于开发和性能稳定的互动引擎。它的设计初衷是为了解决APP内嵌小游戏存在的一些隐患和问题,提供一种安全、友好、性能稳定的方式来实现APP内嵌小游戏。
这款引擎的缘起,是最近APP游戏化成为了一个新的风口,把一些好玩的、能吸引用户的娱乐方式或场景应用在应用中,增加用户粘性,提升DAU的效果,成本较低。在一些需要对用户有引导性的场景,游戏化还可以使用户更易于接受并完成引导性任务。
在选择开发这款引擎的技术路线时,团队主要考虑了三种方式:Native的游戏能力、游戏引擎如Cocos-2dx、Unity等,以及Flutter的轻量级互动引擎。综合考虑各种因素后,团队最终决定采用Flutter的轻量级互动引擎作为基础。
相较于其他游戏引擎,Candy引擎在设计上存在一些创新点和改进。它采用Flutter的跨端APP解决方案,天然具备2D绘制能力。Candy引擎在绘制系统、GUI系统、事件系统、动画系统、资源系统等方面都有独特的设计和优化。例如,绘制系统高度融合Flutter体系,游戏场景和Flutter UI支持无缝混排;动画系统对主流格式的支持友好且易扩展;资源系统复用APP的资源系统,确保整个APP只有一份资源库,减少内存开销和增大资源复用率等。
在框架设计上,Candy引擎分为接口层、游戏系统、游戏子系统、绘制系统等四个部分。其中,游戏系统是对标Unity设计的,有Game、Scene、GameObject和Component等四大元素。在生命周期管理上,Candy引擎设计了八个回调,基本可以满足互动游戏业务开发的需求。
除此之外,Candy引擎还注重性能与稳定性的测试和优化。在设计实现过程中遇到了很多问题,如Flutter在绘制过程中存在的内存、内存回收不及时等问题。针对这些问题,团队会进行详细的排查和解决,并对Candy引擎的性能与稳定性做详细测试分析。
Candy引擎是一款具有创新性和优化设计的互动引擎,旨在提供一种安全、友好、性能稳定的方式来开发APP内嵌小游戏。团队在后续会发布更多关于Candy引擎的具体设计实现的文章,包括渲染系统设计、动画系统、资源系统等方面的内容。团队也在进行持续的活动,欢迎有创想空间的社区产品、做深度顶级的开源项目的同学加入。
