go 有 能支持 tcp 和 udp 的游戏框架吗?

2020-11-06 18:13:41 +08:00
 wmwmajie

目前选型一个类似网站荣耀这样的游戏服务端框架,想用 go,不知道有没有合适的大家推荐推荐。

3140 次点击
所在节点    Go 编程语言
10 条回复
chinagxwei
2020-11-06 19:24:47 +08:00
b00tyhunt3r
2020-11-16 12:56:46 +08:00
go 肯定性能不够
wmwmajie
2020-11-17 10:52:58 +08:00
@b00tyhunt3r go 性能不够?不太懂,go 编译后的代码和其他编译后的语言不会有差别吧,数据库这些应该就是同样的,有其他门槛低一点的框架或语言吗?
b00tyhunt3r
2020-11-17 12:56:50 +08:00
@wmwmajie
当有有差别了 没差别的话岂不是只要是编译语言性能都一样了

性能不够就是字面意思啊哪里没懂 语言都是有 IO 速度上限的
当然你要是回合制,或者没有物理效果,或者非商业个人作品啥的 go 应该可以了
www.toptal.com/back-end/server-side-io-performance-node-php-java-go
b00tyhunt3r
2020-11-17 13:01:19 +08:00
还有就是 go 有著名的 2 分钟 GC peak, 直观感受就是每两分钟卡顿一下。大型 MMO 应该很明显了
wmwmajie
2020-11-18 17:52:59 +08:00
@b00tyhunt3r 所以我还是没太明白,你说的 io 上限主要就是在 io 操作上同步阻塞和异步非阻塞这块,这一块 go 肯定是做得比较好的,特别是 go 的异步能力,所以我不太理解有什么语言在异步 io 上能完全超过 go ?当然相差不大是有的,因为底层的 io 交互只要是异步非阻塞的 io 能力都会很强而且用的都是更底层的库。

有其他框架或者语言推荐吗?
我知道是有 C#,python,lua 这些,但是这些基本上也都是和 go 持平吧,只是可能框架熟练度高一点。
当然我对这块也不了解,不知道是否有通用性高一点的游戏框架?
wmwmajie
2020-11-18 18:34:42 +08:00
@b00tyhunt3r 我刚才看了一下 go gc 回收已经有很大改进和优化现在是异步的 gc 回收,而且时间基本都是在 10 微妙一下,高负载下也不会超过 100 毫秒。
securityCoding
2020-11-20 20:31:39 +08:00
@b00tyhunt3r go 做网络库还有性能瓶颈?
sunshinev
2020-11-30 12:39:46 +08:00
@b00tyhunt3r GC 的问题,网上搜了一下,现在已经可以压缩到 1.x 毫秒了
sunshinev
2020-11-30 12:42:07 +08:00
协议是不是很重要,之前试过 websocket+protobuf 协议的通信,后端 go 直接手写不用框架性能最高。。。

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

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

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

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

© 2021 V2EX