现在的工作是Java web开发,不是很喜欢,想转游戏开发。

目前自己了解到的游戏服务端,C++、Java、nodejs等都能写服务端。

游戏客户端有这个unity3D、虚幻四等游戏引擎。

想问大佬们,那种前景更好,发展空间大,有研究的空间,好不好学倒是次要的。

希望大佬们能指点迷津!


从几个方面回答你吧。

1.技能点需求

伺服器,一般叫后端。需要用到的知识有:资料库,数据结构,网路编程等等。是不是感觉和其他行业的差不多,而且基本都是大学里学到的。可能大学里唯一没接触过的是Linux开发和脚本语言

客户端,一般叫前端。技能点方面,图形学应该是其他行业很少接触到的。龙书应该是绕不过的

2.编程语言

伺服器的主流是c或c++,一般会搭配一个脚本语言lua,这也基本是国际上的主流了(至少我接触过的日本项目,欧美项目是这样)。有些另类,像广州的页游系有用erlang的,网易有个别项目有用纯Python的。c#的,Java的也有遇到过一两个但是整体不多。在我看来语言只不过是个工具而已,从业越久就越不在乎语言,重点是伺服器架构的设计。主程(程序部的老大)在乎的是高乘载高容错,快速开发等等。即使我是用c的,和用py的人,聊设计也能聊得通。当然,对于入行新人来说,语言挺重要的。

我的建议是,如果想做伺服器,可以从c++入手。对于lua则是多做了解。但是对于面试机会,任何语言的岗位都不要错过。因为一些非主流的语言岗位(erlang,py)对于语言精通的宽容度是很高的

至于前端,要看你想从事哪种游戏的开发(伺服器则不存在这个问题,因为伺服器的载体基本都是Linux)。

如果你想从事的是单机游戏开发的话,可能就要研究市面上的一些主流的引擎。大部分引擎都是基于c++上开发的。但是最大的问题是在于,现在国内做单机的厂家很少了,你能得到的机会也相对少很多

网路端游,基本和单机游戏差不多,但是也有一些项目是用自研引擎的。不过,语言基本都是c++。端游的问题和单机游戏遇到的一样:基本没几家网游公司会开端游项目了。能开的起的都是大公司,他们会从自己内部抽调一批老手来做,不缺人,所以嘛……

页游,as是过去页游用到的。但是,同样的,传统的页游市场在萎靡(当然有新兴的页游市场,下面会提到)。很多厂商都转战手游了。加上页游处于玩家鄙视链底端,估计你选择这条路的可能性很小。

手游,现在国内主战场。没什么好说的,unity,Cocos2dx。个人建议是unity,基本都在用。另外,提一嘴,虽然unity支持c#和JavaScript,但是大家都是在用c#来做。另外的另外,一般用unity的项目都会外接lua来写逻辑层。对,又是那个lua。尤其是在苹果商店上线的游戏,不接lua就很难频繁的迭代版本(噢,这该死的ios审核)

一些新兴的市场,例如能在手机上玩到渣渣辉。简单的理解就是跨平台页游。h5,白鹭引擎都是可以值得关注的点。

咋一看下来,是不是觉得前端的语言更多更细,不知道从何入门。其实不然,首先你先确定自己想发展的领域。前面提到了,在国内想一入门就做端游,基本就是要靠爱发电了。手游是国内目前发展机会最多的领域,而新兴市场也值得关注。但是个人感觉短时间内很难取代手游

至于,将来手游市场饱和,各大厂商转战其他市场怎么办。其实这种情况在中国游戏发展史里经历过很多次,我就遇到一些从端游转到页游,再转到手游的人。就像我之前提到的语言只不过是工具,你可以把当作敲门砖入行,但是之后就要靠自己的悟性去入门

3.你会遇到的困难

伺服器,咋一看,很多其他行业转游戏后端很美好。基本可以无缝转。但是实际情况呢。

开发团队对伺服器最重要的3点需求:稳定,稳定,还是tm的稳定。这就意味著,后端不太爱用新人,也不太爱动架构。你会看到一些上了年纪的项目十年如一日的用著老旧的架构。程序员明知道那里底层有问题,但是考虑到稳定性,就缝缝补补又三年。

所以,这就表示,一来你能拿到的面试机会就少。二来,就算你真的成功拿到offer,你就要去死磕一些很绕很绕的代码。甚至有可能为了补一个窟窿,另一个程序员又插了段代码进来,然后,按了葫芦起了瓢。各种奇怪的东西插进来。当然前端也有这种情况,但是前端对稳定性的需求远没有后端高。很多时候可以放心的大段大段重构代码

再就是开发的难度,前端大部分情况就是所见即所得,我做对了,我能看得到。而后端则是很虚的东西,简单的讲就是面对一堆数据,还不能出错。我到底做对没?打个断点看看,打个日志看看。这种情况会发生吗?我怎么模拟?单人的情况没问题,多人的情况会有问题吗。人很多的时候会不会爆炸?

