找回密码
 立即注册
查看: 625|回复: 19

游戏客户端开发,如何提高自己?

[复制链接]
发表于 2021-11-10 17:23 | 显示全部楼层 |阅读模式
几年前随手写的,竟然到前排了,实在惶恐。。。
感谢大家隔三差五的点赞,我再补充一些,希望能帮到大家;)

1.原回答遗漏了什么?
日常开发、应试的方向更多的是应用层面的,而没有讲底蕴、或者说程序功力上的。
推荐阅读Milo大神的"游戏程序员的学习之路",领略一下游戏程序员的练功之道。
Milo Yip:游戏程序员的学习之路
Milo Yip:游戏程序员的学习之路(中文版)

2.有没有既可以学来入门、又可以做中高级进阶用的参考书?
去年刚好看到一本,推荐一下:
网易游戏学院出品,No.02 游戏研发,筑梦之路·造物工程
算法是各阶都要用的,几本都相当好:算法导论(第3版)、算法(第4版)、算法图解

3.如果自己有一些迷茫,不知道学啥怎么办?
想学就好办,就怕不想学。
下面列一些关键字,看能不能大家激起一点好奇或者兴趣:
Algorithm
DOTS、ECS
CG、HLSL、GLSL
UWA、PerfDog、UPR
OpenGL、Vulkan、Metal、DX12
Unity、Unreal、Cocos、Godot、Ogre
C#、Lua、C++、Python、OC、Java、Kotlin、swift
Geometry、Linear Algebra、Graph Theory、Calculus
RenderDoc、Snapdragon Profiler、Arm Mobile Studio、NSight、GPA

4.上面全是硬货,有没有软一点的?
想要,当然是有的。
中大型公司都会分技术线和管理线,管理侧也有很多技能可以学,管理者能力在知乎也是热点,就不赘述了。
其他如心理学、经济学、美术、策划/设计、政治学、数学、哲学、英语、市场等等,都是软能力,也是游戏开发和管理会牵涉到的。

---------- 以下修改于2019.3.19 ----------
客户端开发的水可深可浅,主要还是看需要用到什么深度。

分模块举几个栗子吧:
1.UI:
   a.最基础的数据表现控制逻辑是否拆分妥当,方便日后调整、维护;
   b.如果有高性能需求,是否已经是上乘的性能(内外存、帧率、GC、CPU占用率);
   c.UI插件是否有扩展需求,对应工具链的开发、使用、迭代、维护,是不是对所有人友好
   d.UI框架(自研or插件)底层是否有进一步优化迭代的可能性;
   e.能不能自研一套UI框架,包含完整的工具链,并且具有很好的扩展性,方便二次开发插件;
   f.美日中的知名游戏,都有很多效果极好的UI上的效果如何实现?如何实现并且占用资源少?如何实现、占用资源少并且性能好?
   g.现在主流的各UI框架有哪些?设计思路都是怎么样的?优劣各自在哪?如何进一步优化?

2.网络:
   a.OSI的7层模型,作为游戏客户端,一般接触的有哪几层?每一层内用到的几个协议,优劣在哪,分别适应哪种环境?每种环境下指定协议的优缺点是什么,如何改进?
  b.有网络就有数据,如何做到数据传输量最优、易用性较好、性能较好,如何控制GC等指标
  c.有游戏就有外挂,网络层如何防御外挂
  d.有网络就有波动,有波动就有卡顿,有卡顿就有掉线,如何优化UE

3.渲染:
  玩家看到的都是图形学渲染的,看到一个游戏画面,然后:
  a.能大致了解渲染顺序量级么?
  b.能大概猜到各类效果的潜在实现方式么?优劣在哪?
  c.各类渲染对象的指标大致范围?如何制定这些指标
  d.该游戏的渲染瓶颈主要在哪?原因?如何优化

--------- 下面的先不更新了,最近在做个人自己的rts游戏(最近没怎么加班;) ----------
--------- 等rts做完了,再来说逻辑和工具的点,逻辑和工具又是个无比深的大池子 ------
-------- 好了rts先不用做了,操作有点复杂、得重新设计操作,而且又要加班了 ---------

