跳至正文

[Walo系列]1.开发自己的游戏通讯库对grpc祛魅了

  • 随笔

本意是想深入研究和学习一下grpc的设计,来给自己的游戏网络通信引擎提供多一份参考。但是细致的看了一圈文档意识到grpc的实际应用场景不是给游戏,而是像文档里描述的给微服务和多语言部署的大型业务。

grpc作为定义好comn中间结构体就能够注册到服务发现集群,其他的业务可以直接将comn结构下载下来,快速地请求到新业务的一套跨越多语言的协议+底层框架。

这是它的核心,或者说它解决的问题。

就忽然想起来之前华仔说面试的是时候是要问对方解决问题的能力,遇到了什么问题,提出了什么方案。

最近也研究godot和unreal的网络框架实现原理,顺便也看了一下如何给这些引擎做共享。

就看见godot的贡献原则:

file

file

file

要从问题出发寻找结论,而不是我觉得这个可以,然后它就可以。要解决一个具体的问题,解决常见的问题。

不想当厨子的裁缝绝不是好司机,我今年想自己写一个网络通信引擎,一方面是学习和练习,另外也想对工作有一些反哺。最近就也在思考,如果真的开始动手写我的库,这个库需要哪些特性?如何跟其他的引擎结合?甚至如何让其他人用我的这个库?

特性:

  1. 基于C++20,目的是学习和练习C++20;
  2. 支持UDP、TCP和WebSocket等协议;
  3. 提供网卡、网络到连接层面的封装;
  4. 提供基于Entity和属性同步和管理和rpc;
  5. 提供局域网探测的功能;

如何跟引擎和语言结合:

  1. python: nanobind
  2. lua: 未来可以支持
  3. UE:不好融合;
  4. Unity: 增加插件
  5. Godot:

如何让其他人用:

  1. 开源
  2. 好用

End。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注