跳到主要内容

Elemental Fracture Marla 服务器 2.0 更新

· 阅读需 6 分钟
Brendon (Doobs)
项目负责人

大家好,我是 Doobs! 这一路真是不容易。在进入正题之前,先说一句:我知道,我知道,我当初说的是六小时。可事实是,当你把管道整个拆开重装时,途中往往还会发现几处新的漏点。在经历了修好一处又弄坏另一处的漫长循环之后,我很高兴地告诉大家:一切都已上线,而且运行得比以往任何时候都好。这次更新分量很足,足到我已经超过了 Nitro 的字数上限。我们重构了基础设施,加强了安全性,提升了服务器效率,还加入了亟需的自动化。哦,另外我也顺手加了几处后端的便利改进,好让自己的工作轻松一点。

新功能与改进

1. 向 Marla 2.0 问好

Marla 已经完全接入系统!她仍在持续完善(我们不都是这样吗),不过我觉得现在可以正式宣布 2.0 版本完成了。如果你有新功能或调整方面的想法,欢迎告诉我。她的存在就是为了让大家更省心,我也希望继续按照你们的需要把她做得更好。

2. Sentinel:上线

这一项是给我们工作人员的,同时也是接下来一切的基础(不剧透,抱歉,你得继续往下读!)。备受期待的 Sentinel 系统现已上线,正式成为我们记录玩家和管理服务器访问的中枢。这套系统带来了此前十分欠缺的结构与监督,让一切对所有人都更公平、更透明。 它能做的事情包括:

  • 玩家活动记录,记录首次连接并保留登录历史。
  • 访问控制,让管理员以结构化的方式管理权限与限制。
  • 安全操作日志,确保所有交互都被记录,做到有据可查。 对于在意隐私的朋友,这里说明我们究竟收集了什么:
  • 用户名(你最初开始玩 Spellbreak 时使用的名字)
  • IP 地址
  • 首次连接的时间戳 仅此而已。没有私人消息,也不会暗中追踪你的其他浏览习惯(你在 YouTube 上看多少小时阴谋论视频,我并不关心)。接下来第二个问题:"这些数据有风险吗?" 老实说?有的。任何在线交互都存在一定风险,无论是游戏、银行还是社交媒体。真正安全的数据,只有离线保存的数据或者压根不存在的数据。话虽如此,我也做了一些防护来把暴露面降到最低:
  • 加密,所有收集到的数据都经过加密。
  • 访问受限,只有具备更高权限(并持有 RSA 令牌)的账号才能访问。
  • root/sudo 保护,解密任何内容都需要完整的 root/sudo 权限,没人能随手窥探。 不过有一个小小的麻烦:如果你更改用户名,可能会遇到连接问题。我们可以在 Sentinel 中手动调整,但为了省事,我建议尽量保持名字不变。我知道这会让频繁改名的朋友不太自在,对此我表示歉意。不过至少,你的身份认同危机是安全的!

3. 不要 Windows,不要信用卡,不要糟心事

这一项非常重磅。在与 Windows 的种种毛病周旋了仿佛一个世纪之后,我们已经正式把一切迁移到了 Linux,通过 Wine 运行,并配置在一组 Docker 容器中。再也没有拖后腿的 Windows 虚拟机,再也不会因为 Windows 决定立刻更新,或者 Pink Marla 对什么不满意而随机崩溃了。 好了,服务器的事就说到这儿,这对你们来说究竟意味着什么呢?

  • 不再有 Windows 开销,Windows 虚拟机过去会占用大量系统资源,导致性能问题。这已成为过去。
  • 性能更好,Linux 的效率高得多,系统负担更轻,游戏也更流畅。
  • 更加稳定,崩溃更少,在线时间更长,整体体验更顺畅。
  • 更新与维护更快,没有 Windows 挡路,我可以更快地推送更新、修复和优化。 不过真正让人兴奋的还在后面。这次转变让我们在部署服务器上有了大得多的灵活性。我们现在可以:
  • 在不关停其他服务的情况下开设公开测试(PTB)服务器
  • 部署任意历史平衡性补丁周期的服务器,包括原版 Spellbreak
  • 把大量维护工作自动化,减少人工介入。
  • 应要求向国际社区伙伴提供这套方案。 这不只是 Elemental Fracture 的胜利,更是整个 Spellbreak 社区的胜利。

4. 改进后的对局追踪系统

过去为了看看谁在线,得等服务器列表没完没了地滚动,这样的日子结束了。 Match Tracker Mod 回来了,完全重新接入,而且比以往更好用。现在对局数据会在 Discord 上实时更新。系统会显示五种对局状态:

  • Starting Up,游戏服务器正在加载。
  • Waiting for Players,服务器已开放并接受连接。
  • Waiting to Start,对局倒计时进行中。
  • Started,对局进行中(抱歉,无法中途加入)。
  • Ended,对局已结束(或者哪里出了问题)。 这样一来,实时查看谁在游玩就方便多了,此外还有一些有意思的可能性。顺带一提,我很想听听大家的意见:当在线人数足够时,Marla 是否应该提及某些身份组?如果 Solos 里有十人或更多,她是否应该通知 @Battle Royale 来帮忙凑人?这里有很大的发挥空间,欢迎告诉我你的想法。

接下来的计划

下一个大项目是什么?启动器。 目前的安装流程可能有点麻烦,尤其是对不太熟悉技术的朋友。我希望把这个过程做得尽可能简单顺畅。虽然我有一大堆想法,但这些我一个人做不完。如果你有兴趣帮忙,欢迎联系我。 路线图如下:

  1. 不再手动输入 IP。 我一直在研究如何把网络数据包映射到具体的游戏模式,这样你只要选择模式就能自动连接,不必再输入 IP。
  2. 认证与追踪系统。 我想搭建一套系统,把玩家进度甚至 ELO 与你的 Sentinel 档案关联起来。这将为更具竞技性的对局、更好的匹配机制乃至赛事活动打开大门。

如果你遇到问题、有反馈,或者只是想告诉我你有多喜欢(或多讨厌)这些改动,甚至觉得我话太多了,都欢迎告诉我。感谢你们始终是 Elemental Fracture 最棒的部分,一如既往,我很期待接下来的一切!