[官方教程] ---关于如何开服---

  • 购买游戏时,在支付界面使用创作者代码 HytaleCN 以表示对中文社区的支持,这对我们来说十分重要,感谢您的支持!(点击查看示意图)
状态
不允许进一步回复。


  • 服务器设置
Hytale 服务器可以在任何 至少 4GB 内存和使用 Java 25 的设备上运行,同时支持 x64 和 arm64 两种架构。​
我们建议在服务器运行时监控内存和 CPU 的使用情况,以了解在你的玩家数量和游玩风格下的典型资源消耗——资源使用情况在很大程度上取决于玩家的行为。​
资源类型​
影响因素​
CPU(处理器)​
大量的实体(玩家、生物、NPC)​
RAM(内存)​
过大的世界加载范围(视距设置太高、玩家分散探索的行为)​

注意:如果没有专门的工具,很难准确判断Java进程实际需要多少分配的内存(RAM)。建议尝试不同的参数值来为 Java 设置明确的内存上限。内存压力的一个典型症状是由于Java的垃圾回收机制(Garbage Collection)导致CPU使用率上升。 -XmX​



​
​

------ 官方推荐安装Adoptium的Java 25进行使用 ------​

​

确认安装情况:​

对于windows用户,首先请使用 win键 + R键 打开运行窗口,输入 cmd 以打开命令提示符。​

1768492073314.png


​
在命令提示符窗口内,请输入 java -version 以查看Java 25是否成功安装。​
1768492672471.png​
通常来说你的版本号可能与上图一样或更新,具体内容取决于你安装Java的时间。​
​
​

服务器文件:​

有两种获取服务器文件的方法:​

方法1.从你的Hytale启动器目录直接复制文件;​
方法2.使用 Hytale Downloader 命令行工具(CLI)。​
直接复制(最适合快速测试,但不便于日后持续更新):​
首先找到你的Hytale游戏安装目录(不是启动器的位置!):​
Windows: %appdata%\Hytale\install\release\package\game\latest
Linux: $XDG_DATA_HOME/Hytale/install/release/package/game/latest
MacOS: ~/Application Support/Hytale/install/release/package/game/latest
​


最直接且快捷的方法是通过你的Hytale启动器:​
1768494018804.png​
​
​
​
之后你应该进入 你的游戏安装目录\Hytale\install\release\package\game\latest ​
请确保你看见了以下这三个文件夹!​
1768494300357.png​



最后,将 Server文件夹 与 Assets.zip 拖入你的服务器文件夹(如果你没有的话,现场新建一个)​


使用Hytale Downloader(适用于生产环境服务器,便于保持更新):​
Hytale Downloader是一个用于下载 Hytale 服务器和资源文件的命令行工具,支持 OAuth2 认证。具体操作请查看压缩包内的 QUICKSTART.md 文件。​
​
指令​
描述​
./hytale-downloader下载最新发布版本
./hytale-downloader -print-version显示游戏版本,但不进行下载
./hytale-downloader -version显示hytale-downloader版本
./hytale-downloader -check-update检查hytale-downloader的更新
./hytale-downloader -download-path game.zip下载到特定文件
./hytale-downloader -patchline pre-release从预发布频道下载
./hytale-downloader -skip-update-check跳过自动更新检查
​


  • 启动服务器
服务器启动设定:​
java -jar HytaleServer.jar --assets PathToAssets.zip​
​
认证:​
首次启动时,将进行服务器认证。​
> /auth login device
===================================================================
DEVICE AUTHORIZATION
===================================================================
Visit: https://accounts.hytale.com/device
Enter code: ABCD-1234
Or visit: https://accounts.hytale.com/device?user_code=ABCD-1234
===================================================================
Waiting for authorization (expires in 900 seconds)...

[User completes authorization in browser]

> Authentication successful! Mode: OAUTH_DEVICE

​
一旦认证完毕,你的服务器就可以接受玩家连接加入。​
附加认证信息​
Hytale 服务器需要进行身份认证,以启用与我们服务 API 的通信,并防止滥用行为。​
注意:每个 Hytale 游戏许可证最多可创建 100 个服务器,以防止早期滥用。如果你需要更高的容量,请购买额外的许可证,或申请成为服务器提供商(Server Provider)账户。​


