erlang 游戏开发框架之五 game的简单介绍

537 阅读2分钟

game 项目 github地址

作用

game项目是游戏的主要逻辑。本文将对game的主要目录和文件先做一个说明,后面会根据具体业务做进一步讲解。

如何使用

1.启动game服务

参考前面的章节,搭建好环境。
check out proj 项目到本地后,进入game目录
打开文件: config_deploy/server.config
配置 game_mongo_cfg 和 端口,别的参数先不理
打开terminal,输入命令 $ rebar3 shell 启动服务 没有报错则启动成功

2.启动测试

进入stress目录
打开terminal,输入没命令 $ rebar3 shell 启动服务 没有报错则启动成功
在erl交互界面,继续输入 ts_test_login:do_test() 测试登陆。没有报错则创角登陆成功
继续跑test_suit 下面给个业务模块的测试用例

3.开发参考

  • 开发的时候在game_tpl项目或者在game下找到对应类似的模板
  • 用工具的替换功能把 gtpl 替换成业务名称,比方 hero
  • 把生成的文件加入到项目中,这样就可以实现模块之间结构的一致性
  • 按照当前业务修改生成的代码
  • 开发完成后写测试用例测试功能,也可以TDD,先写测试功能(建议只写主流程测试,游戏业务经常改动,不适合做全面的测试覆盖)

主要目录

comm 目录,一些业务无关的通用模块

  1. comm/mongo 数据持久化,统一用 game_mongo_dao 做业务的dao层。
  2. comm/game_cfg 游戏配置,会读取 config_deploy/server.config 生成对应的配置。
  3. comm/game_rpc 给es_game生成的脚本开发的rpc服务,根据自己需要进行扩展。
  4. comm/user_default 和erlang虚拟机交互的时候使用的方法的重定义,比方q(),为了防止线上误操作使用该命令关掉服务,这个方法重写了。

cross 目录,跨服业务(跨节点的业务),后面按业务分章节逐个讲解。

local 目录,本地业务(同节点内的业务),后面按业务分章节逐个讲解。

role 目录,玩家进程内的业务

  1. role/role_create 创角逻辑。
  2. role/role-gw tcp网关逻辑,创建tcp链接,封包,解包,业务分发等,根据登陆用例边调试边看代码。
  3. role/role_online 玩家进程内业务,每个玩家登陆的时候都会拉起一个玩家进程,处理和该玩家相关的业务。玩家下线一段时间后会自动关闭进程,回收资源。