📚 引擎原生内容

沙盘引擎 原生提供了一些基础内容、功能、指令等,无论是开发者还是玩家,理解部分原生内容是有必要的。

📒 主要文件

沙盘引擎 是一款由Unity制作的独立游戏(创意引擎)。

因其玩法完全基于模组的设计,引擎更多内置了抽象功能而不提供具体的实现,具体的效果根据加载模组的配置来执行。

也就是说,沙盘引擎 是一个由游戏本体模组文件共同组成的最终“游戏”。

举例:正如《半条命》(引擎)搭配着《反恐精英》(模组),最终组成了新的独立游戏。

文件夹 说明
Archives 存放基础档案、模组独立档案、收藏服务器列表等
通常不会放置重要的内容,更多是当前玩家独立的配置文件
Batches 常用的快速批处理文件
Caches 引擎缓存目录,可以定时清理删除
DedicatedServer 专用服务器相关
Docs 存放文档及相关内容
Languages 引擎多语言相关
Logs 日志输出相关
Maps 存放地图文件(本地、下载、备份地图等)
Mods 存放独立模组(本地、下载、临时模组等)
SandtableEngine_Data 沙盘引擎关键数据目录(Unity Build)
不应该在此处放置任何其他文件
文件 说明
SandtableEngine.exe 引擎主要程序(启动程序)
Engine.json 引擎本地用户配置
MasterServer.cfg 主服务器信息配置,通常无需改动

📒 快捷键

快捷键 说明
Alt + Enter 切换游戏全屏\窗口化
使用此方法切换的全屏,会默认以【DX全屏模式】作为显示方式
F4 查看游戏性能调试信息(需开启调试模式)
F12 按下:快速重连服务器
长按:返回引擎主菜单
Shift+F12 按下:快速重连服务器(强制重新加载资源,适用于资源更新发生延迟的情况)

📒 常量

名称 说明
网络传输率(TickRate) 30(默认)
加入服务器超时时间 7秒
网络超时时间(网络连接) 15秒
PLAYER_COUNT_MAX 100
CHARACTER_COUNT_MAX 1000
VEHICLE_COUNT_MAX 500
PICKUP_COUNT_MAX 2000
CHECKPOINT_COUNT_MAX 1000
MODELOBJECT_COUNT_MAX(动态Object,而非Static) 5000

📒 内置指令

在游戏过程中,通过聊天框内/开头的方式可输入一串指令。

指令会优先通过Client/OnLocalCommand,最后筛选到达World/OnPlayerCommand事件。

《沙盘引擎》内置了一些基础、通用的游戏指令,无论任何模组都将优先接收指令,且不可被模组自定义替换。

内置指令 说明
version 查看引擎版本信息
disconnect 断开当前连接,通常返回到主菜单
reconnect 重新连接或建立连接到当前世界
(在开发测试阶段也十分友好,可自动刷新使用最新的脚本)
quit | q 立即关闭游戏

📒 游戏控制台

沙盘引擎 内置了一个方便的调试工具,此功能可通过设置菜单进行开启或关闭。

无论是开发者还是玩家,均可以在此功能开启状态下,使用按键[~]进行控制台激活。

📘 输出调试

扩展:通过游戏设置开关或-debugmode启动参数可开启独立输出控制台(DOS)

控制台面板(及悬浮窗)功能开启后,将会常驻在屏幕范围内,可以方便的查看引擎的输出内容及消息类型。

输出类型 颜色 说明
正常 白色 标准输出信息,可能包含为引擎、模组或高级玩家用户参考的信息
警告 黄色 警告类型信息,可能包含会对引擎、模组产生异常的信息
有时可能也表示关键提醒信息,并非是需要处理的异常和警告
重要 红色 重要类型信息,可能包含会直接影响引擎、模组产生问题或错误的信息
有时可能也表示特别需要注意的信息,并非是需要处理的异常和警告

玩家如果在引擎&模组测试阶段遇到问题,可以尝试参考控制台输出信息。

根据情况,可将输出信息(或Logs\*.log文件)反馈至引擎开发组模组开发者

📘 输入交互

控制台面板除了可以输出信息外,也支持输入合法的指令交互。

玩家只需在控制台面板底部区域的输入框输入即可,同时会有自动补全[TAB]和提示功能。

控制台指令属于进阶指令,错误或不合时宜的使用可能会引起未知的情况。

📘 控制台指令

