本文来自 字节教育-成人与创新前端团队,已授权 ELab 发布。
一、背景单机游戏是了解别人的人生, 而联机游戏是体验另一种人生 ---- by 核桃仁
联机游戏是指多个客户端共同参与的游戏, 这里主要有以下三种方式
- 玩家主机的 P2P 联机模式, 比如流星蝴蝶剑、以及破解游戏(盗版)
- 玩家进入公共服务器进行游戏,玩家资料由服务器储存的网络游戏, 比如星际争霸、魔兽等
- 可以在单人模式中开启局域网来与他人进行多人游戏,但仅限于连接同一局域网的玩家使用
大多数联机游戏采用的是 CS 架构, 使用独立设备作为主机与玩家进行交互通信
image.png
client/server 架构
第一代架构(一个服):这种模式, 将所有玩家的请求发送到同一个线程中进行处理, 主线程每隔一段时间对所有对象进行更新. 适合一些回合制以及运算量小的游戏
第二代架构(分服):后来随着玩家越来越多, 第一代架构已经不堪重负, 于是就产生了第二种架构 --- 分服, 这样对玩家进行分流, 让玩家在不同的服务器上玩, 不同服之间就像不同的平行世界
第三代架构(世界服):虽然第二代架构已经可以满足玩家增长的需求 (人满了就再开个服), 但是又出现了玩家开始想跨服玩或者时间长了, 单服务器上没有多少活跃玩家, 所以又出现了世界服模型
基础三层架构这种设计将网关、和数据存储进行分离, 数据使用同一个数据服务器, 不同游戏服务器的数据交换由网关进行交换