让JD说人话|游戏服务端开发的求职搭子在这里!

在游戏技术的岗位中,我们已经跟随年宝的脚步详细了解了游戏客户端、游戏引擎开发、游戏技术美术,今天让我们继续探秘客户端的bro——游戏服务端开发工程师,俗称“后端”,一起让服务端开发JD说人话吧!

本期索引

-揭秘游戏服务端开发

-JD没写的工作日常

-游戏服务端必备技能

-游戏服务端开发VS服务端开发

全文阅读时间需要10min,建议先收藏,后细嚼慢咽!

揭秘游戏服务端开发

江湖曾传言某某自学技术然后把单机游戏做出来,但鲜少听闻哪位大侠自己做了网游。原因之一是——网游无法脱离服务端,而服务端的数据处理工作量又实在是太多了,单枪匹马恐怕难以应付!

游戏服务端开发工程师无时无刻不在和庞大的数据打交道,参与项目中服务器开发工作,保障游戏服务器在任何情况都能稳定运行,解决数据储存、数据交互、服务器稳定、数据后台处理等问题。网络上经常看到的游戏炸服、游戏的一些外挂、性能不稳定等情况,就需要游戏服务端开发工程师的同学马上出动。

在游戏众多品类中,MMO(Massively Multiplayer Online)游戏会给游戏服务端开发工程师带来更大的挑战,因为它属于多人在线游戏,我们以《星球:重启》为例,通过游戏场景加深同学们对游戏服务端开发工程师的理解吧!

《星球:重启》有一个玩法活动,全国各地玩家一起等待游戏内的空投物资补给。在等待过程中玩家会模拟现实的行为,比如打招呼、聊天、跳舞之类。而在这个简短的等待捡取物资的过程中,服务端开发工程师都会面临不同程度的挑战。

《星球:重启》

前期,服务端开发同学需要维护各个玩家及其宠物在服务端的数据与状态、对各种玩家行为进行处理并转发、保证高效的服务器CPU与内存利用率与较低的手机上下行流量消耗。

其次,还需要同时保证玩法的随机与有趣。比如空投物资通常会在不同场次的活动中降落到不同的、恰到好处的地点。那服务端就需要建模真实的三维游戏世界,并根据一定预设策略赋予随机性,选择合适的刷新点,最后在倒计时结束后准确地刷新补给物资降落点。

最后,拾取物资的行为本身是游戏中非常复杂的一套前后端同步流程之一。拾取物资的手感、人物动作/状态的变更、相关数据保持同步,服务端同学在开发的过程中需要与客户端同学协同一致,保证这三部分都高效实现、互不冲突。另外,由于*经济系统对于一款MMO来说至关重要,假如程序实现有bug,可能会导致获取金币变得特别容易或者升级装备变得特别容易,那金币就不值钱了,相当于游戏内的经济崩溃了。所以在拾取物资到获取奖励的过程中,服务端仍然需要进行大量的数据访问与数据交换:实际奖励的生成、玩家状态的检查(如奖励要求、背包空间等)、全局奖励状态检查(比如涉及全服投放限次的奖励)、奖励的发放(玩家关键数据存档与邮件逻辑检查等)。

*经济系统:游戏内可以获取到的金币(或其他资源),都是需要通过各种方式(比如升级装备)消耗掉的。正常来说,一个游戏能持续运转,玩家在游戏内的金币的获取与消耗是比较平衡的。

以上这些行为,对于服务端开发的同学来说,都需要反复调试自己的代码设计,与其他管线的同学同频共振,让这个过程能够更流畅、更稳定。

JD没写的工作日常

如果把游戏比作一间房子,服务端就是用一系列程序和算法,为房子打地基。房子的功能能否实现,延伸,得看它基础牢不牢固。

游戏服务端开发工程师工作一般包括整体框架的搭建、网络传输、游戏逻辑开发、后台数据处理。而整体框架、网络传输通常在搭建好后就很少变动,因此游戏服务端开发同学的日常工作更多聚焦在游戏逻辑开发和后台数据的处理上。

游戏逻辑开发

游戏逻辑开发和后台数据处理并不是前后递进关系。这两种日常工作有时候是同时进行的。

游戏逻辑开发是根据策划设计的玩法,实现游戏的各种规则和机制,比如新活动、新技能、新玩法等。

以《放置少女》的抽卡活动为例,参与的条件是怎样的(等级限制,时间限制),是否有免费次数,单抽能够获得什么奖励,十连抽获的什么额外奖励,累计X次后可以获得什么奖励,保底的机制等,都是服务器开发工程师根据具体条件/要求,再琢磨用什么更好的方式去解决的。

采取的解决方式不同,对效率和数据吞吐的影响也就不同,怎么设计得最便利,就是考验服务端开发工程师水平的时候了。

《放置少女》

谈及游戏逻辑开发,看起来就是将策划的设计落到实处,好像很简单,但其中包含了很多工作内容,比如对齐需求、联调、设计功能通信协议,交付协议文档等等。

尤其是对齐需求这一点。由于数据代码本身是一种藕断丝连的关系,相互联系又很紧密,如何将每个功能模块划分好、如何减少/避免不必要的bug,这就需要服务端开发工程师经常和相关同学(策划、美术、QA、客户端等)一起参与功能会,讨论方案的可行性,对齐功能点与细节,再完成开发。

