沙盘引擎 (SEngine)

创意诞生沙盘世界,不止如此想象!

用户工具

站点工具


侧边栏

reference:dedicatedserver

📚 建立服务器

本文包括关于“建立联机服务器”模组开发\玩家通用介绍内容。

当玩家想要建立一个游戏服务器时,首先要明确一点——《沙盘引擎》只提供了基础的服务器建立流程,具体的如何建立、建立参数等均由衍生作品开发者设定。

也就是说,实际游戏体验过程中,不同游戏的建立服务器(房间)流程可能有很多不同情况。

通常一个合格的游戏,应该会有明显的【游戏内建立服务器】按钮以供玩家点击使用,除此之外,还有一种针对高级玩家的【建立专用服务器】。

📒 建立专用服务器

如果玩家有意开启一个【专用服务器】托管在Window Server等云服务器上,那么就需要使用专用服务器的方式建立。

与常规【游戏内直接建立】的方式不同,专用服务器更适用于没有显卡的Windows 服务器系统,也就是会以控制台的模式建立一个服务器,没有游戏画面

通常情况下,沙盘引擎官方包体内已经存在了DedicatedServer.batDedicatedServer.json两个文件,原始文件状态下,这就是一组建立服务器的快捷方式。

📘 DedicatedServer.bat

你可以使用任何文本编辑器打开DedicatedServer.bat,你会看到一串标准的bat命令。

//表示启动同目录下的SandtableEngine.exe文件,同时以无显卡、批处理、服务端模式启动
start %~dp0SandtableEngine.exe -nographics -batchmode -serverbuild -logfile serverlog.txt

如果你熟悉bat应该会更了解这些内容的含义,不过通常情况下你不需要修改这里的任何内容,应该主要留意DedicatedServer.json关键文件

注意:当用户使用此bat启动游戏(或使用-serverbuild参数启动游戏时),都会以DedicatedServer.json内的Json数据作为启动参数加载。

📘 DedicatedServer.json

如你所见,这是一个经典的Json文件,所以此文件内规范的Json数据格式是必须的

//注意:Json文件并不支持'//'类型的注释,这里只作说明作用,如果需要使用请自行删除注释
{
	"Mod": "com.sengine.example", //模组包名(要启动哪个模组的服务器)
    "HostName": "Sandtable Engine Server", //服务器名称
    "Transport": 0, //0=Socket, 1=SteamNet(Beta)
    "Address": "127.0.0.1:8192", //服务器地址(Socket模式),通常不用修改,或只需要修改端口号
    "Map": "helloworld", //地图名称
    "MaxPlayers": 100,
    "Password": "", //服务器密码
    "RconPassword": "", //管理员密码,如果这里为空,则会生成随机密码(默认),具体指令参考【游戏原生功能】
    "Param": "" //模组自定义参数(字符串类型),这里具体填写以及写什么,应该严格遵循【模组开发者】的要求规范,否则可能会引起错误
    //Param参数可能会要求填写一个新的Json文本,例如一些存档名称的选择等,这些需要根据不同模组的要求来填写
}

当你正确修改好一个DedicatedServer.json后,就可以点击DedicatedServer.bat开启一个专用游戏服务器了,如果配置方面没有什么问题,很快你就会看到一个一直显示的【黑色控制台】(此程序如果关闭,服务器也就会关闭),控制台内会输出一些服务器信息可供参考。

通常情况下,当服务器加载完毕后,你就可以通过【~】控制台指令或服务器浏览器来加入你的服务器了(默认地址:127.0.0.1:8192)。

服务器地址127.0.0.1:8192是用户本地的IP地址,几乎所有电脑用户的本地地址都是127.0.0.1,所以如果想和朋友联机,直接发给他这个地址是不行的。

如果是VPS云服务器等,你需要正确开放端口安全组,然后将公网IP地址发送给你的好友。

如果是家用电脑情况,你需要确认你的网络支持公网IP(一般需要向运营商申请),然后正确端口映射及防火墙配置,最后将公网IP地址发送给你的好友。

如果出现开服玩家本地进入正常,但好友通过IP无法连接的情况,通常是因为防火墙、端口映射等常规问题,与其他联机游戏一样,这里不做过多说明。

补充:玩家可使用【~】控制台获取当前世界的加载建立参数(Json),只需在控制台输入serverinitconfig即可在控制台输出,有助于开发者、玩家自定义当前模组的【专用游戏服务器】。

例如:可能模组开发者并不会直接明确的在某处写着【专用服务器】的Param参数如何填写,但模组玩家有开启专用游戏服务器的需求(不知道如何正确填写模组Param参数),这就可以先在模组游戏内启动一个服务器,然后输入控制台指令serverinitconfig获得输出Json(和DedicatedServer.json配置文件相同的内容文本),然后将获取的Json全部复制到DedicatedServer.json或者按需使用指定内容即可(如果玩家作为客户端加入某个服务器,将无法正确获取到加载建立参数)。

📘 多开专用服务器

有时可能用户有在Windows Server多开服务器(或者多开不同模组的服务器)需求,这是允许且支持的,你只需要多份DedicatedServer.json并作不同内容配置,然后启动时确保想启动的配置文件名称为DedicatedServer.json即可。

考虑到每次更改文件名的方法有些麻烦,建议完整克隆一份新的沙盘引擎目录,相当于每个服务器都是一个独立的目录,这样也有助于分类管理。

reference/dedicatedserver.txt · 最后更改: 2023/03/15 23:17 由 127.0.0.1