谈谈一只菜鸟转行Erlang游戏服务端的经历(希望大佬指导,也希望我的经历能给一些还未毕业的同学或者正在迷茫自己工作内容的同学一些感触)


第一次发文章,主要想谈谈自己近半年来的心路历程吧,希望各位大佬多多指教,也希望给看到这篇文章还未入行或者打算入行但是不知道选择什么方向的同学一点我自己的亲身体验。

个人经历

作为一个22届双非本科出来的学生,今年年初开始找实习,因为自己在校期间也是属于纯玩的那一类人,偶尔敲一下代码,完整的项目经历基本上都没有,刚出来找实习那会确实是差点放弃了,不过还好是坚持了一个月,这一个月把各种面试八股文背了,面试了无数家(毫不夸张)终于面上了一家。这也算是我职业生涯的开端,也是我毅然决然决定转方向的一次工作经历,详细就不谈了,大致就是我不喜欢做这种web业务和内容(这一家是搞审计的,业务流程个人感觉很恶心),在经历了三个月的兢(du)兢(ri)业(ru)业(nian)后,我提出了辞职,好运的是这次我在职期间就有不断地刷面试题以及各大招聘软件,在辞职完的一周内我就陆续收到了两家offer,都是接受转语言erlang的,为什么说是“误打误撞”呢,其实我一开始就是想转游戏方向,毕竟游戏真是属于从小玩到大,做游戏开发也算是一个小理想(勿喷,我知道这跟理想关系不大哈哈哈)。而且当时就想着先入行游戏开发这个门,于是有两个机会摆在我面前,我就没有太多思考的接受了其中一家我觉得面试氛围更棒的offer,至此就开始了游戏服务端开发的道路。

转方向后的工作经历

转了方向之后,事实证明我这是非常正确的决定,在进入新公司的第一个月,公司提供了语言的培训以及一些“小作业”,大致就是用Erlang写出一个聊天室,以及设计一个游戏背包系统(这个要是有感兴趣的朋友可以私信我给你看看不入流的菜鸟源码哈哈哈,不过基本功能还是可以跑通的,虽然现在看起来很捞,是真的捞)。应该不到一个月时间吧,erlang上手真的挺快的,对于我一个实习后在第一家公司才算真正编码,完成了自己第一个项目的人来说,上手算是很容易了。完成了“作业”之后,主程看完也觉得没问题,可以试着上手接触项目了,当时开了SVN权限,第一次把项目拉下来,在主程的帮助下,在我本机上成功开服,打开客户端连接的那一刻,亚雷妈,是真有种很爽的感觉(终于踏进这个门了,我焯!)。
接下来就是开始熟悉项目的过程,1:开关服的流程 2:玩家上下线的流程 3:以及各种业务流程的功能等。当时我记得用了大概一周时间,整理了一版word将流程都一一记下来,小到每个接口的调用和作用都写进word做注释(因为是第一次接触一个大项目,Erlang的各种进程间的用法和并发处理,都没啥经验),整理完了反复斟酌,不过还是有非常多不理解的地方,例如:网络进程的接发,各种进程间的消息传递和一些数据共享的问题,则在我当时看来确实有点云里雾里的,最后还是硬着头皮将这一套流程解释给主程听,他指出了挺多我在这过程中不懂的问题,也都一一给我解答了,说实话,选择这个公司是真的运气很好,首先氛围非常不错,带我的主程也是完全没有架子,刚开始真的是每天都在汲取新知识,完全不感到疲惫,甚至有点小亢奋(这么说不知道夸不夸张,应该有刚入行的小伙伴有同样的感觉吧哈哈哈)。

工作中遇到的问题和处理

