Go游戏服务器开发的一些思考(二):综合考察(上)

本文探讨使用Go语言开发MMO RPG游戏服务器时的考量,包括与Unity3D的protobuf和gRPC交互、网络层实现、定时器与事件投递、多任务系统以及数据持久化方案。通过分析开源库和官方推荐,为Go语言在游戏服务器领域的应用提供了实用建议。
摘要由CSDN通过智能技术生成

对Go做体检

Go语言在游戏服务器方向的开发,起步比较晚。有必要考察下使用Go来实现,该怎么去做,会遇到什么问题,以及怎么克服。这里把使用Go语言开发MMO RPG游戏作为考察对象,对Go做一次体检。

MMO RPG最小功能清单

首先,罗列下开发一个MMO RPG必须具备的功能。目标是实现这些功能后,玩家能登录游戏,在地图上跑动,能相互看到对方。若能很好的实现这些功能,各项运行指标达标。那么,我们就可以罗列更多的功能清单,来丰富它。按照这样的方式,经过多次迭代后,最终达到一个完整MMO RPG的水平。

以下是个人认为MMO RPG游戏服务端 必备功能。

主要功能:

  • 如何与Unity3D交互
  • 网络层
  • 定时器、事件投递
  • 多任务系统
  • 数据持久化方案
  • 配置文件及热配置
  • 引擎与应用逻辑框架
  • 服务发现机制
  • 服务器架构实现
  • 帐号与角色
  • 登录流程(包括登出、重登陆)
  • 世界场景搭建
  • 移动、寻路及同步
  • AOI算法实现
mqantmqant 是一款基于 Golang 语言的简洁,高效,高性能的分布式游戏服务器框架,研发的初衷是要实现一款能支持高并发,高性能,高实时性的游戏服务器框架,也希望 mqant 未来能够做即时通讯和物联网方面的应用。特性分模块机制基于 golang 协程,开发过程全程做到无 callback 回调,代码可读性更高RPC 支持本地和远程自动切换远程 RPC 默认使用 rabbitmq,未来可以添加更多种类的通信协议网关采用 MQTT 协议,无需再开发客户端底层库,直接套用已有的 MQTT 客户端代码库,可以支持IOS,Android,websocket,PC 等多平台通信现如今只有多进程的架构才能达到支撑较多在线用户,降低服务器压力,降低单点故障所带来的影响等要求,因此一个真正高可扩展的游戏运行架构必须是多进程的。然而在游戏开发和运营也是按步骤阶段性进行的,尤其是现如今服务器硬件设备配置也越来越高的前提下,在游戏刚开始运营时单台服务器就足够支撑了,况且多进程部署所带来的运维成本也相对较高。mqant 的设计思想是在能用单台服务器时能让充分挖掘服务器的性能,而在需要多进程时再通过简单的配置就可以实现分布式部署。mqant 游戏服务器的运行架构mqant 服务器是按模块来划分功能模块的,例如 用户管理,在线聊天,战斗平台等等都应该划分为独立的模块模块之间通过 RPC 通讯,mqant 底层会根据实际情况选择 rpc 数据交互的通信渠道,在调用模块在同一个进程的情况下直接使用 golang chan 通讯,因此同进程内模块通信性能不受影响。 标签:mqant
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fananchong2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值