熟悉一款引擎
世面上有许多游戏开发引擎,一般中大型的公司会自己研发自己的商用引擎,如果是发展了蛮久的游戏公司,基本上都会有自己自主知识产权,即游戏引擎。
那时还是商用引擎未分出你死我活的年代,工具链不完善,大家都去搞自研,直到虚幻、unity和cocos在各自领域中占据了比较大的份额之后,大家才更多使用商用引擎。
熟悉一款引擎,需要从代码层面、引擎能力、工具链等方面入门。
代码层面
客户端有很多语言都可以开发游戏引擎,很多大厂包括UE4引擎都是基于 C 开发出来的底层,面对对象,状态机等随处可见。
当然,也有不一样的,比如C 封装的底层,python或lua做上层业务逻辑实现的,Unity就是微软的c#语言等等。进到一个像样点的游戏公司,除了按时完成任务之外,还需要熟悉公司的文化和代码风格。
猪哥就见过自己公司的两套代码,虽然做的同一件事,但是却是完全不一样的两种风格。不同风格决定了开发的思路也不一样。
有时候自由度高的代码,比如一般世面上见到的wxWidget或QT等界面框架,就属于自由度高的代码。虽然写起来量会稍微大点数据报告,但还是比较容易从底层解决问题。
一些封装层次高,代码风格较为一致的框架代码,基本上会开发起来非常的快,但带来的问题却经常因为框架性、默认操作的问题,有些问题很难排查或解决,没有底层控件拼接来的直接方便。
网路管理、事件派发机制、渲染控制、内存管理、热更新等涉及到架构底层与设计的东西,就是熟悉代码到七七八八的时候,可以开始深入了解的。
从中可以学习到许多设计模式,并且自身的代码质量将会有个质的提高,对代码的编写会有一定的要求,用上许多华丽的语法去简洁地完成业务逻辑,代码量和设计能力将会是质的改变。
引擎能力
这个很容易理解,就是引擎支持做什么事,不能做什么事。
现在的引擎基本上都能覆盖大部分游戏开发的需求,除了对引擎自身要求较高的3A游戏或其他有特殊需求的游戏等。
【关于游戏引擎能做的事,讨论很多】
>>>以下是传送门:
【你们天天都在说的“祖传游戏引擎”,到底能干吗?】 /w3Y2T6
说实话,笔者公司游戏引擎开放的能力还是蛮强的,基本上2d或部分3d效果能用2d来转换的游戏都能开发,但由于是自研引擎,所以对直接生成粒子特效游戏开发客户端发展,直接骨骼绑定控制等一些本应该在引擎中做到的事,都会分散到美术层面去做。游戏只需要管好自己的帧数,并且将帧缓存渲染出来即可。
工具链
一款游戏引擎,最基本的工具链主要为编辑器、导表工具、资源相关工具等。
工具链的完善程度音乐音效,直接影响了引擎维护的成本。unity就是凭借着自身工具链的强大一定程度地降低了开发游戏的门槛,就连UE4的蓝图编程也能让不懂得编程的人能够快速地借助引擎能力来开发一款游戏。
但在做了许多重复的事情之后,慢慢地感觉到工具链的不完善,进而就对同学们的综合能力提出一定的要求游戏开发客户端发展,对现有的工具进行二次开发。
比如猪哥经常会异想天开的想要把热更新做的随手可用,但是由于不同的设计对热更新的要求不一样,所以复杂场景里,只能做到自己用的很爽的程度。
甚至是界面构建过程,是否可以在设计完之后,直接导出相关的界面结构出来,不需要程序浪费时间在无谓的界面拼接上。
【未完待续】... ...
感谢看到最后的你!支持小编的话,可以转发本文到您的朋友圈,让更多喜欢游戏,关注虚幻引擎的朋友能够看到!还没关注的朋友,可以搜索公众号《虚幻技术美术》或扫描下面二维码关注哦!
虚幻技术美术,用心服务游戏