对于网络游戏服务器开发熟悉的人,基本都知道bigworld引擎,此引擎包括客户端部分和服务器部分,已经有很多知名的网络游戏通过bigworld来构建游戏。我主要关注bigworld的服务器部分,它是一个分布式的网游服务器,理论上可以支持任意数量的玩家在线游戏,希望通过阅读其源代码能让我知道如何开发一个分布式的网游服务器,这就是研究bigworld的主要意义。

  我们将通过阅读bigworld源码了解以下的事情:

  (1) bigworld服务器整体的结构如何,是由哪些部分组成的

  (2) bigworld如何做到分布式的功能

  (3) 多种服务器之间,是通过什么机制进行通信的

  (4) 什么服务器管理了所有的其他服务,如何进行功能分配的

  (5) bigworld是如何使用C++架构,python做逻辑开发的

  我想如果弄明白了以上的多种问题,我们对于bigworld将会有一个比较基本的认识,然后根据实际的需要,尝试构建出我们自己的分布式网游服务器。

bigworld源码分析(1)—— 研究bigworld的意义和目标的更多相关文章

  1. bigworld源码分析(3)——dbMgr分析

    dbMgr主要是玩家数据的读取和保存的,例如在bigworld源码分析(3)中,玩家在认证的时候,loginApp需要通过dbMgr来验证玩家数据是否合法,这就是针对玩家的账号数据进行查询.本篇中,我 ...

  2. bigworld源码分析(5)——BaseApp分析

    BaseApp负载部分,核心代码缺失...网上的源码中都找不到,暂时没办法分析其核心内容,很遗憾,继续寻找吧,等找到了,再继续自己的分析.

  3. bigworld源码分析(2)—— loginApp分析

    loginApp是整个bigworld进行用户认证的服务,是用户进入游戏的第一步.本篇主要针对loginApp的认证流程,如何和其他服务进行交互,以及loginApp针对多服务负载的不同做法进行分析. ...

  4. bigworld源码分析(4)——BaseAppMgr分析

    BaseAppMgr是用来管理BaseApp的,在整个bigworld中只有一个.本篇就BaseAppMgr的一些核心功能进行分析: (1) BaseAppMgr是如何通知BaseApp创建Entit ...

  5. 转:Irrlicht 0.1引擎源码分析与研究(一)

    目录(?)[-] 主要技术特性 引擎概览 Irrlicht的窗口管理   Irrlicht引擎主要是由一个名叫Nikolaus Gebhardt奥地利人所设计,是sourceforge上的一个开源项目 ...

  6. java线程池ThreadPoolExector源码分析

    java线程池ThreadPoolExector源码分析 今天研究了下ThreadPoolExector源码,大致上总结了以下几点跟大家分享下: 一.ThreadPoolExector几个主要变量 先 ...

  7. DjangoCBV源码分析

    目录 FBV CBV CBV基本写法 CBV源码分析 settings源码分析 FBV FBV是基于函数的视图 CBV CBV是基于类的视图 CBV基本写法 ​ 朝login提交get请求会自动执行M ...

  8. SpringMVC关于json、xml自动转换的原理研究[附带源码分析]

    目录 前言 现象 源码分析 实例讲解 关于配置 总结 参考资料 前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.c ...

  9. SpringMVC关于json、xml自动转换的原理研究[附带源码分析 --转

    SpringMVC关于json.xml自动转换的原理研究[附带源码分析] 原文地址:http://www.cnblogs.com/fangjian0423/p/springMVC-xml-json-c ...

随机推荐

  1. 从零开始学习jQuery(转)

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

  2. c#委托(1)

    // 委托声明 -- 定义一个签名:delegate double MathAction(double num); class DelegateTest{ // 符合委托声明的常规方法 static ...

  3. iOS 编码规范

    Coding Guidelines for Cocoa https://developer.apple.com/library/prerelease/content/documentation/Coc ...

  4. 我的android学习经历31

    最近把四大组件,网络编程,以及一些常用的控件都学完了,不过感觉还不是特别牢固,所以决定再花一点时间重新过一遍,你们有这样的感觉吗?

  5. PHP操作MySQL的常用函数

    某些情况下(如html中),调用php的变量时,要给变量加{},若要使字符串变量加上引号,则还需要在{}外加引号 如: $sql="select * from admin where use ...

  6. hibernate中设置BigDeCimal的精度

    @Column(precision = 12, scale = 2) 在MySQL数据库中的精度为:

  7. PLS-00221: 'function' 不是过程或尚未定义

    直接调用addOrgunitInfoByBatch(r_user_batch.seq_id,'01');   报错PLS-00221: 'function' 不是过程或尚未定义   原因是在调用函数时 ...

  8. keyup与setInterval

    <html><body> <input type="text" id="clock" size="35" /& ...

  9. 前端开发流程之(线上)绝对地址(图片+css+js)

    重要提醒:前端写完-----发邮件通知项目组 1:写好的前段资源包上传到SVN上之后,相关的图片.CSS.js文件要换成线上地址给后台开发. 2:图片-----压缩(https://tinypng.c ...

  10. hdu2296Ring(ac自动机+dp)

    链接 dp[i][j]表示长度为i在节点J的时候的权值最大值,根据trie树转移一下就行,需要每次都取最小的,所以需要另开一数组保存字典序最小的状态. #include <iostream> ...