概述:本文尝试从开发者角度梳理开发实时联网游戏后台服务过程中可能面临的挑战,并针对性地提供相应解决思路,期望帮助开发者依据自身游戏特点做出合理的技术选型。
维基百科关于网络游戏的定义:通过计算机网络,将专用服务器和用户的客户端设备(手机、PC、游戏主机等)相连,让多名玩家同时联机进行游戏的娱乐形式,由此可知网络游戏涉及三个角色:客户端、网络、服务器,从网络架构上来讲网络游戏可分为C/S 架构和P2P架构(特指客户端间直连通信),在实际开发中还有一种C/S和P2P架构混合:C/M架构。
P2P架构不在本文讨论范围,C/M架构和C/S架构类似,和经典的LAMP网站架构类似一般C/S架构的游戏后台也可划分为如下三
层:(1)网络接入层;(2)游戏逻辑层;(3) 数据存储层。
网络接入、游戏逻辑、数据存储层各自所面临的问题域及对应技术栈都大为不同,做此划分不仅有助于模块解耦、技术分工、组件复用,也可方便服务的运维部署。本文也着重从这三个方面来阐述游戏服务器的开发。
1、网络接入层
网络接入层的主要任务是建立客户端和后台服务以及客户端之间的信道,接收来自客户端大量并发请求,考核该层的主要性能指标是ÿ