4.逻辑:
帧同步、状态同步,会实现么?常用的逻辑框架有哪些?AI怎么设计?美术动画怎么支持?
策划要编辑关卡,怎么支持?新的模块功能怎么解耦最好?场景树知道么?
简单的2d球、矩形、胶囊、多边形碰撞如何实现?3d碰撞的呢?
20年前的超级玛丽试着想一下该怎么做?20年前的恶魔城呢?当今的荒野之息呢?

5.工具:
动作游戏编辑器怎么搞?TD伤害统计和图形反馈怎么搞?自动打包会么?
黑盒白盒测试怎么支持?程序提供的工具不好用,怎么优化?
新系统需要新编辑器支持,但没有第三方工具成品参考,怎么设计?

6.SDK
sdk会接么?unity sdk会接么?那android、ios会接么?那有unity.sdk又有android.sdk会接么?
怎么样让项目打包时自动接入sdk,不接sdk时也能打裸包?
怎么样让项目在对接不同渠道是自动接入不同的sdk?
怎么样在类似功能的sdk之间,根据不同项目的需求随意替换?

7.真的说不完...
游戏开发中用到的数学、物理都会了?gdc大神开发者的分享你都听懂了?
siggraph的新文章看明白了?ue4和unity的技术贴了解完了?
国内大神的技术分享贴都看了,全看明白了?
(我个人才疏学浅,还做不到...)

。。。 。。。
2018.5.4初次回答
发表于 2021-11-10 17:25 | 显示全部楼层
几年前随手写的,竟然到前排了,实在惶恐。。。
感谢大家隔三差五的点赞,我再补充一些,希望能帮到大家;)

1.原回答遗漏了什么?
日常开发、应试的方向更多的是应用层面的,而没有讲底蕴、或者说程序功力上的。
推荐阅读Milo大神的"游戏程序员的学习之路",领略一下游戏程序员的练功之道。
Milo Yip:游戏程序员的学习之路
Milo Yip:游戏程序员的学习之路(中文版)

2.有没有既可以学来入门、又可以做中高级进阶用的参考书?
去年刚好看到一本,推荐一下:
网易游戏学院出品,No.02 游戏研发,筑梦之路·造物工程
算法是各阶都要用的,几本都相当好:算法导论(第3版)、算法(第4版)、算法图解

3.如果自己有一些迷茫,不知道学啥怎么办?
想学就好办,就怕不想学。
下面列一些关键字,看能不能大家激起一点好奇或者兴趣:
Algorithm
DOTS、ECS
CG、HLSL、GLSL
UWA、PerfDog、UPR
OpenGL、Vulkan、Metal、DX12
Unity、Unreal、Cocos、Godot、Ogre
C#、Lua、C++、Python、OC、Java、Kotlin、swift
Geometry、Linear Algebra、Graph Theory、Calculus
RenderDoc、Snapdragon Profiler、Arm Mobile Studio、NSight、GPA

4.上面全是硬货,有没有软一点的?
想要,当然是有的。
中大型公司都会分技术线和管理线,管理侧也有很多技能可以学,管理者能力在知乎也是热点,就不赘述了。
其他如心理学、经济学、美术、策划/设计、政治学、数学、哲学、英语、市场等等,都是软能力,也是游戏开发和管理会牵涉到的。

---------- 以下修改于2019.3.19 ----------
客户端开发的水可深可浅,主要还是看需要用到什么深度。

分模块举几个栗子吧:
1.UI:
   a.最基础的数据表现控制逻辑是否拆分妥当,方便日后调整、维护;
   b.如果有高性能需求,是否已经是上乘的性能(内外存、帧率、GC、CPU占用率);
   c.UI插件是否有扩展需求,对应工具链的开发、使用、迭代、维护,是不是对所有人友好
   d.UI框架(自研or插件)底层是否有进一步优化迭代的可能性;
   e.能不能自研一套UI框架,包含完整的工具链,并且具有很好的扩展性,方便二次开发插件;
   f.美日中的知名游戏,都有很多效果极好的UI上的效果如何实现?如何实现并且占用资源少?如何实现、占用资源少并且性能好?
   g.现在主流的各UI框架有哪些?设计思路都是怎么样的?优劣各自在哪?如何进一步优化?

