这是【游戏开发那些事】第45篇原创
点击关注加“星标”获取更多游戏开发知识与科普
各位读者朋友好,我是Jerish!不知不觉又是一年春节来临,在这里先预祝各位新年快乐,一切顺利!
2020年是风云变幻的一年,疫情对我所在的游戏行业造成了不小的冲击和影响。但这一年也发生了许多振奋人心的大事,次时代引擎虚幻5的公布、XBOX和PS的新主机相继亮相、国产游戏黑神话悟空轰动游戏圈...作为一个普通的游戏开发者,我既是历史的见证者,同时也在以微小的力量推动着历史前行。
按照惯例,这篇文章是我对这一年学习工作的复盘和反思,希望这个习惯能够持续地引导我在2021年继续成长,也希望这些成果和经验能给大家带来些许的启发和帮助。
一、这一年我做了什么
作为一名还在成长中的游戏开发者,我这一年的核心主要还是在项目经验的积累和专业技能的学习上。
1.输出《细谈网络同步在游戏历史中的发展变化》系列文章
2020年初的时候,我受邀撰写网络同步相关的技术文章。起初只打算写一篇总结性的文章来发布,然而随着不断的学习和深耕,我发现对很多问题的理解有不足或出入,于是便一遍遍地看论文和视频反复学习,最终花了接近半年的业余时间完成了整个系列。可以说,这是我目前所有输出里质量最高的一个系列,既客观完整地梳理了网络同步的发展历史,也总结涵盖了几乎所有同步相关的技术,算是为游戏行业的专业领域添补了一点点空白。为了方便大家阅读,我做了适当的补充和调整并将其整理成了PDF(竟然70多页,可以考虑丰富一下细节出书了),年后会免费给大家放出。
2.个人成长与工作瓶颈的突破
我在知乎上将自己定位为一名Gameplay程序,主攻同步、回放、角色、技能、3C(关于3C后面我会出一篇科普文)这些与游戏玩法高度相关的内容。技术上涉及网络同步、动画、物理、材质、资源加载、性能优化、UI、多线程、GC、Lua、C++、Socket、Http,Linux,Nginx,Php等。
Gameplay这一块深入来看还是比较复杂的,或者说比大部分游戏开发者想象中要难,比如FPS与MOBA的网络同步、Minecraft的地形生成与销毁、ACT的战斗系统。拿Unreal引擎来说,它的GAS(GameplayAbility)可以在商业化项目中解决技能、Buff等因为网络不同步导致的表现异常的问题,而与GAS同等质量的技能系统鲜有项目可以自己搞出来。
工作之余,今年也看了不少专业书籍与资料来扎实基础。书籍方面,有《网络多人游戏架构与编程》、《游戏编程精粹》(部分章节)、《Lua程序设计》、《大型多人游戏在线开发》、《深入理解计算机原理》(重新完整地看了一遍,依然有新的理解和收获);语言方面,零零碎碎地看了一些C++模板(研究了一些虚幻内置的数据结构)、多线程编程、反汇编、C++11、Lua等语言基础相关的文章;游戏开发方面,通过阅读文档及源码的方式进一步了解了ECS架构,虚幻引擎的动画系统(IK、Rootmotion),物理引擎架构等。此外,在撰写网络同步系列期间顺便梳理了一波游戏服务器框架,并在简单了解了微服务和ServicMesh的