服务端架构设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

WebGame服务端架构设计

目录

WebGame服务端架构设计 (1)

1需求分析 (2)

1.1背景 (2)

1.2执行环境 (2)

1.3兼容性目标 (3)

1.4网络需求 (3)

1.5系统架构设计原则 (3)

1.6模块设计原则 (3)

1.7开源组件选择 (3)

1.8国际化原则 (3)

1.9性能目标 (4)

1.10已有的成熟方案 (4)

1.11方案简介 (4)

1.11.1服务器当机时玩家数据不回档的保证方案 (4)

1.11.2服务器不停机更新方案 (4)

1.11.3脚本引擎 (4)

1.11.4配置转表工具 (5)

1.11.5前后台协议同步方案 (5)

1.11.6内存管理方案 (5)

1.11.7网络通讯方案 (5)

1.11.8视野同步方案 (5)

1.11.9任务功能实现方案 (5)

1.11.10副本功能实现方案 (6)

2整体架构 (6)

1需求分析

1.1背景

使用C/ C++技术开发的RPG游戏,系统的方向参照《神仙道》

1.2执行环境

业务层模块:对CPU要求最高,其次是内存,对磁盘容量要求不高

存储层模块:对磁盘容量要求最高,其次是内存和CPU

1、操作系统:64位LINUX

2、mysql 5.0以上。

1.4网络需求

根据游戏设计而定,如果是分区分服的设计,普通的网络机房即可。

如果是全区全服的设计,需要三通的机房网络支持。

1.5系统架构设计原则

系统按照功能职责和安全性划分子系统和模块,参考成熟架构

异常处理

过载保护

各个子系统/模块可独立扩容

1.6模块设计原则

模块内各个层次低耦合高内聚

严格控制内存使用

严格控制所有对象资源的生存期,及时回收

逻辑验证在服务器端执行,避免客户端外挂对游戏公平性造成影响对关键算法做性能优化

1.7开源组件选择

Log4c:日志

protobuf:协议

libevent:高并发监听与连接

1.8国际化原则

所有字符串使用UTF8编码

字符串不在程序中硬编码,放入指定的资源文件以方便国际化

根据游戏设计和硬件环境而定

1.10已有的成熟方案

服务器当机时玩家数据不回档的保证方案

服务器不停机更新方案

脚本引擎

配置转表工具

前后台协议同步方案

内存管理方案

网络通讯方案

视野同步方案

任务功能实现方案

副本功能实现方案

1.11方案简介

1.11.1服务器当机时玩家数据不回档的保证方案

通过将游戏中的数据分类,保证和玩家状态相关的数据保存在共享内存或内存映射文件中。当服务器出现当机等异常状况时,可以通过重新读取共享内存或内存映射文件将玩家数据恢复,确保玩家数据不回档。

1.11.2服务器不停机更新方案

通过将游戏中的数据分类,游戏状态相关的数据及状态无关数据分离,配置及脚本相关数据分离。确保状态相关数据保存在共享内存中。当服务器需要更新时,可以选择性的跟新指定模块。同时,由于状态相关数据在共享内存中,通过特定技术的恢复,达到不停机更新的目标。

1.11.3脚本引擎

多年的游戏开发,我们积累了大量脚本开发和使用的经验。我们有成熟的脚本方案,可以保证极高效率的同时,满足各类任务,活动,副本,技能,人工智能等需要。

1.11.4配置转表工具

让策划能够使用各种工具和技能配置excel表格来控制游戏中的各类数据。而程序只需要通过转表工具将excel的数据转化为前后台能够各自高效使用的二进制数据。即满足灵活性的需要,又满足高效性的需要。

1.11.5前后台协议同步方案

前后台协议的同步使用基于开源的protobuf组件,经过仔细的约定和扩展而来的方案。

1.11.6内存管理方案

基于内存池的内存管理方案。为游戏各个模块提供各类支持。

1.11.7网络通讯方案

基于开源组件libevent实现的网络通讯方案。保证在大量客户端连接的情况下,服务器照样能够高效运转。

1.11.8视野同步方案

视野同步是很多网络游戏的性能瓶颈所在。我们经过多次的优化和总结,提取出许许多多的经验,并完成成熟的视野同步方案。确保高效准确的视野同步感受。

1.11.9任务功能实现方案

支持基于表格填写的任务实现方案,能够快速的提供大量的游戏任务,丰富游戏内容。同时,还支持基于脚本的任务实现方案,能够支持各类灵活多变的个性化任务和对话。

1.11.10副本功能实现方案

提供各类副本的实现方案。包括基于地图编辑器和配置表格的快速副本提供方案和基于脚本的个性化副本实现方案。可以大量快速的布置各类丰富多彩,玩法,特色十足的副本。

2整体架构

架构是为了游戏内容服务。不同特色的游戏选用不同类型的架构。我们对当前市场上各类主流游戏架构及其优劣有深入的了解和分析,可以根据我们游戏的特点,制定出最合适的游戏架构。充分满足稳定,高效,易维护,易扩展的需求。

3合服支持

1:合服需要保证玩家ID的唯一,我们在建立角色之初就通过特定算法,保证每个玩家角色的ID在所有服务器中唯一存在,避免了合服之后ID重复导致的各类问题出现。

2:合服玩家的名字唯一性问题。可以通过建立统一的名字服务器来保证所有服务器或者某些服务器中玩家角色名字唯一来避免合服之后玩家角色名字重复的问题。也可以简单的在合服之后给重名的玩家名字加上后缀来处理。

3: 我们会提供大量的日志和数据统计来支持合服策略的制定。通过分析日志和DB中玩家的数据,我们能够提供给运营准确和充分的数据来判定合服的策略。确保合服之后的玩家能够得到更好的游戏体验。

相关文档
最新文档