nakama mac 運行環境搭建

Nakama for Mac 搭建開發環境

1.基礎工具

1.1 go環境部署
1.2 數據庫部署

這里本人使用的是PostgreSQL

1.3 nakama源碼下載

2.編譯源碼?

2.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.2 如果您對嵌入式控制臺進行了更改
cd console/ui
ng serve
2.3 重新生成協議緩沖區、網關代碼和控制臺 UI
env PATH="$HOME/go/bin:$PATH" go generate -x ./...
2.4 構建代碼
go build -trimpath -mod=vendor
2.5 得到編譯后文件 nakama
2.6 自定義服務器代碼編譯
2.6.1 初始化自定義項目
mkdir go-project
cd go-project
2.6.2 提供有效的Go模塊路徑,并安裝nakama運行時
go mod init example.com/go-project
go get github.com/heroiclabs/nakama-common/runtime
2.7 提供包依賴
go mod vendor
2.8 創建GO共享對象(生成so)
go build --trimpath --mod=vendor --buildmode=plugin -o ./backend.so

3.配制游戲服務

完成2操作之后,我們手上擁有一個nakama Unix可執行文件以及backend.so 文件

接下來我們將編寫nakama配制文件nakama-config.yml

#配制文件相關

name: nakama-node-1              # 節點名稱(必須是唯一的)
data_dir: "./data/"              # Nakama 將存儲其數據(包括日志)的可寫文件夾的絕對路徑。默認值是啟動 Nakama 的工作目錄。

logger:
  stdout: false                     # 將日志重定向到控制臺標準輸出。將不再使用日志文件。默認為true。
  level: "warn"                     # 要生成的最低日志級別。值是debug,info,warn和error。默認為info。
  file: "./data/path/to/logfile.log"  # 將輸出記錄到文件(以及stdout是否已設置)。確保目錄和文件是可寫的。

metrics: # 指標?
  reporting_freq_sec: 60            # 指標導出的頻率。默認值為 60 秒。
  namespace: ""                     # Prometheus 的命名空間或 Stackdriver 指標的前綴。它總是在節點名稱前面。默認值為空。
  prometheus_port: 0                # 暴露 Prometheus 的端口。默認值為“0”,禁用 Prometheus 導出。

database:
  address:
  - "ysr:123456@localhost:5432"          # 要連接的數據庫節點列表。它應該遵循username:password@address:port/dbname(postgres://協議自動附加到路徑)的形式。默認為root@localhost:26257.
  conn_max_lifetime_ms: 0           # 在連接被終止并創建新連接之前重用數據庫連接的時間(以毫秒為單位)。默認值為 0(不確定)。
  max_open_conns: 0                 # 允許打開的數據庫連接的最大數量。默認值為 0(無限制)。
  max_idle_conns: 100               # 允許打開但未使用的數據庫連接的最大數量。默認值為 100。

runtime:
  env:                                        # 作為環境變量公開給運行時腳本的鍵值屬性列表。
  - "example_apikey=example_apivalue"
  - "encryptionkey=afefa==e332*u13=971mldq"
  path: "./data/modules/folders"                # 服務器在啟動時掃描和加載的模塊路徑。默認值為data_dir/modules。
  http_key: "testhttpkey"                  # 用于驗證 HTTP 運行時調用的密鑰。默認值為defaultkey。

socket:
  server_key: "testsocketkey"                 # 用于建立與服務器的連接的服務器密鑰。默認值為defaultkey
  port: 7350
  max_message_size_bytes: 4096 # 每條消息允許從客戶端套接字讀取的最大數據量(以字節為單位)。用于實時連接。默認值為 4096。     
  read_timeout_ms: 10000       # 讀取整個請求的最大持續時間(以毫秒為單位)。用于 HTTP 連接。默認值為 10000。
  write_timeout_ms: 10000      # 超時寫入響應之前的最大持續時間(以毫秒為單位)。用于 HTTP 連接。默認值為 10000。
  idle_timeout_ms: 60000       # 啟用保持活動時等待下一個請求的最長時間(以毫秒為單位)。用于 HTTP 連接。默認值為 60000。
  write_wait_ms: 5000          # 寫入數據時等待來自客戶端的確認的時間(以毫秒為單位)。用于實時連接。默認值為 5000。
  pong_wait_ms: 10000          # 發送 ping 后等待來自客戶端的 pong 消息的時間(以毫秒為單位)。用于實時連接。默認值為 25000。
  ping_period_ms: 8000         # Must be less than pong_wait_ms 客戶端 ping 消息之間的等待時間(以毫秒為單位)。該值必須小于pong_wait_ms。用于實時連接。默認值為 15000。
  outgoing_queue_size: 16      # 等待發送到客戶端的最大消息數。如果超過這個值,客戶端會被認為太慢并且會斷開連接。在處理實時連接時使用。默認值為 16。

social:  # 社交網絡獲取用戶信息
  steam:  # steam
  publisher_key: ""
  app_id: 0

console:     # 嵌入式開發者控制臺相關的配置
  port: 7351
  username: "admin"
  password: "password"

cluster:   # 節點應如何相互連接以形成集群
  join:
  - "10.0.0.2:7352"
  - "10.0.0.3:7352"
  gossip_bindaddr: "0.0.0.0"
  gossip_bindport: 7352
  rpc_port: 7353
  local_priority: true
  work_factor_interval_ms: 1000

matchmaker: # 賽事匹配/房間匹配
  max_tickets: 2      # 每個會話或聚會允許的最大并發匹配票數。默認 3
  interval_sec: 15    # 媒人嘗試形成比賽的速度,以秒為單位。默認 15
  max_intervals: 3    # 在允許最小計數之前,匹配器嘗試在最大玩家計數處查找匹配的時間間隔。默認 2。

iap:    # 應用內購買
  apple:
    shared_password: "password"
  google:
    client_email: "email@google.com"
    private_key: "pk"
  huawei:
    public_key: "pk"
    client_id: "id"
    client_secret: "secret"

完成配制文件之后 則進行nakama數據庫遷移以及服務器數據庫配制

# 遷移數據庫 官方推薦默認執行
./nakama migrate up --database.address ysr:123456@localhost:5432
# 通過配制文件啟動nakama服務
./nakama --config /nakama-config.yml --database.address ysr:123456@localhost:5432/nakama

最后通過localhost:7351進入控制臺 查看go modules是否正常導入

image-20220123141407714.png
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,428評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,024評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,285評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,548評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,328評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,878評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,971評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,098評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,616評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,554評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,725評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,243評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,971評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,361評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,613評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,339評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,695評論 2 370

推薦閱讀更多精彩內容