另外就是运营事故的发生,这是后端最怕的。如果是前端出了大bug,顶多就是个别客户端崩溃,闪退。但是数据还在啊,玩家没实质损失。但是后端就不一样了,后端无小事。首先外面能在运营,并能活下去的项目,起步都是同时在线四五千以上(日活几万十万)。更不用说那些大项目,几百万同时在线了。一旦出现伺服器崩溃(玩家登录不上,数据回档),写出个恶性bug(玩家东西不见,或者能刷东西),那意味著什么。你不仅要面对外网玩家山呼海啸的责骂,整个部门都会盯著你,别的市场,运营,客服部门也在bb你。

所以,实际上后端你能拿到的机会远比前端的少,入门难度则比前端的大

4.发展前景

因为我不是hr,所以不了解具体的薪资。

但是就感觉而言,新人入门,做伺服器的工资应该比做客户端的高一些,毕竟物以稀为贵嘛。

但是越到后面双方的差距会越小。到了主程级别,就没区别了。那时不在于你是后端主程或是前端主程,而是在于你牛不牛逼咯


我看了你的发的问题,我想你应该是想尝试一下游戏开发,感觉游戏开发很好玩。作为一个曾经是独立游戏开发者,然后到为游戏公司打工的程序员,再到现在做后台开发的我,简直深有体会。我只喜欢做自己喜欢的类型游戏,不喜欢被指定做什么类型的游戏,所以我转行做了后台开发。

如果你是想做游戏开发,我建议前端,因为只有做前端才会接触到具体的游戏操作界面和玩法设计制作,服务端全是写各种构架,比如状态机、寻路演算法等,你做伺服器都不感兴趣,我感觉你对这些也不会太感兴趣。

如果选择前端的话,我建议Unity,首先是,市面上大部分游戏公司(大公司除外,他们有自己的引擎)都是采用的Unity开发,开发成本低,效果也还不错,2d、3d都能搞。虚幻四(行业内一般称为Unreal)的话,消耗性能太大,不适合做移动端开发,但是要做主机开发,效果这一块还是比Unity强不少。

站在程序语言的角度讲,Unity主流采用C#语言,有一些会用到javascript,但是我基本没见过。Unreal的话,主要是蓝图和C++,偏底层的开发比较少,开发主要会放在效果上面,如果你想做技美,那Unreal简直太适合你了。

现在市面上,Unreal的人才还是比较缺乏的,工资和Unity工程师差不多,你可以研究一下,但是对应的公司比较少,前景有点像Unity最开始出来的时候的样子。但是如果想要超过Unity在游戏行业的地位,那还必须得优化好在移动端的性能处理问题,还有就是时间的堆积了。

加油吧,骚年。


伺服器客户端都可以,看你兴趣。

现今的情况下,个人推荐服务端,原因:

1.伺服器的深度需要积累,积累后就是一招鲜。

2.客户端会根据项目等,可能不停更换引擎,如果没把握好机会,很容易导致最后变成脚本工具小子(因为你的知识绝大部份都积累是你使用的引擎上面)

3.未来会越来越多的单机项目考虑联网,同比来说,会增加更多就业机会(当然伺服器实际上的就业机会应该没客户端多,一般公司项目的配比,客户端:伺服器 2:1甚至更高。)。

来来来,广告来了,开源游戏伺服器引擎,配套unity客户端,欢迎讨论

ketoo/NoahGameFrame?

github.com图标


游戏开发,前端需要技能大概如下吧:

编程方面: cpp, c#,lua等,用UE引擎需要写cpp,unity用c#,热更新需要lua渲染方面:opengl/dx , 图形学,需要深厚数学基础的,,,网路方面:TCP,UDP,http都要懂动画方面:骨骼动画,帧动画,刚体动画等物理方面:碰撞检测等特效方面:粒子系统等工具方面:地编,数据配置工具,UI编辑器,动画编辑器等等(如果用引擎,ui,动画等编辑器都省略了)

还有其他暂时想不出来了,前端需要全方位层面知识的,对我来说,难难难,,

注意:前端主要玩的是数学,否则走不远 要被淘汰的 如果数学不行还是放弃吧


当然是做单机游戏啦,就不用考虑服务端和客户端的问题了。只有网游才会考虑这种问题


unity做游戏虽然是有发展,但是限制比较大,不过也可以转cocos或者h5 游戏,

伺服器的发展基本没有限制


肯定是想从一些开源的代码入手了,先看看别人是怎么做的,然后再慢慢学,慢慢练习。

这里介绍一个很不错的c++编写的开源游戏伺服器框架

moleserver

红枫软体/moleserver?

gitee.com图标

希望能对你有帮助


通俗来讲,做客户端离概念上的游戏开发更近一些,做伺服器基本上就是和逻辑,数据打交道,没有画面上的东西。客户端和伺服器,没有哪个高端,都很重要,都有技术难题,看个人兴趣


如果你是喜欢游戏,那一定选择客户端,虽然引擎多变,但是内容总是最靠近游戏的。


有自研引擎情怀或独立游戏情怀做客户端,否则选服务端.做客户端没点情怀是真的走不远.


推荐阅读:
相关文章