分享
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
# 项目地址:https://gitee.com/night-tc/gobige-demo
# gobigeDemo
#### 介绍
`gobigeDemo` 是基于 `gobige` 框架开发的游戏服务器示例项目,旨在为开发者提供一个高性能、模块化、易扩展的游戏服务器解决方案。
该项目适用于多种类型的游戏开发,例如:
- **MMORPG**: 支持大规模玩家在线交互,提供场景管理和实时通信功能。
- **卡牌游戏**: 提供高效的数据库管理和缓存系统,支持复杂的游戏逻辑处理。
- **休闲游戏**: 提供快速开发和部署能力,适合轻量级游戏的开发需求。
项目的主要特点包括:
1. **高性能**: 基于 Go 语言开发,充分利用多核 CPU 的并发能力。
2. **分布式架构**: 支持多种服务类型(如网关、登录、数据库服务等),通过 `etcd` 实现服务发现和管理。
3. **模块化设计**: 各功能模块独立开发,易于扩展和维护。
4. **工具支持**: 提供多种开发工具(如协议生成工具、配置生成工具),提高开发效率。
5. **跨平台支持**: 可在 Windows、Linux 和 macOS 上运行。
通过本项目,开发者可以快速上手 `gobige` 框架,学习如何构建一个完整的游戏服务器,并根据自身需求进行定制开发。
#### 软件架构
1. **服务端架构**:
- 基于 `gobige` 框架开发,支持高并发和分布式架构。
- 使用 `Go` 语言编写,模块化设计,易于扩展和维护。
- 提供多种服务类型(如网关服务、登录服务、数据库服务等),通过 `etcd` 进行服务发现和管理。
2. **通信协议**:
- 使用 `protobuf` 定义客户端与服务器之间的通信协议。
- 支持消息路由和序列化,确保高效的数据传输。
3. **数据库管理**:
- 集成 `MySQL` 数据库,用于存储用户数据、角色信息等。
- 提供模块化的数据库访问层,支持延迟加载和脏数据管理。
4. **缓存系统**:
- 使用 `Redis` 作为缓存层,存储会话信息、玩家状态等。
- 提供高效的缓存操作接口,支持多种缓存策略。
5. **工具支持**:
- 提供 `gen-gobige-json` 工具,用于生成服务器配置文件。
- 提供协议生成工具,自动生成 `protobuf` 消息的注册代码。
6. **日志与监控**:
- 集成日志系统,支持多级别日志输出。
- 提供服务器负载监控和性能分析功能.
#### 环境要求
1. **操作系统**: Windows、Linux 或 macOS。
2. **开发工具**:
- [Go](https://golang.org/) 编译器(建议使用最新版本)。
- [Git](https://git-scm.com/) 版本控制工具。
3. **数据库**: MySQL(建议使用 8.0 或更高版本)。
4. **缓存**: Redis(建议使用 5.0 或更高版本)。
#### 安装教程
1. 确保已安装以下环境:
- [Go](https://golang.org/) 编译器(建议使用最新版本)。
- [Git](https://git-scm.com/) 版本控制工具。
2. 克隆项目到本地:
```cmd
git clone https://gitee.com/night-tc/gobige-demo.git
cd gobige-demo
```
3. 初始化子模块:
```cmd
git submodule update --init
```
4. 安装依赖库:
```cmd
go mod tidy
```
5. 根据需要修改配置文件,例如 `server.json`。`server.json` 文件可以根据 `server.tmpl` 文件生成,使用工具 `gengobigejson.exe` 或 VSCode 提供的任务。
6. 编译项目:
```cmd
go build -o ./bin ./server/...
```
如果新增了服务,请确保在 `server.json` 中正确配置服务信息。
也可使用 VSCode 提供的任务:终端 -> 运行生成任务 -> "go:build all server"。
# 生成服务器程序
也可使用 vscode--终端--运行生成任务--"go:build all server"
# 生成工具
也可使用 vscode--终端--运行生成任务--"go: build server.json tool"
7. 启动服务器:
```cmd
./bin/{服务器名}.exe
```
#### 配置文件说明
- **server.json**:
- `ServerName`: 服务器名称。
- `ServerType`: 服务器类型(如 Gateway、Login、新增服务等)。
- `ListenAddr`: 监听地址。
- `DatabaseConfig`: 数据库连接配置。
- `RedisConfig`: Redis 连接配置。
- 新增服务时,请根据服务需求添加对应的配置项。
- 示例配置文件可以参考 `server.tmpl`。
#### 运行说明
1. **使用 VSCode 调试**:
- 打开 VSCode 并加载项目的 `.code-workspace` 文件(如 `gobige-demo.code-workspace`)。
- 在 VSCode 的调试面板中选择调试任务,例如:
- `Login.exe`: 调试登录服务器。
- `Gateway.exe`: 调试网关服务器。
- `gengobigejson.exe`: 调试配置生成工具。
- 点击"启动调试"按钮开始调试。
- 如果需要附加到运行中的进程,可以选择 `Attach to Process` 调试任务。
#### 工具使用说明
1. **gen-gobige-json**:
- 用于生成 `server.json` 配置文件。
- 使用方法:
```cmd
./bin/gengobigejson.exe -h
```
- 或使用 VSCode 提供的任务:终端 -> 运行生成任务 -> "go: build server.json tool"。
2. **协议生成工具**:
- 自动生成 `protobuf` 消息的注册代码。
- 使用方法:
```cmd
.\protofile\build.bat
```
#### 目录说明
- **server**: 游戏服务器的核心代码目录。
- 包含各类服务(如 Gateway、Login)的实现。
- 新增服务时,请在此目录下创建对应的服务子目录,并按照框架要求实现服务逻辑。
- **res**: 游戏资源文件目录,例如图片、音效等。
- **bin**: 编译生成的可执行文件目录。
- **protofile**: 存放协议文件的目录,用于定义客户端与服务器之间的通信协议。
- **gobigework/gobige**: gobige框架的核心代码目录。
- **gobigework/tools**: 工具代码目录,例如辅助脚本或工具程序。
- **doc**: 项目相关的文档目录。
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1258 次点击 ∙ 1 赞
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传