Skip to content

一个用go语言实现的三国slg游戏服务器demo

License

Notifications You must be signed in to change notification settings

mengtest/slgserver

 
 

Repository files navigation

slg游戏服务器demo

鄙视b站、抖音 up主码神之路,从这里拿demo讲课也不说出处,忽悠小白是自己写的

代码交流群:1054084192

概要

  • mysql数据落地,orm映射
  • 事件处理支持中间件
  • 服务器与服务器之间websocket连接
  • 服务器与服务器之间rpc调用
  • 高并发

多进程服务

  • httpserver 提供一些api调用
  • gateserver 网关,可以部署多个进行负债均衡,客户端的所有loginserver、chatserver、slgserver的消息都通过该服进行转发
  • loginserver 登录服,可以部署多个进行负债均衡
  • chatserver 聊天服,可以部署多个,原则上一个slgserver对应一个chatserver
  • slgserver 游戏服,可以部署多个,不同服之间的玩家数据不共通

服务端使用简要介绍

  • cd slgserver
  • 项目已经使用go mod管理,推荐使用goland打开
  • 创建MySQL数据库:在MySQL中执行 data/conf/db.sql 文件创建服务所需的数据库,库名默认为slgdb
  • 修改配置: 修改 data/conf/env.ini 中数据库的配置,主要是密码、端口修改成自己所使用的一致即可,其他保持默认即可
  • 拉取依赖包:命令行执行 go mod tidy
  • 生成可执行程序: main 目录下包含了 httpserver、gateserver、loginserver、chatserver、slgserver 5个进程的代码, 通过 go build main/xxxserver.go(上方5个进程源代码)即可生成 5个进程执行文件,在windows环境下也可以在直接执行 shell/build.bat 生成5个进程可执行文件,可执行文件会存放在bin目录下
  • 复制配置文件到工作目录:将data文件夹拷贝到bin目录下,5个进程会用到data里的配置, window环境可以运行shell/copydata.bat完成拷贝操作
  • 启动运行:启动5个进程,无顺序要求,windows环境下可以运行shell/run.bat代劳
  • 客户端联调:cocos creator打开客户端运行即可联机测试
  • 注意在goland中点击对应的进程 run 或者 debug 前需要将输出路径和工作路径都设置成bin目录, 并且data目录已经拷贝到bin目录下,否则进程找不到运行的配置文件会异常终止

服务部署

支持docker-compose 一键部署,数据库和表都会创建好的,步骤如下:

  1. 部署需要编译go源码,编译比较占内存,内存2G以下有可能编译不成功,请保证编译内存在2G以上

  2. cd slgserver

  3. docker-compose up

  4. 修改客户端 GameConfig.ts 文件中的连接地址

    import { _decorator } from 'cc';
    const GameConfig = {
        serverUrl: "ws://127.0.0.1:8004", //httpserver 地址
        webUrl: "http://127.0.0.1:8088",  //gateserver 地址
    }
    export { GameConfig };

客户端截图

队伍征兵

队伍征兵

占领领地

占领领地

出征返回

出征返回

城内设施

城内设施

武将

武将

武将详情

武将详情

友方主城

友方主城

敌方主城

敌方主城

军队前往敌方主城

军队前往敌方主城

抽卡结果

抽卡结果

战报

战报

技能

技能

联盟

联盟

聊天

聊天

About

一个用go语言实现的三国slg游戏服务器demo

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.8%
  • Batchfile 0.2%