鹅厂公开课:游戏服务器,了解一下?

讲师简介:张正,腾讯互娱北极光工作室群专家工程师,拥有12年游戏后台开发经验,主导和参与了《天涯明月刀》、《轩辕传奇》等自研大型MMORPG项目的后台开发,现担任《天涯明月刀》项目后台技术总监,北极光后台技术总监。

什么是游戏服务器?

从字面上来看,游戏服务器其实是一个硬件的概念,常见游戏服务器类型有机架式服务器、刀片机、小型机等,不同的服务器在CPU、内存、磁盘上有所侧重,依据游戏需要运行的程序而定。和一般的电脑不同,游戏服务器只需要CPU、内存和主板,经过标准化的封装以后被统一放置在机架上。这种设计一方面可以节省存放空间,另一方面也易于管理。

我们一般选用的服务器机型都是内部的定制型号,比方说A服务器的CPU内存很一般,但是它的磁盘很大,我们用它来做存储;比如说C服务器的CPU内存也比较一般,磁盘也很小,但是它的主频比较高,我们会用来做网络接入。

在游戏服务器开发上,单机游戏一般分为图形程序员和游戏逻辑程序员,其中图形程序员负责图形渲染,需要的技术比较深;而游戏逻辑的难度则更多地在于软件工程上,并不是在游戏渲染技术这个方面;联网游戏一般分为游戏程序员和网络程序员,后者相对边缘,主要存在于一些比较专业的游戏工作室中;在网络游戏里面,分工则更加明确,像前台开发涵盖了图形逻辑相关的内容,后台开发其实就是游戏服务器开发。
 


所以当说起“游戏服务器”的时候它到底指什么?这三种都可能有:它可能指代硬件,可能是软件,也可能是一些人。

游戏服务的特点及应对

游戏服务需要解决的核心问题是满足海量游戏用户的要求——稳定和高质。稳定是相对于不稳定的情况而言的,用户常说的卡顿即是典型的不稳定。但实际上我们从技术实现的角度来看还可以细分为几种不同的类型。从服务器软件这个角度去看,一般会有计算的卡顿,比如存在一个死循环的BUG,或者是进入一个大循环的BUG里面很长时间出不来,无法响应用户操作。再一个要求就是高质量,也就是要求快速、逻辑严谨、更新频率高且及时。
 


游戏服务跟其他互联网服务有什么区别呢?

首先游戏对延迟是比较敏感的,当然这不是指所有游戏。二手手游购买在一些实时交互的游戏里面,延迟超过三百毫秒是无法正常运行的,像格斗类和射击类游戏延迟一般都要求在一百毫秒以内。

第二是实时的高烈度交互,单个终端发送请求的频率是非常高的。我们玩一些对战游戏的时候,一个手势每秒钟玩家可能会点击多次,另外单次请求往往会引发多处数据改变,这在实时大范围交互的场景下很容易出现,比如城战。

第三就是业务逻辑复杂,内部耦合度高。复杂游戏服务的代码可以达到百万行的量级,像《天涯明月刀》这个MMORPG,代码到现在为止,应该是一百五十万行左右。

第四是变更的频度高、幅度大。变更的幅度,这里面包含很多内容,比如游戏资源,可能是一些配置表、图标、贴图等等;有些时候还需要做逻辑的更新,比如说脚本,甚至是一个完整的patch。

怎么去应对复杂度?最常见的方法就是分治,就是把大问题拆分为小问题,最终在一个合适的纬度上去解决。而对于内部复杂度高的,就需要在软件内部设计上去下功夫了。


再一个方法就是灰度,灰度是相对于黑白而言的一个概念。我们认为在各种各样的事情里面,并不是非黑即白的,它们有很多中间状态。对一个服务而言也是这样子。当我们不能百分之百提供一个服务的时候,我们不是直接把它关掉,我们可以给玩家提供部分的服务,或者我们给部分玩家提供服务,另外一部分玩家先等一下。

游戏服务器开发技术
 


以上是游戏服务器的开发技术的总图,这里分了几层:最核心的就是算法和数据结构,外面一些是操作系统,再往外的是编程语言、工具链、存储、网络等一些专有的技术,然后再往外其实还有一些软件工程方面的东西。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值