概览
RT,店内对战。使用IP别名在本机网络上虚拟联机玩家,暂命名ShadowTenpo,(完善后)基本实现客户端无需配置双击即玩
项目地址: dev.s-ul.net:ilufang/shadowtenpo
不需要:
- 任何VPN软件(如ZeroTier)
- 手动修改特定网络配置
- 对游戏软件进行修改
需要:
- 配置一台公网服务器运行中转软件(任意端口websockets)
注意:
- 本项目可能仍然处于开发中,因为近期的1cc大剧院连续公演临时性烂尾,就以当前状态先行公开,可能有无预告更新也可能不更新
- 需要自行寻找基础技术问题解法的能力:回复问怎么git clone,npm i是什么和为什么Module not found的一律不予答复,现阶段不适合你
- 存在与ZeroTier方案完全相反的设置,请务必阅读全文再操作
安装
运行环境依赖:NodeJS,clone仓库后须运行npm i
安装nodejs依赖(客户端可以用install.bat自动运行npm免去命令行操作)。服务端和客户端的程序在同一个repo里。
服务端:
- 如有必要,修改
config.js
,将server_port
设置为希望使用的端口
- 请注意使用的协议是HTTP/websocket,请留意服务器地区可能有ICP备案要求
- 运行
node server
启动对战服务
- 进程不会自动fork后台,建议使用screen/tmux运行
客户端:
- 编辑
config.js
设置使用的服务器的地址和端口
- 如果需要,修改监听转发的端口等其他设置。默认设置适配SDBT,其他环境可能可用但未经测试且不提供支持
运行配置
- 使用管理员权限运行
netif.bat
以创建用于模拟其他联机者的虚拟IP别名
- 脚本设置的IP别名重启时失效,故每次开机只需运行一次
- 如果出错,可以尝试编辑脚本将
NETIF
变量设置为loopback
- 手动修改往真实物理网卡上添加IP可能导致断网,如须尝试需要开启DHCP和静态IP共存
- 使用虚拟网卡(如VPN)可能导致未知的游戏行为,包括tcp握手reset等
- 打开
start.bat
或使用指令node .
启动客户端,请确认可以成功连接到对战服务器并获取虚拟地址后再继续
- 修改
segatools.ini
将网络设置修改为客户端获取的IP和子网段。客户端将会在自己的文件夹中创建segatools-override.ini
供参考
- 启动游戏。如果IP ADDRESS BAD可能需要给游戏管理员权限
请注意游戏会抢占本地端口,如果联机客户端退出,在游戏完全关闭前将无法正常重启客户端,请务必在客户端启动后再打开游戏。
游戏内设置
- 所有联机的游戏必须版本一致,包括本体、ICF版本、和所有option的data.conf
- 在默认设置下,配信和基准通信不会被转发,故所有人都应将自己设置为自己的配信服务器和基准机
- 显然,店内对战group必须一致
- 成员使用的网络服务没有任何限制,不同的本地服、不同的在线服甚至灰网游客都可以一起匹配
- 无需任何exe补丁,虽然打了也没事
网络安全提示
匹配客户端有向局域网发送任意数据包的能力且没有做任何针对性保护,其他客户端、服务器和任意连接上的中间人攻击等都可以借助此软件绕开你的防火墙实现内网穿透。请自行评估此安全风险、谨慎选择服务器和联机玩家。运行此软件表示你接受此风险且同意作者不对可能带来的损失负任何责任。