Articles of networking

什么是logging分组协议的有效方法?

我正在和一些兴趣爱好项目的开发者合作,我们有很多不同的API。 什么是一些stream行的方法来创建潜在请求的文档,什么可以被期望返回? 有没有什么奇特的自动生成工具呢?

客户端预测和插值

尽管我的游戏使用点对点模式,但我依然采取了将每个玩家分配为部分权限的方法。 我的意思是,每个玩家都是一些对象的“服务器”,而其他玩家则是这些对象的“客户”。 它也使用固定的更新间隔和可变的渲染间隔。 我正在考虑更新频率为50Hz,所以渲染时间比当前时间滞后20ms,以保证两个状态之间的内插。 当客户端从服务器接收到授权状态​​信息时,会附带发送时间戳。 由于所有玩家都使用同步时钟,客户端可以正确地将状态放置在“更新时间线”上,其状态历史logging可以长达100ms。 然而,为了隐藏延迟,每个客户也预测所有对象在附近的行为,而不管他们是否是权威。 我遇到的困难是弄清楚如何纠正客户端的错误,并保持与服务器状态同步,当一个特定对象的服务器信息将比更新发生的时间less得多。 在估计的信息已经完成了几个预测步骤之后,用过去的信息顺利地修正当前信息的一个好方法是什么?

每个连接的Websocket服务器线程

我正在创建一个html5多人游戏,并且正在研究如何创建一个websocket服务器。 我一直在寻找各种图书馆,我注意到,每个人都会为每个连接的客户端创建一个新的线程。 现在我对websocket还是比较陌生的,但是我知道在过去,当谈到游戏服务器devise时,每个连接的线程是不好的做法。 这对websockets是否正确? 为什么每个连接都需要一个新线程?

如何在Unity中存储XML以进行Web Player部署?

我已经使用Unity创建了一个简短的演示程序,可以在Windows上作为独立的.exe文件使用,我也有兴趣将其作为一个Web Player游戏部署。 但是,当我在networking播放器上运行游戏时,Unity控制台中出现此错误: StreamingAssets在此平台上不可用。 我有一些在StreamingAssets文件夹中运行时parsing的XML。 我在哪里可以把他们放在一个networking播放器构建,以便能够在运行时加载它们? 感谢您的回答。

在使用组件系统时,将现有实体列表传递给新客户端?

我的游戏服务器使用包含组件的实体来表示游戏世界中的一切。 到目前为止,这工作得很好,但是现在我遇到了一个问题,即允许客户端连接到服务器。 基本上服务器需要告诉连接的客户端游戏中所有现有的实体。因为玩家,怪物,树等都是从同一个实体类实例化的,所以我现在没有办法告诉客户每个实体是什么是。 将实体发送到客户端的最好方法是什么,以便客户端知道要向每个客户端添加哪些组件? 我唯一能想到的是在实体上有一个string“名称”,然后像这样发送数据包给客户端… { 'action': 'create-entity', 'data': { 'entity-type': 'dragon', 'x': 300, 'y': 40, } } 所以现在客户端会知道调用“createDragonEntity”函数来创建正确的实体。 有更好的建议吗?

Unity3D多人联网

我正在使用Unity3D制作多人游戏 ,类似于SecondLife(但专注于特定的游戏任务)。 用户将能够直接在游戏中注册/login,并且会产生他们的角色。 到目前为止,我已经做了后端Rest-ful API来管理用户。 我能够使用login和注册从统一本身(使用REST调用例如www.myDomain.com/api/login ),但我怎么产生相应的字符? 此外,目前我正在制作一个基于令牌的APIauthentication系统(很像Facebook,Twitter),因为API本身是无状态的。 我应该在玩家偏好中存储令牌吗? 我已经通过这个教程,但似乎并没有解决我的问题。 任何一种方向都会有所帮助。 谢谢。

在统一的分散配对?

我正在制作一个类似于Magic Workstation的卡片游戏。 我一直在寻找networking的几个选项。 我有一个工作局域网版本的Unitynetworking建设,以及光子云。 虽然我现在正在寻找一种在互联网上进行多人游戏的更分散的方式。 如果没有服务器参与寻找其他人,那将是非常酷的。 我仍然会让玩家拥有自己的游戏室,其他人可以join。 我search了这个,我发现的东西至less有几年了。 所以我想知道是否有新的东西从那以后出现了。 我已经看到了几个分散的聊天程序,甚至没有任何服务器的语音/video聊天。 但是,video游戏还没有。 我确实发现了这种networking的一些问题。 主要是缺乏反作弊,但在我的情况下,球员自己检查的举动,所以这不应该是一个问题。 除此之外它可能会慢一些,但是纸牌游戏一般不是很高的速度:P 最后,我使用c#在Unity中制作。 我可能会在webplayer(以及后来的WebGL)中运行它。 所以我主要是在寻找C#库,或JavaScript。 但是任何有希望的项目都是可以接受的。 非常感谢!

如何从游戏地图图像创建自定义的“Google地图”可视化效果?

我正在尝试为专用的Ultima Online服务器创建相应的Google Maps地图,并使用自定义地图replace默认地图。 我想让玩家在地图上固定重要位置,并在特定位置张贴他们的游戏活动的截图。 我在Wurm Online等其他游戏中看到过这一点。 这样的Google地图(或类似的服务)的版本是否存在? 还是我必须自己建造呢?

如何从p2p游戏networking中的客户安全地检索游戏统计信息?

我正在做一个P2P游戏,我知道我永远不要相信客户。 我的架构中,有一个存储游戏室(主机)信息的“主服务器”。 玩家可以创建自己的房间(托管)并一起玩。 还有另外一个服务器是“信息服务器”,它存储了诸如库存,等级等字符信息。现在,我需要制作一个杀死/死亡的统计表,并且我必须从主机玩家>> [事件] >>主服务器)。 但是我认为主玩家可以发送很多杀人事件,因为它是权威的,所以主服务器会处理/处理来自主玩家的所有事件。 我怎样才能相信这些事件? 服务器不能发送假死/死亡事件?

用字节数组编码/解码数据

对于我的多人游戏,我试图找出一个系统发送多个数据从一个客户端到另一个数据分离。 在发送消息时,所有的参数数据都必须转换成一个字节数组(BitConverter.GetBytes),并在另一边到达。 我不确定的是如何在一条消息中发送多个号码并识别它们。 例如,我将如何在单个字节数组中发送ushort和ulong? 有没有什么聪明的方法来识别单个号码,或每个号码都必须以每个4字节打包?