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

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

什么是游戏服务器?

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

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

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


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

游戏服务的特点及应对

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


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

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

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

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

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

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


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

游戏服务器开发技术
 


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1618692.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

游戏服务器的那些事儿

游戏程序开发有两个大方向,包括前端和后端。其中,前端是指客户端方面,包括PC、手机和平板上面的可视化图形技术。后端则偏向于服务器,即用户不可见的部分。本文将通过游戏服务器的起源、功能特点、分类和发展历史,以及…

〔017〕Stable Diffusion 之 常用模型推荐 篇

✨ 目录 🎈 模型网站🎈 仿真系列🎈 国风系列🎈 卡通动漫系列🎈 3D系列🎈 一些好用的lora模型 🎈 模型网站 由于现在大模型超级多,导致每种画风的模型太多,那么如何选择最…

通达信形态匹配选股,不会编写指标公式也可以形态选股

编写指标公式匹配技术形态难度比较高,公式也很复杂,新手往往难以掌握,即使是老手也常常感到困难。之前编写了N字形态、W底(双底)、头肩底,虽然成功完成,但工作量巨大,公式理解起来也…

python函数学习

def add(num1,num2):resultnum1num2print(f"函数add输出的结果是{result}")return result resultadd(int(num1), int(num2)) print(f"调用def add(num1,num2):这个函数最终返回的结果是: {result}")# 函数返回值 ②无返回值(也就是说是返回值类…

【python】python智能停车场数据分析(代码+数据集)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

Linux驱动之platform设备驱动

目录 前言 一、Linux驱动的分离与分层 二、开发环境 三、驱动程序编写 3.2 platform 驱动模块程序 3.3 测试app程序 四、运行测试 4.1 编译 4.2 运行测试 前言 前面几章编写的设备驱动都非常的简单,都是对 IO进行最简单的读写操作。像 I2C、SPI、 LCD 等这…

嵌入式系统启动文件及其流程的理解

简单概括总结嵌入式上电启动顺序 启动第1步:加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、…

python使用win32库模拟拖拽文件发给指定窗口

最近要用python模拟人的操作给窗口发送拖拽文件的消息,网上搜了一大圈也没搜到现成可用的代码。幸好以前做过vc开发,熟悉点win32编程,于是装上vs和msdn,从消息WM_DROPFILES查起,慢慢得实现了这个功能。 WM_DROPFILES是…

TMS FNC UI Pack 3.1Crack,四个框架和五个操作系统的强大控件

TMS FNC UI Pack是TMS软件的产品,具有针对四个框架和五个操作系统的强大控件和丰富功能。 TMS FNC控件可以在以下框架中同时使用: TMS FNC控件可以在以下操作系统/浏览器中同时使用: TMS FNC控件可在以下IDE中同时使用: TMS FNC U…

TMS FNC组件crack,TMS FNC跨平台的图形组件

TMS FNC组件crack,TMS FNC跨平台的图形组件 TMS FNC Chart 为公司、统计、财政和科学信息开发的完全跨平台的图形组件。 TMS FNC 组件可以在这些框架上同时使用。 TMS FNC 组件可以在这些操作系统/浏览器上同时使用。 TMS FNC 控件可以在这些 IDE 上同时使用。 TMS FNC图表应用…

开源代码扫描工具 Socket新增对 Go 生态系统的支持

导读继日前宣布完成 2000 万美元的 A 轮融资后,开源代码扫描工具 Socket 紧接着宣布新增了对 Go 语言的支持;此前其仅支持 JavaScript 和 Python 语言。 “在过去的几个月中,我们观察到针对 Golang 的供应链攻击有所增加。意识到这种迫在眉睫…

Python数据分析的bs4用法

在爬虫的世界里,数据解析占用很重要的位置 数据解析原理: 标签定位提取标签、标签属性中存储的数据值 bs4数据解析原理: 1.实例化一个BeautifulSoup对象,并且将页面原码数据加载到该对象中2.通过调用BeautifulSoup对象中相关的…

BS架构通信原理

BS架构通信原理 1.关于域名 https://www.baidu.com/(网址) www.baidu.com(是一个域名) 在浏览器地址栏上输入域名,回车后,域名解析器会将域名解析出来一个具体的IP地址和端口号等。 该地址也可以通过DOS窗口来显示(…

Python爬虫:bs4解析

Python爬虫&#xff1a;bs4解析 html语法什么是bs4bs4安装从bs4中查找数据的方法bs4的基本使用实例&#xff1a;使用bs4爬取优美图库图片思路代码 html语法 <标签 属性“值” 属性“值”>被标记内容 </标签>什么是bs4 bs4全称&#xff1a;beautifulsoup4&#xf…

合泰BS8116A-3触摸芯片开发踩坑指南

一、硬件说明 引脚图&#xff1a; 接线&#xff1a; 说明&#xff1a;由于用到了唤醒检测&#xff0c;所以KEY16引脚用作IRQ中断唤醒功能&#xff0c;未使用引脚拉低。 二、IIC配置说明 1、最大波特率&#xff1a; 实际单片机配置最好不要设置波特率100Khz容易出错&#xff…

BS4基本用法

1.找米下锅&#xff0c;安装bs4库 pip install BeautifulSoup 2.此物何用&#xff0c;BS4作用 Beautiful Soup库是解析、遍历、维护“html标签树”的功能库。在爬虫中用于解析数据。 3.bs4标签元素&#xff0c;解析其组成&#xff0c;方可庖丁解牛&#xff0c;游刃有余 by…

XPath和bs4

XPath XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航 使用方法&#xff1a; 使用前要把response.text通过etree.HTML()转换为对应的格式&#xff0c;再通过 变量名.xpath(xpath)截取内容 responserequests.get(url,headershead…

Python爬虫 BeautifulSoup(bs4)-- bs4介绍、安装bs4、bs4基础语法

1. BeautifulSoup简介 BeautifulSoup简称&#xff1a; bs4 。什么是BeatifulSoup&#xff1f; BeautifulSoup&#xff0c;和lxml一样&#xff0c;是一个html的解析器&#xff0c;主要功能也是解析和提取数据 。优缺点&#xff1f; 缺点&#xff1a;效率没有lxml的效率高优点&a…

Python爬虫 之数据解析之bs4

数据解析之bs4 一、bs4进行数据解析二、bs4库和lxml库的安装三、BeautifulSoup对象四、项目实例 一、bs4进行数据解析 1、数据解析的原理 ① 标签定位。 ② 提取标签、标签属性中存储的数据值。 2、bs4数据解析的原理 ① 实例化一个BeautifulSoup对象&#xff0c;并且将网页源…

【数据结构】手撕顺序表

一&#xff0c;概念及结构 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;一般情况下采用数组存储&#xff1b; 在数组上完成数据的增删查改。 1&#xff0c; 静态顺序表&#xff1a;使用定长数组存储元素。 2.&#xff0c;动态顺序表&#xff1…