Top Speed Remake:官方玩家与服务器指南

目录

1. 欢迎

欢迎。我是 Diamond Star,这个项目背后的人。为了让这款游戏重获新生,并尽可能把它做得更好,我和 AI 一起投入了数月时间进行开发与打磨。

Top Speed Remake 是对旧版 Top Speed 的一次重写。它是一款拥有多种模式与选项的音频赛车游戏。

如果没有贡献者、测试者、翻译者,以及那些通过捐助帮助项目持续推进的人,这个项目根本不可能存在。

请认真阅读这份指南。这个项目已经成长了很多,维护它需要我投入大量时间与精力。如果你觉得它有价值,无论你是开发者还是玩家,只要你有能力,请考虑向我捐助。我会非常感激,这也能实实在在地帮助我继续做下去。

我想感谢所有为这个项目做出贡献的人。虽然我会收到一些小型贡献,但这个项目仍然几乎完全由我一人管理,社区只能提供少量帮助。因此,如果你希望我新增功能或修复 bug,请多给我一点耐心。

这份指南是写给玩家和服务器管理员的。它会说明安装、首次启动、设置、比赛模式、多人联机、触控操作以及常见故障排查方法。

如果你是第一次接触这款游戏,建议先阅读第 7 到第 11 节,然后在游玩时把第 23 节当作控制参考。

2. 关于本次发布

Top Speed 最初是一个诞生于 2008 到 2013 年间的开源 C++ 项目。当前这款游戏则是用 C# 完整重写而成。

本项目中使用的所有素材,均直接取自旧版游戏;旧版项目也以开源形式托管在 GitHub 上,点此查看

3. 许可证与第三方组件

Top Speed Remake 的项目代码以 GNU GPL v3 协议发布。

构建产物中还包含若干拥有各自许可证的第三方组件。如果你要再分发这款游戏,请务必将这些第三方许可证声明一并保留。

这里涉及的主要第三方许可证组包括 SoundFlow 相关声明、SteamAudio.NET(MIT)、Steam Audio 原生库许可证文本(Apache 2.0),以及项目中随附分发的其他依赖项许可证。

4. 支持的平台

Top Speed 支持多个桌面操作系统以及移动端。移动端目前仅支持 Android,未来希望能加入 iOS。

桌面版可用于 Windows、Linux 和 macOS。Android 支持目前主要面向 ARM64 设备,并要求 Android 11 或更高版本。

请不要再提交希望支持更低版本 Android 的 issue。由于部分库的要求,这件事做不到,例如 Prism 的最低 API 要求就是 30(Android 11)。

专用服务器程序与游戏客户端是分开的。即使你自己不运行本地服务器,也仍然可以游玩游戏并使用全部在线功能,只要你加入的是别人托管的现有服务器。请注意,本游戏没有官方服务器,但有一些社区成员维护着可用的公共服务器,其列表见第 12 节。

4.1 核心游戏组件

游戏体验由几个相互配合的主要系统构成。

输入系统负责处理键盘、控制器、触控手势,以及 Android 上的体感转向选项。

音频系统负责菜单音效、比赛音效,以及用于帮助定位的空间提示音。

语音系统负责菜单、提示和比赛播报中使用的屏幕阅读器与 TTS 输出。

网络系统负责服务器连接、多人比赛同步,以及其他在线功能。

本地化系统负责翻译后的菜单文本和语音字符串。

4.2 系统要求

4.2.1 桌面端要求

在 Windows 上,游戏仅支持 64 位版本。

如果你在启动游戏时遇到问题或报错,请下载 Visual C++ Redistributable bundle。这个链接会打开一个第三方网站,你可以在那里下载。

在 macOS 上,游戏需要 Mac OS 12.1 或更高版本。

在 Linux 上,如需让语音正常工作,你需要安装 Orca 49 或更高版本。

4.2.2 移动端要求

在 Android 上,游戏需要 Android 11 或更高版本,目前只支持 64 位架构。建议设备拥有相对较好的处理器,尤其是在启用 HRTF 音频时,否则可能会出现卡顿。

5. 安装、更新与卸载

在桌面端安装

桌面版是便携式的。请将压缩包解压到同一个文件夹中,并确保所有附带文件夹都与可执行文件放在一起。

不要只把可执行文件单独移动到别的地方。游戏依赖其内容文件夹保持在同一位置。如果你只是想更方便地启动游戏,可以在 Windows 上给可执行文件创建一个快捷方式并放到桌面等位置。

在 macOS 上,游戏下载后可能无法直接正常运行,因为 macOS 可能会给下载的应用打上隔离属性。把 .app 文件复制到“应用程序”文件夹后,在 Finder 中选中该应用并按 Command+C。然后打开“终端”,输入 xattr -c,再按 Command+V 将应用路径粘贴到命令后面,最后按回车执行。完成后,再从“应用程序”文件夹启动游戏。

在 Android 上安装

通过 Android 的安装包安装程序安装 APK。

如果安装被阻止,请为当前执行安装的安装器应用授予安装权限,然后重试。

Android 上首次启动可能会比之后更久,因为初次运行时会进行内容准备。

内置更新

Top Speed Remake 支持从主菜单手动检查更新,也支持在启动时自动检查更新。

桌面端更新包为 zip 文件,由更新器程序完成安装。

Android 更新包为 APK 文件,通过 Android 安装流程进行安装。

卸载游戏

在桌面端,直接删除游戏文件夹即可。

在 Android 上,请在系统应用设置或启动器菜单中卸载。

6. 文件、文件夹,以及哪些内容必须保持在一起

Top Speed Remake 依赖其内容文件夹存在。如果缺少必要文件夹,游戏的某些部分将无法加载,或者会在缺失内容的情况下加载。

重要文件夹包括 SoundsTracksVehicleslanguages

在桌面端,settings.json 保存在可执行文件旁边。在 Android 上,对应数据会在启动期间存放于应用存储中。

添加自定义赛道、自定义车辆或语言文件时,必须严格保持文件夹结构正确。放错位置,是自定义内容不出现在菜单中的最常见原因。

7. 首次启动与设置向导

当你第一次启动 Top Speed Remake 时,游戏会检查是否已经存在设置文件。如果这是一次全新安装,常规主菜单出现之前会自动打开设置向导。这是正常行为,并不是错误。

如果启用了 logo 播放,logo 会先播放。在桌面端可按 Enter 跳过,在移动端可向上滑动跳过。

设置向导的作用

设置向导会先让你选择语言,再校准语音时序,为正式游玩做好准备。如果跳过这两个步骤,游戏依然能运行,但菜单提示和语音时机可能会不准确。

第一步:选择语言

欢迎界面之后会进入语言选择。请选择你希望用于菜单文本和游戏语音字符串的语言。确认后,游戏会立刻保存该选择。

如果你之后又加入了新的翻译文件,可以回到设置中再次切换语言。如果切换后仍有部分文本显示为英文,请重启一次游戏,让所有菜单重新从所选语言文件中加载。

第二步:屏幕阅读器校准

校准会测量你当前设备和当前后端下屏幕阅读器的朗读速度。游戏会播放一段较长的示例文本,等屏幕阅读器读完后,你再进行确认。

简单来说,校准就是一次时序检查。它不会改变语音音色,也不会改变比赛物理。它只是帮助游戏在合适的时间播放延迟帮助文本和语音提示,以匹配你当前的朗读速度。

之所以必须有校准,是因为并不存在一种可靠、而且能在所有屏幕阅读器和后端上通用的方法,来判断“屏幕阅读器此刻是否还在讲话”。因此,当前做法是:你一听到示例文本,游戏就开始计时;等你确认后,再用总时间除以该示例中的单词数,从而估算出你的屏幕阅读器读一个单词平均需要多久。请记住这一点,因为某些使用提示或延迟描述不一定每次都绝对精准,但通常会非常接近,甚至就是正确的。

如果没有正确校准,延迟提示可能会过早触发,打断你正在听的内容;也可能过晚触发,以至于你已经移动到别的项目。正确校准会给游戏一个可靠的时间值,让提示在仍然有用的时候出现。

何时需要重新校准

当以下情况发生时,请重新校准:你切换了语音后端、显著调整了语速、换了设备,或者你感觉提示时机偏早或偏晚。你可以随时在语音设置中重新校准。

8. 菜单导航与屏幕阅读器行为

Top Speed Remake 的菜单设计目标,是让同一套逻辑同时适用于桌面端和 Android,尽管二者的物理输入方式完全不同。每个菜单都有一个当前焦点项,所有导航操作都会以可预测的方式移动或修改这个焦点。

一个菜单项可以是任意类型的控件,并不一定只是你通常所理解的“可激活项目”。目前常见控件包括单选按钮、滑块、开关以及普通项目。

要激活普通项目,在键盘上按 Enter,或在移动端单指向上滑动。

对于其他控件,当焦点落到它们上面时,你会听到控件类型提示,例如在选项菜单中就是如此。

使用提示是针对当前项目的延迟帮助信息。如果启用了提示,游戏会稍等片刻,然后朗读该项目的帮助文本。你也可以随时主动请求提示:桌面端按 Space,移动端长按。

循环导航决定当你到达列表边缘时会发生什么。如果开启循环,当你在最后一个项目继续向前移动时,焦点会跳到第一个项目;如果关闭循环,焦点会停留在最后一个项目,直到你往相反方向移动。

有些菜单在同一菜单上下文中包含多个页面。桌面端使用 Tab 和 Shift+Tab 切换。如果你听到桌面端和移动端的操作说明不同,那是有意设计的,因为每个平台都要获得符合自身输入方式的指导。

8.1 滑块

滑块用于快速调整数值。例如,选项菜单中的所有音量设置都是滑块。它们的工作方式与普通滑块类似。

要增加 1 个步进值,请按键盘右方向键,或在移动端用两根手指向右滑动。

要减少 1 个步进值,请按键盘左方向键,或在移动端用两根手指向左滑动。

要增加 10 个步进值,请按键盘 Page Up,或在移动端用两根手指向上滑动。

要减少 10 个步进值,请按键盘 Page Down,或在移动端用两根手指向下滑动。

当焦点位于滑块上时,要快速跳到最小值,请按键盘 End,或在移动端用三根手指向下滑动。

要跳到最大值,请按键盘 Home,或在移动端用三根手指向上滑动。

8.2 开关、复选框和单选按钮

开关是一种拥有两种状态或两个选项的普通项目。它可以是开/关,也可以是两个自定义值。它适用于只有两个值或两个状态的场景,例如启用或关闭。要切换状态,只需像激活普通项目一样激活它。

复选框与开关类似,但它没有自定义状态,只有“已选中”或“未选中”两种状态。同样通过普通项目激活动作来勾选或取消勾选。

单选按钮则包含两个以上的选项。它有点类似滑块,但它不仅适用于数值,也适用于非数值选项。

