文章目录
- 前言
- 1. 我算是合格的开发者了吗
- 2. 我算是正式的游戏人了吗
- 3. 我算是成熟的社会人了吗
- 4. 我算是什么样的写作者呢
- 最后
前言
2022年的这个时候,我也是在准备着年终总结,只不过应公司要求,准备述职晋升,是抱着升职加薪,走向全新阶段的心态,和当下一比,倒还生出一丝时移势易,物是人非的感觉。
感谢csdn的推送提醒,今年虽然没有被要求做总结,但是反而更有主动的积极性去盘点过去一年内发生的种种。过去发生的事情已成定局,比起抱怨,指责,抑或是感慨,去思考去总结才是更理智的行为。从另一种意义上说,它就像是一种劣质的穿越时空的手段,去跟过去的自己,未来的自己建立单向的交流,从过去汲取信息,并将这些信息记录传达给未来。这也是这篇总结的核心目标。
1. 我算是合格的开发者了吗
作为一名虚幻引擎使用者,我在虚幻风格的C++代码环境(以及蓝图脚本工具环境)中工作,在游玩逻辑(runtime)的撰写时可以借助虚幻搭建的反射系统,通过书写一些虚幻风格的C++代码来利用一些便利的功能,比如垃圾回收,序列化等等;甚至于可以借助虚幻的继承结构来搭建核心Gameplay结构,这一部分的研究要多谢大钊老师的InsideUE5系列文章,在虚幻编程的内功修炼部分要多感谢他的引导和启发。
2022研究及使用Gamplay开发所涉及到的虚幻内容:
2022研究及使用编辑器开发所涉及到的虚幻内容:
过去一年的学习和工作对我最大的收获是终于可以将“虚幻C++”当作纯的C++来看待。网络上有太多教程甚至于文章将虚幻里的代码称为“虚幻C++”,这种说法在我现在看来是有一些不负责任的,因为既然是作为教程,就代表着对虚幻编程有了一定的认识,而直接使用“虚幻C++”这种说法,将虚幻里的C++编程作为一门更高深的学问去研究,是有一些强行通过技术拔高自己地位的嫌疑。我在前面会使用“虚幻风格的C++”来描述就是担心会误导看这些文字的人,因为虚幻会大肆使用C++的中的某些特性(通过宏进行标记,利用UHT进行代码生成,进而实现的反射系统),从而令代码变得似乎有别于学校里学习的C++代码,换句话说,所有虚幻里看不懂的代码,都可以通过C++本身的特性进行解释。
所以过去一年的很多精力都投入到基本C++语法和用法的回顾上,针对虚幻反射机制,着重关注宏定义的用法;针对虚幻编辑器部分的开发,着重关注智能指针以及Lamda表达式相关的一些内容。方法除了阅读网络上的一些文章教程,主要还是读书。当了这么多年冲浪者,回过头才发现书中自有黄金屋的真谛,网络是个大卖场,想淘到黄金自然比不上直接去黄金屋。看的书主要是三本,复读了一遍《C++ Primer》,初步阅读了《Essential C++》和《Essential C++ Plus》 。C++是一门远比我现在了解到的更加复杂的一门语言,当然在进行工程开发时并不需要对其所有特性都逐一了解,但是我知道对这些细节点进行了解即便是短期来看也不是毫无意义的,很多内容虽然不会在我所处的领域内发光发热,却都是这个语言本源的东西,每多了解一个点都可以令我对这门语言的认识更上一个台阶。
除此之外,过去一年里还进行了一段时间的leetcode刷题,并写了一些文章进行思路梳理,可惜后来因为一些时间和安排上的原因没有继续下去。我还是希望能够继续并尝试形成习惯,其实对于游戏开发来讲算法的应用并不是特别重要,反而是其中涉及到的数据结构的应用在某些时候颇具启发性。
总的来说,我认为程序开发是一项逻辑缜密并且流程严谨的工作。其中逻辑体现在语法、算法和数据结构的掌握和灵活使用上,从而为程序赋予了多种多样的可能性;流程则更多的关乎于程序长期的一些素质,比如说代码是否具有良好的扩展性,是否支持长期使用和维护,是否能够与他人其他模块建立良好的协作。当然这两者并不是完全独立,逻辑缜密会自然形成潜在的工作思路,而严谨的流程会使逻辑更加容易得变得缜密。
当然我这里的说法并不是从学术出发的论述,而是完全依据学习和工作中的体悟。但是即便我将开发者的要求简化到逻辑缜密和流程严谨这两条,我过去一年的工作却也很难说是对其进行了充分的贯彻。从我前面的描述来看很明显是在往“逻辑缜密”上下功夫,而“流程严谨”则并没有成体系的修炼路线。在工程学中,设计、实现、验证、完善是一个基本的工程进行及完善的过程。以这样的理论作为迈向“流程严谨”的第一步,这样我可能才算是真正合格的开发者吧。
2. 我算是正式的游戏人了吗
年初的《埃尔登法环》为所有玩家呈现了一幅宏伟游戏画卷,年尾的《战神5》为自己系列画上句号的同时也给这一年送上最后一道大餐。
《黑神话》,《百相千面》,《失落之魂》,《燕云十六声》,国产3A也着实令人期待。
但是看到这样的景象我的心情是比较复杂的,过去的一年里参与了两个类似的项目(出于对团队的尊重并不会有更多项目的细节),都有成为与之角逐的作品的潜力,但作为开发参与者我也都明明白白清楚项目中存在的一些问题——美术内容与项目进度的问题,程序承担的角色和着力点的问题,等等。我会迫切得想要问一句是不是上面那些作品的开发过程中是否也有这样的问题,但是既然是竞品可能这个问题永远也问不出答案来。
每天思索着这些问题,并且完成既定的开发任务,那么算是正式的游戏人了吗?
对技术进行积累是不希望在游戏开发过程中令技术问题成为游戏项目推进的瓶颈,但是对技术投入全部精力,实现一个又一个功能点,真正想去做一个自己的游戏时却真的感觉到脑袋空空。我可以照着《埃尔登法环》复刻一套战灰系统,却不知道这样的系统我自己的游戏是否用得着;我可以设计出类似《战神》的一镜到底的相机技术方案,却不知道我自己的游戏是否需要这样的镜头感觉。到目前为止我一直投入所有精力在动作角色扮演游戏,这类游戏是需要投入时间、金钱、人力最庞大的一类游戏,那么我未来希望成为什么样的游戏人呢?从能力出发,从成本出发,我又有成为哪一类的游戏人的可能性呢?
游戏就像是一本书,一篇小说,一幅画作,制作游戏就是希望能够有所表达,而不是简单的功能和美术素材的堆砌,唯有这一点在我心里有了确定的答案。
3. 我算是成熟的社会人了吗
过年回老家的时候跟父母出去置办年货,依然会有人问我现在在哪里读书,看来从面相和气质来看,我依然还是个孩子。我一点我既高兴又担心,当周围都是某一种人的时候,如果你不是的话,那你就会被强烈的不安包裹,即便这种人并不是你本心里喜欢的人。
人与人的交流其实是个很值得思索的事情,每个人跟对方说的每一句话都可以是完全真诚客观,又可以携带某种暗示(比如通过鄙视某部作品从而达到令对方觉得自己的层次高于该作品)。社会人的核心标志之一就是会为了达到传达暗示信息的目的而降低语言中真实内容的比例,也就是谎言的使用。
我能够逐步理解为什么需要使用这样的技巧——如果周围都说自己是狼的话,小羊最好也说自己是狼,如果周围的人都用这样的技巧武装自己,那么他们就只能欺负那个没有武装的人。但是现在看来,连这一点都会作为别人攻击你的武器。我并不会寄希望于别人不来欺负我。
我希望别人来的时候,我的手里也有武器。
4. 我算是什么样的写作者呢
懒惰。
我很想找找其他的原因,但是不管怎么说,这都是绕不开的一点。我很想说虚幻关键字系列文章的停滞是因为目标定得太大以至于迈出了第一步而第二步迟迟无法落下,我很想说《RTR第四版》的翻译文章停更是因为工作重心有了变化,我很想说leetcode刷题系列文章的停更是因为生活和工作带来的变化。但我也明确的知道,这些文章能够为我带来我希望的东西——积累,素养,还有我想看到我的坚持,我想看到我的坚持从量化走到不可量化。
但是好在不管怎样,我在思考的时候是不带懒惰的,这也能够让我随时能够理性客观得看待自己。我的思想肯定谈不上深刻,但是都有出发点,都有基础的逻辑。我希望文章在写出来之后,也能把清晰的思考过程展现出来,这个才是我认为所写东西的核心所在。
当然,总归,懒惰还是不好的,需要改正的。
最后
设定目标的这一段,始终都没有办法落笔。
我心中还有太多问题想不明白,前路茫茫,家在内蒙,户在上海,人在北京,有想要做的事,却也需要开始跟现实对线。
如果非要有个计划的话,我希望在2023年中的时候对自己的未来能解出一个明确的答案。其他的事则按部就班。