我差点忘了自己有多想念游戏开发。

过去我的开发工作大多集中在应用上,但第一个孩子即将出生,我发现自己又想重新开始做游戏了。

当游戏开发者意味着把一个已经能正常运转的系统拿来过度工程化。到目前为止,敌人导航就是这样的系统之一。我使用Godot内置的导航功能,在运行时构建导航图——它会扫描关卡中的站立点,然后在它们之间创建行走、攀爬、下落和跳跃连接。

实际上,跳跃连接是通过敌人的物理和碰撞箱模拟出来的,所以只有敌人能物理上清除路径并成功着陆时,连接才会存在。A*算法负责路径规划,而敌人会复用建图时已验证过的发射速度。

如果我更改了重力、移动速度、跳跃高度或敌人大小等参数,导航图也会自动重建。

可能比实际需要的复杂得多。老实说,构建这样的东西让我想起了当初为什么热爱游戏开发。

在即将成为父亲之前重新发现这种感觉,真是有趣的体验。