标签: multiplayer

我应该使用TCP或UDP作为MMORPG的网络协议吗?

我正在使用C#和Monogame开发一个MMORPG.现在,我正在为它开发网络协议.我应该注意到我是CCNA,所以我对两种协议的工作方式都有很好的理解.但是,我过去只编写过单人游戏.但是我试图弄清楚应该使用哪种协议.我最初使用UDP开始实现,并且已成功通过本地网络发送单个数据包,但我担心一旦开始添加越来越多的客户端,UDP可能会动摇.考虑到这是一个游戏连接,我最初得出结论,我需要一个快速,低延迟的连接.但很快意识到我需要发送的一些数据包可以开始测量大小的KB,例如当客户端进入地图上的新区域时,

我的问题是那些在制作多人游戏方面经验丰富的人:即使TCP的开销较大,是否值得使用它,或者通过UDP调整游戏协议的可靠性?

c# udp tcp multiplayer monogame

1
推荐指数
1
解决办法
5740
查看次数

在多人游戏中,如何通过套接字有效地发送位置数据?

我目前正在为Unity游戏构建我自己的网络代码(用于学习体验),并且我在"解码数据包"方面遇到了一些严重的延迟.

基本上,我playerObject将它们的位置数据(Vector3(x,y,z))作为JSON字符串发送到服务器,然后服务器将其发送回所有其他播放器.

事物的插座方面很顺利.从创建数据包到收到数据包的延迟非常小.

但是,我让我的客户,当他们试图取消JSON的远程客户端的位置,一个巨大的延迟:

Vector3 remotePos = JsonUtility.FromJson<Vector3>(_command.Substring(5 + _usernameLength));

Json字符串在字符串的开头有一个标识符,表示它是一个Position更新,后跟两个表示用户名长度的数字,然后是用户名(这样远程客户端可以更新正确的playerObject.整个字符串看起来这样的事情.

POS09NewPlayer{"x":140.47999572753907,"y":0.25,"z":140.7100067138672}

从服务器收到此类数据包后,我的客户将执行以下任务:

        int _usernameLength = Int32.Parse(_command.Substring(3, 2));
        string _username = _command.Substring(5, _usernameLength);
        Vector3 remotePos = JsonUtility.FromJson<Vector3>
        if (_username != username)
        {
        playerDict[_username].transform.position = remotePos;
        } 
Run Code Online (Sandbox Code Playgroud)

所有这些都"有效",但在3个客户端同时连接后变得非常迟缓.

我究竟做错了什么?必须有一个重大的缺陷,因为我只为每个.015秒发送3个玩家的更新,其中像战地这样的游戏可以为64个玩家每秒发送60个更新!

任何意见,将不胜感激.

c# multiplayer game-development

1
推荐指数
1
解决办法
2964
查看次数

哪种 UE4 类最适合在多人游戏中存储用户数据

在多人游戏环境中,哪个 UE4 类最适合存储用户数据?

要求是数据

  1. 级别之间必须保持一致
  2. 如果用户拥有的 actor 被销毁,则必须是持久的
  3. 与会话的其他用户无关。它仅与服务器和所有者相关。

由于 (1) 和 (2),将其存储在用户 actor 上不是一种选择。我想到的是

  • PlayerController,但是它在级别之间是否持续存在?
  • PlayerState复制设置COND_OwnerOnly为特定数据,但它在级别之间是否持久?

还有其他类更符合上述要求吗?

multiplayer unreal-engine4

1
推荐指数
1
解决办法
8773
查看次数

gRPC 可以用来编写多人游戏等实时应用程序吗?

最近,我一直在阅读有关 Google 的 gRPC 的内容。我想知道对于像多人游戏这样的实时应用程序来说这是否是一个不错的选择。

例如,我们可以使用 gRPC 构建一个用于实时多人游戏的游戏服务器吗?

multiplayer game-development go server grpc

1
推荐指数
1
解决办法
4752
查看次数

Java 中的多人游戏。将客户端(玩家)连接到其他客户端创建的游戏

我正在开发多人游戏,但不知道如何将其他客户端连接到创建的游戏。我的意思是客户端 A 创建到服务器的套接字连接以及其他客户端(A,B ...)如何连接到客户端 A?有人可以帮我吗?

PS我是网络编程的新手,所以如果你能附上一些例子,我将不胜感激。

java sockets multiplayer

0
推荐指数
1
解决办法
2万
查看次数

Photon Unity 中的 CCU 是什么?

我无法理解 Photo Engine CCU 的含义以及如何在我的多人游戏中计算它。

谁能解释一下光子如何计数 CCU。

multiplayer unity-game-engine photon real-time-multiplayer

0
推荐指数
1
解决办法
771
查看次数

移动游戏引擎

我有一个多人手机游戏的想法.我想过一个浏览器游戏,所以IOS和Android用户都可以玩它.

但我没有得到一些东西......如果我用大多数javascript构建游戏,它对黑客攻击很有攻击性,不是吗?我的意思是,如果我向服务器做一些ajax请求,每个人都可以打开Internet Explorer中的开发人员工具,为请求设置断点并在发送请求之前更改一些数据.

例如:用户在游戏中获得一些钱.现在我想将新的金额发送到服务器以将其保存到数据库中.一些"坏"的男孩可以在发送请求之前更改货币值,并且服务器获得操纵值.

这是正确的我在说什么?或者我可以在游戏中构建任何安全功能?

所以我搜索了一个多平台移动引擎,但我找不到合适的移动引擎.我找到了spaceport.io但它尚未发布.

还有其他我可以使用的引擎吗?

  • 我想用Javascript或C#编程
  • 我想为IOS和Android部署游戏
  • 游戏将是2D(可能是以后的一些3D功能)
  • 我需要多人游戏的网络支持

哦......我没有多少钱;-)

javascript mobile networking multiplayer game-engine

-1
推荐指数
1
解决办法
611
查看次数

多人在线Flash游戏,有可能吗?

前段时间我使用右键单击并在Flash世界中提供真正的功能甚至不可能,3天前我发现通过javascript是完全可能的,可行的

那么,是否有可能制作出像多人电脑游戏一样的Flash游戏?我的意思是,真正的在线游戏,没有延迟,没有滞后.

我听说Flash中的网络代码很糟糕,但是,你知道,我认为这也是关于右键点击...而且我完全错了:).

谢谢.

flash multiplayer actionscript-3 netconnection

-2
推荐指数
1
解决办法
2884
查看次数

如何在Golang中的C#和Server中编写Tcp / ip网络以实现统一的多人跳棋游戏

我正在为Android平台统一制作Checkers游戏。我被赋予使该游戏成为多人游戏并以C#语言实现TCP / IP网络的任务,而对于服务器端,我必须使用Golang。我几乎完成了游戏本身,但是我对服务器和tcp以及如何为我的游戏实现它们一无所知。有什么方法可以启动该程序或教程以显示如何执行该操作?任何建议都会很棒!提前致谢!

c# tcp multiplayer go unity-game-engine

-2
推荐指数
1
解决办法
1310
查看次数