2.网络:
   a.OSI的7层模型,作为游戏客户端,一般接触的有哪几层?每一层内用到的几个协议,优劣在哪,分别适应哪种环境?每种环境下指定协议的优缺点是什么,如何改进?
  b.有网络就有数据,如何做到数据传输量最优、易用性较好、性能较好,如何控制GC等指标
  c.有游戏就有外挂,网络层如何防御外挂
  d.有网络就有波动,有波动就有卡顿,有卡顿就有掉线,如何优化UE

3.渲染:
  玩家看到的都是图形学渲染的,看到一个游戏画面,然后:
  a.能大致了解渲染顺序量级么?
  b.能大概猜到各类效果的潜在实现方式么?优劣在哪?
  c.各类渲染对象的指标大致范围?如何制定这些指标
  d.该游戏的渲染瓶颈主要在哪?原因?如何优化


--------- 下面的先不更新了,最近在做个人自己的rts游戏(最近没怎么加班;) ----------
--------- 等rts做完了,再来说逻辑和工具的点,逻辑和工具又是个无比深的大池子 ------
-------- 好了rts先不用做了,操作有点复杂、得重新设计操作,而且又要加班了 ---------

4.逻辑:
帧同步、状态同步,会实现么?常用的逻辑框架有哪些?AI怎么设计?美术动画怎么支持?
策划要编辑关卡,怎么支持?新的模块功能怎么解耦最好?场景树知道么?
简单的2d球、矩形、胶囊、多边形碰撞如何实现?3d碰撞的呢?
20年前的超级玛丽试着想一下该怎么做?20年前的恶魔城呢?当今的荒野之息呢?

5.工具:
动作游戏编辑器怎么搞?TD伤害统计和图形反馈怎么搞?自动打包会么?
黑盒白盒测试怎么支持?程序提供的工具不好用,怎么优化?
新系统需要新编辑器支持,但没有第三方工具成品参考,怎么设计?

6.SDK
sdk会接么?unity sdk会接么?那android、ios会接么?那有unity.sdk又有android.sdk会接么?
怎么样让项目打包时自动接入sdk,不接sdk时也能打裸包?
怎么样让项目在对接不同渠道是自动接入不同的sdk?
怎么样在类似功能的sdk之间,根据不同项目的需求随意替换?

7.真的说不完...
游戏开发中用到的数学、物理都会了?gdc大神开发者的分享你都听懂了?
siggraph的新文章看明白了?ue4和unity的技术贴了解完了?
国内大神的技术分享贴都看了,全看明白了?
(我个人才疏学浅,还做不到...)

