游戏服务器相关技术
做游戏开发也差不多有大半年的时间了。 从这半年的接触来看,游戏行业还是不错感觉。 下面就记录一下服务器端可能用到的一些技术。
1. 数据库 --->不用多说。 但是游戏行业与web开发的数据库设计思想不太一样。 游戏中,只是将一些区别性的东西保存在数据库,对于共享的数据都做成xml,在服务器启动的时候加载到内存中。 例如:对于道具而言,小血瓶每次固定补满1000hp,那对于这个道具没有必要保存到数据库中。而对于角色的装备,比如武器,武器可能会进行强化,祈福等。导致个相同武器具有不同的属性,那么对于每个武器都需要单独保存到数据库中。
2. 日志 glog. google提供的一个C++日志记录类,利用它可以很好的进行日志记录。
3. 消息队列 ZMQ。 不用多说,百度一下 全都知道。 注意使用方法
4. protobuffer 一般用来作为通信数据的载体,可以很方便的进行对象到二进制数据之间的转换。
5. boost 提供C++的很多高级功能。
6. 内存性能分析 tcmalloc
7. distcc 分布式编译工具,对于大型模块,使用分布式编译可以很大程度上加快编译速度
8. 服务器组成。游戏服务器GameServer 数据库服务器DbServer 策略服务器PolicyServer(主要提供flash需要的策略文件)登陆服务器LoginServer 管理服务器AdminServer 统计服务器StatisticServer 网管服务器GateServer 聊天服务器ChatServer
9. 关键模块,战斗模块,场景模块,网关模块, 内网通信模块。
PS:专门讲解服务器端编程的书籍很少 很少。 后面会慢慢开始自己动手一步一步打造自己的游戏服务器框架。加油~