meta data for this page
  •  

📚 差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
manual:native [2025/07/17 14:46] – 移除 - 外部编辑 (Unknown date) 127.0.0.1manual:native [2025/07/24 10:38] (当前版本) bibiboxs
行 1: 行 1:
 +<markdown>
 +# 引擎原生内容
  
 +沙盘引擎 原生提供了一些**基础内容、功能、指令**等,无论是开发者还是玩家,理解部分原生内容是有必要的。
 +
 +
 +
 +## 主要文件
 +
 +沙盘引擎 是一款由[Unity](https://unity.com/)制作的独立游戏(创意引擎)。
 +
 +因其玩法完全基于模组的设计,引擎更多内置了**抽象功能**而不提供具体的实现,具体的效果根据**加载模组**的配置来执行。
 +
 +也就是说,沙盘引擎 是一个由**游戏本体**和**模组文件**共同组成的最终“游戏”。
 +
 +> 举例:正如[《半条命》(引擎)](https://developer.valvesoftware.com/wiki/Half-Life)搭配着[《反恐精英》(模组)](https://developer.valvesoftware.com/wiki/Counter-Strike),最终组成了新的独立游戏。
 +
 +
 +
 +| 文件夹                 | 说明                                                         |
 +| ---------------------- | ------------------------------------------------------------ |
 +| `Archives`             | 存放基础档案、模组独立档案、收藏服务器列表等<br />*通常不会放置重要的内容,更多是当前玩家独立的配置文件* |
 +| `Batches`              | 常用的快速批处理文件                                         |
 +| `Caches`               | 引擎缓存目录,可以定时清理删除                               |
 +| `DedicatedServer`      | [专用服务器](manual/gameserver)相关                          |
 +| `Docs`                 | 存放文档及相关内容                                           |
 +| `Languages`            | [引擎多语言](reference/language)相关                         |
 +| `Logs`                 | 日志输出相关                                                 |
 +| `Maps`                 | 存放地图文件(本地、下载、备份地图等)                       |
 +| `Mods`                 | 存放独立模组(本地、下载、临时模组等)                       |
 +| `SandtableEngine_Data` | 沙盘引擎关键数据目录(Unity Build)<br />*不应该在此处放置任何其他文件* |
 +
 +| 文件                      | 说明                           |
 +| ------------------------- | ------------------------------ |
 +| **`SandtableEngine.exe`** | 引擎主要程序(启动程序)       |
 +| `Engine.json`             | 引擎本地用户配置               |
 +| `MasterServer.cfg`        | 主服务器信息配置,通常无需改动 |
 +
 +
 +
 +## 快捷键
 +
 +| 快捷键        | 说明                                                         |
 +| ------------- | ------------------------------------------------------------ |
 +| `Alt + Enter` | 切换游戏全屏\窗口化<br />使用此方法切换的全屏,会默认以【DX全屏模式】作为显示方式 |
 +| `F4`          | 查看游戏性能调试信息(需开启调试模式)                       |
 +| `F12`         | **按下:**快速重连服务器<br />**长按:**返回引擎主菜单       |
 +| `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`  | 重新连接或建立连接到当前世界<br />(在开发测试阶段也十分友好,可自动刷新使用最新的脚本) |
 +| `quit | q`   | 立即关闭游戏                                                 |
 +
 +
 +
 +## 游戏控制台
 +
 +沙盘引擎 内置了一个方便的**调试工具**,此功能可通过**设置菜单**进行开启或关闭。
 +
 +无论是开发者还是玩家,均可以在此功能**开启状态**下,使用按键`[~]`进行控制台激活。
 +
 +
 +
 +### 输出调试
 +
 +> 扩展:通过**游戏设置**开关或`-debugmode`启动参数可开启**独立输出控制台(DOS)**。
 +
 +控制台面板(及悬浮窗)功能开启后,将会常驻在屏幕范围内,可以方便的查看引擎的输出内容及消息类型。
 +
 +| 输出类型                          | 颜色 | 说明                                                         |
 +| --------------------------------- | ---- | ------------------------------------------------------------ |
 +| 正常 | 白色 | 标准输出信息,可能包含为引擎、模组或高级玩家用户参考的信息   |
 +| 警告 | 黄色 | 警告类型信息,可能包含会对引擎、模组产生异常的信息<br />有时可能也表示**关键提醒**信息,并非是需要处理的异常和警告 |
 +| 重要 | 红色 | 重要类型信息,可能包含会直接影响引擎、模组产生问题或错误的信息<br />有时可能也表示**特别需要注意**的信息,并非是需要处理的异常和警告 |
 +
 +> 玩家如果在**引擎&模组**测试阶段遇到问题,可以尝试参考控制台输出信息。
 +>
 +> 根据情况,可将输出信息(或`Logs\*.log`文件)反馈至**引擎开发组**或**模组开发者**。
 +
 +
 +
 +### 输入交互
 +
 +**控制台面板**除了可以输出信息外,也支持输入合法的指令交互。
 +
 +玩家只需在**控制台面板**底部区域的**输入框**输入即可,同时会有自动补全`[TAB]`和提示功能。
 +
 +> **控制台指令**属于进阶指令,**错误或不合时宜**的使用可能会引起未知的情况。
 +
 +
 +
 +### 控制台指令
 +
 +| 指令                      | 参数                                   | 说明                                                         |
 +| ------------------------- | -------------------------------------- | ------------------------------------------------------------ |
 +| `version`                                                        | 输出当前引擎版本信息                                         |
 +| `quit`                    |                                        | 立即关闭游戏进程                                             |
 +| `reloadmod`                                                      | 重新加载当前模组(测试Client.js时常用)                      |
 +| `unloadmod | enginescene` |                                        | 结束运行当前模组**(回到引擎主页)**                         |
 +| `connect`                 | 服务器地址<br />服务器地址\|服务器密码 | 连接到指定服务器                                             |
 +| `disconnect`              |                                        | 立即断开当前服务器的连接,回到`Main`场景                     |
 +| `reconnect`                                                      | 立即断开并重连当前服务器                                     |
 +| `mapeditor`                                                      | 立即跳转到**地图编辑器**场景(不会保存当前数据)             |
 +| `workshop`                |                                        | 立即跳转到**实验工坊编辑器**场景(不会保存当前数据)         |
 +| `mainscene`                                                      | 立即跳转到【Main】主世界初始场景(不会保存当前数据)         |
 +| `updatesdk`                                                      | **为当前模组更新`ModSDK`内容==(覆盖模组目录)==<br />(模组开发环境、VSCode最新声明文件等)** |
 +
 +
 +
 +## 启动参数&命令行
 +
 +> 《沙盘引擎》支持对`SandtableEngine.exe`编写启动参数&命令行,以达到高级自定义的启动及使用。
 +
 +
 +
 +### 参数列表
 +
 +| Command                                      | 说明                                                         | 示例                                                   |
 +| -------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------ |
 +| `@Package`                                   | 加载指定包名的模组                                           | `@com.sengine.introduce`                               |
 +| `#Address`<br />`#Address|Password|UserData` | 直接尝试连接到指定IP\联机地址,**允许附加参数**<br />联机成功后通常会自动同步模组资源 | `#127.0.0.1:8192`<br />`#127.0.0.1:8192|password|test` |
 +| `-debugmode`                                 | 以临时**DOS附加窗口**的方式启动游戏,额外启动一个DOS输出调试窗口 | -                                                      |
 +| `-frame_XX`                                  | 设置最大游戏帧数(重定向)<br />**- 专用服务器:最大逻辑处理帧率(数值越大服务器越流畅,CPU占用越多)** | `-frame_60` //MAX 60 FPS                               |
 +| `-port_XX`                                   | 设置网络连接端口(重定向),此参数通常用于BAT模式            | `-port_8192`                                           |
 +| `-startup_XX`                                | 设置模组`Startup.json`配置文件(重定向),此参数通常用于BAT模式 | `-startup_test` //test.json                            |
 +| `-nographics -batchmode -serverbuild`        | 以无DX窗口方式启动[专用服务器](reference/dedicatedserver),需要搭配`@`使用 | -                                                      |
 +| `-force-glcore`                              | 以`GLCore`渲染方式启动游戏,主要针对`DX11`模式不适用的情况<br />对于部分显卡,可能游戏性能稍有提升 | -                                                      |
 +| `-force-vulkan`(实验性)                    | 以`Vulkan`渲染方式启动游戏,主要针对`DX11`模式不适用的情况<br />对于部分显卡,可能游戏性能稍有提升 | -                                                      |
 +| `-force-d3d12`(实验性)                     | 以`DX12`渲染方式启动游戏,主要针对`DX11`模式不适用的情况<br />对于部分显卡,可能游戏性能稍有提升 | -                                                      |
 +| `-lowresolution`                             | 以较低分辨率启动游戏,主要用于默认分辨率异常的情况           | -                                                      |
 +| `-mapeditor`                                 | 直接启动[地图编辑器](reference/mapeditor),通常更建议在模组加载后启动 | -                                                      |
 +| `-local`                                     | 强制以本地玩家方式(非Steam用户)启动,如果Steam已被启动,则不会启用Steam验证<br />==注意:有些服务器可能会阻止非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`   | 是否检查服务器内相同的连接用户<br />**如果开启,则会阻止相同IP\UUID的用户同时进入(`DuplicateNameOrUUID`)**<br />**==(开发者在测试联机阶段,应该关闭这个属性,否则将无法本地测试)==** | `true`    |
 +| `VerifyServerSteamEdition` | 是否检查服务器内Steam版连接用户<br />**如果开启,则会阻止非Steam用户进入服务器**<br />**==(如果服务器受到玩家欺骗和骚扰,可以开启此选项以仅限制Steam用户连接)==** | `false`   |
 +| `NetworkAddress`           | 设置作为主机\服务器时的**优先绑定IP地址**                    | `0.0.0.0` |
 +
 +
 +
 +## 文件注意事项
 +> 基于**Steam版本更新机制**,每当 沙盘引擎 提交新版更新时,可能会**自动替换\删除**游戏目录的许多文件,这其中可能包括**游戏语言、内置模组、内置地图**等文件及目录。
 +>
 +> ==如果玩家有**自定义修改**需求(例如二次创作**语言、地图、模组**等),务必**拷贝**相关文件,而不是直接修改**原始文件**。==
 +
 +- **示例#1:**希望增加新的自定义引擎翻译,应该拷贝相关语言文件并重命名,而不是直接修改目标语言文件
 +- **示例#2:**希望修改内置模组或二次创作,应该完整拷贝目标模组,并重命名模组目录名,而不是直接修改模组内的文件
 +
 +**(注意:此机制仅对 沙盘引擎 版本内置文件生效,自定义等文件不会被更新替换,但需要注意命名避免冲突)**
 +
 +
 +
 +
 +
 +</markdown>