指令 参数 说明
version 输出当前引擎版本信息
quit 立即关闭游戏进程
reloadmod 重新加载当前模组(测试Client.js时常用)
unloadmod | enginescene 结束运行当前模组(回到引擎主页)
connect 服务器地址
服务器地址|服务器密码
连接到指定服务器
disconnect 立即断开当前服务器的连接,回到Main场景
reconnect 立即断开并重连当前服务器
mapeditor 立即跳转到地图编辑器场景(不会保存当前数据)
workshop 立即跳转到实验工坊编辑器场景(不会保存当前数据)
mainscene 立即跳转到【Main】主世界初始场景(不会保存当前数据)
updatesdk 为当前模组更新ModSDK内容(覆盖模组目录)
(模组开发环境、VSCode最新声明文件等)

📒 启动参数&命令行

《沙盘引擎》支持对SandtableEngine.exe编写启动参数&命令行,以达到高级自定义的启动及使用。

📘 参数列表

Command 说明 示例
@Package 加载指定包名的模组 @com.sengine.introduce
#Address
#Address|Password|UserData
直接尝试连接到指定IP\联机地址,允许附加参数
联机成功后通常会自动同步模组资源
#127.0.0.1:8192
#127.0.0.1:8192|password|test
-debugmode 以临时DOS附加窗口的方式启动游戏,额外启动一个DOS输出调试窗口 -
-frame_XX 设置最大游戏帧数(重定向)
- 专用服务器:最大逻辑处理帧率(数值越大服务器越流畅,CPU占用越多)
-frame_60 //MAX 60 FPS
-port_XX 设置网络连接端口(重定向),此参数通常用于BAT模式 -port_8192
-startup_XX 设置模组Startup.json配置文件(重定向),此参数通常用于BAT模式 -startup_test //test.json
-nographics -batchmode -serverbuild 以无DX窗口方式启动专用服务器,需要搭配@使用 -
-force-glcore GLCore渲染方式启动游戏,主要针对DX11模式不适用的情况
对于部分显卡,可能游戏性能稍有提升
-
-force-vulkan(实验性) Vulkan渲染方式启动游戏,主要针对DX11模式不适用的情况
对于部分显卡,可能游戏性能稍有提升
-
-force-d3d12(实验性) DX12渲染方式启动游戏,主要针对DX11模式不适用的情况
对于部分显卡,可能游戏性能稍有提升
-
-lowresolution 以较低分辨率启动游戏,主要用于默认分辨率异常的情况 -
-mapeditor 直接启动地图编辑器,通常更建议在模组加载后启动 -
-local 强制以本地玩家方式(非Steam用户)启动,如果Steam已被启动,则不会启用Steam验证
注意:有些服务器可能会阻止非Steam用户加入
-

📘 使用示例

  1. 复制SandtableEngine.exe,拷贝快捷方式至指定位置
  2. 右键快捷方式点击属性,在快捷方式“目标”文本后插入命令行,通常以空格分割多个参数
  3. 例如:D:\SandtableEngine\SandtableEngine.exe -debugmode -local #127.0.0.1:8192
  4. 解释:启动沙盘引擎,并且开启DOS输出窗口,同时以非Steam方式启动,并且尝试连接到127.0.0.1:8192服务器

📒 Startup.TXT

在某些情况下,开发者可能希望整合引擎+模组,尤其是希望运行SandtableEngine.exe后自动加载某模组(或执行其他命令)。

此情况可在引擎目录新建Startup.txt文件,在文件内正常填写命令行参数,启动引擎程序时将会优先采用此命令行参数

执行优先级:系统快捷方式 > Startup.txt

📒 Engine.JSON 配置文件

此文件记录引擎全局通用配置项(包括玩家配置选项),如文件不存在将会自动生成。

通常情况下,在将游戏本体分享给其他人时,应该忽略此文件的打包,因为每个人的玩家设定\配置是不同的,不应该直接沿用。

📘 主要配置说明

此配置文件比较重要且相对庞大,下方仅展示部分关键配置属性,具体可参考引擎目录Engine.json文件。

配置 说明 默认值
Language 引擎默认用户语言(优先) English
VerifyServerUniqueUser 是否检查服务器内相同的连接用户
如果开启,则会阻止相同IP\UUID的用户同时进入(DuplicateNameOrUUID
(开发者在测试阶段,应该关闭这个属性,否则将无法本地测试)
true
VerifyServerSteamEdition 是否检查服务器内Steam版连接用户
如果开启,则会阻止非Steam用户进入服务器
(如果服务器受到玩家欺骗和骚扰,可以开启此选项以仅限制Steam用户连接)
false
NetworkAddress 设置作为主机\服务器时的优先绑定IP地址 0.0.0.0