heroiclabs/nakama

GitHub: heroiclabs/nakama

开源分布式游戏后端服务器,为实时和多人游戏提供匹配、聊天、排行榜、社交等开箱即用的可扩展基础设施。

Stars: 12993 | Forks: 1451

Nakama - Distributed server for social and realtime games and apps

Version Downloads License Nakama Forum Nakama Documentation

## 功能 * **用户** - 通过社交网络、电子邮件或设备 ID 注册/登录新用户。 * **存储** - 在集合中存储用户记录、设置及其他对象。 * **社交** - 用户可以添加好友、加入群组。内置社交图谱以查看用户之间的关联方式。 * **聊天** - 用户之间的一对一、群组和全局聊天。持久化消息以保存聊天记录。 * **多人游戏** - 实时或回合制的主动与被动多人游戏。 * **排行榜** - 动态、赛季制,获取排名靠前的成员或用户附近的成员。数量不限。 * **锦标赛** - 邀请玩家一起争夺奖品。将多个锦标赛关联起来组建联赛。 * **队伍** - 为游戏添加团队协作功能。用户可以组建队伍并与队伍成员交流。 * **购买验证** - 验证应用内购买和订阅。 * **应用内通知** - 向已连接的客户端 socket 发送消息和通知。 * **Runtime 代码** - 使用 Lua、TypeScript/JavaScript 或原生 Go 代码编写的自定义逻辑来扩展服务器。 * **匹配器**、**仪表盘**、**指标**以及[更多功能](https://heroiclabs.com/docs)。 使用这款被全球[各地](https://heroiclabs.com/customers/)雄心勃勃的游戏工作室和应用开发者所采用的生产级服务器,构建具有可扩展性的游戏和应用。请查看[文档](https://heroiclabs.com/docs)并加入[开发者社区](https://forum.heroiclabs.com)以获取更多信息。 ## 新手上路 该服务器易于配置并在本地开发环境中运行,可以部署到任何云服务商。请参阅[部署说明](#deployment)获取有关如何为生产环境部署项目的建议。Nakama 服务器需要 CockroachDB 或其他兼容 Postgres 协议的服务器作为其数据库。 ### Docker 运行服务器和数据库最快的方式是使用 Docker。请安装 Docker 并启动守护进程。 1. 设置一个 [docker-compose 文件](https://heroiclabs.com/docs/nakama/getting-started/install/docker/#running-nakama) 并将其放置在您的项目文件夹中。 2. 运行 `docker-compose -f ./docker-compose.yml up` 以下载容器镜像并启动服务器。 如需更详细的说明,请查看我们的 [Docker 快速入门](https://heroiclabs.com/docs/nakama/getting-started/install/docker)指南。 Nakama Docker 镜像维护在 [Docker Hub](https://hub.docker.com/r/heroiclabs/nakama/tags) 上,并且偶尔会发布用于服务器前沿功能的 [预发布](https://hub.docker.com/r/heroiclabs/nakama-prerelease/tags)镜像。 ### 二进制文件 您可以使用适合您平台的原生二进制文件运行服务器。 1. 从我们的 [发布](https://github.com/heroiclabs/nakama/releases)页面下载服务器以及 [数据库](https://www.cockroachlabs.com/docs/stable/install-cockroachdb.html)。 2. 按照数据库[说明](https://www.cockroachlabs.com/docs/stable/start-a-local-cluster.html#before-you-begin)启动它。 3. 运行迁移以设置或升级数据库 schema: nakama migrate up --database.address "root@127.0.0.1:26257" 4. 启动 Nakama 并连接到数据库: nakama --database.address "root@127.0.0.1:26257" 连接成功后,您将看到描述服务器所使用的所有[配置](https://heroiclabs.com/docs/nakama/getting-started/configuration)设置的服务器输出。 ## 用法 Nakama 支持多种针对不同游戏玩法或应用场景优化的协议。对于请求/响应,它可以使用 GRPC 或 HTTP1.1+JSON 回退(REST)。对于实时通信,您可以使用 WebSockets 或 rUDP。 例如,使用 REST API 通过设备标识符对用户账户进行身份验证。 ``` curl "127.0.0.1:7350/v2/account/authenticate/device?create=true" \ --user "defaultkey:" \ --data '{"id": "someuniqueidentifier"}' ``` 响应: GitHub 上提供了许多带有[文档](https://heroiclabs.com/docs)的官方[客户端库](https://github.com/heroiclabs)。目前支持的平台/语言包括:.NET(使用 C#)、Unity 引擎、JavaScript、Java(含 Android)、Unreal 引擎、Godot、Defold 以及 Swift(含 iOS)。如果您想贡献客户端或提出请求,请告诉我们。 ## Nakama 控制台 服务器提供了一个 Web UI,团队可以使用它来检查通过服务器 API 存储的各种数据、查看轻量级服务指标、管理玩家数据、更新存储对象、通过权限配置文件限制对生产环境的访问,以及了解实时功能(如活跃的多人对战)的可见性。无需单独安装,因为它已作为单一服务器二进制文件的一部分嵌入其中。 您可以在浏览器中访问 [http://127.0.0.1:7351](http://127.0.0.1:7351)。
View Screenshots Nakama Console dashboard view Nakama Console players view Nakama Console API explorer view Nakama Console storage view Nakama Console modules view
## 部署 Nakama 可以部署到任何云提供商,例如 Google Cloud、Azure、AWS、Digital Ocean、Heroku 或您自己的私有云。您应该为 Nakama 和 CockroachDB 设置并配置独立的节点。 CockroachDB 推荐的最低生产基础设施在[这些文档](https://www.cockroachlabs.com/docs/stable/recommended-production-settings.html#basic-hardware-recommendations)中有所概述,Nakama 可以在 Google Cloud 上小至 "g1-small" 的实例类型上运行,尽管我们建议在生产环境中至少使用 "n1-standard-1"。具体的硬件要求将取决于所使用的服务器功能。如需有关运行何种服务器的帮助和建议,请联系我们。 ### Heroic Cloud ### 简易构建 构建所需的所有依赖项都已作为 Go 项目的一部分进行 vendor 处理。我们推荐使用现代版本的 Go 工具链,并且不要将代码库存储在旧的 GOPATH 中。 1. 下载源码树。 git clone "https://github.com/heroiclabs/nakama" nakama cd nakama 2. 从源码构建项目。 go build -trimpath -mod=vendor ./nakama --version ### 完整源码构建 代码库在项目中使用了 Protocol Buffers、GRPC、GRPC-Gateway、buf 和 OpenAPI 规范。这些依赖项作为源代码生成并提交到代码库中,以简化贡献者的构建过程。 要构建代码库并生成所有源码,请按照以下步骤操作。 1. 安装工具链。 go install \ "google.golang.org/protobuf/cmd/protoc-gen-go" \ "google.golang.org/grpc/cmd/protoc-gen-go-grpc" \ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway" \ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2" 2. 安装 [buf](https://buf.build/docs/cli/installation/)。 3. 重新生成 Protocol Buffers 和 gateway 代码。 # 运行 shell 脚本: ./buf.sh 4. 构建代码库。 go build -trimpath -mod=vendor ### 测试 为了运行所有单元测试和集成测试,请运行: ``` docker-compose -f ./docker-compose-tests.yml up --build --abort-on-container-exit; docker-compose -f ./docker-compose-tests.yml down -v ``` 这将创建一个包含 Nakama 和数据库实例的隔离环境,运行 所有测试,并在之后销毁该环境。 ### 许可证 本项目基于 [Apache-2 许可证](https://github.com/heroiclabs/nakama/blob/master/LICENSE) 授权。
标签:EVTX分析, Python工具, rizin, 匹配系统, 即时聊天, 多人游戏, 实时通信, 排行榜, 日志审计, 服务器, 游戏后端, 请求拦截