非想天则的时代并不是我所了解的时代,而在我了解的时代里, SiHuaN 向大家传教,我才知道有则这个东西,我才知道有 Shitama 这个东西。 SiHuaN 将 Shitama 推入 AUR ,而在我开始使用 Shitama 时, Shitama 已经没有了默认服务器。 AGPLv3.0 是好文明,而 Shitama 恰恰是基于此发布,于是我试图自行搭建服务,但效果差强人意,大概是青岛到杭州再回青岛确实太远了吧……我的代码阅读能力巨差,改进 Shitama 的尝试失败了,一个偶然的想法驱使我自己实现一个,名字就取叫 thlink 。粗略算来,入坑东方马上就要一年了,尽管 thlink 用起来依然会卡,而且我还不知道为啥,不管怎么说作为给自己的一周年礼物也不差吧。

白玉楼製作所 ThLink

License Release Go Report Card

FOSSA Status FOSSA Status

ThLink 的目标是,有则的地方就能联机。本体使用 GoLang 编写, GTK3 客户端使用 GoLang 和 C 联合编写。

v0.0.9 加入了非想天则的观战支持,感谢 delthas非想天则协议文档

v0.0.11 加入了凭依华的观战支持。凭依华的协议要简单一些,和非想天则的协议相比,更像是我能接受的复杂程度。到这个版本,凭我的能力已经不知道如何再继续改进了。

这里的观战,观战方是完全独立与对战双方的存在,故设计上希望实现对战方和多个观战方共用一个端口。

对战方获得的观战数据是由 thlink-client 发送的,而 thlink-client 发送的数据是其自身作为观战方从对战中的某一方获取的数据,对战双方所能感知到的观战客户端只有 thlink-client 而已。

项目主页:github

国内镜像:gitee

预编译的二进制:github release

预编译的二进制国内镜像:gitee release (部分二进制无法上传)

AUR安装:

$ yay -S thlink-client-gtk
$ yay -S thlink-client
$ yay -S thlink-broker

GTK3 图形化客户端使用指导

这是 thlink-client-gtk 的简明指导。

Local port 是本地游戏监听的端口。这个参数在非想天则默认是 10800 ,故 thlink 默认也设置为 10800 ,如果有需要则更改之。

对于传输协议, TCP 和 QUIC 的性能在一般情况下差不多,所以 TCP 其实就是一个很好的选择。

默认不打开任何插件( PluginOFF ),此时只作一般转发用。打开插件得到对应的观战功能,且在底部信息栏会显示相应的信息。 TH123 对应非想天则, TH155 对应凭依华,开错有可能导致对战中程序崩溃(我只能尽力保证这不会发生)。

下拉菜单中 Network discovery 用于显示服务器网络中的其他服务器,可以根据 ping 延迟手动双击选择。这个功能没有做成自动选择的原因是这个延迟只能片面地表示 client 和 broker 之间的延迟,而对战另一方到服务器的延迟在对战开始前都是未知的。

下拉菜单中 Tunnel status 用于图形化显示 client 和 broker 之间的 ping 延迟,在打开 TH123 插件时还将显示对战双方之间的延迟。

一切就绪后点击 Connect 即建立与转发服务器的连接,且连接 IP 将即时显示,点击 Copy 将复制该 IP 到剪贴板,对方在获得这个 IP 后即可实现联机。

如果想要应用新的设置或在当前配置下更换 IP ,则点击 Refresh ,新的 IP 也将即时显示。

最后,整个项目并没有经过广泛的测试,所以我也好奇它还有什么 bug 是我不知道的。

by SDUST weilinfox