。。。 。。。
2018.5.4初次回答
发表于 2021-11-10 17:28 | 显示全部楼层
流水线上的工人,拧一个螺丝和拧100个螺丝区别确实不大,无非是体力活而已。
但是那些能从流水线上脱颖而出的工人一定是在拧螺丝的时候同时思考,我拧的这个螺丝有多少圈螺纹,多大的直径,拧一个需要多少时间,慢慢往外扩展,比如螺丝帽是怎么做的,用的啥材料,缺少这颗螺丝会有什么问题,能不能用其他的螺丝代替,用在其他地方可不可以。
然后再发展为,我要怎么把拧螺丝的技巧传授给他人,怎么确保螺丝断有应急,等等 。
既然题主已经写了100个UI了,那能否答出几个问题:
UGUI用了这么久,你能否说出UGUI的绘制顺序?
能否理解UGUI的“动静分离”的目的和重要性以及为什么?
能否用UML图自己把UGUI的类关系画出来?
能够把你们现有的UI逻辑框架吃透,并且画出类的交互关系?
能否找出这套UI框架的不足和可优化之处,以及如何去扩展它?
UI模块的内存和性能该如何去优化?
以一个点为圆心,逐步扩大知识半径,这样你的圆就会越来越大,成长就会越来越多。
另外一个类似问题:
Unity3d客户端开发,要深入学习,更需要先从哪方面入手?
发表于 2021-11-10 17:33 | 显示全部楼层
最近在招初中级的U3D客户端,大概就是毕业1~3年工作经验的。我非常喜欢面试时问一些UI的问题。我认为下面的这些问题如果都能够侃侃而谈,至少是高级客户端的水平。
1、网上随便一搜一大把的Unity面试题,都要清楚理解吧。Awake OnEnable Start Update LateUpdate 啥的,都要清楚吧。
2、我们有一个背包界面,左边显示角色模型,右边显示背包格子。 那么3D的模型是怎么显示在2D的UI上的? 有哪些解决方案?  怎么控制 sortingOrder,怎么理解Canvas的? 如果用RenderTexture的方案,优缺点是什么? 怎么处理特效某些情况下无法显示的问题以及特效显示不正确的问题(这里涉及到Shader的认知)。
3、右侧有999个背包格子。如何设计一个ListView控件。这里涉及到缓存、排版以及接口设计。如果是用lua实现界面的话,这里还会涉及到C#如何跟lua进行交互。哪些lua的用法对性能损耗是比较大的。
       背包裁剪用的是什么组件? 普遍都说的是Mask,难道没用过RectMask2D吗? 这两个的区别是什么? 这里同样会有一部分的shader知识。
       如果背包的物品格子上要显示一个极品装备的特效,有什么方案? 用Image实现特效怎么做? 用ParticleSystem实现特效如何做裁剪?
4、对于UI的优化,最起码要知道图集合并和动静分离吧。它们的目的是什么? 怎么做?
5、UI的图片的纹理格式怎么选择? 大多数面试者是不知道压缩纹理的。部分能够说出来ETC1和ETC2的区别。但是不知道iOS下可以用ASTC的格式。更加不会知道ASTC4X4 5X5 6X6 8X8的区别和选择。
6、多数面试者都说自己了解AssetBundle。但是对于细节一无所知。LZ4和LZMA格式的区别是什么? 怎么做取舍? 做更新补丁包的时候要通过HashCode而不是MD5做比对差异的依据。AB包的释放和资源的释放普遍都不清楚。

上面这些问题都是UI相关的,而且都是项目中实际用上的,并不涉及到战斗系统、网络同步等东西,然而多数人对其中的细节并不了解。很多时候得到的答复是,这个是别人做的,这个是主程做的。这就是有些人工作四五年水平停滞不前,有些人工作两三年可以做主程的区别。
发表于 2021-11-10 17:41 | 显示全部楼层
谢邀。
题主的困扰绝对不是个例,是目前浮躁的游戏行业普遍存在的现象,这种情况已经普遍到了大多数开发者自己都注意不到的程度
1、工作经验 ≠ 工作能力
多年以前游戏开发的蛮荒时代,游戏开发者经常需要自己造轮子,或是学习和改良前辈们所造的粗糙的轮子。在那个时代,只要用心把项目做好,就已经能够学到很多东西。
现在产业成熟了,技术的学习不像从前那么容易,拖个界面、做个碰撞效果就是动动手指头的事,中午的饭馆里随便抓一个人,有可能就会做。反复做这些皮毛的东西基本上无法继续提高。拖界面三年,你还是只会拖界面而已;偶尔做一点优化或者改良,就觉得自己学到了很多,这其实都是错觉。



