1. 技能点
客户端
- 语言基础: C++/C#/Python/LUA
- 游戏引擎:Unity/UE
- 计算机基础:数据结构、操作系统
- 游戏专业方向:图形学、游戏逻辑
语言基础和所选择的引擎相关,一般标配是会两种,即主要语言+ 脚本语言。unity对标C#,UE对标C++。脚本语言LUA/Python来说,市面上用LUA的公司远多于python。
游戏引擎的选择,主要看个人了。希望深入了解引擎,并且有C++基础,可以考虑UE。想选择面更广,工作机会更多的可以考虑Uinty。当然,目前来看,UE的需求正在逐步增加,说不定过五年十年就超过Unity。游戏方向的技能点不同游戏不一样。一些通用的可以深入研究,如AI、渲染、动画等等。
服务端
语言基础:C++/LUA/Python
- 计算机基础:数据结构、操作系统、网络、数据库、设计模式、Linux系统
- 游戏专业方向:游戏逻辑
- 网络深入:高并发、同步、性能优化
- 游戏服务端基本上用C++ 和 一门脚本语言,计算机基础部分重点是网络和数据库,都可以深挖。
客户端和服务端的技能点除了语言和计算机基础,很大部分是不相同的。选择的时候就需要考虑兴趣和知识背景了。
2. 优缺点
客户端优点:
- 需求大
- 出问题容易解决
- 入门容易
客户端缺点:
- 知识面广、杂
- 迭代次数多
客户端的优缺点很分明,一般不会出啥问题,有问题在写代码或测试的时候就能发现。但是要求的知识点很杂,因此存在许多的深入方向。
服务端优点
- 技术面窄、要深度
- 迭代少
- 一通百通,一招鲜,转行容易
服务端缺点
- 出事就是大事故
- 随时被叫回来维护
- 需求少
- 入门门槛相对高
服务端最大的优点就是相对客户端更容易转行,无论是转入还是转出。一些在入行游戏时担心以后路越来越窄的人会优先考虑服务端。缺点也很明显,需求少。
之前我做过一个简单的需求调研,
发现目前客户端:服务端 = 6 :1
3. 难度
服务端入门比客户端难,为什么呢?
资料少
谈及游戏开发,默认指游戏客户端。市面上的书籍、视频、博客各种教程,客户端远大于服务端。
自学时必须会客户端,不然无法验证服务端逻辑
光有服务器无法做游戏,光有客户端却可以做单机游戏。对于初学者,想验证游戏逻辑,一定需要客户端支撑。也就是说在前期,需要话一定时间学习客户端。
更抽象,难理解
服务端的逻辑都是抽象的,一些能通过客户端验证的逻辑如AI、状态机还是很友好的。一些逻辑验证不了的就很麻烦了,比如高并发。这也是为什么服务端水平可以通过实现过多少并发的服务器来衡量。就是理论再动一大堆,还需要事实支撑。