分享
  1. 首页
  2. 资源
  3. 开源项目

游戏服务器demo

buguang01 · · 1258 次点击
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
# 项目地址: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
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中

一周阅读排行

    加载中
    加载中