2、两种做事的方法
做事的方法有两个极端:一是先磨刀,再砍柴;二是不磨刀,凑合砍。
我们对学习方法的认识,一直在两个极端中摇摆。现在的时代更常采用第二种方式:用什么学什么,解决问题即可。其实这种做法有值得推崇的地方:灵活快速,但是务必要记住在解决了眼下的问题之后,一定要再去把刀磨了。
所谓磨刀,举个简单的例子,比如说你在Unity的物理系统上踩了坑出了BUG,当时经过反复试验解决了。那么之后,你一定要问问自己:官方文档上有详细的描述吗?要不要仔细看一遍?
可以很负责任的说,90%以上Unity物理引擎的问题,在官方文档上都有详细的、反复的描述,但是多数人还是凭自己的理解在做,每天都要重复别人踩过的坑。
3、有效学习 => 能力提升
如何学习呢?其实互联网时代真不愁学习的途径。人分多类,有人喜欢技术和学习本身,有人喜欢创造的乐趣的。举几个例子分别适用于不同的人:
    在项目中寻找工作流的痛点,总结问题并实现开发工具。(至今游戏圈里还小范围流传着一些经典的小工具和插件,都不知道作者是谁)做自己的业余开源项目或游戏,放在Github上。看到有趣、巧妙的软件或游戏,自己实现一个Demo。总结日常工作中的问题,放在博客上。例子:Unicode入门与剖析--从一个越南文的案例说起 - CSDN博客像追剧一样追你喜欢的博主,学习他所遇到和解决的问题。云风的 BLOG学习一个完全陌生的领域。比如Lisp学习偏基础的领域,一定会产生极大作用。C语言,C++,操作系统,在线做算法题。在知乎上回答100个技术问题。遇到不懂的问题要学透,然后努力回答。……
以上几点,能够抓住一两点就已经可以鹤立鸡群了,说起来真的不难。

再次回到开头说的。题主的困扰绝对不是个例,是目前浮躁的游戏行业普遍存在的现象,这种情况已经普遍到了大多数开发者自己都注意不到的程度。我们要努力摆脱这个困境,Good luck。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-11-10 17:47 | 显示全部楼层
普遍感觉没成长。是大家都这样吗?
是的,大家都是这样的,多少在职业生涯中会遇到瓶颈。

首先来说说客户端UI,一般就是指我们常说的拼UI了。这项工作,确确实实是没有什么技术含量的。一般是交给刚入职的应届新人,或者直接就是UI美术完成的。虽然有位答主说UI也可以做的很出色,但是我的评价是,正确的废话。因为从做UI出发,把做UI做好,做到极致。这种思路,可以说很不现实了,能做到的只是个例。

既然拼UI得不到提升,那怎么破局呢?我相信题主提出这个问题,肯定是有所触动,痛定思痛了。但是这个问题确实是很难解决,甚至题主可能在性格上,行动力上都有些缺陷,就是我们常说的懒和拖延症,更加使问题变得复杂。这是很有可能的。如果一味地说要让你静下心来钻研,说金子总有一天会发光的,无异于废话。学习的过程总是非常痛苦的,但是如果你能在工作中学习,就会成长的很快。也就是通常所说的,工作内容有趣、有提升这类的。我相信题主也是有这个想法,只是苦于不知道如何取得这样的机会。毕竟工作安排,受项目进度、人手安排、个人能力影响太大,也不是说你想做点啥就能做的。

如何让主管给你安排点有技术含量的工作?这个真的千人千面,没有统一的答案。我也不是什么大牛,只是比你长几岁。我只能说说我的经验,仅作参考。我刚毕业的时候和你一样,做的工作,有的困扰,都一样。我当时也觉得这样不行,得不到提升,所以我想了个办法。我利用业余的时间,一开始是看书,但是看书实在是来的太慢了,而且工作中也很难用上。这些都是潜移默化的东西,不能速成的。很快我就换了一个方向,专心研读项目代码。主动自发地去思考,项目里有哪些值得优化的地方,有哪些我能做的事情。最后,找出了几个可以优化的点,几个BUG,和主管汇报了。主管觉得小伙子很积极,一来二去,我就负责了那一块。

一开始做优化这一块的时候,也是没有办法,赶鸭子上架的。人手很紧,项目又很赶。只能边学习,边实践,时常做到半夜。但是这样成长也是最快的,我感觉半年的经历,比我做UI的时候天天苦读一年的收获还要大。而且因为有项目进度在催着,促使我没有时间去休息偷懒,所以拖延症也没有犯过。当然,平时看书充电也不能停。