操作单选按钮时,可在键盘上使用左右方向键切换不同值,或在移动端用两根手指向左或向右滑动。

8.3 操作

一个项目可以不止有“激活”这一种操作。它有点像 iOS 中的项目操作:你聚焦到一个项目时,系统会告诉你该项目有额外操作可用。

目前你只会在服务器管理菜单中看到这种设计,但未来也可能用于其他地方。

如果某个项目有多个操作,屏幕阅读器会朗读类似“可用操作,按右方向键查看”的提示。移动端的提示说法不同,但含义类似。要在不同操作之间切换,请在键盘上使用左右方向键,并按 Enter 执行;在移动端,用两根手指左右滑动切换操作,再单指向上滑动激活当前聚焦的操作。

9. 主菜单与游戏模式

主菜单是一切内容的起点。你可以在这里开始比赛、配置设置、加入多人游戏、检查更新、查看版本信息,或退出游戏。

快速开始是测试游戏玩法和音频的最快方式。它会用随机选择快速组建一场比赛,因此非常适合短时间游玩,或在你调整输入/音频设置后快速验证效果。

计时赛是熟悉车辆和赛道的最佳模式,因为没有其他车辆给你施加压力。你将独自驾驶,这样更容易专注于刹车点、换挡时机以及稳定圈速。如果你正在学习手动挡,这通常是培养肌肉记忆最安全的地方。

单场比赛会加入电脑对手和比赛压力,同时所有设置仍然在本地完成。如果你想在加入多人联机之前练习超车、比赛节奏和决策能力,这个模式很适合。

多人游戏会打开在线玩法,包括服务器连接、大厅、房间管理、准备阶段和比赛开始。关于多人联机的行为会在本指南后文详细说明,但所有在线会话都从主菜单中的这个项目开始。

选项 会打开所有游戏设置。检查更新 会立即开始一次手动更新检查。关于 会显示版本和构建信息,这些信息在反馈问题时很有帮助。退出游戏 会干净地关闭游戏。

10. 驾驶基础

Top Speed 是一款音频赛车游戏。你需要依靠位置、速度、路面声音和领航提示来驾驶。目标并不是始终强行跑到最高速度,而是保持控制、避免重大失误,并完成稳定干净的圈速。

10.1 道路位置与车辆控制

你的引擎声就是车道参考。当车辆位于中间时,引擎会听起来居中;如果车身向左或向右偏移,这种平衡感就会改变。越早做出小幅修正,往往越安全;等到最后时刻再做大动作,通常更危险。

如果你驶离赛道,就会损失时间。在有对手的比赛中,与其他车辆发生接触也会影响时间和方向控制。大多数撞车都源于入弯速度过快,或在弯中修正过猛。

对新手来说,一条简单规则就是:转向要平顺,入弯前先控速,出错后不要惊慌乱打。

10.2 自动挡、手动挡与引擎行为

自动变速箱是学习赛道最轻松的方式,因为你可以把注意力集中在转向和刹车上。建议先在计时赛里练到能稳定完圈、且不会频繁重撞,再考虑别的。

手动变速箱能提供更多控制力,但也更讲究节奏。你需要让离合和换挡时机与当前速度和入弯节奏匹配。如果你觉得手动挡一团乱,请先放慢节奏,在同一条赛道上反复练习,而不是来回切不同赛道。

引擎启动和熄火共用同一个操作。在正常情况下,它只是启动或关闭引擎;但在熄火、撞车等异常状态后,这个操作也会成为恢复流程的一部分。请尽早熟悉它,这样你在高压情况下也能下意识完成恢复。

10.3 弯道、路面与领航提示时机

赛道中会出现不同强度的弯道和不同类型的路面。在柏油路上感觉轻松的弯,在碎石、沙地、雪地或积水路面上可能就会很难。当抓地力更低时,你需要更早减速,并避免激烈转向。

领航设置决定了会播报多少信息,以及这些信息会提前多久播出。如果你觉得提示相对你的驾驶节奏来说偏晚,就增加提前量;如果提示来得太早、显得嘈杂,就把它调低。建议在计时赛中慢慢调,直到提示时机贴合你的刹车节奏。

一个实用的过弯方法是:入弯前先刹车,在转入弯心时逐步松开重刹,然后在出弯时平顺补油。入弯太快,是反复犯错最常见的原因。

10.4 实用驾驶方法与恢复

如果你想跑得稳定,就要在每个主要弯道都采用可重复的固定节奏:提前准备速度、摆正车辆、平顺转入,再逐渐补油。这样车身行为会更可预测,也更不容易突然甩出去。

当失误发生时,恢复顺序很重要。第一步先稳住方向;第二步在需要时重启或恢复引擎状态;第三步再逐步把速度提回来。试图一次性把失去的时间全部抢回来,通常只会导致第二次失误。

如果你的长期目标是多人联机表现,请先在计时赛中练到圈速稳定。稳定性通常比偶尔快一圈、但经常撞车更有价值。

10.5 在 Android 上如何握持手机

Android 上的驾驶控制是按横屏设计的。请把手机横着拿,长边朝左右,就像你平时玩赛车游戏时那样。不要把这些操作当成竖屏逻辑来理解。

在这种横屏姿势下,车辆控制区位于屏幕右侧。你会在这里控制油门、刹车、引擎启动、换挡,以及在关闭体感转向时用手势来转向。信息区位于屏幕左侧,负责喇叭、离合、比赛信息、玩家信息、暂停,以及退出多人比赛。

控制参考中所有与驾驶相关的手势,都是以这种横屏视角书写的。如果指南里说“向左拖动”或“向右拖动”,那指的是在横握手机时,手指实际朝手机左侧或右侧移动。尤其是转向时更要注意:左转就是向左拖,右转就是向右拖,而不是按照竖屏时的上下方向来理解。

11. 完整设置指南

本节说明每一组设置在正常游玩中会影响什么。如果你觉得哪里不对,请每次只改一个选项、测试一下,并记录结果。一次改太多,只会让问题更难定位。

11.1 游戏设置

这一组是你最常用的核心行为设置。

语言会改变菜单文本和语音界面文本。如果游戏已经安装好之后你又加入了新的翻译文件,请切换语言并重启一次,让所有菜单重新载入所选语言。

在随机赛道中包含自定义赛道 会让随机开局时把自定义赛道也纳入候选。如果关闭,随机赛道只会从内置赛道中选择。

在随机车辆中包含自定义车辆 对车辆也是同样的逻辑。如果你希望内容稳定可预期,就保持关闭;如果你平时确实会使用自定义车辆,就把它打开。

单位 会在公制和英制之间切换速度和距离播报。

启用使用提示 控制菜单中的延迟帮助文本。如果你觉得提示太早或太晚,请到语音设置中重新校准语音时序。

自动聚焦第一个菜单项 决定菜单打开后焦点落在哪里。启用后,会立即聚焦到第一个项目;关闭后,焦点会停留在标题处,由你手动移动。

启用菜单循环 控制列表边缘行为。开启后,越过最后一个项目会回到第一个项目,反之亦然;关闭后,焦点会停留在边缘。

菜单声音 用来选择菜单移动时使用的音效风格。

启用菜单导航平移 会为菜单移动音效加入左右声像,这对部分玩家更有助于建立方位感。

启动时播放 logo 用于开启或关闭启动时的 logo 播放。

启动时检查更新 用于在游戏启动后自动检查更新。

11.2 语音

语音设置决定游戏消息如何被传达。

语音后端 用来选择优先使用哪种语音引擎。自动模式会让游戏自行选择一个合适且可用的引擎。

打断屏幕阅读器语音 允许新的游戏消息中断当前语音输出。请注意:这个功能并不能保证在所有屏幕阅读器和 TTS 引擎上都生效,尤其是在 Android 上。

语音模式 用于选择只用语音、只用盲文,还是语音与盲文一起使用。

语音 只会在当前语音引擎支持语音选择时出现。它允许你在该引擎支持的前提下,指定具体的声音。

语速 只会在当前语音引擎支持语速控制时出现。它决定 TTS 的说话速度。对于 NVDA 或 JAWS 这类屏幕阅读器,这个设置通常不会出现在游戏中。

重新校准屏幕阅读器语速 会再次执行校准,让延迟提示与当前实际语速保持一致。

11.3 音频

音频设置会影响空间定位清晰度以及整体听感。

启用 HRTF 音频 可以为很多玩家带来更清晰的 3D 定位效果。除非你的设备或耳机让它听起来更差,否则建议保持开启。如果你遇到音频爆裂或卡顿,尤其是在 Android 上,请尝试关闭它。虽然一般建议开启 HRTF,因为它能显著提升三维空间感,但一些较旧的 Android 设备并没有足够能力处理 HRTF。修改此选项后请重启游戏以生效。

自有车辆立体声扩展:这是一个为左右分辨能力较弱的玩家准备的无障碍选项。对于一部分听众来说,它能让你自己的车辆更容易定位。

自动音频设备格式 会让游戏自动使用设备的原生音频格式。修改后需要重启才能生效。

11.4 音量设置

音量设置允许你在比赛中优先听清自己最关心的内容。

主音量 控制所有声音。

车辆引擎声 控制你自己车辆的引擎声和油门层。

车辆事件音 控制你自己的喇叭、回火以及本地事件音效。

其他车辆引擎声 控制对手车辆的引擎层。

其他车辆事件音 控制对手的喇叭、撞击以及类似事件音效。

路面循环声 控制道路和路面循环音效。

收音机音量 控制其他玩家的收音机串流音量。这并不是唯一影响你听到别人收音机音量的设置。如果某位玩家自己把收音机音量调低,那会影响所有人,不只是你。这里的设置只是一个乘数。

环境音与声源 控制环境循环音和赛道声源。

音乐音量 控制音乐层。

在线服务器事件音 控制多人会话事件音效。

本节中的所有滑块,都使用第 8 节前面介绍的同一套滑块手势和按键。

11.5 控制

控制设置决定输入设备的行为方式。

选择设备 用于选择键盘、控制器,或两者同时使用。

力反馈 会在设备支持时启用控制器震动/力反馈。

渐进式键盘输入 控制在按住按键时,转向、油门和刹车增加到全值的速度。如果关闭,这个设置不会生效。

说得更明确一点:键盘是二值输入,不像摇杆或手势那样天然具有渐进变化。这个设置会尝试模拟一种“渐进输入”,让你在 0.25 秒到 1.0 秒之间选择一个时间窗口。在这段时间里,油门、刹车和转向等动作会逐步上升,直到时间结束时达到全值。

使用体感传感器转向 是 Android 专属选项。开启后,转向将由体感传感器负责,而不再依赖拖动手势。

请注意以下几点:

部分较老的手机可能不支持这个传感器。这里优先使用的具体传感器叫作 Game Rotation Vector。如果你在使用这个选项时遇到问题,建议先确认你的设备是否支持它。

