欢迎来到天天文库
浏览记录
ID:23375190
大小:81.50 KB
页数:5页
时间:2018-11-06
《服务端架构设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、WebGame服务端架构设计目录WebGame服务端架构设计11誠撕21.1胃景-21.2执行环境21.3兼荇性目标31.4网络需求31.5系统架构没计原则31.6模块设计原则31.7开源组件选择31.8国际化原则31.9性能目标41.10已有的成熟方案41.11方案简介41.11.1服务器当机时玩家数据不回档的保证方案41.11.2服务器不停机更新方案41.11.3脚本引擎41.11.4配置转表工具51.11.5前后台协议同步方案51.11.6内存管理方案51.11.7M络通讯方案51.11.8视野同步方案51.11.9任务功能实现方案51.11.10副本功能实现
2、方案62割本雛61需求分析1.1背景使用C/C++技术开发的RPG游戏,系统的方向参照《祌仙道》1.2执行环境业务层模块:对CPU要求最商,.其次是A存,对磁盘容量要求不商存储层模块:对磁盘容量要求最高,其次是内存和CPU1.3兼容性目标1、操作系统:64位LINUX2、mysql5.0以上。1.4网络需求根据游戏没计而定,如果是分区分服的没计,普通的网络机房即可。如果是全区全服的设计,需要三通的机房网络支持。1.5系统架构设计原则系统按照功能职责和安全性划分子系统和模块,参考成熟架构异常处理过载保护各个子系统/模块可独立扩容1.6模块设计原则模块内各个层次低耦合高
3、内聚严格控制内存使用严格控制所有对象资源的生存期,及时回收逻辑验证在服务器端执行,避免客户端外挂对游戏公平性造成影响对关键算法做性能优化1.7开源组件选择Log4c:日志protobuf:协议libevent:高并发监听与连接1.8国际化原则所有字符串使用UTF8编码字符串不在程序中硬编码,放入指定的资源文件以方便国际化1.9性能目标根据游戏设计和硬件环境而定1.10已有的成熟方案:服务器当机时玩家数据不回档的保证方案:服务器不停机更新方案;脚本引擎:配罝转表工具:前后台协议同步方案:内存管理方案:网络通讯方案:视野同步方案i任务功能实现方案:副本功能实现方案l.i
4、i方案简介l.ii.i服务器当机时玩家数据不回档的保证方案通过将游戏中的数据分类,保证和玩家状态相夫的数据保存在共享内存或内存映射文件中。当服务器出现当机等异常状况时,可以通过重新读取共享内存或内存映射文件将玩家数据恢复,确保玩家数据不回档。1.11.2服务器不停机更新方案通过将游戏屮的数据分类,游戏状态相关的数据及状态无关数据分离,配置及脚木相关数据分离。确保状态相关数据保存在共亨内存中。当服务器需要更新时,可以选择性的跟新指定模块。同时,由于状态相关数据在共享内存中,通过特定技术的恢复,达到不停机更新的目标。1.11.3)多年的游戏开发,我们积累了大量脚本开发和
5、使用的经验。我们有成熟的脚本方案,可以保证极高效率的同时,满足各类任务,活动,副本,技能,人工智能等需要。1.11.4配置转表工具让策划能够使用各种工具和技能配置excel表格来控制游戏屮的各类数裾。而程序只需要通过转表工具将excel的数据转化为前后台能够各自高效使用的二进制数据。即满足灵活性的耑要,又满足高效性的耑要。1.11.5前后台协议同步方案前后台协议的同步使用基于开源的pmtobuf组件,经过仔细的约定和扩展而来的方案。基于内存池的内存管理方案。为游戏各个模块提供各类支持。1.11.7网络通讯方案基于开源组件libevent实现的网络通讯方案。保证在大量
6、客户端连接的情况下,服务器照样能够高效运转。1.11.8视野同步方案视野同步是很多网络游戏的性能瓶颈所在。我们经过多次的优化和总结,提取出许许多多的经验,并完成成熟的视野同步方案。确保高效准确的视野同步感受。1.11.9任务功能实现方案支持基于表格填写的任务实现方案,能够快速的提供大量的游戏任务,丰富游戏内容。同时,还支持基于脚本的任务实现方案,能够支持各类灵活多变的个性化任务和对话。1.11.10副本功能实现方案提供各类副本的实现方案。包括基于地图编辑器和配置表格的快速副本提供方案和基于脚本的个性化副本实现方案。可以大量快速的布置各类丰富多彩,玩法,特色十足的副本
7、。2整体架构架构是为了游戏内容服务。不同特色的游戏选用不同类型的架构。我们对当前市场上各类主流游戏架构及其优劣有深入的了解和分析,可以根据我们游戏的特点,制定出最合适的游戏架构。充分满足稳定,高效,易维护,易扩展的需求。3合服支持1:合服需要保证玩家ID的唯一,我们在建立角色之初就通过特定算法,保证每个玩家角色的ID在所有服务器中唯一存在,避免了合服之后ID重复导致的各类问题出现。2:合服玩家的名字唯一性问题。可以通过建立统一的名字服务器来保证所有服务器或者某些服务器屮玩家角色名字唯一来避免合服之后玩家角色名字重的问题。也可以简单的在合服之后给重名的玩家名字加上
此文档下载收益归作者所有