帮助:​
查看所有可用参数:​
java -jar HytaleServer.jar --help​
​
你应该会看到:​
Option Description
------ -----------
--accept-early-plugins Acknowledge that loading early plugins
is unsupported and may cause stability issues
--allow-op
--assets <Path> Asset directory (default: ..\HytaleAssets)
--auth-mode <authenticated|offline> Authentication mode (default: AUTHENTICATED)
-b, --bind <InetSocketAddress> Address to listen on (default: 0.0.0.0:5520)
--backup Enable automatic backups
--backup-dir <Path> Backup directory
--backup-frequency <Integer> Backup interval in minutes (default: 30)
[...]

​
端口:​
默认端口为 5520 ,你可以使用--bind进行修改。​
java -jar HytaleServer.jar --assets PathToAssets.zip --bind 0.0.0.0:25565 (这是一个示范,请结合自身实际需求修改)​

Hytale 使用基于 UDP 的 QUIC 协议(而非 TCP)。请相应地配置你的防火墙和端口转发。 ​
端口转发:​
如果你在路由器后面托管服务器,请将 UDP 端口 5520(或你自定义的端口)转发到你的服务器设备,无需进行 TCP 转发。​
​
防火墙规则:​
Windows Defender 防火墙:​
New-NetFirewallRule -DisplayName "Hytale Server" -Direction Inbound -Protocol UDP -LocalPort 5520 -Action Allow​
​
Linux (iptables):​
sudo iptables -A INPUT -p udp --dport 5520 -j ACCEPT​
Linux (ufw):​
sudo ufw allow 5520/udp​
​
​
NAT 注意事项:​
QUIC 协议在大多数情况下能很好地处理 NAT 穿透。但如果玩家遇到连接问题,请检查以下几点:​
1、确保端口转发是针对 UDP,而不是 TCP。​
2、对称型 NAT 配置可能会导致连接问题 —— 建议使用 VPS 或专用服务器。​
3、使用运营商级NAT(常见于移动网络)的玩家通常可以正常作为客户端连接。​
文件结构:​
路径​
说明​
.cache/优化文件缓存目录
logs/服务器日志
mods/已安装mod目录
universe/存档数据(世界 + 玩家)
bans.json封禁玩家列表
config.json服务器配置文件
permissions.json权限配置文件
whitelist.json白名单玩家列表
Universe 结构:​
该目录包含所有可游玩的世界。每个世界都有自己的配置文件,路径为:​
universe/worlds/config.json​
[SIZE=5]{ [/SIZE]​
"Version": 4, ​
"UUID": { "$binary": "j2x/idwTQpen24CDfH1+OQ==", ​
"$type": "04" }, ​
"Seed": 1767292261384, ​
"WorldGen": { ​
"Type": "Hytale", ​
"Name": "Default" ​
}, ​
"WorldMap": { ​
"Type": ​
"WorldGen" ​
}, ​
"ChunkStorage": { ​
"Type": "Hytale" ​
}, ​
"ChunkConfig": {}, ​
"IsTicking": true, ​
"IsBlockTicking": true, ​
"IsPvpEnabled": false, ​
"IsFallDamageEnabled": true, ​
"IsGameTimePaused": false, ​
"GameTime": "0001-01-01T08:26:59.761606129Z", ​
"RequiredPlugins": {}, ​
"IsSpawningNPC": true, ​
"IsSpawnMarkersEnabled": true, ​
"IsAllNPCFrozen": false, ​
"GameplayConfig": "Default", ​
"IsCompassUpdating": true, ​
"IsSavingPlayers": true, ​
"IsSavingChunks": true, ​
"IsUnloadingChunks": true, ​
"IsObjectiveMarkersEnabled": true, ​
"DeleteOnUniverseStart": false, ​
"DeleteOnRemove": false, ​
"ResourceStorage": { ​
"Type": "Hytale"​
}, ​
"Plugin": {} ​
[SIZE=5]}[/SIZE]
​

每个世界在自己的主线程上运行,并将并行任务分配到共享的线程池中处理。




  • 提示与小技巧
待完善


  • 多服务器架构
待完善



  • 其他杂七杂八的细节
待完善


  • 未来项目
待完善


 
希望出个linux教程
官方大致有讲,但是因为我现在也不用Ubuntu了所以不太方便整理,单纯把官方教程po上来又怕太简单粗暴反倒搞出什么误导性问题。等我后面看看,如果有机会自己完善一下。
 
  • 赞
反应: AxeGod
剩下的内容我正在补完中,等到全部整理完成之后我会更新本贴完整版。

主要的大致内容都没少,按照关键步骤来应该就可以顺利开服了。(?应该)
 
状态
不允许进一步回复。