6.1 构建项目

api:主要是注册一些mmo业务的一些Router处理业务。

conf:存放mmo_game的一些配置文件,比如"zinx.json"。

core:存放一些核心算法,或者游戏控制等模块。

game_client:存放游戏客户端。

pb:存放一些protobuf的协议文件和go文件。

1、我们在mmo_game下,创建一个server.go作为我们main包,主要作为服务器程序的主入口。

mmo_game/server.go

  1. package main
  2. import (
  3. "zinx/znet"
  4. )
  5. func main() {
  6. //创建服务器句柄
  7. s := znet.NewServer()
  8. //启动服务
  9. s.Serve()
  10. }

2、在conf文件添加zinx.conf

mmo_game/conf/zinx.conf

  1. {
  2. "Name":"Zinx Game",
  3. "Host":"0.0.0.0",
  4. "TcpPort":8999,
  5. "MaxConn":3000,
  6. "WorkerPoolSize":10
  7. }

3、在pb下创建msg.proto文件和build.sh编译指令脚本

mmo_game/pb/msg.proto

  1. syntax="proto3"; //Proto协议
  2. package pb; //当前包名
  3. option csharp_namespace="Pb"; //给C#提供的选项

mmo_game/pb/build.sh

  1. #!/bin/bash
  2. protoc --go_out=. *.proto

当前我们的项目路径应该结构如下:

  1. .
  2. └── mmo_game
  3. ├── api
  4. ├── conf
  5. └── zinx.json
  6. ├── core
  7. ├── aoi.go
  8. ├── aoi_test.go
  9. ├── grid.go
  10. ├── game_client
  11. └── client.exe
  12. ├── pb
  13. ├── build.sh
  14. └── msg.proto
  15. ├── README.md
  16. └── server.go