如果找不到这个传感器,游戏会退回到普通的 Rotation Vector 传感器,但它的精度不如 Game Rotation Vector。再不行,最后才会退回到陀螺仪。陀螺仪并不适合拿来转向,因此如果你的手机不支持前面提到的传感器,强烈建议关闭此选项,以获得更好的体验。

映射键盘按键 会打开驾驶操作的键盘重映射。

映射控制器按键 会打开控制器重映射。

油门踏板方向、刹车踏板方向和离合踏板方向可以设置为 自动、正常 或 反向。如果你的摇杆某些控制轴被错误识别或方向颠倒,这些设置可能会有帮助。

转向死区 控制控制器中心附近的微小移动有多少会被忽略。由于方向盘设备通常不会绝对居中,因此这里提供了这个辅助项。

映射菜单快捷键 会打开菜单操作的快捷键重映射。这个功能只针对键盘。

11.6 比赛设置

比赛设置决定你的默认比赛行为。

领航 会决定领航播报多少信息:关闭、仅弯道 或 全部。

弯道播报 用于选择固定距离播报,还是基于速度的动态播报。

基于速度的弯道播报提前量 决定这类播报会提前多久发出。

自动比赛信息 控制驾驶过程中自动播报圈数和比赛评论。

圈数 用来设置各比赛模式的默认圈数。

电脑玩家数量 用来设置单场比赛默认的机器人数量。

单场比赛难度 可选 简单、普通 或 困难。

一个适合新手的起始方案是:领航设为 全部、开启基于速度的播报、开启自动比赛信息,并使用适中的圈数。

11.7 服务器设置(客户端侧多人默认值)

默认服务器端口 会在你输入主机地址时、但没有手动填写端口时自动使用。

默认昵称 是多人连接对话框中预填入的名称。

11.8 默认值概览

在全新安装下,游戏会使用一套对新手较友好的默认值,例如启用菜单提示、启用菜单循环、启用领航,以及启用启动时更新检查。

如果你把设置改乱了,优先只恢复你最近改过的项目,而不是一次性把所有内容全部重置。

12. 多人客户端指南

Top Speed Remake 的多人模式与原版 Top Speed 非常不同。你首先需要找到要连接的服务器,或者自己托管一个。由于我无法亲自维护官方服务器,因此本指南中列出了一些由社区成员维护的常见服务器。

开始前有几点要知道:当你连接服务器时,游戏会先要求你输入昵称。这相当于你在服务器上的名字,其他玩家会通过它识别你。

其次,这款游戏中的多人服务器要求你先创建一个房间,或者加入现有房间。它不像原版游戏那样,连上服务器后就能直接和任何人开跑。

连接到服务器

你可以通过三种方式连接。

本地网络发现 会搜索同一局域网中的附近服务器。只有当对方服务器确实在局域网内时,这种方式才有效。

要使用它,请打开游戏,进入 多人游戏,选择“加入本地网络中的游戏”。游戏会搜索本地网络中的可用服务器;如果找到,会让你从中选择一个。

值得一提的是,如果你通过某些外部应用接入一个虚拟局域网,例如 Radmin VPN,这个选项通常也能工作。

另一种方式,是把你经常访问的服务器保存下来。如果你知道一些有人长期维护的外部服务器,建议把它们保存起来。

操作方法是:进入 多人游戏,选择“管理已保存的服务器”。这时会出现一个服务器列表菜单。如果里面还没有内容,就点击“添加新服务器”,填好信息并保存。之后你就能再次进入该菜单,直接访问这些服务器,而不必重新手动输入。

第三种方式,则是手动输入服务器。进入 多人游戏 菜单后,选择相应的手动连接选项即可。

请注意以下事项:

如果服务器主机是一个域名,请不要在前面加上 http://https://

游戏支持在输入服务器主机时顺带写上端口,格式如下:host:port,其中 host 是服务器主机名或 IP 地址,port 是端口号。只有在你明确知道该服务器使用了不同端口时,才需要这么写。

客户端和服务器默认使用的端口都是 28630。服务器还会额外使用另一个端口(28631)用于本地网络发现。如果你是在 VPS 上运行服务器,通常无需关心这个发现端口,因为它并不是必须的。

大厅与房间

连接成功后,你会进入大厅。在这里你可以浏览房间、创建房间、加入房间,或断开连接。

如果你创建房间,你就是房主,可以控制房间级别的操作;如果你加入房间,你可以控制自己的准备状态和比赛设置,但房主专属操作仍然只属于房主。

以下操作仅对房主可用:

“开始游戏”:通知所有玩家房主即将开始游戏,并打开菜单让大家选择自己的车辆。

“更改游戏选项”:设置比赛选项,例如圈数、比赛所用赛道,以及房间允许的最大玩家数。

“添加/移除机器人”:如果房间类型允许,就可以添加或移除机器人。如果房间类型是“无机器人比赛”或“无机器人的 1v1”,这些选项会被隐藏。

聊天、历史记录与延迟

新版本游戏加入了文字聊天功能,包括全局聊天和房间聊天;还加入了第 13 节说明的 Communicator 语音聊天,以及快速查看当前延迟的能力。这些功能各自有自己的控制方式,但它们共享同一套多人历史缓冲区:你收到的每条聊天消息、服务器公告和房间事件,都会保存在一个之后可以回看滚动的历史类别中。

在键盘上,打开全局聊天的默认快捷键是斜杠(/)。当你在房间内时,房间聊天使用反斜杠(\)打开。查看延迟时,请按 F1。

导航历史缓冲区的两种方式

在桌面端,历史缓冲区(全局聊天、房间聊天、服务器消息、房间事件)可以用两种方式回看。选择当下最顺手的一种即可;两种方式访问的是同一批历史内容。

第一种方式是专用历史屏幕。多人大厅和房间内控制在桌面端各有两个屏幕:第一个屏幕包含常规菜单选项,第二个屏幕是历史缓冲区。按 Tab 切到下一个屏幕,按 Shift+Tab 返回上一个屏幕。在历史屏幕中,每条记录都会像普通菜单项一样出现,因此你可以用常规的上方向键和下方向键浏览消息;在移动端,也可以在顶部区域使用菜单导航手势。激活某条记录会把它复制到剪贴板。

第二种方式是内联历史快捷键。它们可在多人菜单中的任何位置使用;多人比赛期间也可用于比赛内覆盖层。你无需切换屏幕,就能快速回看刚才的消息:

当你用 [] 切换类别时,游戏会播放一个短暂的缓冲区切换提示音,并播报新的类别。移动历史记录时,则会播报消息正文。两种方式共享同一个聚焦位置:如果你先在历史屏幕中滚动,然后离开这个屏幕,,. 会从你刚才停下的位置继续移动。

移动端布局

在移动端,多人菜单被分成两个区域。底部区域用于普通菜单导航,例如移动、激活和返回。顶部区域则保留给历史缓冲区、聊天快捷操作、Communicator 和延迟查询。桌面端用 Tab 在两类屏幕之间切换;移动端则把两个区域同时放在屏幕上。

下面所有手势都默认你是横握手机,并且只有在手势从顶部区域开始时才会触发:

多人比赛中的驾驶控制也使用同一套多人顶部区域布局,因此你在大厅中学会的缓冲区和 Communicator 手势,会在比赛开始后继续生效。

常见社区服务器列表

这些服务器完全由社区成员自行维护,我本人对其中任何一台都没有任何控制权。它们的存在是为了让大家可以快速连接、和朋友一起玩,而不必自己搭建服务器。

重要警告:服务器具有日志功能,例如会记录全局聊天中发出的消息或其他数据。对于这些数据如何被记录、如何被处理,我不承担责任,也没有控制权。请你务必知悉这一点。

下面是当前服务器列表。如果你希望把自己的服务器也加入其中,请联系我。

如果服务器使用的是默认端口 28630,则列表中会省略端口。

  1. Muhammad Gagah:

地址:tt.mgagah.my.id

  1. Adriano:

地址:adriano.mlbfan.org

端口:25255

  1. Valiant8086:

地址:valiant8086.redirectme.net

  1. Christopher Wright:

地址:christopherw.me

  1. Boris Churkin:

地址:iks2101.keenetic.pro

端口:25255

13. Communicator(多人语音与串流)

Communicator 是一个内置在多人客户端里的虚拟无线电设备。连接到服务器后,你可以把它打开、调到某个频率,然后用麦克风和其他玩家说话,或者把音频文件串流给其他人听。只要别人在同一台服务器上并调到相同频率,他们就能听到你,不管他们在哪个房间,甚至不在房间里也一样。这也是它在比赛前、比赛中和比赛后都很有用的原因:大厅闲聊、房间协作,以及朋友之间的私密频道,实际上都用的是同一个设备。

后面第 15 节提到的“车载收音机”是另一个独立功能,只会在你自己的车里播放。Communicator 则是给其他玩家听的,用来聊天,或者播放其他玩家也能听见的媒体串流。

13.1 Communicator 如何工作

Communicator 只有一个频率,范围是 0.0 MHz 到 1000.0 MHz,并且每次以 0.1 为步进调整。所有新玩家默认都会调到公共的 1.0 MHz。把频率设成 0.0 会被视为“没有频道”,此时 Communicator 会保持静音,直到你切到一个真正有效的频率。

传输内容会由服务器转发给每一位已连接玩家,而每个接收端客户端会根据自己当前的频率决定要不要播放。调到别的频率的听众什么都听不到。它没有按房间隔离的作用域;Communicator 在大厅、房间内以及跨房间时都能工作。

Communicator 有两种互斥的发射模式:

音频会以 48 kHz 单声道 Opus、20 ms 帧长的形式编码。编码器会在 Communicator 被“武装”时立刻启动,也就是它被打开、频率不是 0,并且客户端处于连接状态。因此,操作系统麦克风会在 Communicator 就绪的瞬间被占用,而在 Communicator 关闭的瞬间被释放。Communicator 也会在以下情况自动关闭:你断开与服务器的连接、你按下 Ctrl+Shift+C 把它关闭(同时也会关闭语音激活),或者你把频率设为 0.0;在这些情况下,麦克风都会被释放,不再继续采集任何内容。

当传输打开时,你会听到一个本地短提示;当它关闭时,你也会听到另一个提示。远端听众则会在你松开 PTT 后听到一个单独的结束提示,以便知道你已经说完。打开或关闭 Communicator 本身时,也会播放属于它自己的短提示。所有 Communicator 提示音以及远端语音播放,共用音频设置里的同一个 Communicator volume 滑块。

13.2 打开并使用它

