V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
davince
V2EX  ›  Go 编程语言

请教个关于 go 开发游戏服务端的问题

  •  
  •   davince · 2025 年 7 月 19 日 · 3492 次点击
    这是一个创建于 188 天前的主题,其中的信息可能已经有所发展或是发生改变。

    go 开发放置类游戏,一般用什么框架,或者有什么架构啊 大佬们

    17 条回复    2025-07-29 20:48:35 +08:00
    sunny352787
        1
    sunny352787  
       2025 年 7 月 19 日   ❤️ 2
    游戏这边本身就没啥公认好用的框架,都是自己根据自己项目情况选组件或者自己写,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

    这些是最近还在更新的,还有很多已经很久没更新的就不列了
    davince
        2
    davince  
    OP
       2025 年 7 月 19 日
    @sunny352787 谢谢大佬,我搜了 2 个 Leaf 和 Nakama 不知道 靠谱不
    sunny352787
        3
    sunny352787  
       2025 年 7 月 19 日
    @davince leaf 很久很久没更新了,nakama 没看过,这些你挑个顺眼的试试,我觉得最后你会发现,还是自己手搓更方便
    assiadamo
        4
    assiadamo  
       2025 年 7 月 19 日   ❤️ 4
    看你游戏类型,http 短连接 gin ,tcp/ws 长连接 https://github.com/aceld/zinx
    这些大多是通信层框架,缓存设计、数据持久化、负载均衡、部署方式这些大多都是藏着掖着不愿意分享的,需要自己选型踩坑
    Maboroshii
        5
    Maboroshii  
       2025 年 7 月 19 日
    框架就是一些网络或者 rpc 之类的,真正复杂 4L 都说了,各个公司都是自己踩的坑,框架里是没有的
    newtype0092
        6
    newtype0092  
       2025 年 7 月 19 日
    放置游戏逻辑主要是客户端逻辑吧,服务器只要提供计时的服务就好了。
    然后就是提升用户体验的杂项,作弊校验、存档、排行之类杂七杂八的,和普通的 web 服务没区别。
    davince
        7
    davince  
    OP
       2025 年 7 月 19 日
    悟了, 到最后还是得自己搓才好掌控 😄
    realpg
        8
    realpg  
    PRO
       2025 年 7 月 20 日
    游戏这俩字过于庞大了...

    你随便打开一个手机应用商店

    "游戏"都是跟"应用"并行的分类

    这么问问题, 就跟 "我想开发一个软件有啥框架"一样不存在适配的答案
    BALDOOR
        9
    BALDOOR  
       2025 年 7 月 20 日   ❤️ 2
    非实时的,跟做 Web 一样轮询都可以,数据放数据库不用缓存实时 IO 都没问题
    实时的,数据放内存,别听什么鬼话放什么 Redis/SSDB 或者其他什么的,做好代码热更新,别做快速重启/重连方案

    看下 Actor 相关知识,很快就能自己搞一套能用脚手架出来了,核心知识是《可变不共享,共享不可变,要想改变共享,使用消息队列更新》,不要上来就我“精通”数十种锁,除了玩编译器和内核那堆大牛,没人能玩的转,就跟那群学了 21 天就觉得自己“精通”C++的人一样,自以为是只能自嗨而已,随便来个几个随机 Bug 就老实了

    网上一大堆脚手架,@sunny352787 这里面的也都是脚手架不是什么框架,就跟渲染器和引擎的差别一样大
    不用迷恋大厂甚至宇宙厂拥有几十人的中台堆出来的框架,就算各种 title 爆炸,博客文章写得飞起的“大牛”,各种意淫脑补的“高性能”满天飞,一样是垃圾,跟 Web 不一样,除了像登录/MQ/RPC 之类的其他都是不通用的。

    也不要迷信什么成熟稳定之类的,软件乃至互联网软件估计最差的就是游戏了,从来就没有稳定这种说法,甚至都没有成熟这种概念,只是过往项目堆出来的混杂着各种不同屎的屎山缝缝补补,跟互联网那些 Spring/Laravel 之类的比,就是初中被 55 分流的小孩跟图灵奖得主比
    techone
        10
    techone  
       2025 年 7 月 20 日
    Pitaya 可以试一下
    William97
        11
    William97  
       2025 年 7 月 21 日
    @assiadamo 哈哈哈,这个我前段时间还学习了一波,照着手搓了一遍,学到了很多
    William97
        12
    William97  
       2025 年 7 月 21 日
    @davince 自己手搓吧,开源的框架踩坑的时间都能手搓一个了。再者就是找有没有那种商业付费的
    digdug
        13
    digdug  
       2025 年 7 月 22 日
    我早期入坑的时候看的 leaf 然后魔改的

    actor 的话那个 due 也一直在更

    最终都是自己搓
    Gilfoyle26
        14
    Gilfoyle26  
       2025 年 7 月 22 日
    go 不是有 gc 的吗,我一直以为有 gc 的语言做不了游戏服务端,难道是我的错误认知?
    WilliamColton
        15
    WilliamColton  
       2025 年 7 月 23 日
    @Gilfoyle26 #14 为什么啊,纯新手不是很懂,性能问题吗?
    suruiran
        16
    suruiran  
       2025 年 7 月 26 日 via Android
    @Gilfoyle26 fps 或者 moba 这种有 gc 当然不太好,但是楼主说的这种游戏,肯定是无所谓的,Python 都行。
    lolizeppelin
        17
    lolizeppelin  
       2025 年 7 月 29 日
    不用看 Leaf, 几万年前的代码,每年更新一下 readme 让你觉得在更新
    这框架没什么功能,就实现了一点组件反射功能和路由....

    pitaya 是 nano 的上位替代,nano 之前是没有不区分内外 rpc 的,不知道现在怎么样了
    pitaya 一直在更新,各种小 bug 也有,opentelemetry 都上了,直接折腾这个,就算后面用不上也可以提供设计思路
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2733 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:09 · PVG 21:09 · LAX 05:09 · JFK 08:09
    ♥ Do have faith in what you're doing.