冲浪在 NGA 上看到一个有关太吾正式版技术架构的贴

2022-09-23 10:02:20 +08:00
 HolmLoh

首先我没做过游戏,根据我非常有限的了解单机不是应该可以单个程序就解决了,如果是因为开发便利前后端分离进程间不是还有很多方法通信吗,为什么要通过网络端口通信,好像说这还导致了很多用户因为端口占用启动不了。帖子还有人说主创招了群三流码农高开低走。总之心情复杂

4475 次点击
所在节点    太吾绘卷
24 条回复
voidemoer
2022-09-23 17:02:44 +08:00
不提技术,正式版的战斗机制改的,就挺适合联机的,倒是挺希望能和朋友 1v1 的
YUyu101
2022-09-23 17:56:59 +08:00
联机用吧,需要玩家当主机的话,就需要这种架构
ysc3839
2022-09-26 01:53:21 +08:00
很多支持联网的游戏的单人模式都是跑个本地服务器的,不过大多是弄成单进程的。只能说开发者偷懒没有处理内部通信的事情。
kice
2022-09-27 12:38:54 +08:00
首先单机游戏做成 CS 架构没啥问题,隔壁 V 社的起源引擎和 MC 也是 CS 架构走 RPC (起源为了减少延迟,单机模式下开后门,不走 localhost 那边的 memcpy )。

其次 50000+端口基本上属于很难被其他程序使用。估计程序员比较菜?写死了估计还没想到办法端口号变动之后怎么连服务器。

走网络通讯是最简单最方便的 RPC 途径,其他的各种方法都不好移植,例如命名管道,mmap 之类。甚至可能是 HTTP 或者 HTTP over UDP 也是可行。

我个人认为最蠢的地方是服务器逻辑单独一个进程进行处理。虽然知道是因为 unity ,但是如果我来做的话会尝试把服务器逻辑做成一个 C 井库,客户端既可以给玩家用,也可以本地开服务器局域网联机;然后再额外做一个没有渲染或者没有客户端逻辑的独服给公网(社区服)用。这样方案下,mod 环境某种意义上比较成熟( bepinex 之类的框架大家都会用)。

单独服务器进程之下,mod api 就可以随意发挥,脱离 bepinex 之类的 mod 框架。缺点可能就是如果要修改素材,渲染方面,还是要用 bepinex ,然后服务器那边也要单独一个 mod ;虽然能避免,但是个人就比较怀疑团队那边有没有能力设计且实现好这个大饼。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/882310

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX