kit*_*295 1 c# udp tcp multiplayer monogame
我正在使用C#和Monogame开发一个MMORPG.现在,我正在为它开发网络协议.我应该注意到我是CCNA,所以我对两种协议的工作方式都有很好的理解.但是,我过去只编写过单人游戏.但是我试图弄清楚应该使用哪种协议.我最初使用UDP开始实现,并且已成功通过本地网络发送单个数据包,但我担心一旦开始添加越来越多的客户端,UDP可能会动摇.考虑到这是一个游戏连接,我最初得出结论,我需要一个快速,低延迟的连接.但很快意识到我需要发送的一些数据包可以开始测量大小的KB,例如当客户端进入地图上的新区域时,
我的问题是那些在制作多人游戏方面经验丰富的人:即使TCP的开销较大,是否值得使用它,或者通过UDP调整游戏协议的可靠性?
小智 5
我知道几款游戏实际上都会使用TCP和UDP协议.
我知道你没有使用Unity,但这里有一个链接,讨论用于游戏中多人游戏的TCP/UDP协议http://forum.unity3d.com/threads/should-we-use-udp-or-tcp.257217/
我还发现了其他一些资源:
http://ael.gatech.edu/cs4455f13/files/2013/08/Networking_Multiplayer.pdf
http://gafferongames.com/networking-for-game-programmers/udp-vs-tcp/
http://www.gamedev.net/topic/665565-game-master-server-udp-tcp-or-both/
阅读完这些链接后,他们会非常彻底地解释这些概念,并且应该能够帮助您根据游戏风格做出决定.gafferongames的链接看起来是最有用的 - 它解释了这些事情的深度.我建议至少阅读以下部分:
等待?为什么我不能同时使用UDP和TCP?
最后一个链接的引用表明它在很大程度上取决于项目到项目:
这取决于实际情况.在服务器到服务器通信方面,没有"通常"的方法.您可以使用自定义超轻UDP协议,或您自己设计和构建的更复杂的协议,通过标准化系统(如JDBC/ODBC,甚至基于REST的调用).在各个场景中选择什么的知识是网络基础设施工程师获得如此好收益的原因.:-)
它最终取决于你正在做什么,以及你想从应用程序中得到什么.有些人不同意使用它们,因为它可能会导致问题.最好的方法是阅读这些网站,并根据使用每个网站的利弊来决定.
编辑:我发现了一些更专门针对MMORPG游戏讨论这个问题的网站:
http://www.gamedev.net/topic/319003-mmorpg-and-the-ol-udp-vs-tcp/
其中一个网站建议仅使用TCP协议进行MMORPG游戏,另一个建议仅使用TCP进行非实时游戏.第二个链接讨论了使用每个和相关开销的利弊.
这是我找到的最好的建议,基本上我对你的问题的答案总结如下:
做两个可能是有益的,但我建议现在使用TCP,稍后留下UDP挂钩.我认为让项目启动并运行会更加有利于担心早期的问题.正如我所链接的Quake 3文章所指出的那样,同时执行TCP和UDP引入了有趣并且非常难以跟踪错误.
| 归档时间: |
|
| 查看次数: |
5740 次 |
| 最近记录: |