在移动端上,所有 Communicator 手势都位于多人菜单的顶部区域,也就是和聊天历史与延迟查询共用的那一块区域。只要当前界面还是多人菜单,这些手势就能工作,包括大厅和房间内。

  1. 先连接到服务器。
  2. 在桌面端,按 Ctrl+Shift+C 打开或关闭 Communicator;在移动端,在多人顶部区域双指向下滑动。
  3. 默认频率是 1.0。要修改它,桌面端按 Ctrl+Shift+F,移动端在多人顶部区域双指向上滑动,然后输入一个介于 0.0 到 1000.0 之间的值。
  4. 要播报当前频率,桌面端按 F;移动端在多人顶部区域三指轻点。
  5. 要说话,桌面端按住 V。移动端则是在多人顶部区域先单指轻点一次,然后在大约 0.4 秒内继续在同一区域单指按住;只要第二次按住还在持续,Communicator 就会保持发送;一松手,就会停止。
  6. 如果你想切换到语音激活模式,桌面端按 Ctrl+Shift+V,移动端在多人顶部区域双指双击。打开之后,Communicator 会持续发送,直到你再次把它关掉。

按住说话模式会显式忽略按住 Ctrl、Shift 或 Alt 时的 V 键输入,因此用 Ctrl+Shift+V 切换 VOX 时不会误触发 PTT。频率播报(F)和 PTT(V)被故意设计成不同按键:点一下 F 只会播报当前频率,而不会发送任何东西;按住 V 才会开始发送,并且不会先播报频率。移动端 PTT 之所以设计成“先点一下、再按住”,也是为了避免单次误触就直接开始发射。同时,在这个手势激活期间,延迟查询手势会被短暂抑制,以免按住动作被误判成三连击查询。

切换频率不会打断正在进行的传输。如果你在说话时修改频率,Communicator 会在新频率上重新开始这次发射,因此旧频率上的听众会听到它结束,而新频率上的听众则会听到它重新开始。

13.3 音量

Communicator 有自己独立的音量滑块,和车载收音机不是同一个。它控制的是 Communicator 的激活提示音,以及其他玩家通过 Communicator 说话时你听到的响度。车载收音机音量不会受到影响。

如果语音流量相较于比赛音频太大,就把它调低;如果远端玩家说话太小声,即使他们已经调了自己的麦克风增益,你还是听不清,那就把它调高。

13.4 麦克风设置

有两个音频设置会影响你的麦克风是如何被采集、并发送给其他玩家的:

操作系统本身的麦克风电平仍然会先一步生效,然后游戏内增益才会叠加在其上。要获得更好的效果,最好先把系统麦克风调到正常录音电平,再在游戏内细调增益。

13.5 通过 Communicator 串流媒体

Communicator 也可以把本地媒体文件串流到同一条频率里。这适合用来和同频率上的玩家共享音乐,或者在不需要把人拉进同一个房间的情况下,验证 Communicator 的链路是否工作正常。

在 Communicator 开启时:

这些媒体内容会通过你当前的 Communicator 频率发送出去。调到同一频率的人都能听到;调到其他频率的人则听不到。和车载收音机一样,文件夹加载也不是递归的:只会把所选文件夹顶层里的受支持媒体文件加入播放列表。

媒体串流和说话可以并行工作。也就是说,当媒体正在播放时,如果你同时按住 PTT(或通过 VOX 持续发射),你的语音会和媒体一起在同一频率上传出,而远端听众会同时听到两者。

13.6 语音聊天故障排查

14. 专用服务器指南

如果你想要一个稳定的多人会话,而不希望它依赖某个玩家始终开着游戏客户端,那么专用服务器就是最佳选择。服务器是一个独立程序。玩家通过它连接、创建房间、加入房间、聊天和比赛,但服务器本身不需要驾驶车辆,也不需要像玩家一样游玩。

如果你只是和一两个人做简单测试,随手临时开一个也没问题。但如果你打算开放公共房间、组织活动,或者希望服务器长期在线,请使用专用服务器。这样可以把托管与游玩彻底分离,更方便安排重启,也能避免整场会话都依赖房主客户端不能关闭的问题。

服务器支持几乎所有主要平台:Windows、macOS、Linux、Linux ARM、Linux ARM64,以及 Linux MUSL 变体。

所有服务器发行版都可以在 GitHub 页面这里找到。你也可以在那里下载各个平台的游戏版本。

请在一个独立文件夹中运行服务器,并保持其文件完整地放在一起。第一次启动时,它会自动创建所需的设置文件。之后你可以关闭服务器、按需修改设置,再重新启动。最重要的设置包括服务器端口、发现端口、最大连接玩家数、语言以及每日消息。

默认比赛端口为 28630。客户端连接服务器时使用的就是这个端口。默认发现端口为 28631,用于本地网络发现,这样同一局域网中的客户端无需手动输入地址就能找到服务器。发现功能适用于家庭或私有网络,但对于互联网服务器来说,它并不是主要连接方式。

在局域网托管时,请在一台机器上启动服务器,然后在客户端里使用“搜索本地网络中的游戏”。如果什么都没搜到,也不代表服务器没工作;本地发现可能会被路由器设置、Wi-Fi 隔离、VPN 行为或防火墙规则拦住。这时可以尝试用该电脑的局域网 IP 地址加服务器端口手动连接。

对于互联网托管,玩家通常通过“已保存服务器”或“手动输入主机”来连接。服务器端口必须能被外网访问。这通常意味着:在路由器上把比赛端口转发到运行服务器的机器,并在操作系统防火墙中放行同一个端口。如果玩家能看到这台机器、却无法加入,请检查主机地址、转发端口、本地防火墙,以及服务器是否真的监听在你预期的端口上。

服务器支持若干常见设置的命令行覆盖。使用 --port <number> 可以临时改用别的比赛端口;--max-players <number> 可以修改本次运行允许的最大玩家数;--motd <text> 可以设置每日消息。使用 --help 可打印所有可用命令行选项。

当服务器运行在可交互控制台中时,它还带有命令接口。输入 help 可查看可用命令。当前命令包括 optionsplayersversionupdateshutdownplayers 适合用来确认当前有哪些玩家已连接;version 可用于检查客户端和服务器是否来自兼容构建;shutdown 会先通知已连接玩家服务器即将关闭,然后再停止进程。

使用 options 命令可以查看和修改部分服务器端设置,例如语言、每日消息、服务器端口、发现端口、最大玩家数、更新选择所用的服务器架构、启动时更新检查,以及下面说明的各项功能开关。有些改动可以立刻体现,但与端口相关的改动最好还是重启后再生效,因为已有客户端和路由规则都建立在旧值之上。

服务器功能开关

服务器有一小组功能开关,用来为连接到该服务器的所有人打开或关闭主要功能。它们默认全部开启。每个开关都可以通过服务器控制台中的 options 命令切换,也可以直接写进服务器设置文件。

功能开关的变化会应用到更改之后到达的新流量和新操作。已经处于发送、聊天或上传过程中的玩家通常会完成当前动作;之后的新动作才会遵守新的开关状态。

从服务器托管自定义赛道

专用服务器可以保存一套自定义赛道库。当房主打开自定义赛道目录时,每个客户端都能看到这些赛道。要使用这个功能,请在服务器可执行文件旁边创建名为 Tracks 的文件夹,并为每条赛道放入一个完整的赛道包。也就是说,你平时会放进游戏 Tracks 目录的整个文件夹都要放进去,其中要包含赛道的 .tsm 文件,以及它引用的所有声音或其他资源,并保持这些资源相对于 .tsm 的位置不变。只放一个裸 .tsm 通常不够;只要赛道引用了外部资源,服务器就需要按 .tsm 的相对路径找到它们,因此这些资源必须和赛道一起提供。

Tracks 里的子文件夹会被递归扫描,所以类似 Tracks/<track-name>/track.tsm 的布局可以正常工作;如果赛道还需要声音子文件夹,也可以一起放在其中。你也可以按类别继续分组。服务器会在扫描时读取每个包里的 .tsm,并把它作为一个自包含下载提供给客户端。

服务器会在启动时扫描 Tracks,也会在客户端请求自定义赛道目录时再次扫描。新包会在下一次目录请求时出现;不一定需要重启服务器,但大量更新之后,重启是最干净的刷新方式。包含损坏或不受支持 .tsm 内容的包会被跳过,并在服务器控制台中显示警告;如果 .tsm 引用了不在它旁边的声音文件,也会被视为这类问题。

除了静态的 Tracks 文件夹,服务器还接受房主在房间内使用“上传本地赛道”提交的上传。上传后的包会保存在服务器侧,与静态赛道库一起通过同一个目录提供。第 16 节会详细说明客户端侧流程。

custom_tracks 开关必须开启,客户端才能看到这些内容。关闭时,即使 Tracks 文件夹里已经放满赛道,目录也会保持不可用。

除非万不得已,否则不要在玩家正在准备或比赛时做有破坏性的变更。如果你需要更新服务器或更改网络设置,请先通知大家,等当前比赛结束后,干净地关闭服务器,应用更改,再重新启动。

在更新或配置调整之后,请先自己做一次测试,再邀请玩家回来。用一个客户端连接服务器,创建房间、加入房间、开始一场短赛、完成或退出,再断开并重新连接一次。这套简单流程足以发现最常见的问题:端口错误、防火墙阻挡、内容文件夹缺失、版本不兼容,或者服务器虽然启动了、但实际上无法正常主持房间。

15. 面板与车载收音机

比赛中,Top Speed 不止有一个输入面板。正常驾驶面板就是控制面板,负责转向、油门、刹车、离合、换挡、喇叭、引擎启动以及比赛信息按键。收音机面板则是一个独立面板,用于你在驾驶时播放音乐。

当你切换面板时,游戏会播报新面板的名称。这一点很重要,因为同一个物理按键在不同面板下可能有完全不同的含义。例如,在控制面板中,方向键用于驾驶;而在收音机面板中,收音机会用自己的命令来控制音量和曲目切换。

收音机面板既可以加载单个音频文件,也可以加载整个文件夹。支持的文件扩展名包括 .wav.ogg.mp3.flac.aac.m4a。当你加载文件夹时,游戏只会扫描该文件夹中直接包含的受支持音频文件,并据此建立播放列表;你无需手动创建播放列表文件。

切换到收音机面板后,要播放内容,第一步是先加载一个文件或一个文件夹。你可以这样做:

若要加载单个文件,请按键盘上的字母 o。这会打开文件选择对话框,让你选择一个文件。

若要加载整个文件夹,请按字母 f。它会打开文件夹选择对话框,读取其中所有受支持的媒体文件,并建立播放列表。

目前移动端尚未为收音机提供手势。

加载完成后,要播放文件,请按字母 p。默认情况下,如果你加载的是单个文件,就播放这个文件;如果你加载的是文件夹,就按字母顺序播放其中第一个文件,除非你启用了随机播放。

还要说明一点:加载文件夹这一行为是会跨会话保存的。如果你有一个固定的音乐文件夹,不想每次都重新载入,这会很有用。

