很多项目随着工作年限增加,会自然从简历里消失,这很正常。但从简历里消失,不代表这些事情没有发生过。
最近翻到了自己 2017 年的简历,用 LaTeX 写的。看到这一段:
塔防类游戏《像素战争》(类似《部落冲突》) 小组合作;使用 Unity 3D 以及 PlayMaker,主要负责 AI 算法和游戏逻辑的编写。
《像素战争》。看到这几个字,我才发现自己已经快忘记当时到底做了什么。要不是这份简历还在,我大概不会想起自己做过这么一个东西。
于是想趁还记得一些,把能想起来的写下来。
这是个什么项目#
2017 年的大三暑假,学校组织了一次工程实训,我们小组合作做了这个叫《像素战争》的游戏。
玩法大致类似《部落冲突》:玩家把角色放到地图上,之后就不直接控制它们了,角色会自己行动、找目标、战斗。
用到的技术,能确定的有 Unity、C# 和 PlayMaker。PlayMaker 是 Unity 上一个可视化的状态机插件,不用写代码也能搭逻辑。当时应该有一部分逻辑是用它搭的,具体哪些用了它、哪些是自己写的 C#,记不清了。
我在小组里负责游戏 AI 和游戏逻辑。简历上写的“AI 算法”,和今天大家说的 AI 完全是两回事。2017 年说的游戏 AI,指的是游戏里角色行为的逻辑,也就是放下去的角色怎么自己动起来,跟机器学习没有关系。现在再看简历上“主要负责 AI 算法”这一行,还挺有意思的。
还记得的部分#
游戏里应该有好几种角色。印象里近战和远程都有,具体几种、各自叫什么,想不起来了。
角色放下去之后怎么行动,具体实现我已经记不清了。按玩法推测,大致过程应该是:寻找目标,移动,进入攻击范围,攻击,目标死了再找下一个。不过这也只是合理猜测,当时的实现我没法确认,有没有做寻路也说不准。NavMesh 我没什么印象,就不猜了。
还有一个词,到现在都记得很清楚:空气墙。
空气墙在这个项目里至少有两个用途。一是限制玩家可以在哪些区域放置角色,不是哪里都能放;二是防止这些自动行动的角色跑出地图边界。角色会自己移动,没有这个限制,大概会直接走出地图。
项目里那么多逻辑都忘了,我却还记得这个词。
最后那几天#
这个项目还有一件事,我一直记得。
当时我正准备出去实习。实训到了最后阶段,我需要提前离校,第二天就要到海翔广场旁边的酒店报到。
项目最后是做完了的。只是到了最后调试阶段,我已经不在学校,还有一部分游戏逻辑没调通,就和室友远程结对编程,一点一点把剩下的逻辑调完。
那几天,工程实训还没完全收尾,实习又已经开始,最后一部分游戏逻辑就是在这中间调完的。
收尾#
这个项目没有留下什么。代码不知道还在不在,截图大概率也没有了。如果现在去翻硬盘,估计翻不出什么。
所以只能先写这么多。至少下次再想起《像素战争》的时候,这篇东西还在。
从简历上消失的项目不代表没有发生过。只是如果不记下来,它们可能就真的只存在于几年前的一份 LaTeX 文件里了。