查看原文
其他

Go语言实现《幻兽帕鲁》私服启动器

Verthandii 源自开发者
2024-08-28

palworld-go 一款解决了《幻兽帕鲁》内存泄漏问题的游戏服务器启动器。

特性

自动重启

80 秒检查一次内存,当内存达到阈值时,通过 RCON 通知所有在线玩家 60 秒后关闭服务器。

服务器关闭之后, 10 秒后重启服务器以达到清理内存的目的。

自动清理无用内存

在 Windows,Linux 皆可定时清理无用内存,完美解决《幻兽帕鲁》服务器的内存泄漏问题。

Windows

通过调用微软的 RAMMap[1] 释放无用内存。

Linux

通过 Linux 原生命令释放不再需要的缓存和清空交换空间,以回收内存资源。

自动备份

每经过配置好的时间间隔,对服务器所有数据进行备份,避免因为死档而导致游戏提前完结撒花。

使用方法

前提条件: 按官方文档[2]安装好所需文件

Windows Steam 客户端

程序中需要使用 fork/exec 命令, 这需要您使用管理员权限运行本程序

  1. 搜索 pal, 右键 Palworld Dedicated Server 如图所示
  1. 将目录粘贴到 config.jsongamePath
  1. 管理员权限打开终端,运行下载[3]好的可执行文件

Windows SteamCMD

程序中需要使用 fork/exec 命令, 这需要您使用管理员权限运行本程序

  1. 将服务器目录粘贴到 config.jsongamePath
  2. 管理员权限打开终端,运行下载[4]好的可执行文件

Linux SteamCMD

wget https://mirror.ghproxy.com/https://github.com/Verthandii/palworld-go/releases/latest/download/palworld-go-linux-amd64
wget https://mirror.ghproxy.com/https://github.com/Verthandii/palworld-go/releases/latest/download/config.json
vim ./config.json
chmod u+x palworld-go-linux-amd64 
./palworld-go-linux-amd64

配置文件描述

配置项Windows 推荐值Linux 推荐值备注
gamePath"D:\Program Files (x86)\Steam\steamapps\common\PalServer""/home/steam/Steam/steamapps/common/PalServer"游戏可执行文件路径 PalServer.exe 所处的位置
address"127.0.0.1:25575""127.0.0.1:25575"服务器地址 + RCON 端口
adminPassword"WqB6oY7IzMffxF17Q8La""WqB6oY7IzMffxF17Q8La"RCON 管理员密码
processName"PalServer.exe""PalServer.sh"进程名称
processCheckInterval55进程存活检查间隔(秒)
memoryUsageThreshold7575重启阈值(百分比)
memoryCleanupInterval600600内存清理间隔(秒)0 表示不清理内存
backupPath"D:\Program Files (x86)\backup\PalServer""/home/steam/backup"备份路径
backupInterval18001800备份间隔(秒) 0 表示不备份
maintenanceWarningMessageMemory_Not_Enough_The_Server_Will_RebootMemory_Not_Enough_The_Server_Will_Reboot维护警告消息(不支持中文且不支持空格)
usePerfThreadstruetrue多线程优化

计划

  • [x] 服务器进程保活
  • [x] 服务器内存清理
  • [x] 自动备份
  • [ ] 通过页面修改游戏配置(如经验值倍率)

特别鸣谢+推荐

https://gist.github.com/Bluefissure/b0fcb05c024ee60cad4e23eb55463062

https://github.com/Hoshinonyaruko/palworld-go

参考资料
[1]

RAMMap: https://learn.microsoft.com/en-us/sysinternals/downloads/rammap

[2]

官方文档: https://tech.palworldgame.com/dedicated-server-guide

[3]

下载: https://github.com/Verthandii/palworld-go/releases

[4]

下载: https://github.com/Verthandii/palworld-go/releases


文章精选

使用 Go 语言连接并操作 SQLite 数据库

Go语言的Gin框架实现HTML页面渲染

Go语言流式编程的艺术

Go语言常见错误 | 不使用function option模式

必看| Go语言项目结构最佳实践


点击关注并扫码添加进交流群
领取「Go 语言」学习资料

继续滑动看下一个
源自开发者
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存