↓ Skip to main content
  1. Posts/

翻到 2017 年的简历,我才想起自己还做过一个游戏

·1095 words·3 mins
Note: This article is available in Chinese only. 本文暂无英文版本。 View original

很多项目随着工作年限增加,会自然从简历里消失,这很正常。但从简历里消失,不代表这些事情没有发生过。

最近翻到了自己 2017 年的简历,用 LaTeX 写的。看到这一段:

塔防类游戏《像素战争》(类似《部落冲突》) 小组合作;使用 Unity 3D 以及 PlayMaker,主要负责 AI 算法和游戏逻辑的编写。

《像素战争》。看到这几个字,我才发现自己已经快忘记当时到底做了什么。要不是这份简历还在,我大概不会想起自己做过这么一个东西。

于是想趁还记得一些,把能想起来的写下来。

这是个什么项目
#

2017 年的大三暑假,学校组织了一次工程实训,我们小组合作做了这个叫《像素战争》的游戏。

玩法大致类似《部落冲突》:玩家把角色放到地图上,之后就不直接控制它们了,角色会自己行动、找目标、战斗。

用到的技术,能确定的有 Unity、C# 和 PlayMaker。PlayMaker 是 Unity 上一个可视化的状态机插件,不用写代码也能搭逻辑。当时应该有一部分逻辑是用它搭的,具体哪些用了它、哪些是自己写的 C#,记不清了。

我在小组里负责游戏 AI 和游戏逻辑。简历上写的“AI 算法”,和今天大家说的 AI 完全是两回事。2017 年说的游戏 AI,指的是游戏里角色行为的逻辑,也就是放下去的角色怎么自己动起来,跟机器学习没有关系。现在再看简历上“主要负责 AI 算法”这一行,还挺有意思的。

还记得的部分
#

游戏里应该有好几种角色。印象里近战和远程都有,具体几种、各自叫什么,想不起来了。

角色放下去之后怎么行动,具体实现我已经记不清了。按玩法推测,大致过程应该是:寻找目标,移动,进入攻击范围,攻击,目标死了再找下一个。不过这也只是合理猜测,当时的实现我没法确认,有没有做寻路也说不准。NavMesh 我没什么印象,就不猜了。

还有一个词,到现在都记得很清楚:空气墙。

空气墙在这个项目里至少有两个用途。一是限制玩家可以在哪些区域放置角色,不是哪里都能放;二是防止这些自动行动的角色跑出地图边界。角色会自己移动,没有这个限制,大概会直接走出地图。

项目里那么多逻辑都忘了,我却还记得这个词。

最后那几天
#

这个项目还有一件事,我一直记得。

当时我正准备出去实习。实训到了最后阶段,我需要提前离校,第二天就要到海翔广场旁边的酒店报到。

项目最后是做完了的。只是到了最后调试阶段,我已经不在学校,还有一部分游戏逻辑没调通,就和室友远程结对编程,一点一点把剩下的逻辑调完。

那几天,工程实训还没完全收尾,实习又已经开始,最后一部分游戏逻辑就是在这中间调完的。

收尾
#

这个项目没有留下什么。代码不知道还在不在,截图大概率也没有了。如果现在去翻硬盘,估计翻不出什么。

所以只能先写这么多。至少下次再想起《像素战争》的时候,这篇东西还在。

Related

BattleBlock Theater linux下无法启动的解决办法 ( void* MemoryBlock::Alloc(unsigned int): Assertion failed )

·213 words·1 min
在steam上买了 BattleBlock Theater, 官方说支持linux,但是却无法启动。 在steam里启动看不到log,于是找到游戏的安装目录。 /home/coder/.steam/steam/steamapps/common/BattleBlock Theater 在终端下启动,报错: BattleBlockTheater: /media/BGBS/BBT_Linux/Core/MemorySystem.cpp:161: void* MemoryBlock::Alloc(unsigned int): Assertion ‘(!“Got request for zero bytes!”)’ failed. ^C[1] 22303 abort (core dumped) ./BattleBlockTheater

写在毕业八年之后

·3343 words·7 mins
好久没在博客上写东西了。确实是因为比较忙,但还是要写一写、做一些输出,不然人的表达能力是会退化的。 人生目标 # 上周五研发部开 all-hands meeting,有人问老板他的人生目标是什么。问这个问题的背景是,和他一样达到财务自由的人,有一些已经躺平享受生活了。

2022 TO DO list

·407 words·1 min
竟然一下子就2022年了,时间过得真快。 还是简单列一下TODO list吧。 源码 # levelDB workflow 书籍 # APUE # Advanced Programming in the UNIX Environment, 3rd Edition

使用github actions来部署 github pages

·1240 words·3 mins
目前我的博客是部署在 GitHub Pages 上,源码是一个 repo,渲染出来的静态页面是一个 repo。更新的时候是把后者作为前者的 submodule。 感觉这种方式有些落后了,简直和某司内部的平台有的一比。因此尝试用 GitHub Actions 来自动化这个部署流程。

2020年终总结

·1280 words·3 mins
本来不知道写什么所以不打算写了,不过后来觉得可以把今年做的一些重大的决定写出来,把当时的分析和想法记录下来。这样若干年后再回看,就能找到:是哪些明智或愚蠢的决定对人生产生了巨大的影响。