Golang 游戏架构简介

本文介绍了游戏服务器的架构发展历程,从早期的网游服务器到成熟形态的分布式设计,强调了逻辑设计的挑战。对比了游戏服务器与Web服务器的架构区别,并讨论了Golang在游戏开发中的框架选择,如cellnet、leaf和mqant等。还提到了Go语言的网络层脚手架link及其设计理念,以及Go游戏服务器开发的相关思考和资源。
摘要由CSDN通过智能技术生成

一、参考游戏服务器架构通识

 

早期网游服务器

 

早期游戏服务器的改进版本

 

按照功能划分多个服务器进程

 

按照场景划分多个服务器进程


对游戏服务器历史有了基本了解后,成熟形态的游戏服务器很容易理解。简单来说,就是把逻辑服务器单个进程的压力分摊到多个服务器。难点在逻辑的设计上,要像做手术一样把本来是一体的功能切开,并抽象出若干个API来保持联系(服务器之间是TCP连接)

在分解时,要找联系相对最薄弱的环节入手,比如场景和场景之间分开、单独抽出聊天服务、组队服务、好友服务。无论如何分解,最终结果只能是有限个服务。而且分解的越细,开发难度就越大。因为跨服务器逻辑是把简单的同步逻辑变成了异步Callback逻辑,而且容易出现时序问题等不易测试的问题。

单个场景服务几乎是无法分解的。分解单个场景难度巨大以至于出现了BigWorld引擎来专门的解决场景分割问题,后面会谈到。这种成熟形态的游戏服务器已经能满足现实中99%的频繁交互类网游需求,是大型MMO端游、页游的主流形式。当然有实力

golang游戏服务器框架是指使用Go语言编写的开发游戏服务器的框架。其中一个著名的框架是Leaf。Leaf是一个开源的游戏服务器框架,它注重开发效率和执行效率。Leaf适用于各类游戏服务器的开发,包括H5游戏服务器。该框架可以帮助开发者构建高性能的游戏服务器,并提供了一套丰富的功能和工具,方便开发者进行游戏开发。 游戏服务器通常需要处理大量的并发请求和复杂的逻辑,但是由于可以进行分区分频道等操作,一台服务器的负载要求并不会太高。有些情况下,游戏服务器可能需要处理的同时在线人数低至200人,而对于大型的3D游戏,可能需要解决地图等问题,通常会使用分布式架构来解决。这意味着将某些功能拆分为不同的服务器,例如将聊天、好友等功能分离出来,为每个区域分配一个独立的房间/地图/场景服务器。这样可以提高特定功能的负载能力,并提供更好的游戏体验。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Leaf - 一个由 Go 语言编写的开发效率和执行效率并重的开源游戏服务器框架](https://blog.csdn.net/angzhan5306/article/details/102166685)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Golang 游戏架构简介](https://blog.csdn.net/qq_31967569/article/details/105262821)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值