下一次你想播放内容时,只需切换到收音机面板并按字母 p。它会立刻播放已加载文件夹中的第一个文件,就像前面提到的那样。

要调整音量,请使用上下方向键。

要切换曲目,请使用 Page Up 或 Page Down。

要暂停当前正在播放的曲目,请在播放时按字母 p。

要切换随机播放,请按字母 s。

要切换单曲循环,请按字母 l。请注意,对于单个文件,循环默认就是开启的。

收音机音量与某些其他游戏音量类别是分开的。调整它,会改变收音机相对于引擎、菜单、语音和多人音效的响度。如果你正在测试多人收音机行为,请记住:其他玩家也可能有他们自己的收音机相关音量设置,因此在你机器上听起来平衡的效果,对别人来说未必完全一样。

如果某个收音机命令看起来没有任何反应,请先确认你当前确实位于收音机面板。如果面板没错,再确认媒体是否已经加载。如果成功加载了文件夹却仍然没有声音,请检查该文件夹中是否直接包含受支持的音频文件。

还请注意,文件夹加载不是递归的。也就是说,它只会扫描该文件夹顶层中的文件,不会进一步扫描其下的所有子文件夹,即使那些子文件夹中也有受支持的媒体文件。

16. 自定义赛道与自定义车辆

Top Speed 支持自定义赛道和自定义车辆,但游戏只会加载它能识别的文件,并且只会从预期的文件夹中读取这些内容。

自定义赛道使用 .tsm 文件,必须放在 Tracks 文件夹中。自定义车辆使用 .tsv 文件,必须放在 Vehicles 文件夹中。除非对应的创作指南另有说明,否则不要把它们放到 Soundslanguages 或其他随意的子文件夹里。

如果某个自定义文件没有出现在选择菜单中,请先检查最基础的几点:扩展名是否正确,文件是否放在了正确位置,然后再确认文件本身是否有效。扩展名正确并不代表文件一定可用,如果内容格式不符合游戏预期,它仍然会加载失败。

随机选择功能也有独立设置。如果关闭了自定义随机内容,那么即使你安装了自定义文件,随机赛道或随机车辆也仍然只会使用内置内容。如果你希望随机选择也能抽到自定义内容,请启用对应的自定义随机选项。

如果你想创建新的赛道或车辆,请使用专门的创作指南。本玩家指南只负责说明自定义内容应放在哪里、如何被选择;而创作指南会解释文件结构、支持的字段以及验证规则。

重要说明:原版游戏中的旧赛道和旧车辆全部都与当前版本不兼容,除非你把它们彻底重写,否则不可能变得兼容。也不存在所谓“兼容模式”来支持这些旧文件,因为我的项目目标是加入新功能和更丰富的细节,而这些内容不可能从旧文件中那些根本不存在的值里自动推导出来。

多人模式中的自定义赛道

自定义赛道既可用于单人模式,也可用于多人比赛。但多人模式多了几个环节,因为房主选择的赛道必须在比赛开始前对其他每个客户端都可用。游戏会自动处理传输;本节说明它背后发生了什么,方便你在出错时判断问题。

要让自定义赛道出现在多人房间里,必须同时满足三件事:

  1. 服务器已经开启 custom_tracks。第 14 节说明了这个服务器侧开关。
  2. 房主已经在房间选项的游戏规则中启用“自定义赛道”。
  3. 所选赛道要么已经在服务器目录中(由服务器托管,或之前由其他房主上传过),要么是房主本地 Tracks 文件夹中可以上传的文件。

当这三项都满足时,房间内房主的赛道选择菜单会多出两个入口:

只有房主能看到这些菜单;加入房间的玩家可以看到当前选中的赛道,但不能上传或更改赛道。

客户端如何接收自定义赛道

当房主第一次选择某条自定义赛道,而某个客户端本地还没有它时,该客户端会从服务器接收完整的赛道包。流程如下:

  1. 服务器向房间内所有人公告所选赛道。
  2. 每个客户端根据内容哈希检查本地缓存。如果已经缓存过相同内容的赛道,客户端会直接使用缓存副本,不再下载。
  3. 如果缓存中没有,客户端会分块接收赛道包,并显示一个简短的下载进度对话框,让玩家知道正在处理。
  4. 最后一块到达后,客户端会校验哈希,确认传输没有损坏,然后把包存到游戏应用数据文件夹下的 track_packages/<hash>.tspkg。包中包含的自定义声音或资源也会解压到同一缓存中,以便比赛加载。
  5. 当客户端已经缓存该包并报告准备就绪后,该客户端就可以开始比赛。已经有缓存的玩家会立即就绪;需要下载的玩家则要等传输完成。

客户端第一次拿到某个包之后,后续每次加入都会直接使用缓存;即使跨游戏会话,同一条自定义赛道也不需要重复下载,除非包内容发生变化并产生新的哈希。

如果传输被中断,例如玩家断开连接、房间关闭或服务器重启,未完成的下载会被丢弃,下次尝试会从头开始。上传包在服务器侧有固定大小上限;超过上限的文件会被拒绝,并在服务器控制台和房主客户端上显示消息。

在服务器上为所有人托管自定义赛道

如果你运行的是专用服务器,有两种方式可以把自定义赛道加入它的目录:

两条路径都会进入同一个服务器目录,并且都受服务器的 custom_tracks 开关控制。服务器侧细节见第 14 节。

17. 更新器在桌面端与 Android 上的行为

更新器的设计目的,是让玩家无需每次都手动替换文件,也能保持已安装游戏处于最新状态。你可以从菜单手动检查更新,也可以在启用了相应设置后让游戏在启动时自动检查。

整个更新过程分为三个阶段。第一,游戏检查已发布的版本信息;第二,如果发现有更新,它会先征求你的确认再下载;第三,下载完成后,它会执行平台对应的安装步骤。

在桌面端,更新包是 zip 文件。游戏会先下载 zip,然后启动更新器程序,安全地替换已安装文件。如果更新器程序缺失,游戏就无法继续自动安装,并会报告找不到更新器。

在 Android 上,更新包是 APK 文件。游戏绝不能像处理 zip 更新那样去解压 APK。相反,它会把 APK 交给 Android 的安装器,由 Android 接管后续安装流程并显示自己的安装界面。

Android 可能会要求你为当前使用的应用或安装路径授予“安装未知应用”的权限。如果更新下载完成后没有开始安装,请在系统提示时打开 Android 设置,允许该安装权限,然后回到游戏再试一次。

如果下载失败,当前游戏安装不会受到影响。如果下载成功但安装一再失败,请尽可能删除已下载的更新包,重新执行更新检查,并确认设备存储空间足够,以及 Android 没有阻止该来源的安装。

如果你发现更新器有任何异常行为,请务必提交 bug 反馈。

18. 详细驾驶教程

这一章的重点是“如何开好车”,而不仅仅是“哪个键对应哪个操作”。Top Speed 是一款音频赛车游戏,因此所谓驾驶得好,意味着你要学会倾听引擎、路面、弯道提示、位置信息,以及自己车辆的行为。

自动挡训练

从 计时赛、自动变速箱、一条赛道和一辆车开始。不要一上来就追求极限速度。你的第一个目标,是干净地跑完整圈,并理解这条赛道“听起来是什么样”。

在第一个弯到来之前,平顺地给油,并聆听引擎。引擎音高会告诉你车辆工作得有多吃力。如果你刹车太晚、入弯太快,或者转向过猛,你会从车辆的运动状态中直接听出后果,接着就可能丢线甚至撞车。

弯道提示的作用,是让你在入弯前就开始准备。如果开启了领航播报,请认真听它提示的方向和时机。一条弯道提示应该让你立刻想到三件事:需不需要减速、何时开始转向、何时重新补油。

在自动挡模式下,游戏会替你处理换挡,所以你可以把注意力集中在转向、油门和刹车上。请一直用这个模式练到你能连续完成多圈而不总是失控为止。当你能稳定重复同一圈速之后,再逐步提速。

手动挡训练

手动挡增加了离合和换挡操作。最好是在你已经能用自动挡稳定驾驶同一辆车之后,再开始学它。

驾驶手动挡时,你需要自己让引擎保持在合适的工作区间。随着速度上升,你要升挡;在弯前减速或低速恢复时,你要降挡。如果你不正确使用离合就试图换挡,换挡可能失败,车辆也可能出现很糟糕的行为。

先在一段直线路段上练习。加速、踩离合、升挡、松离合、继续前进。然后再减速并练习降挡。先把这些独立动作练熟,再去尝试把手动换挡和复杂弯道结合起来。

如果你熄火了,或者车速掉得很厉害,不要急着同时乱按所有控制。正确顺序是:先把车头摆到安全方向,再在必要时重启或稳定引擎,接着挂入合适挡位,最后再继续加速。

使用按需换挡

按需换挡 允许你在整体仍依赖自动驾驶行为的前提下,临时请求换挡控制。如果你大部分时候更喜欢自动挡,但想在特定时刻获得更多控制,它会很有用。

请有目的地使用它。如果你没有明确理由就随手切换,它只会变成比赛中额外需要管理的一件麻烦事。如果你打算围绕某种驾驶风格或某台车来使用它,请在同一条赛道上反复练到它的表现足够可预测。

碰撞或漂移后的恢复

发生撞击、擦碰或严重漂移后,不要立刻死死按住全油门。先听清车辆当前朝向,并稳住方向。如果引擎熄火了,或者挡位不对,下一步先处理这些。只有在你确认车头已经朝向合理方向后,才开始重新加速。

恢复中最常见的错误,就是想立刻把损失的时间全部追回来。这通常只会导致第二次撞车。一次干净利落的恢复,往往比一次激进却失败的恢复更快。

Android 触控驾驶练习流程

在 Android 上,请分阶段学习屏幕分区。第一阶段只练驾驶区:油门、刹车、引擎启动、换挡,以及你所选择的转向方式。在这些基本驾驶操作还没熟之前,不要急着把所有信息手势也一起加入。

之后,再一次加入一个顶部区域的控制。练习在不失去车辆控制的前提下,查询速度、挡位、圈数信息和玩家信息。如果你准备使用体感转向,请尽早判断它在你的手机上是否足够好用。如果传感器表现不稳定或延迟明显,请关闭体感转向,改用触控转向。

在学习触控操作时,请比你在桌面端时开得更慢。先建立可靠的手部动作,再去追求速度。

19. 多人设置示例流程

本章给出一些多人会话的实际示例。目标是让每位玩家都清楚同一套流程:连接服务器、进入大厅、创建或加入房间、准备比赛,然后开始。

局域网会话

对于局域网会话,请先在一台电脑上启动专用服务器,并保持服务器窗口开启。客户端则优先使用“本地网络发现”。如果服务器出现在列表中,选中它,输入昵称并连接。

