go 开发放置类游戏,一般用什么框架,或者有什么架构啊 大佬们
1
sunny352787 55 天前 ![]() 游戏这边本身就没啥公认好用的框架,都是自己根据自己项目情况选组件或者自己写,golang 倒是有一些开源的游戏服务端但不一定适合你的情况,给你列几个你自己看看能不能用上吧,反正我只是 star 收藏当作扩展知识面,实际我们项目的框架还是自己写,核心是用 gin 的 http 服务,加上 grpc 做简单的服务间通讯,毕竟太复杂的也用不上
https://github.com/topfreegames/pitaya https://github.com/duanhf2012/origin https://github.com/dobyte/due https://github.com/Golangltd/LollipopGo https://github.com/lonng/nano https://github.com/kercylan98/minotaur 这些是最近还在更新的,还有很多已经很久没更新的就不列了 |
2
davince OP @sunny352787 谢谢大佬,我搜了 2 个 Leaf 和 Nakama 不知道 靠谱不
|
3
sunny352787 55 天前
@davince leaf 很久很久没更新了,nakama 没看过,这些你挑个顺眼的试试,我觉得最后你会发现,还是自己手搓更方便
|
4
assiadamo 55 天前 ![]() 看你游戏类型,http 短连接 gin ,tcp/ws 长连接 https://github.com/aceld/zinx
这些大多是通信层框架,缓存设计、数据持久化、负载均衡、部署方式这些大多都是藏着掖着不愿意分享的,需要自己选型踩坑 |
![]() |
5
Maboroshii 55 天前
框架就是一些网络或者 rpc 之类的,真正复杂 4L 都说了,各个公司都是自己踩的坑,框架里是没有的
|
6
newtype0092 55 天前
放置游戏逻辑主要是客户端逻辑吧,服务器只要提供计时的服务就好了。
然后就是提升用户体验的杂项,作弊校验、存档、排行之类杂七杂八的,和普通的 web 服务没区别。 |
7
davince OP 悟了, 到最后还是得自己搓才好掌控 😄
|
![]() |
8
realpg PRO 游戏这俩字过于庞大了...
你随便打开一个手机应用商店 "游戏"都是跟"应用"并行的分类 这么问问题, 就跟 "我想开发一个软件有啥框架"一样不存在适配的答案 |
9
BALDOOR 55 天前 ![]() 非实时的,跟做 Web 一样轮询都可以,数据放数据库不用缓存实时 IO 都没问题
实时的,数据放内存,别听什么鬼话放什么 Redis/SSDB 或者其他什么的,做好代码热更新,别做快速重启/重连方案 看下 Actor 相关知识,很快就能自己搞一套能用脚手架出来了,核心知识是《可变不共享,共享不可变,要想改变共享,使用消息队列更新》,不要上来就我“精通”数十种锁,除了玩编译器和内核那堆大牛,没人能玩的转,就跟那群学了 21 天就觉得自己“精通”C++的人一样,自以为是只能自嗨而已,随便来个几个随机 Bug 就老实了 网上一大堆脚手架,@sunny352787 这里面的也都是脚手架不是什么框架,就跟渲染器和引擎的差别一样大 不用迷恋大厂甚至宇宙厂拥有几十人的中台堆出来的框架,就算各种 title 爆炸,博客文章写得飞起的“大牛”,各种意淫脑补的“高性能”满天飞,一样是垃圾,跟 Web 不一样,除了像登录/MQ/RPC 之类的其他都是不通用的。 也不要迷信什么成熟稳定之类的,软件乃至互联网软件估计最差的就是游戏了,从来就没有稳定这种说法,甚至都没有成熟这种概念,只是过往项目堆出来的混杂着各种不同屎的屎山缝缝补补,跟互联网那些 Spring/Laravel 之类的比,就是初中被 55 分流的小孩跟图灵奖得主比 |
10
techone 54 天前
Pitaya 可以试一下
|
13
digdug 53 天前
我早期入坑的时候看的 leaf 然后魔改的
actor 的话那个 due 也一直在更 最终都是自己搓 |
![]() |
14
Gilfoyle26 53 天前
go 不是有 gc 的吗,我一直以为有 gc 的语言做不了游戏服务端,难道是我的错误认知?
|
![]() |
15
WilliamColton 52 天前
@Gilfoyle26 #14 为什么啊,纯新手不是很懂,性能问题吗?
|
![]() |
16
suruiran 49 天前 via Android
@Gilfoyle26 fps 或者 moba 这种有 gc 当然不太好,但是楼主说的这种游戏,肯定是无所谓的,Python 都行。
|
17
lolizeppelin 45 天前
不用看 Leaf, 几万年前的代码,每年更新一下 readme 让你觉得在更新
这框架没什么功能,就实现了一点组件反射功能和路由.... pitaya 是 nano 的上位替代,nano 之前是没有不区分内外 rpc 的,不知道现在怎么样了 pitaya 一直在更新,各种小 bug 也有,opentelemetry 都上了,直接折腾这个,就算后面用不上也可以提供设计思路 |