所以,我给题主的解决方案就是:积极主动
共勉之。
发表于 2021-11-10 17:54 | 显示全部楼层
谢邀。
别太看不起UI,很多游戏绝大部分的开发都是系统和UI。
如果你发现做一百个和做一个区别不是很大,那就要思考一下了。是不是可以把UI底层框架搭的更好更易于使用,是不是可以提供一些更完善的工具进行一些自动检测减小一些人肉工作,是不是可以把一些重复性的功能抽象出来提供一些组件减少重复工作,是不是可以制作一些模版自动生成一些UI,是不是可以开发一套工具和工作流让美术来更方便的制作UI减小程序拼UI和沟通的成本,是不是可以引入一些设计模式让一些系统更易于扩展等等。
好的UI系统,应该支持部分数据驱动,通过配表就可以指定UI是否预加载,是否跨场景不卸载(某些情况加速Loading),是否即时卸载,是否有一些通用的动画效果(打开关闭模糊),是否压入堆栈,是一级界面还是二级界面,是否全屏界面等等。
应该适配各种分辨率,有一套统一的自适应规则,任何分辨率都可以做好自适应而不需要人工调整(绝大部分情况),有可以快速检测适配性的工具。
有详细的制作规范,制作流程和设计语言。
有各种通用的组件,动画,滑动列表,属性绑定,属性刷新等等。
有各种工具,UI的单元测试,UI规则的自动检查工具,易用的UI编辑器,高效的图集工具等等。
有多国语言的解决方案,文字通过配表驱动,有相应的自动化绑定工具。
从结果上看,好的UI系统有极高的性能,点开界面秒开,DC很低,战斗中高频UI性能极高,图集切分合理内存占用很低,稳定不容易出错,开发销效率高实现快速,能支持热更,容错性强,重要功能有开关有调制工具,迭代快速。
有一条好的UI框架和UI工作流,可以极大的提升UI的开发效率并且把一些体力工作交出去。例如拼UI,美术可以不用出示意图直接实现自己想要的效果完成设计,程序可以避免枯燥的体力工作和沟通成本,实现双赢。
总之,任何一块工作做好都大有可为,并且再做其他的也会做的非常好。如果长时间觉得没成长那可以先看看是不是当前的工作还有潜力可挖。如果你做出彩了自然会交个你更重要的工作吧,如果没有那可以和你的Leader沟通告知你的诉求。另外如果已经做到非常好了那可以有一个规划,转到其他方面进行新的挑战,全栈和专精都是不错的。
 楼主| 发表于 2021-11-10 18:00 | 显示全部楼层

献上我的基友 @游侠 的作品

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-11-10 18:03 | 显示全部楼层
在游戏行业工作这些年,和太多客户端同事合作过,也数不清面过多少个游戏程序员。
返回头看他们5到10年后的发展轨迹,有人后来成了公司高管,有人做到了游戏制作人,有人创业自己去做游戏了,有人即便年龄大了也因为深厚的技术功底去了大厂,而也有人至今也只能很勉强在小公司做个主程,这还不算那些只有一面之缘,面试后再也无音讯的人。
对程序员,我经常会让他们扪心自问一个核心问题:
你真的热爱编程吗?

真的热爱编程,在工作中目标就不仅仅是完成任务,而是经常思考有没有更好的写法或改进的空间;
真的热爱编程,就不会总用老办法解决新问题,而是有冲动利用各种机会尝试刚了解的新技术新手段,甚至喜欢通过反复重构工程来“追求完美”;
真的热爱编程,会一看到想了解的技术或框架,就会有冲动做个小demo去尝试,而且不管其中会用到客户端技术还是服务器技术,才不会受限于工作中学会的能力;
真的热爱编程,会对各种相关底层知识产生相关的兴趣,不管多难,会不自觉的去深入学习。
这些年我有一个和很多老同事一样的感觉,现在的游戏程序员大部分确实已经失去了我们以前老程序员的很多钻研精神,以致于工作很多年了,连一些稍微深入一点的语言编译原理、操作系统原理、数据结构算法还不了解。知其然而不知其所以然。
但并不是说热爱编程才能有出路。因为对编程不是那么热衷不是罪过,一直浑浑噩噩的混下去才是。趁早跳出来重新审视自己,向着自己真正喜欢的方向努力,没准自己的发展才会更好。
一般来说普通的游戏程序员通常有四个职业发展方向:
    图形引擎(技术Leader方向)工程架构(主程方向)游戏设计(主策或制作人方向)项目管理(项目经理和公司管理方向)
