搜索
写经验 领红包
 > 电器

游戏服务器开发一般用什么语言(游戏服务器开发是做什么的)

导语:游戏服务器开发(一)

从事游戏服务器开发10多年了,经历过大大小小五六款游戏,谈得上成功游戏的却是没有。

心血来潮,想把这么多年的服务器的开发经历写出来,给自己一个总结,给后来人一个参考,水平有限口下留情。

本系列以中小型游戏服务器作为例子。

游戏服务器按层次分可以分为:

数据库层;网络层;业务层;GM后台。

按功能可以分为:

网关进程;逻辑进程;全局进程;路由进程。

下面展开来说:

数据库层:

顾名思义,数据库层就是用来存储数据用的,包括游戏数据和日志数据,游戏数据比如角色自身的数据(装备,属性等)、全局数据(帮派,排行榜等)。

日志数据是为了运营查询方便而存储的一些角色行为,比如角色注册,元宝道具流水,留存,充值等。

这里面涉及到数据库选择,数据存储策略,数据备份策略,数据缓存策略,这里列一下通常的做法。

1.数据库选择:

游戏数据:可选的有MySQL、MongoDB、Redis、SSDB,本人比较偏向SSDB,因为占用内存少,自带缓存功能,读写速度也不错,缺点是没有binlog回滚功能。

日志数据:为了联合查询方便,通常选用MySQL作为存储数据库。

2.数据存储策略:

游戏数据包括角色数据和全局数据。

角色数据:角色登录的时候从数据库中加载到内存,然后定时保存(通常5分钟左右)游戏过程中修改过的数据(脏数据)。

全局数据:游戏启动的时候全部加载进内存,也是定时保存游戏过程中修改过的数据。

通常做法:数据按不同模块以key value方式存储到数据库,key为对应模块的名字,value为将模块数据打包成json格式后的json数据。

3.数据备份策略:

游戏数据:

选项1:定时用数据库备份工具热备份出来放到一个安全的地方,比如备份机器,或者挂载个硬盘上去(云服务器都有这个功能)。

选项2:数据库做主从库同步。

日志数据:同上。

数据库层篇完结。

本文内容由小纳整理编辑!