erlang 游戏开发框架之三 es_game

309 阅读1分钟

简单说明

  1. 先参考 开发 rebar3 escript 项目,了解escript是什么和怎么用 rebar3 的escript项目来开发脚本。
  2. 浏览本文,了解 es_game 是干什么的,然后根据每个目录模块的职责去看代码,根据需要自己做扩展。

es_game 项目 github地址

作用

方便脚本交互,方便运维管理,用脚本控制game服务,启动服务,停止服务,节点链入(故障排查),获取服务信息等。

主要模块职责

node/es_node_cfg.erl
    配置获取,注意配置的文件位置
node/es_node_cmd_builder.erl
    脚本指令字符串拼接
node/es_node_item.erl
    节点信息封装
node/es_node_rpc.erl
    节点rpc调用封装
node/es_node_tool.erl
    节点控制函数封装


utils/es_utils_exec 
    和系统交互的工具模块
utils/es_utils_map 
    操控map的工具模块  


es_game.erl
    main入口函数和指令分发
    调用 es_node_tool 完成 节点控制
      

扩展新功能

  1. 先跑 es_game_test:test(),确认新增指令的正确性。

  2. 添加到 es_game进行分发。

  3. 生成脚本

     $ rebar3 escriptize
     生成脚本:_build/bin/es_game
    
  4. 替换game下的es脚本

    替换 game/scripts/es/es_game

  5. 编写脚本封装escript新增的接口调用

     linux
     game/scripts/linux/game.sh
    
     win
     game/scripts/win/game.bat
    

脚本调用

$ cd  game/scripts/win/
$ game.bat start
$ game.bat attach
$ game.bat stop