Lyra武器中的远程武器蓝图代码。
Lyra初学者游戏包(简称Lyra)中的游戏角色、弹药和其他“轻量级”交互功能都采用蓝图实现。在游戏中,这些功能不像武器或伤害系统需要访问核心代码,因此完全可以用蓝图来设计。下文会说到,C++代码可以暴露给蓝图。许多核心功能都能在蓝图中使用。蓝图不是虚幻引擎的一种封闭式编程语言,而是一种让非程序员编程的方法,团队中的所有人都能通过蓝图扩展C++代码。
C++
使用C++,你可以访问更底层、更广泛,更核心的虚幻功能。你可以修改引擎和编辑器的核心功能,以满足你的项目需求。如果你想修改引擎,改进管线,你需要用到C++!
访问源代码就意味着,你可以编写涉及大量计算的功能,或是快速功能,因为你可以访问更底层的功能。你可以创建游戏核心系统,或是需要大量计算或网络操作的系统。
根据对象的类类型来选择蓝图还是C++。
Actor该用什么语言编写?
游戏是由一系列常见的核心Actor和类组成的,比如游戏模式、游戏状态(或游戏实例)、Pawn/角色。这些都是游戏运行所必需的,设置这些Actor和类是每个团队都必须要做的工作。
你可能会想,某些Actor是否就一定适合只用某种固定类型的语言编写。对于核心Actor来说,答案是“对”,一种语言可能比另一种语言更有利。但归根到底,最终取决于团队架构和团队具备的技能。如果团队中程序员比较少,可能会倾向于使用蓝图。我们将以Lyra为例,研究FPS游戏中的核心Actor什么时候适合用蓝图,什么时候用C++。
案例分析
Game State - Lyra的游戏状态使用了C++,因为它负责处理游戏的状态/阶段逻辑。就像之前说的,需要进行大量计算,或涉及持久计算的游戏功能,最好使用C++实现。考虑到潜在的网络处理逻辑(包括客户端和服务器),使用蓝图会影响性能。