UE DS+Nakama进行游戏服务器开发(1)源码编译nakama

nakama框架来源:heroiclabs/nakama: Scalable open-source game backend server: multiplayer, matchmaking, leaderboards, chat, and social features for games.

网络上很少有编译源代码,在源码上新增模块和裁剪模块的教程,所以干脆自己写一个。

完整源代码构建

该代码库使用协议缓冲区、GRPC、GRPC-Gateway、buf 以及 OpenAPI 规范作为项目的一部分。这些依赖作为源生成并提交到仓库,以便简化贡献者的构建。

要构建代码库并生成所有源代码,请遵循以下步骤。

安装工具链:

bash 复制代码
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"?1#上面的命令在Windows上执行不成功,改成同等功能的命令PS E:\uGit_ZhangKun\nakama-master> go install "google.golang.org/protobuf/cmd/protoc-gen-go"PS E:\uGit_ZhangKun\nakama-master> go install "google.golang.org/grpc/cmd/protoc-gen-go-grpc"PS E:\uGit_ZhangKun\nakama-master> go install "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway"PS E:\uGit_ZhangKun\nakama-master> go install "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2"

Install buf. 看起来像安装一个软件工具 :安装 - Buf Docs

有Linux,Windows,docker很多种选择,我这里选择Windows(测试方便)

bash 复制代码
#You can install the Buf CLI using the Scoop installer for Windows:
scoop install buf
#To update Buf:
scoop update buf
 
#You can also install the Buf CLI using WinGet:(下面命令我操作成功了,安装需要外网)
winget install bufbuild.buf
#To update Buf:
winget upgrade bufbuild.buf
为两种体系结构都提供了Windows二进制文件。 你可以从GitHub版本下载最新的二进制文件。
https://github.com/bufbuild/buf/releases/tag/v1.68.3

重新生成协议缓冲区和网关代码。

bash 复制代码
# Run the shell script:
./buf.sh
#如果上面的命令在Windows上执行不成功,改成同等功能的命令
.\buf-Windows-x86_64.exe  generate --template console/console.gen.yaml console -o console/
#构建代码库。
go build -trimpath -mod=vendor

看结果执行成功了:

然后安装数据库,我使用postgreSQL EDB: Open-Source, Enterprise Postgres Database Management

根据Nakama官方提示Windows - Heroic Labs Documentation 只需要安装 postgreSQL server和命令行

启动参数也很简单

bash 复制代码
#CMD命令行参数启动
nakama.exe migrate up --database.address postgres:password@127.0.0.1:5432
 
#Windows Powershell 窗口启动
./nakama.exe migrate up --database.address postgres:password@127.0.0.1:5432

当然了,现在数据库里是空的,启动立马会停止。需要对数据库进行初始化

bash 复制代码
./nakama.exe migrate up --database.address postgres:postgres@127.0.0.1:5432

PS E:\uGit_ZhangKun\nakama-master> .\nakama.exe migrate up --database.address postgres:postgres@127.0.0.1:5432/nakama
{"level":"info","ts":"2026-04-21T14:51:54.150+0800","caller":"server/db.go:140","msg":"Database information","version":"PostgreSQL 18.3 on x86_64-windows, compiled by msvc-19.44.35225, 64-bit"}
{"level":"info","ts":"2026-04-21T14:51:54.154+0800","caller":"migrate/migrate.go:109","msg":"Applying database migrations","limit":-1}
{"level":"info","ts":"2026-04-21T14:51:54.225+0800","caller":"migrate/migrate.go:116","msg":"Successfully applied migration","count":19}

看到 Successfully applied migration count: 19 这行日志,说明你的数据库已经初始化成功了!Nakama 已经自动在你的 PostgreSQL 中创建了所有必要的表(如用户表、存储表、排行榜表等)。

bash 复制代码
# 重新编译(等你在源代码中添加了自己的测试代码之后)
go build -o nakama.exe .

# 启动服务器
.\nakama.exe --database.address "postgres://postgres:你的密码@127.0.0.1:5432/nakama?sslmode=disable"

.\nakama.exe --database.address "postgres://postgres:postgres@127.0.0.1:5432/nakama?sslmode=disable" --runtime.http_key "zoira_key_123"

在软件Bruno中测试,选择http post,链接为: http://127.0.0.1:7350/v2/rpc/hello_world?http_key=zoira_key_123

body内容为: "{\"player_name\": \"Chundan\", \"action\": \"test\"}"

headers中添加一行:Content-Type application/json

点发送→按钮就行。

相关推荐
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
小宇宙Zz1 天前
Maven依赖冲突
java·服务器·maven
古城小栈1 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
程序猿阿伟1 天前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
凡人叶枫1 天前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++
AC赳赳老秦1 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
java_cj1 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
lsyeei1 天前
linux 系统目录详解
linux·运维·服务器
森G1 天前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
张飞飞飞飞飞1 天前
Tmux命令使用教程
linux·服务器·ubuntu