后两个并不要求自己对编程有那么深的热情,反而一定程度的浅尝辄止才是对的,就怕技术搞得太深入的人做到设计师或者项目的管理者时,程序员思维让自己无法做出更好的设计,以及更明智的决策。
如果没那么热衷编程技术本身,但自己对设计一款游戏有浓厚的兴趣,平时对策划给的案子有不少的意见和想法,喜欢对玩的游戏品头论足,注意一下,也许你有游戏设计师的潜质。在工作中策划不听自己的建议没关系,不妨自己从利用业余时间开始,把自己当做一个独立制作人,制作自己的独立游戏。
要知道懂编程的游戏设计师是有可能做到最出色的。从一开始以自我为中心的闭门造车,会逐渐走向越来越理解玩家的心理世界。
还有一种可能性,就是自己随着工作经验的积累,逐渐发现自己对“效率”和“工具”这个问题有着特别的偏爱,无论是游戏技术中的编码效率和运行效率,还是整个项目的开发效率,都想本能的有所追求。
程序员的一大基本素质就是效率意识,遇到问题多让工具做,少让自己做,才是程序员真正的“偷懒”精神。而作为程序员如果能把这种效率意识扩大到产品和项目流程层面,那么他自然有希望成为合格的项目管理者。比如:
从追求编程语言更好、书写能更简便的算法或特性,到关心具体工作中的那些可以利用工具解决的重复工作,甚至有一种即便花时间写个软件也不愿意把事情做第二遍的精神;
从对策划和美术的低效率工作指指点点,到“多管闲事”的帮他们开发“一键搞定”的小工具;
还有从对极限编程、敏捷开发、团队知识管理等管理规则产生浓厚兴趣,到对公司整个研发过程都有效率提升的建议。
这些注重效率工具与流程的习惯,是成为优秀的项目管理者的必备素质。
但不管在什么方向提升自己,都需要一条宝贵的素质做支撑:
那就是总结和分享的习惯
越早坚持写比如csdn或其他博客平台、做好自己日常知识管理的人,个人影响力就会越早得到放大。其中的原因我们都明白,只有某个问题彻底搞懂了的时候,自己才能把它自圆其说得写出来。经验的输出过程,是一个复利的过程,同时也是给工作中的学习画上一个完整的闭环。
如果你有关于游戏程序员职业发展方面的其他问题,也欢迎私聊我,我可以给你更针对性的建议。
发表于 2021-11-10 18:03 | 显示全部楼层
我感觉,我走窄了。
目前的重点都放在了复杂系统维护上。
比如写写任务系统,新手引导,红点之类的东西。
UI方面技能点都点在了NGUI上。
能搞明白个ScrollView就乐的屁颠屁颠的。
技术不怎样还总想优化代码,看见成坨的地方就想改改,别人写的代码,我看实现觉得有问题也要改,为此我的很多同事怨声载道。
还特别愿意和策划对线,案子也要管,制表也要管,出来效果也要管,事儿多的一批。
这要说会啥?打包打包不会,渲染渲染不懂。什么是AssetBundle?什么是Shader?接啥SDK?啥?你要啥自行车?我手表给你得了。
现在呢,就是空闲时间,就扫扫项目中其他功能的代码,如果有大块时间呢,就学习学习,如果没有呢,就瞻仰瞻仰。
最近在优化一些历史代码,你说它优化了多少呢?也没多少。你说优化完能有多大成过呢?估计也没多大。但你不去改它,它并不会自己变好。但这对我有多大提升呢?也没多大提升。而且有很大沟通成本。就算单纯为了项目好吧。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 22:04 , Processed in 0.097079 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表