如果发现功能没找到它,就改用手动连接。先查出运行服务器那台电脑的局域网 IP 地址,再在需要时加上服务器端口输入。如果手动连接可行,那说明服务器本身没问题,只是发现广播被网络环境拦住了。

连接成功后,由一名玩家创建房间。其他玩家从房间列表中加入该房间。房主设置赛道、圈数和规则等选项。房主开始准备后,每位玩家都选择自己的车辆和变速箱,并标记为已就绪。当达到所需玩家数量后,比赛就会开始。

互联网会话

对于互联网会话,如果条件允许,房主最好使用专用服务器。把比赛端口从路由器转发到服务器所在机器,并在防火墙中放行相同端口。然后把公网主机名或 IP 地址以及端口告诉其他玩家。

如果玩家会频繁使用这个服务器,最好把它保存下来。已保存服务器可以减少输入错误,也能顺带保存默认昵称。如果连接失败,请先检查主机和端口是否正确;再确认服务器是否在线,以及路由器是否把流量转发到了正确的本地机器。

私人房间流程

私人房间最好在进入准备阶段之前就先约定好。房主创建房间,设置预定赛道和圈数,确认是否允许机器人,并把规则告知房间内的所有人。

玩家在真正决定好要使用的车辆和变速箱之前,不要急着标记为已就绪。如果有人在准备开始后还想改动,房主应在必要时取消准备,等所有人调整完,再重新开始准备。

比赛中的协调

与当前房间或当前比赛相关的消息,请使用房间聊天;发给服务器上所有人的消息,则请使用全局聊天。比赛过程中请尽量简短,因为玩家此时已经需要同时听引擎、领航、位置和碰撞信息了。

如果某位玩家掉线、崩溃,或者必须中途停下,房主应根据房间预期来决定是继续还是重开。对于休闲房间,重开也许没问题;对于有组织的活动,最好在比赛开始前就先把规则讲清楚。

20. 设置调校方案

不存在放之四海而皆准的“最佳设置”。新玩家通常需要更多引导和语音信息;熟练玩家可能希望尽量减少打断;控制器用户可能需要更细致地调死区;Android 玩家则需要在触控转向和体感转向之间做出选择。

新玩家方案

对新玩家来说,请保持启用使用提示。如果循环导航更适合你,就保留它;如果你更喜欢菜单在首尾停住不回绕,也可以关掉。学习赛道时,请保持启用领航和自动比赛信息。

不要太早削减语音信息。刚开始时你可能会觉得信息量很大,但这些信息能帮助你理解菜单和比赛的结构。等你真正熟悉游戏后,再逐步关闭那些你已经不再需要的内容。

竞技键盘方案

对于键盘驾驶,重点在于输入一致性。如果启用了渐进式键盘输入,请把它调到一个你能稳定预测的手感;如果你更喜欢按下就立刻全响应,那就把它关闭。

减少非必要比赛播报之前,请先确认自己知道在关掉什么。保留那些能帮助你避免撞车、判断比赛进度的信息。

控制器方案

对于控制器、方向盘或踏板,先从死区开始。如果你明明没碰方向盘,转向却还在漂,就略微增加死区;如果中心附近感觉太迟钝,就小心地把死区调低。

然后检查油门、刹车和离合方向。如果踩下踏板时游戏表现得像是你松开了它,就使用踏板方向选项。每次改动都请在同一段直线和同一个弯上测试,这样你才能准确比较。

Android 触控方案

在 Android 上,请先固定一种转向方式。如果体感转向在你的手机上表现良好,就持续使用它,并练习如何稳定地把手机保持在一个中性姿态;如果体感转向不稳定,就关闭它,改用手势转向。

先学会驾驶区,再去学习所有信息手势。最安全的学习顺序是:油门和刹车,然后转向,再是挡位和引擎,最后才是喇叭、离合和比赛信息手势。

翻译测试方案

做翻译测试时,请启用使用提示,并慢慢遍历菜单。记录确切的英文原文、它出现在什么菜单,以及你正在测试哪种语言。不要只笼统地说“有些地方还是英文”,那样不足以定位缺失翻译。

替换语言文件之后,在判断某句是否仍未翻译前,请先重启一次游戏。这样可以避免把旧菜单缓存文本误判成“缺失翻译”。

21. 给测试者和发布准备的补充说明

最有价值的测试,是别人能够按你的描述稳定复现的问题报告。请始终写明平台、游戏版本、你在做什么、你原本预期会发生什么,以及实际上发生了什么。

最低测试要求

一次基础测试应覆盖:启动语音、首次菜单导航、打开设置、开始一场计时赛、完成或退出比赛、连接多人服务器、加入和离开房间,以及执行一次手动更新检查。

做比赛测试时,不要只是开始比赛后立刻退出。至少要开到能听见弯道提示、圈数信息、车辆声音,以及至少进行一次信息查询。

Android 测试

在 Android 上,请测试全屏启动、菜单手势、跳过 logo、文本输入、语音输出、比赛触控区域、启用体感转向时的表现、多人连接,以及 APK 更新权限流程。

如果一个新 APK 看起来却表现得像旧版本,请在提交 bug 之前,先完整卸载并重新安装。残留旧安装往往会让测试结果产生误导。

高质量 bug 报告标准

高质量报告应该提供足够信息,让别人也能复现问题。请包括设备或操作系统、游戏版本、输入方式、语言、如果涉及语音则写明语音后端,以及问题是每次都会发生,还是只是偶尔出现。

对于多人问题,还请额外写明你是房主还是普通成员、你是通过发现、已保存服务器还是手动输入连接的,以及这个问题发生在局域网、互联网,还是二者都会发生。

测试中的常见错误

常见测试错误包括:Android 上残留旧安装、服务器主机或端口输入错误、使用了启用隔离的路由器、测试了损坏的自定义赛道或车辆,以及在复测前一次改了太多设置。

先把这些常见问题排除。如果问题仍然存在,再按准确步骤写出报告,并保留出问题的环境,以便后续需要更多日志时还能继续调查。

22. 故障排除

本节会用通俗方式解释常见问题。当某件事出错时,请一次只改一个因素,再重新测试。如果你同时修改了多项设置,后面就很难判断究竟是哪一项修好了问题,或者是哪一项把问题搞出来的。

游戏启动了,但没有语音

如果游戏打开了,但你听不到任何语音,请先检查语音模式。如果语音模式被设成了“仅盲文”,那本来就不会有语音输出。请先切回语音输出,或语音加盲文,再继续测试其他内容。

如果语音模式没问题,就打开语音设置,换一个后端再试。换完后端后,移动到一个简单菜单项上,看看它是否会朗读。如果某个后端能工作、另一个不行,那就先继续使用能工作的那个,并准确报告涉及的是哪两个后端。

在 Android 上,后端切换依赖 Prism 语音层以及系统可用的 Android 语音服务。如果你一切换后端语音就立刻没了,请先重启一次游戏,再用同一个后端测试一次。这样可以帮你判断:到底是这个后端本身不可用,还是只是“热切换”失败了。

语言切换后,仍有些句子是英文

如果你在测试时安装或替换了语言文件,那么某些菜单可能在新翻译被加载之前就已经构建好了。请切换到目标语言,退出当前菜单,再重新进入同一位置。如果相同内容仍然是英文,请重启一次游戏后再检查。

如果重启后仍然是英文,那么大概率是语言文件里根本没有这些句子,或者它对应的是另一个游戏版本。此时请记录准确的菜单名称和准确的英文原句,以便更新翻译文件。

菜单提示不朗读

使用提示可以被开启或关闭。如果自动提示不朗读,请先打开设置,确认已启用使用提示。

然后在当前项目上手动请求一次提示。桌面端使用提示按键,移动端使用提示手势。如果手动提示能工作,但自动提示太早、太晚,或者打断过于激进,请重新执行一次屏幕阅读器校准。校准会帮助游戏估算语音需要多长时间,从而决定下一个延迟提示何时播出。

在 logo 音频播放期间,桌面端请按 Enter,移动端请向上滑动。跳过输入是在 logo 界面处理的,也就是主菜单出现之前。

如果移动端上 logo 无法跳过,但进入菜单后手势又正常工作,请先完整重启应用,再从全新启动流程中重新测试一次。如果所有地方的手势都不工作,那问题就不是 logo 跳过本身,而是触控输入整体出了问题。

找不到局域网服务器

局域网发现依赖设备能够在本地网络上接收到广播流量。有些路由器会在 AP isolation、client isolation、访客网络隔离或类似选项开启时阻止这类流量。

如果发现功能什么都找不到,请尝试用服务器那台电脑的局域网 IP 地址加 28630 端口手动连接。如果手动连接成功,说明服务器运行正常,只是发现功能被阻断了;如果手动连接也失败,请检查防火墙规则,并确认服务器程序确实已启动。

手动输入主机失败,但已保存服务器能连

手动输入主机时,内容必须完全正确。不要在域名前面加 http://https://。如果服务器使用自定义端口,请按 host:port 的形式填写。

如果已保存服务器能连,但手动输入不行,请把保存的主机和端口与你手动输入的内容逐一对比。端口错了、地址过期了、多了空格,或者误加了协议前缀,都会导致手动连接失败。

Android 能打开,但画面空白或没有响应

如果一个 Android 构建看起来安装成功了,但行为完全没变化,首先要怀疑是不是旧安装残留。请先在 Android 设置中完整卸载应用,再重新安装 APK。

如果在干净安装后,应用依旧打开成空白界面或无响应,请在启动期间抓取 Android 日志。启动错误通常会表现为:原生库缺失、托管程序集缺失、SDL 初始化失败、语音初始化失败,或者游戏抛出了未处理异常。

Android 只有某一台设备网络失败

如果其他设备都能连接,只有一台 Android 设备不行,那么问题大概率出在该设备或其网络配置上。尽可能拿同一个 APK 去另一张网络环境上再测一次。

请检查 VPN、私有 DNS、移动安全过滤、受限 Wi-Fi 网络以及路由器隔离设置。如果本地发现失败,但直接连 IP 能成功,那说明发现流量被拦住了;如果无论本地 IP 还是互联网主机都只在这一台手机上失败,那就应把重点放在这台手机的网络设置上。

更新下载成功,但安装失败

在桌面端,更新器必须存在于游戏目录旁边,并且必须有权限写入安装目录。如果游戏被放在受保护文件夹中,更新器可能没有足够权限替换文件。

在 Android 上,下载下来的文件必须是 APK,而且 Android 必须允许这个来源执行安装。请在提示时授予“安装未知应用”权限。如果安装仍然失败,请删除已下载的安装包,再重新下载一次,因为前一次下载可能并不完整。

自定义内容没有显示

对于赛道,请确认文件扩展名是 .tsm,并且文件位于 Tracks 中;对于车辆,请确认扩展名是 .tsv,并且文件位于 Vehicles 中。

