{"repo":"kingston-csj/gforgame","free":true,"listed":false,"github":"https://github.com/kingston-csj/gforgame","clone":"git clone https://github.com/kingston-csj/gforgame.git","description":"gforgame，作为 jforgame 的 Go 语言实现，堪称一款极致轻量级且具备超高性能的游戏服务端框架。该项目集成丰富多样的组件，极大地提升了开发效率。尤为引人注目的是，gforgame同时配备了一个 cocos/unity 客户端演示，支持双端用户跨设备交互，生动直观地展现各类常用业务功能，为开发者提供了极具价值的参考范例与实践指引 。","language":"Go","stars":55,"topics":["game","game-framework","go","socket","socket-io","tcp","network","cocos","unity","tuanjie"],"license":null,"category":"game-templates","readme_excerpt":"项目介绍 gforgame，jforgame 的 go 语言实现。是一个轻量级高性能手游服务端框架。项目提供各种支持快速二次开发的组件，以及常用业务功能作为演示。 需要说明的是，语言只是工具，重要的是思想。 当然，由于程序语言本身语法差异，也会影响思考方式和编码方式。 项目特点 - 搭配框架博客栏目教程，快速理解项目模块原理和 Go 语言特性。 - 最适合 java 转 go 的开发人员，在这里，你可以找到熟悉的感觉。 - 融合 Java 游戏服务器思想，借鉴 Java 游戏服务器的设计理念，结合 Go 语言的特性进行优化和创新，充分发挥两者的优势。 - 灵活兼容 Socket 和 WebSocket 接入，通过配置参数轻松切换，无需修改业务代码，完美适配手游、页游、H5 和小游戏的服务端架构。 - 提供 protobuf /JSON/自动解析 struct 几种通信协议，满足不同客户端的需求，灵活选择最适合的协议进行通信。 - 可选择使用网关模式，游戏客户端通过网关与服务器通信，亦可选择客户端直连方式。 - 提供独立的 HTTP 管理后台网站，支持游戏运维和运营的各类管理需求，提升运维效率和运营支持能力。 -- 后台管理系统 - 可视化 cocos 游戏客户端，功能演示 - 可视化 unity 游戏客户端，功能演示 - 一键导出客户端协议（typescript/csharp） - 玩家可自由选择 Cocos 或 Unity 端进入游戏，双端同步运行、实时互联，打造无缝跨平台交互玩法。 - cocos/unity 客户端，亦可作为 jforgame 的游戏客户端 快速入门 代码导入 下载代码到本地，导入项目到 vscode 或者 goland 开发工具 下载 cocos creator3.8 编辑器 服务器入口： main.go cocos 客户端工程(推荐)：client/cocos unity 客户端工程：client/unity go 客户端入口：client/go/client.go 私有协议栈 包括包头及包体，格式如下 // header(12bytes) body // cmd index len(body) body 消息编解码 在 message.go 统一管理所有协议的 id 文本类型，可以使用 json 格式。 二进制类型，可以使用基于 struct 反射（目前只支持 unity 客户端），或者 protobuf 格式。 如果选择 json 或 struct 的方式，直接在 protos 目录下定义消息格式即可。 如果采用 protobuf 的话，则通过 message.proto 进行注册，再通过 gen proto.bat 脚本生成 message.pb.go 文件 （使用 protobuf，需要下载 protobuf 编译工具，以及 go 插件，并将两者添加到系统环境变量） 新手用户推送使用 json 格式，cocos/unity 客户端默认支持。 消息路由 遵循“约定大于配置”思想，根据方法（非函数）签名自动扫描，满足一定格式的方法即为消息处理器 玩家数据读写 数据库使用 mysql, orm 使用 gorm 当有数据发生变化时，定时全量更新，结合 cache 机制，提高读写性能 功能模块 每个功能以模块的形式组织业务，例如背包，任务，技能等等 模块需继承 Module，该模块的所有通信协议只需在protos文件下进行定义即可，框架会自动扫描并进行注册 新模块通过 network.RegisterModule(play","default_branch":null,"files":null,"tree":[],"storefront":"/r/kingston-csj","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/kingston-csj/gforgame/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}