对于Unity自学路线应该怎样规划比较合理?
作者:阿博的game圈
链接:https://www.zhihu.com/question/426455217/answer/2542578892
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
前言很多粉丝经常私信问我,Unity架构师如何提升?一句话能说清吗?我能,但大家可能听不明白。思来想去,还是有必要做一份完全的、完整的答案,供大家参考。那么,今天我就从一个从业10年的游戏开发者角度,来给大家介绍Unity架构师如何提升成长,最终做到技术总监。01 扎实的基础。腾讯,网易这些一线大厂都非常注重基础知识。<img src="https://picx.zhimg.com/50/v2-51e2d95fd27f747f058af6038705cf94_720w.gif?source=1def8aca" data-caption="" data-size="normal" data-rawwidth="638" data-rawheight="327" data-original-token="v2-51e2d95fd27f747f058af6038705cf94" data-thumbnail="https://pic1.zhimg.com/50/v2-51e2d95fd27f747f058af6038705cf94_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="638" data-original="https://pic1.zhimg.com/v2-51e2d95fd27f747f058af6038705cf94_r.jpg?source=1def8aca"/>(1) 语言基础, 协程原理,委托,event的作用等;
(2) 数据结构与常用算法: 链表, 树, 算法,图的遍历,树的遍历,算法时间与空间复杂度等;
(3) 扎实的unity基础,unity的每个点你都知道,比如如何降低drawcall等;
(4) 扎实的3D数学,游戏数学, 向量,四元素,矩阵, 法线,点乘,叉积等等。02 代码设计思想, 框架设计能力,项目管理能力;<img src="https://pic1.zhimg.com/50/v2-26b4d871f54d04dbf71c564c95d79d97_720w.jpg?source=1def8aca" data-caption="" data-size="normal" data-rawwidth="673" data-rawheight="504" data-original-token="v2-ca5de28d7d539e8659c8b1c75be9f82f" class="origin_image zh-lightbox-thumb" width="673" data-original="https://picx.zhimg.com/v2-26b4d871f54d04dbf71c564c95d79d97_r.jpg?source=1def8aca"/>(1)要明白主流的框架设计思想,MVC, ECS等。
(2)要熟练的使用主流的一些设计模式,并有自己的体会,而不是死记。
(3)明白开发游戏的主要需求,以及每种需求对应的框架设计。完成的组成框架。
(4) 热更新,资源管理,网络管理,调试模块,工具模块,与服务器对接等经典的设计要熟悉。
(5) 项目管理,明白不同阶段开发者对如何开发项目,如何安排提升,如何考核与管理。
(6) 熟悉游戏项目部署与运营技术,比如版本更新,资源更新等。03 熟悉精通游戏中常用算法,拿起就能开干。<img src="https://pic1.zhimg.com/50/v2-481fc5bd56a58611bbff337ff65b4d5f_720w.gif?source=1def8aca" data-caption="" data-size="normal" data-rawwidth="638" data-rawheight="358" data-original-token="v2-481fc5bd56a58611bbff337ff65b4d5f" data-thumbnail="https://pic1.zhimg.com/50/v2-481fc5bd56a58611bbff337ff65b4d5f_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="638" data-original="https://picx.zhimg.com/v2-481fc5bd56a58611bbff337ff65b4d5f_r.jpg?source=1def8aca"/>(1)地图编辑器的设计与实现;
(2) 寻路导航算法;
(3) 基于场景树的资源管理;
(4) Mesh切割,程序生成地图;
(5)AOI,帧同步设计,物体运动与分解。04 Shader进阶<img src="https://picx.zhimg.com/50/v2-2ec42fb2c723439390cddda9eb3cb462_720w.gif?source=1def8aca" data-caption="" data-size="small" data-rawwidth="329" data-rawheight="286" data-original-token="v2-2ec42fb2c723439390cddda9eb3cb462" data-thumbnail="https://picx.zhimg.com/50/v2-2ec42fb2c723439390cddda9eb3cb462_720w.jpg?source=1def8aca" class="content_image" width="329"/>(1) Shader重要性::炫酷的效果需要Shader, 渲染性能需要Shader, 有趣的玩法需要Shader
(2) Shader的基础开发,Cg 基础,常用Unity Shader API 功能
(3) 主流经典的Shader技术自己最好都要实现一遍:水,卡通渲染等。
(4)多阅读别人写到的Shader代码,掌握主流的Shader开发技巧。05 性能调优<img src="https://picx.zhimg.com/50/v2-3b7a1d5e1174f87be89f87a5927e6f7a_720w.gif?source=1def8aca" data-caption="" data-size="small" data-rawwidth="320" data-rawheight="236" data-original-token="v2-3b7a1d5e1174f87be89f87a5927e6f7a" data-thumbnail="https://pica.zhimg.com/50/v2-3b7a1d5e1174f87be89f87a5927e6f7a_720w.jpg?source=1def8aca" class="content_image" width="320"/>image(1)内存分析与优化技巧;
(2)包体分析与优化技巧;
(3)drawcall分析与优化技巧;
(4) Shader性能分析与优化技巧;
(5) 游戏算法性能分析与优化技巧,比如时间换空间,空间换时间,动态规划。06 * 与网络服务器对接*<img src="https://pica.zhimg.com/50/v2-59e5b855e4862513e85e3b8e64b4c0fc_720w.gif?source=1def8aca" data-caption="" data-size="normal" data-rawwidth="476" data-rawheight="302" data-original-token="v2-59e5b855e4862513e85e3b8e64b4c0fc" data-thumbnail="https://picx.zhimg.com/50/v2-59e5b855e4862513e85e3b8e64b4c0fc_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="476" data-original="https://pica.zhimg.com/v2-59e5b855e4862513e85e3b8e64b4c0fc_r.jpg?source=1def8aca"/>(1)TCP 通讯, http通讯 Websocket,这些对接与使用相当熟悉
(2)数据协议要非常熟悉 json,xml,BASE64, protobuf的使用;
(3)常用网络游戏的基本常识, 同步,重连等。07 游戏服务器开发, 技术总监都是全栈。只有全栈才能带网络游戏项目。<img src="https://picx.zhimg.com/50/v2-d7d117dfcba88ffe23f82e37ad0820f2_720w.gif?source=1def8aca" data-caption="" data-size="normal" data-rawwidth="640" data-rawheight="480" data-original-token="v2-d7d117dfcba88ffe23f82e37ad0820f2" data-thumbnail="https://pic1.zhimg.com/50/v2-d7d117dfcba88ffe23f82e37ad0820f2_720w.jpg?source=1def8aca" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic1.zhimg.com/v2-d7d117dfcba88ffe23f82e37ad0820f2_r.jpg?source=1def8aca"/>(1) 游戏服务器基础, TCP, UDP, http, epoll, IOCP,数据协议,通讯协议等;
(2) 游戏服务器框架设计, 要做到高性能,高并发;
(3)分布式游戏服务器设计与开发;
(4) 核心游戏类型的主题的技术攻关 MMORPG (TCP, 状态同步, AOI) (Moba UDP 帧同步);
(5) Linux 服务器的上线部署与发布。08 拓展我们自己边界。<img src="https://pic1.zhimg.com/50/v2-dfc7dc4d0e4728e73f024e04ea217468_720w.gif?source=1def8aca" data-caption="" data-size="normal" data-rawwidth="350" data-rawheight="275" data-original-token="v2-dfc7dc4d0e4728e73f024e04ea217468" data-thumbnail="https://pic1.zhimg.com/50/v2-dfc7dc4d0e4728e73f024e04ea217468_720w.jpg?source=1def8aca" class="content_image" width="350"/>我们开发会有自研项目,购买别人项目本地化, 第三方开源项目,所以要勇于拓展自己的边界。比如服务器,要熟悉不同的技术与方案。C++, Java, Node.js 等。客户端要熟悉不同的技术方案:Unity, Cocos, Laya, UE4等。你的视野决定了你的格局,对技术保持必要的关注,是一个技术总监必备的技能。<img src="https://picx.zhimg.com/50/v2-487b87c86df7f41ae88f2b7cc876f97a_720w.gif?source=1def8aca" data-caption="" data-size="small" data-rawwidth="140" data-rawheight="35" data-original-token="v2-487b87c86df7f41ae88f2b7cc876f97a" data-thumbnail="https://pic1.zhimg.com/50/v2-487b87c86df7f41ae88f2b7cc876f97a_720w.jpg?source=1def8aca" class="content_image" width="140"/>Unity架构师的提升就是这些,只要注意到这些,做好这些方面,就会离技术总监越来越近。<img src="https://pic1.zhimg.com/50/v2-b725f8380b7df7006f6b30d5237f84d6_720w.gif?source=1def8aca" data-caption="" data-size="small" data-rawwidth="240" data-rawheight="240" data-original-token="v2-b725f8380b7df7006f6b30d5237f84d6" data-thumbnail="https://pic1.zhimg.com/50/v2-b725f8380b7df7006f6b30d5237f84d6_720w.jpg?source=1def8aca" class="content_image" width="240"/>OK,这次的技术分享就到里,大家记得多多分享,转发给更多需要的朋友。