如果文件夹和扩展名都正确,那问题可能就在文件内容本身。请用一个已知可用的自定义文件做对照测试。如果那个可用文件能显示、而你的文件不行,那就说明你的文件内容有问题。

控制器输入感觉不对

如果控制器、方向盘或踏板手感不对,请先从死区和踏板方向设置开始。方向盘可能不会完美停在中心点,有些踏板的数值方向也可能是反的。

一次只改一个设置,并在同一段短赛道上测试;只有在确实需要时才继续改下一个。不要一次同时调转向、油门、刹车和离合,否则最终效果根本无从判断。

体感转向不稳定

体感转向使用的是手机朝向信息。请按你平时真正游玩的方式握住手机,然后只做小幅转向动作,不要一开始就夸张地大角度倾斜。

如果你感觉手机明明是居中握持,车辆却仍在偏移,请重新校准,或者关闭体感转向,改用手势转向。不同手机的传感器素质差异很大。游戏会优先使用 Game Rotation Vector,如果不可用才逐级退回到更差的传感器。

专用服务器没有命令提示

服务器命令接口依赖标准输入。如果服务器是以后台服务形式运行、处于受限制宿主环境中,或者输入被分离掉了,那么命令功能可能会被禁用。

在无法使用命令的情况下,请通过设置文件、日志以及可控重启来管理服务器。如果你确实需要实时命令,请把服务器运行在一个普通的交互式控制台中。

端口检查清单

默认比赛端口是 28630,默认局域网发现端口是 28631。

在本地测试时,请在防火墙中放行服务器程序;在互联网托管时,请把比赛端口转发到服务器机器,并在防火墙中允许这个端口。只有在你明确知道自己需要它的情况下,才去额外转发发现端口。

启动时出现设置解析警告

如果游戏在启动时报告了设置警告,说明某个已保存设置缺失、无效,或者超出了允许范围。通常游戏会把这些无效值替换成安全默认值,以确保自己还能继续运行。

请先阅读警告内容,打开相关设置菜单,再重新设置那个选项。如果很多设置都损坏了,就先把设置文件移到一边,让游戏生成一个新的,然后再逐步重新应用你希望保留的设置。

23. 常见问题

Top Speed 只能用键盘玩吗?

不是。桌面端支持键盘和控制器输入。Android 主要围绕触控手势设计,如果设备支持相关传感器,也可以使用体感转向。Android 设备上依然可以接键盘,但 Android 玩法不应依赖键盘快捷键,键盘在 Android 上只是可选项。

不自己搭服务器,也能玩多人吗?

可以。如果存在一个社区服务器,而且你的网络能够访问它,你就可以加入。只有在你想搭建私人会话、做本地测试,或者自己维护一个公共服务器时,才需要自己托管服务器。

我可以重映射控制吗?

可以。驾驶控制可以针对键盘和控制器进行重映射。菜单快捷键也可以针对键盘重映射。某些平台级或安全相关操作可能仍然保持固定;而 Android 手势是独立于键盘映射体系之外处理的。

在 Android 上实现“手势重映射”非常困难,所以请不要请求添加这个功能。

为什么有些手势只能在屏幕特定区域使用?

比赛过程中,触控控制会按区域划分,因此同一个手势从不同起始区域发起时,会有不同含义。这样做是必要的,因为驾驶需要持续控制,而比赛信息查询则需要快速、独立的手势,不能与油门、刹车、转向、离合或喇叭互相冲突。

我可以关闭启动 logo 和自动更新检查吗?

可以。启动 logo 行为和自动更新检查都可以在设置中控制。打开 选项 > 游戏设置,就能在那里进行管理。

我切换了语言,但有一个菜单还是没翻译。这正常吗?

在测试语言文件时,这种情况是可能发生的,尤其是该菜单在选择新语言之前就已经被打开过。切换语言后请重启一次。如果重启后同一段文本仍然是英文,就说明语言文件还需要补上或更新这些字符串。

随机选择会包含自定义内容吗?

会,但前提是你开启了对应的自定义随机选项。否则,即使自定义文件已经存在,随机选择也仍然只会使用内置内容。

赛道和车辆创作规则写在哪里?

请查看专门的赛道和车辆创作指南。你可以在游戏附带的 docs 文件夹中找到它们。本指南主要面向游玩、安装、托管和故障排除;创作指南则解释文件格式。

24. 控制参考

本参考列出了所有受支持的操作,以及它们在键盘上的快捷键,或移动端上的等效手势(如果有)。

24.1 菜单导航

移动到上一个菜单项:
桌面端:上方向键。
移动端:单指向左滑动。

移动到下一个菜单项:
桌面端:下方向键。
移动端:单指向右滑动。

激活当前菜单项:
桌面端:Enter 或小键盘 Enter。
移动端:单指向上滑动。

从当前菜单返回:
桌面端:Escape。
移动端:单指向下滑动。

在多人大厅中,这个手势只在屏幕底部区域生效,因为顶部区域保留给聊天和历史记录功能。

在比赛中,返回操作只有从屏幕左上区域向下滑动时才会生效。

除此之外,除非另有明确说明,否则从任意位置向下滑动都可返回。

跳到菜单中的第一个项目:
桌面端:Home。
移动端:当当前项目不是滑块时,双指向上滑动。

跳到菜单中的最后一个项目:
桌面端:End。
移动端:当当前项目不是滑块时,双指向下滑动。

调整单选按钮,或在项目多个操作之间切换:
桌面端:左方向键或右方向键。
移动端:双指向左滑动或双指向右滑动。

滑块减 1:
桌面端:左方向键。
移动端:双指向左滑动。

滑块加 1:
桌面端:右方向键。
移动端:双指向右滑动。

滑块减 10:
桌面端:Page Down。
移动端:双指向下滑动。

滑块加 10:
桌面端:Page Up。
移动端:双指向上滑动。

滑块直接跳到最小值:
桌面端:End。
移动端:三指向下滑动。

滑块直接跳到最大值:
桌面端:Home。
移动端:三指向上滑动。

按需重复当前使用提示:
桌面端:Space。
移动端:长按。

切换到当前菜单中的下一页:
桌面端:Tab。
移动端:此操作没有全局默认手势。

切换到当前菜单中的上一页:
桌面端:Shift+Tab。
移动端:此操作没有全局默认手势。

24.2 主菜单与启动

跳过启动 logo:
桌面端:Enter 或小键盘 Enter。
移动端:单指向上滑动。

从根菜单退出游戏:
桌面端:激活 退出游戏 项,或在没有更深层堆栈时从根菜单按 Escape。
移动端:激活 退出游戏 项,或从根菜单返回退出。

24.3 驾驶核心操作

关于移动端,有几点需要说明:

  1. 在移动端驾驶时,屏幕会被划分为两个主要区域。指南中使用的名称遵循比赛手势分区,但手机本身应当以横屏方式握持。在这种姿势下,这两个区域实际上对应的是手机的左半边和右半边。

底部区域,在横屏状态下会变成右侧区域,用来控制车辆,例如启动引擎、踩油门、刹车、换挡,或者在你没有使用体感转向时执行转向。指南中把它称为车辆控制区。

顶部区域,在横屏状态下会变成左侧区域,负责信息查询和辅助比赛操作。这个区域又被进一步分成左上和右上两个比赛手势区,下面的参考中会说明它们各自包含哪些动作。

本驾驶章节中所有“拖动方向”都以横屏方向为准。向左拖动,指的是在手机横握时手指实际朝手机左边移动;向右拖动,则是手指朝手机右边移动。

向左转向:
桌面端:默认是左方向键。
移动端:如果关闭了体感转向,就在车辆控制区单指向左拖动;如果启用了体感转向,就从校准后的中性姿态向左倾斜手机。

向右转向:
桌面端:默认是右方向键。
移动端:如果关闭了体感转向,就在车辆控制区单指向右拖动;如果启用了体感转向,就从校准后的中性姿态向右倾斜手机。

油门:
桌面端:默认是上方向键。
移动端:在车辆控制区单指向上拖动。

刹车:
桌面端:默认是下方向键。
移动端:在车辆控制区单指向下拖动。

离合:
桌面端:默认是 Shift。
移动端:在左上信息区按住一根手指。只要手指不离开,离合就会保持接合;抬手后则会松开。

升挡:
桌面端:默认是 A(可重映射)。
移动端:在车辆控制区双指向左滑动。

降挡:
桌面端:默认是 Z。
移动端:在车辆控制区双指向右滑动。

喇叭:
桌面端:默认是 Space(可重映射)。
移动端:在右上信息区按住一根手指。手指按住时喇叭持续鸣响,抬起后停止。

启动或关闭引擎:
桌面端:默认是 Enter。
移动端:在车辆控制区单指双击。

暂停或继续比赛:
桌面端:默认是 P。
移动端:在左上信息区三指连点三次。

切换按需换挡:
桌面端:M(固定默认快捷键)。
移动端:没有专用手势。

24.4 驾驶信息查询

朗读当前挡位:
桌面端:默认是 Q。
移动端:在右上信息区三指单击一次。

朗读当前圈数:
桌面端:默认是 W。
移动端:在右上信息区单指双击。

朗读当前比赛进度百分比:
桌面端:默认是 E。
移动端:在左上信息区双指双击。

朗读当前圈进度百分比:
桌面端:默认是 R。
移动端:在左上信息区三指双击。

朗读当前比赛时间:
桌面端:默认是 T。
移动端:在左上信息区双指连点三次。

报告已行驶距离:
桌面端:默认是 C。
移动端:在右上信息区双指双击。

报告速度、RPM 和马力:
桌面端:默认是 S。
移动端:在左上信息区单指双击。

报告赛道名称:
桌面端:默认是 F9。
移动端:没有专用手势。

请求位置与玩家信息组合:
桌面端:默认是 Tab。
移动端:在右上信息区三指双击。

选择上一个玩家信息目标:
桌面端:桌面端默认没有按键。
移动端:在右上信息区双指向右滑动。

选择下一个玩家信息目标:
桌面端:桌面端默认没有按键。
移动端:在右上信息区双指向左滑动。

重复当前所选玩家的信息:
桌面端:桌面端默认没有按键。
移动端:在右上信息区双指连点三次。

请注意,桌面端对玩家信息还提供固定按键:F1 到 F8 用于报告对应玩家所驾驶的车辆,数字行 1 到 8 用于报告对应玩家的比赛位置。

退出比赛:
桌面端:Escape。
移动端:在左上信息区单指向下滑动。

24.5 比赛中直接查询玩家编号与位置的按键

朗读 1 号玩家槽位的车辆名称:
桌面端:F1。
移动端:没有直接对应的手势。

朗读 2 号玩家槽位的车辆名称:
桌面端:F2。
移动端:没有直接对应的手势。

朗读 3 号玩家槽位的车辆名称:
桌面端:F3。
移动端:没有直接对应的手势。

