gpt4 book ai didi

xna - 可用的游戏网络协议(protocol)定义语言和代码生成

转载 作者:行者123 更新时间:2023-12-04 01:50:34 25 4
gpt4 key购买 nike

我一直在寻找一个好的通用二进制网络协议(protocol)定义框架,以提供一种以多种语言(例如 Java 后端服务器和 iPhone 前端)编写实时游戏服务器和客户端(想想魔兽世界或雷神之锤 III)的方法用 Objective-C 和 Cocoa 编写的客户端)。

我想支持 Windows 上的 Java Flash 客户端、iPhone 客户端和 C# 客户端(以及 XBOX 上的 XNA 客户端)。

我正在寻找一种通过 TCP/IP 或 UDP 套接字流连接有效发送/接收消息的方法。我不是在寻找可以通过 HTTP Web 服务发送的东西,比如 JSON 或 XML 编码对象。虽然 Hessian 的二进制 web 服务协议(protocol)是一个非常有趣的解决方案

我想要一种网络协议(protocol)格式和客户端/服务器基本实现,它允许客户端连接到服务器并在定义的协议(protocol)中发送任何消息并在协议(protocol)中接收任何消息,而无需绑定(bind)到某种 RPC 端点。我想要在我的协议(protocol)传入和传出的任何消息的通用流。这样我就可以支持服务器每 100 毫秒向所有客户端发送游戏中各种实体的位置之类的东西。

最佳答案

我发现的网络协议(protocol)框架如下:

  • Google's Protocol Buffer - 但它缺乏对从给定协议(protocol)发送/接收任意消息之类的支持。
  • Apache Thrift - 一个有趣的选项,但它主要面向 RPC 而不是通用游戏客户端/服务器套接字类型的连接,客户端或服务器可以随时发送消息,而不仅仅是响应客户端 RPC 请求。
  • Raknet Multiplayer - Raknet 提供完整的多人网络库(对于收入低于 25 万美元的独立开发者来说是免费的)

  • 更新 : OculusVR 现在收购了 RakNet 及其 Free/OpenSource。您可以在 Github 上找到它
  • Hessian Binary Web Service Protocol - 是一个 HTTP Web 服务二进制协议(protocol),它非常适合发送二进制数据,无需使用附件扩展协议(protocol)。

  • Raknet 提供了一个很好的面向游戏/模拟的多人游戏库。

    Apache Thrift 和 Google 的 Protocol Buffer 似乎是在游戏网络协议(protocol)客户端/服务器架构中使用的最简单方法。

    如果您想使用某种类型的服务器推送技术(如 COMET)使用 Java 或 Flash 客户端创建基于 Web 的游戏服务器,Hessian 似乎非常合适。 . Hessian 可能会提供一种非常有趣的方式来支持网络上的实时游戏,甚至能够将它们托管在虚拟机网络解决方案上,比如谷歌的 App 引擎或亚马逊的 EC2。

    有一些关于将各种协议(protocol)定义框架用于游戏和其他用途的讨论:
  • Comparison of Various Serialization Frameworks
  • Thrift vs Protocol Buffers - Thrift 被宣布为更好的框架,因为它具有完全支持的 RPC 客户端/服务器实现
  • Using Protocol Buffers for client server Game API determining what type of message to decode
  • Bi-Directional RPC using thrift
  • 关于xna - 可用的游戏网络协议(protocol)定义语言和代码生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/804603/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com