zoukankan      html  css  js  c++  java
  • 游戏服务器学习笔记 3———— firefly 的代码结构,逻辑

    注:以下所有代码都是拿暗黑来举例,由于本人能力有限很多地方还没有看透彻,所以建议大家只是参考。有不对的地方非常欢迎指正。

    一、结构    

    系统启动命令是,python statmaster.py,启动以后可以通过ps看到系统启动了以下几个进程:

    1、master:管理模块,通过subprocess.Popen()来启动其它模块,该模块启动一个webserver,简单的通过监听本机9998端口,用get方法来获取用户管理命令,目前默认的是2条命令,stop和reload,负责其它模块的stop,reload功能。

    只要在本机浏览器输入:http://localhost:9998/stop 或者http://localhost:9998/reload即可。

    2、dbfront:数据库前端模块,负责管理DB和Memcache。比如load用户信息到memcache中,定期(系统写死了1800秒)刷新并同步memcache.

    3、gate:这个其实是真正的center,其它模块(除了dbfront)都会和这个模块挂接(通过twisted.pb  后面会抽空详细说明)。

    4、net:网络模块,负责监听客户端tcp/ip连接,转发相应的命令数据包给gate。

    5、game1:暗黑世界的游戏模块,这个模块里面会处理几乎所有的游戏逻辑,存储所有的游戏数据:比如角色升级的经验等级,各种npc信息,各种掉落信息,各种战斗阵型。这些数据在系统启动前都是保存在mysql里面,game1模块负责load到自己的内存里面(注意,不是memcache里面,而是直接内存)

    6、admin:系统管理员模块,其实这个模块对于游戏本身来说,可有可无,主要作用就是导出游戏统计数据,比如在线人数,每天充值数量等等。。。。无非就是简单的load数据库内容在简单做些计算而已,我们不做重点。

    二、逻辑    

    系统启动的过程是:(只看firefly,不管memcache,mysql等)

    $ python startmaster.py

    startmaster.py 这个python脚本会实例化class master;

    按照顺序启动

    一个pb.root

    一个webserver

    然后是subprocess.Popen(cmd) 来启动其它子模块。

    cmd命令打印出来为:

    python appmain.py dbfront config.json

    python appmain.py gate config.json

    python appmain.py net config.json

    python appmain.py game1 config.json

    python appmain.py admin config.json

    全部启动起来以后,逻辑关系如下:

     

    master虽然通过红线连接每个模块,但是实际上的工作只是启动和管理,并没有很大的数据交互。

    Admin模块虽然挂在这里,但是其基本上只负责统计和“管理员”功能。

    大的数据交流,网络服务,游戏逻辑等工作只发生在gate,net,game1 这几个节点。并且根据游戏内容不一样,完全可以进行扩展。(由于俺没有研究过,先不在这里讨论)。

    OK,架构简介到这里,后面我们每个模块分开详细介绍。

  • 相关阅读:
    168. Excel Sheet Column Title
    171. Excel Sheet Column Number
    264. Ugly Number II java solutions
    152. Maximum Product Subarray java solutions
    309. Best Time to Buy and Sell Stock with Cooldown java solutions
    120. Triangle java solutions
    300. Longest Increasing Subsequence java solutions
    63. Unique Paths II java solutions
    221. Maximal Square java solutions
    279. Perfect Squares java solutions
  • 原文地址:https://www.cnblogs.com/fuhaots2009/p/3508884.html
Copyright © 2011-2022 走看看