朗读 4 号玩家槽位的车辆名称:
桌面端:F4。
移动端:没有直接对应的手势。

朗读 5 号玩家槽位的车辆名称:
桌面端:F5。
移动端:没有直接对应的手势。

朗读 6 号玩家槽位的车辆名称:
桌面端:F6。
移动端:没有直接对应的手势。

朗读 7 号玩家槽位的车辆名称:
桌面端:F7。
移动端:没有直接对应的手势。

朗读 8 号玩家槽位的车辆名称:
桌面端:F8。
移动端:没有直接对应的手势。

朗读 1 号玩家槽位的比赛进度位置:
桌面端:1。
移动端:没有直接对应的手势。

朗读 2 号玩家槽位的比赛进度位置:
桌面端:2。
移动端:没有直接对应的手势。

朗读 3 号玩家槽位的比赛进度位置:
桌面端:3。
移动端:没有直接对应的手势。

朗读 4 号玩家槽位的比赛进度位置:
桌面端:4。
移动端:没有直接对应的手势。

朗读 5 号玩家槽位的比赛进度位置:
桌面端:5。
移动端:没有直接对应的手势。

朗读 6 号玩家槽位的比赛进度位置:
桌面端:6。
移动端:没有直接对应的手势。

朗读 7 号玩家槽位的比赛进度位置:
桌面端:7。
移动端:没有直接对应的手势。

朗读 8 号玩家槽位的比赛进度位置:
桌面端:8。
移动端:没有直接对应的手势。

朗读你自己的玩家编号:
桌面端:F11。
移动端:没有直接对应的手势。

24.6 面板与收音机控制

切换到下一个面板:
桌面端:Ctrl+Tab。
移动端:没有专用触控手势。

切换到上一个面板:
桌面端:Ctrl+Shift+Tab。
移动端:没有专用触控手势。

打开收音机媒体文件选择器:
桌面端:在收音机面板激活时按字母 O。
移动端:没有专用触控手势。

打开收音机文件夹选择器:
桌面端:在收音机面板激活时按 F。
移动端:没有专用触控手势。

切换收音机播放状态:
桌面端:在收音机面板激活时按 P。
移动端:没有专用触控手势。

收音机下一曲:
桌面端:在收音机面板激活时按 Page Down。
移动端:没有专用触控手势。

收音机上一曲:
桌面端:在收音机面板激活时按 Page Up。
移动端:没有专用触控手势。

收音机音量加:
桌面端:在收音机面板激活时按上方向键。
移动端:没有专用触控手势。

收音机音量减:
桌面端:在收音机面板激活时按下方向键。
移动端:没有专用触控手势。

切换收音机随机播放:
桌面端:在收音机面板激活时按 S。
移动端:没有专用触控手势。

切换收音机文件循环:
桌面端:在收音机面板激活时按 L。
移动端:没有专用触控手势。

24.7 多人菜单触控布局(Android)

在多人菜单中移动到上一个项目:
桌面端:上方向键。
移动端:在多人底部区域单指向左滑动。

在多人菜单中移动到下一个项目:
桌面端:下方向键。
移动端:在多人底部区域单指向右滑动。

退出多人菜单:
桌面端:Escape。
移动端:在多人底部区域单指向下滑动。

打开历史缓冲区屏幕(聊天、服务器消息、房间事件): 桌面端:按 Tab 前进到下一个屏幕,按 Shift+Tab 返回。历史缓冲区是多人大厅和房间内控制的第二个屏幕。 移动端:历史缓冲区位于多人菜单顶部区域;没有单独需要切换的屏幕。

切换到下一个历史类别: 桌面端:](右方括号)。 移动端:在多人顶部区域单指向上滑动。

切换到上一个历史类别: 桌面端:[(左方括号)。 移动端:在多人顶部区域单指向下滑动。

移动到下一条历史记录: 桌面端:在多人菜单任意位置按 .(句点),或在历史缓冲区屏幕按下方向键。 移动端:在多人顶部区域单指向右滑动。

移动到上一条历史记录: 桌面端:在多人菜单任意位置按 ,(逗号),或在历史缓冲区屏幕按上方向键。 移动端:在多人顶部区域单指向左滑动。

跳到当前类别中的最后一条历史记录: 桌面端:Shift+.(Shift + 句点)。 移动端:没有专用手势;请在历史缓冲区屏幕中使用菜单导航跳到末尾。

跳到当前类别中的第一条历史记录: 桌面端:Shift+,(Shift + 逗号)。 移动端:没有专用手势;请在历史缓冲区屏幕中使用菜单导航跳到开头。

把当前聚焦的历史记录复制到剪贴板: 桌面端:Ctrl+Space,或在历史缓冲区屏幕中激活当前聚焦记录(Enter)。 移动端:在历史缓冲区屏幕中激活当前聚焦记录。

检查延迟:
桌面端:F1。
移动端:在多人顶部区域单指双击。

打开全局聊天输入:
桌面端:斜杠(/)快捷键。
移动端:在多人顶部区域双指向右滑动。

打开房间聊天输入:
桌面端:在房间中使用反斜杠(\)快捷键。
移动端:在多人顶部区域双指向左滑动。

查看当前房间游戏规则: 桌面端:在房间内按 R。 移动端:没有专用手势。

24.8 多人比赛覆盖层控制

在多人比赛中打开全局聊天:
桌面端:斜杠(/)。
移动端:没有专用比赛手势。

在多人比赛中打开房间聊天:
桌面端:反斜杠(\)。
移动端:没有专用比赛手势。

在多人比赛中打开退出确认:
桌面端:Escape。
移动端:在左上信息区单指向下滑动。这就是比赛中的返回手势。

除了上面这些控制外,内联历史记录快捷键(,.Shift+,Shift+.[]Ctrl+Space)以及核心 Communicator 快捷键(Ctrl+Shift+C、Ctrl+Shift+F、F、V、Ctrl+Shift+V)在多人比赛中也仍然可用。你可以用它们在不离开驾驶面板的情况下查看聊天历史,或者和其他玩家通话。媒体串流快捷键(Ctrl+O、Ctrl+F、Ctrl+P、Ctrl+L、Ctrl+S、Ctrl+Page Up / Page Down、Ctrl+Up / Down)只在多人菜单中可用,在比赛中不会响应。

24.9 Communicator 控制

这些控制在你位于多人大厅或房间内时都可用。核心的 Communicator 控制(开关、设定频率、播报频率、按住说话、语音激活)在多人比赛中也仍然能工作,因此你不需要离开驾驶面板就能和其他玩家通话。末尾列出的媒体串流控制只在多人菜单中响应,比赛过程中不会响应。关于功能本身的详细说明,请看第 13 节。

打开或关闭 Communicator:
桌面端:Ctrl+Shift+C。
移动端:在多人顶部区域双指向下滑动。

打开频率输入(设定频率):
桌面端:Ctrl+Shift+F。
移动端:在多人顶部区域双指向上滑动。

播报当前频率:
桌面端:F。
移动端:在多人顶部区域三指轻点。

按住说话(按住期间持续发射):
桌面端:V。PTT 会显式忽略在按住 Ctrl、Shift 或 Alt 时的按键输入。
移动端:在多人顶部区域先单指轻点一次,然后在约 0.4 秒内继续在同一区域单指按住。只要第二次按住还在持续,Communicator 就会保持发送;一旦松开,就会停止。

打开或关闭语音激活(VOX):
桌面端:Ctrl+Shift+V。
移动端:在多人顶部区域双指双击。

通过 Communicator 串流单个音频文件:
桌面端:在 Communicator 开启时按 Ctrl+O。
移动端:没有专用手势。

通过 Communicator 串流一个文件夹:
桌面端:在 Communicator 开启时按 Ctrl+F。
移动端:没有专用手势。

播放或暂停 Communicator 串流媒体:
桌面端:在 Communicator 开启时按 Ctrl+P。
移动端:没有专用手势。

Communicator 串流上一曲:
桌面端:在 Communicator 开启时按 Ctrl+Page Up。
移动端:没有专用手势。

Communicator 串流下一曲:
桌面端:在 Communicator 开启时按 Ctrl+Page Down。
移动端:没有专用手势。

Communicator 串流媒体音量加:
桌面端:在 Communicator 开启时按 Ctrl+Up Arrow。
移动端:没有专用手势。

Communicator 串流媒体音量减:
桌面端:在 Communicator 开启时按 Ctrl+Down Arrow。
移动端:没有专用手势。

切换 Communicator 串流媒体循环:
桌面端:在 Communicator 开启时按 Ctrl+L。
移动端:没有专用手势。

切换 Communicator 串流媒体随机播放:
桌面端:在 Communicator 开启时按 Ctrl+S。
移动端:没有专用手势。

桌面端所有 Communicator 快捷键都可以在 设置 → 控制 → 映射菜单快捷键 中重新映射。移动端手势不能重新映射。

25. 鸣谢与致谢

Top Speed Remake 在继承原始开源 Top Speed 项目的基础上,用现代 C# 代码库重新构建了整个游戏。

项目代码以 GNU GPL v3 协议分发。第三方组件则继续遵循它们各自原有的上游许可证。

本项目使用了部分来自其他开源项目的素材,下面列出相关来源。

部分菜单音效来自开源游戏 Three-D-Velocity,你可以在这里找到它。项目早期的一些代码也借鉴过它,但并不是直接照搬。

所有声音和赛道都直接复制自原始 Top Speed 项目,并且它们的来源是合法的,因为原始项目本身就公开托管在 GitHub 上,点此查看

这个项目能够存在,离不开长期的社区投入:玩家、翻译者、服务器管理员、测试者,以及那些愿意提供清晰报告和可复现步骤的贡献者。

感谢所有以任何方式帮助这个项目继续前进的人,无论是经济支持、协助修 bug、提交新功能,还是把游戏分享给朋友。我真的非常感谢这个了不起的社区,是你们让这个项目得以持续。

26. 联系我

如果你想报告 bug,请直接到 GitHub 提交新的 issue,这样我们才能持续跟踪。

请确认你使用的是游戏最新版本,并在报告问题时务必附上游戏版本、操作系统,以及其他相关细节。不要通过 issue 提建议新功能;请改用 discussions。

游戏还有一个 Telegram 社区群组。你可以加入群组,和大家讨论游戏、问题或新功能。

如果你想私下联系我,可以通过以下任一方式。

WhatsApp

Telegram

或者直接发邮件给我:ramymaherali55@gmail.com

如果你愿意通过捐助来帮助项目继续运转,请使用这个 PayPal 链接

最后,如果你已经读到了这里,感谢你愿意花时间看完这份很长的文档。

希望这份指南能帮助你顺利进入游戏、理解它的运作方式,并像社区成员们一起努力让它重获新生那样,也真正享受 Top Speed Remake。