其次联调也是服务端开发同学必不可少的工作内容之一,需要配合客户端的同学完成新功能协调和测试,验证不同模块(或组件)之间的兼容性和正确性,等待同学策划、QA完成测试、验收。

*联调:指两个或多个团队在相互之间进行协调和测试,以确保整个系统的正确运行。

后台数据处理 

在游戏新版本上线或者测试阶段,偶尔会有数据方面的问题产生。有的来自客服的反馈,有的来自服务器的监控。

一般游戏服务端开发工程师在接到客服同学反馈的问题(功能BUG,异常数据处理等)后,马达就需要立刻启动,开始使用行为日志分析,*GM工具,调试工具等,对症下药,快、准、狠的把问题进行处理。一旦处理不好或者不及时,都容易导致更多反馈意见堆叠,玩家体验差,甚至会退坑。

*GM工具:一种游戏管理工具,用于处理游戏中玩家的数据、事件、问题等信息。它包含了游戏状态监控、玩家数据管理、游戏日志管理、玩家服务和游戏设置管理等功能,可以提高游戏的管理和运营效率,优化游戏质量和用户体验。

另外还有通过服务器的监控发现的问题,比如异常日志,任务处理积压,硬件指标负载高等。结合代码,日志,指标监控等,对问题做出分析与处理。

所以,如果要用一句话概述游戏服务端开发同学的角色,年宝愿意称其为:游戏运行的调解员。

游戏服务端必备技能

揭露完日常工作,还是要来点实在的,能够帮助应届同学应对简历or面试的干料之【朝夕光年-游戏服务端开发工程师必备技能】

首先,当然是开发能力了,需要掌握至少一种主流编程语言,C/C++,Java,Go等。多个主流编程语言能帮助同学们把路越走越宽。而计算机基础能力部分,服务端更侧重于网络编程、协议、以及数据库方面的知识,比如TCP/IP、UDP、HTTP等协议;关系型/非关系型数据库,比如MySQL、Redis等,同学一定要有所了解哟。

其次就是沟通能力和理解能力

先打破传统对于程序类工作的同学的误解——身穿格子服、接到需求就埋头苦干。

事实上,程序类同学也需要具备一定的沟通能力、理解能力,能够清晰明确表达自己的看法、能够及时交流工作情况、能够快速明白诉求,快速解决问题、能够倾听他人的建议,更好地与团队成员沟通。

比如,在开发流程中,游戏服务端开发的同学经常和其他服务器的同学进行代码review,让别人检查下自己写的代码,有利于从别人的视角上发现问题,共同提高代码质量。

除此外,还需要对游戏保持热爱以及对新事物的好奇心。

在热爱的基础上,不断吸收新的游戏技术和理念,让热爱的汤越煮越浓郁。热爱一腔,孤勇泱泱,朝夕不负少年郎。

游戏服务端开发 vs 服务端开发

为什么年宝推荐大家选择游戏服务端开发而非通用行业的服务端开发呢?

因为游戏服务端开发相对通用行业的服务端开发来说挑战性会更高,适合一生好强又热爱游戏行业的同学们~

  • 通信实时性高:

游戏服务器的最终目的是为了提供游戏体验,追求稳定性、流畅度。通常通过UDP或TCP实现高速数据传输,以便毫秒范围内快速完成请求的处理。而通用行业的服务器,通常通过HTTP和RESTFul API进行交互,请求频率和实时性要相对较低。

  • 有状态服务:

游戏服务器为了快速完成客户端的请求,通常在内存中缓存了客户端的状态与数据,快速完成大量请求对数据的修改。而通用行业的服务器通常采用无状态服务器,不保留任何关于请求的状态信息,可以更加轻松地扩展。所以数据量上,游戏服务端也是远超通用行业的。

  • 通用性:

游戏服务器通常为了某个玩法的要求,会设计一些特殊的架构和逻辑来实现。不同类型的游戏的架构往往差异很大。而通用行业的服务器通则相对统一,更加通用。多种架构和逻辑便于游戏服务端的同学因地制宜,不断提升自己的判断力和专业水平。

除此之外,年宝认为从事游戏开发行业的工作会特别的快乐,设计任务系统、装备系统、战斗服、匹配服等的逻辑,用代码实现出来,再用打游戏的形式进行测试,享受游戏带来的工作成就感。

好了,本篇游戏服务端坦白局已经全盘托出了。希望对还在犹豫是否投递服务端的同学、以及纠结是否投递游戏服务端的同学有所帮助!下次让JD说人话,深入探探游戏策划类岗位,如何?

最后祝你早日投递成功、简历通过、面试成功!

期待你的简历!内推码:1PD38UC

(点击下方岗位,一键进行投递)

#23届找工作求助阵地#
全部评论
朝夕光年校园招聘,期待你的简历!内推码:1PD38UC 。
点赞 回复 分享
发布于 2023-08-17 18:04 广东

相关推荐

是每个人事都这样与找工作的人这样沟通吗?正常询问不可以吗
超时空记忆丶:这种人适合跟我聊 我能骂得她心里难受一天,这种byd一看就是欠骂,这么好的机会楼主别错过。
点赞 评论 收藏
分享
那一天的Java_Java起来:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
1
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务