【年度总结】2016年度总结
发布于:2016-12-31 20:22,阅读数:1695,点赞数:19
> 2016年度总结,做了些什么。 > > 非技术文,适合所有人群食用。 # 季度一:找画师,做游戏,设计AI 去年十二月实习结束回到家中,终于也是尝试了做了一次游戏。其实开始做的时候就知道最后会没有结果,但我却非常喜欢我当时的状态。最终画师花钱找了,游戏逻辑也基本出来了,最终做出了个可以玩的Demo。 游戏简单的说就是`GalGame`形式(仅仅是形式相似,不要想歪😂)的剧情播放,战斗为群殴版`口袋妖怪`,最高5V5的设定,回合制按照速度先后战斗。有进攻有辅助,简单放几张图吧。 女主的人设来自[「@宁海」](http://www.weibo.com/liloi),非常喜欢的画师:  战斗立绘来自[「@宁海」](http://www.weibo.com/liloi)和[「@戳戳」](http://www.weibo.com/u/5466495449):  ### 界面 当然客户端是我做的。 UI一塌糊涂先不说,玩玩感觉还不错。拖动技能到目标头上就可以了,我方所有人物设定好后开始放动画战斗,像战舰少女那样弹出立绘和技能效果。在游戏方面我去年尝试过`cocos2d`,学了一番以后还是毅然决定自己做引擎。硬是用`UIKit`和`SpriteKit`的粒子效果撸出来了。 菜单和简单的移动动画全部由`CoreAnimation`承担,高效且帧率高。技能特效用`SpriteKit`的粒子效果实现,效果一般。 ### 动态 语言方面自然是`Pure Swift`,在剧情设计、人物设定和关卡设计上,用的是同一套解决方案。用老古董`Borland`家的`C++ Builder`撸出个工具来制作事先商定协议的`JSON`字符串配置文件。加载时利用了`iOS`的所谓`闭包红利`,将`JSON`挨个全部解析成闭包存入数组,播放时按顺序把整个数组按顺序跑一遍就好了。 事实上我在很早就想到了这个方案,最终写出来以后也确实可行,效率高而且绿色,跑的非常好。 #### 战斗 战斗方面涉及到了AI操作的问题。那段时候恰巧`Alpha GO`下围棋赢了人类,因此我做的也特别带劲。先说结论,在这样的游戏里,人类赢不了AI。 简单讲一下设计思路吧:5V5,每个人3个技能,有群攻有单体有buff,场面复杂。每个人需要做2个决定:用哪个技能(打还是治疗还是buff),目标(打谁,治疗谁,buff给谁)。 用哪个技能?如果我可以治疗,我方刚好有残血的要被干掉的人,而我方这回合也并不能把敌人全部干掉,那我肯定需要先治疗我方的人。有攻击爆棚的人,我恰好可以再加攻击buff,如果加了buff能直接团灭敌人,那我肯定选择加攻击buff。 打谁?例如我方A位单体攻击技能,能攻击的就只有敌方ABCDE五个敌人,那么也就是5种情况。但我作为玩家,我肯定选择满足以下情况的对象打: - 敌方血最少的这一下能打死的 - 敌方ABC三个我都能打死,但C攻击最高或C剩余血量最多,我肯定先打C - 敌方攻击最高威胁最大的 所以我可能只需要考虑其中的2~3种情况即可达到收益最高的攻击。 在这种情况有限,可能性也不算太多的情况下,我可以跑穷举法。定义战场得分,将每一种情况的战场得分都跑出来,之后选择得分最高的即可。 为什么我说人类赢不了AI?因为这种游戏里,AI可以作弊。我的AI跑分可以安排在玩家决定操作以后,将玩家的操作也加入跑分里。这会发生什么事?敌人一个群攻把我AB两个人打残血了,而我的人物治疗只能治1个,那么我治疗A,AI就会打死B,我治疗B,AI就会打死A。而同样的情况下发生在对方身上,接下来一回合就是我打A他治疗A,我打B他治疗B,完全干不过。我在游戏中引入了随机数浮动伤害给人类增加了一点胜算,如果打出的伤害没有浮动,人类将无法赢过AI。 我给游戏分了难度,噩梦难度AI将会作弊,其他难度AI跑分将不考虑玩家操作,但同样厉害的不得了,可以看下面这张图,完全一样的配置,大战31回合,想赢太难了。  游戏最终夭折了,有自己的原因,也因为广电当时出了规定,直接掐死了个人游戏开发者。感谢陪我疯了三个月的孩子们,也感谢免费帮我做卡面的同学。虽然花了一些钱画了一些人设,但是那种在家卯足了劲做自己的东西的状况,我可能一辈子就这一次了。 关于这个夭折的项目最对不起的是[「@桃子」](http://www.weibo.com/316318777),放一张最初的截图,90度鞠躬道歉。  # 季度二:玩手办,拍学校,毕业 放一些图吧,手办很好看,学校也很美。总之,真是舍不得学生时代。 #### !!!醒目!!!这里开始是粘土人      #### !!!醒目!!!这里开始是学校      最后,我还带了一次假发,此生无憾了! ####  临走前还收了一份基地小伙伴给的自制手表。 # 季度三、四:工作和技术交流 也放几张图吧,也是个很美的地方。    工作跟我想象中的有区别。小团队,也没有很好的管理,人手不够,感觉任务都是乱糟糟的,很突然的。半互联网,不用加班,加班也没加班工资。工资不多,却很自由。迟到没事,请假不用办手续,自己研究自己的。 前两天刚做了年终总结。虽然没有系统地接受管理和培训,但半年以来自己却折腾了不少东西。基本能想到的在这半年都做过了,从`Andorid`,`iOS`,`PC`,到`Linux`,`Web`和`后端`,以及`三维`,`视频解码`,`AR`,`VR`。 在知识深度上仅在`iOS`底层有所长进,从进入[「@bestswifter」](https://bestswifter.com)的面试群开始认识了一大堆圈内的人。包括但不仅限于[「@酷酷的哀殿」](http://www.jianshu.com/users/486bf26e8dce/latest_articles)、[「@Joy」](http://www.jianshu.com/users/9c51a213b02e/latest_articles)、[「@halfrost」](https://halfrost.com)等等大神,人实在太多了不一一列了。另外致力于推动使用`Pure Swift`作为`iOS`乃至后端开发,用`Swift`做了自己的[「博客」](http://blog.yuusann.com)以及管理工具。总体说来,在技术深度上做的事情太少。 在知识广度上是膨胀的半年。新基础了上面提到的很多领域,尽管仍然没有接触到团队主要方向——计算机视觉,但我也不觉得多造点轮子有什么坏处。 # 结语 不忘初心,专注技术。
评论:0条