因为之前那段实习经历都做的Web全栈,所以把自己的技术栈都整的都会一点点,但是都不深入,从融入工作项目后,接触了一整套网络框架,流程框架,其实对自己的整个技术水平和代码能力都有一个量级的提升,接到的第一个需求是《装备的洗炼功能》,这个功能是需要把装备的附加属性、特技、特性等通过洗炼改变,要求保存最后一次洗炼出来的效果,玩家可以手动选择保存或者继续洗炼,中间还需要判断高品质属性提醒玩家是否要继续洗炼。因为是第一个需求,刚开始也是遇到了非常多问题,比如之前没用过protobuf协议,跟客户端同学沟通过后才定义了第一个协议(当然现在看来这些完全不需要技术的东西当时真的不了解),后面就是开始写业务,包括数据结构的设计,洗炼的消耗算法等等,前前后后花了两周才把第一个需求搞定(确切的说是一个小功能),当时就是觉得做出来了,很不容易,那天自己硬是玩了一下午的洗炼功能,一直在洗,感觉还挺爽的终于上手了第一个需求并且顺利完成了。不过头疼的来了,后来策划发现一个问题,每次洗炼的结果,总是百分比的词条在前面,而整数的词条永远在后,这是因为在数据传递的时候,封包时将float和int的数据分开了,因为百分比配置的数据都是小数形式(现在看来这个确实不太合理,float在网络传递的过程中可能还会出现精度的丢失),后面改了第一版是通过给每个词条添加索引,客户端同学通过这个索引进行排序,这样不会导致总是百分比在前,后面也有想到更好的方法,就是将所有词条都进行10000倍的扩大进行传递,客户端拿到数据后再去/10000进行解析显示(不过因为本身加了索引再改起来就挺麻烦的,后来也就没有改动了)。
第一个需求过后,后面也是做的越来越顺手,过程中也是不断地遇到问题,例如:
1、我们游戏内的资源数据大部分都是来自策划的excel表,所以也必须学会导表工具xml的编写;
2、线上日志的查看,排错能力;
3、业务功能方面,数据库数据结构的合理设计,以及好的算法实现;
4、游戏内的各个进程的划分,什么时候需要开新进程,什么时候需要通过定时器来定时解析数据存储等等;
5、Linux服务器的操作,包括怎么在线上通过后台或者前台启动,如何查看线上玩家的数据等;
然后不断地解决,这种感觉确实挺爽的,感觉在不断的提升,到可以完全独立的对接策划的各种需求以及沟通和谈自己的想法,这种能力的提升以及工作中受到的一些认可是真的让我觉得不后悔转了游戏开发这个方向(不谈理想,起码这是我感兴趣的内容,工作起来也不会觉得枯燥乏味)。

一些游戏服务端开发的体验和想法

游戏服务端这个岗位,可能转语言的门槛会比较低一些,但是对于编程的基础能力要求还是需要非常扎实的(数据结构算法、数据库、网络知识、操作系统知识、Linux)。整体来说,知识的覆盖面挺广的。除去技术,有些游戏公司也会比较注重游戏经历或者有没有做过游戏的项目(这个我之前做Java的时候有试过从网上扒一些小demo玩过,有想法转游戏的同学也可以网上扒一些小小的demo去跑一遍试试)。游戏服务端开发就是一个纯纯跟数据打交道的岗位,基本上工作中你是不会看到有很明显的反馈的,所以选择这行一定要想清楚,是否喜欢,纯数据的开发内容会不会让你觉得特别枯燥,当然配合客户端还是能看到数据控制的效果的(这也可以算是及时的反馈吧)。
整体来说,游戏服务端开发和其它的web开发啥的,最大的区别就是业务,如果你觉得写游戏业务(就大概是那些玩法流程,例如我上述所说的装备洗炼)会比写其它的业务流程更有兴趣,可以尝试做游戏服务端开发。

最后谈谈自己现在面临的问题

最后想谈谈自己的问题,现在感觉自己有点沉迷于写业务了,感觉近一个月来,对自己技术的掌握越来越迷茫,不知道该往哪个方面继续提升(其实是都想了解但是不知道从哪里入手,感觉很多东西深入了也对现在的工作内容没有任何的提升),想请教C站的各位大佬,我现在入行半年,当下应该做什么为以后的职业规划做提升?希望有大佬可以给我分享经验,感谢感谢。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

. 999

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值