我正在尝试创建一个基于"ajax"的小型多人游戏.PHP"处理程序"给出了对象的坐标.通过使用ajax,每200MS轮询此handler.php文件.
由于没有必要在没有任何事情发生时进行轮询,我想知道,如果没有频繁的轮询,是否可以做同样的事情?例如.彗星,虽然我听说你需要为Comet配置服务器端应用程序.这是一个共享的网络服务器,所以我不能这样做.
如果不需要在客户端更改任何内容,可能会阻止handler.php文件甚至返回响应,这可能吗?然后,即使事情没有改变,你仍然会让客户无用地要求回复.基本上,如果需要向客户端告知某些内容,它应该只使用带宽和服务器资源,例如.对象坐标的变化.
我如何保证.NET应用程序中的浮点计算(比如在C#中)始终产生相同的位精确结果?特别是在使用不同版本的.NET并在不同平台上运行时(x86 vs x86_64).浮点运算的不准确无关紧要.
在Java中我会使用strictfp.在C/C++和其他低级语言中,这个问题基本上是通过访问FPU/SSE控制寄存器来解决的,但这在.NET中可能是不可能的.
即使控制了FPU控制寄存器,.NET的JIT也会在不同平台上生成不同的代码.在这种情况下,像HotSpot这样的东西会更糟糕......
我为什么需要它?我正在考虑编写一个实时策略(RTS)游戏,它在很大程度上依赖于快速浮点数学和锁定步进模拟.基本上我只会通过网络传输用户输入.这也适用于通过存储用户输入来实现重放的其他游戏.
不是一个选择:
有任何想法吗?
我想建立一个基于回合制的多人iPhone游戏,它需要一个游戏服务器来连接玩家并传输世界状态数据.我试图了解游戏服务器的工作方式,以便我可以开始设计和构建游戏服务器.到目前为止,我只有构建Web应用程序的经验,所以我自然而然地希望设计游戏服务器以与Web服务器类似的方式工作,但它可以吗?
我过去使用的ASP.NET MVC Web服务器由客户端向服务器发送请求以获取某些网页数据,服务器生成HTML或XML或JSON并将其以HTTP数据包的形式返回给客户端.对于多人游戏来说,这个过程听起来完全相同,除了客户端可能不会请求HTML,但是请求XML或JSON数据是有意义的,对吗?
所以我的问题是......
非常感谢您的帮助!
我的游戏引擎现在包含一个可操作的单人游戏部分.我现在开始考虑如何进行多人游戏.
我发现许多游戏实际上没有真正的单人游戏模式,但是当你独自玩游戏时,你实际上也是在托管一个本地服务器,而且几乎所有游戏都像在多人游戏中一样运行(除了数据包可以通过)通过替代路线以获得更好的性能)
我的引擎需要进行大量重构才能适应这种模式.将有三种可能的模式:专用客户端,专用服务器和客户端服务器(监听模式)
我正在考虑实现一个HTML5 mmog,其中涉及快速运行的对象.玩家通过射击不断改变该物体的方向.我想过WebSockets等(socket.io)和画布.
我认为方向改变的计算必须在客户端和服务器端进行,然后同步 - 与服务器是主服务器以避免作弊.
我担心的是,无论服务器的速度有多快,延迟都会导致延迟,从而导致同步失败.
有没有一种解决这个难题的好方法?如何实现这一数据量的实时同步,其中所有信息对于不错过方向变化至关重要.所有玩家都需要毫不拖延地获得移动物体的新方向,以免破坏游戏玩法.
我认为这个问题已经在现有的mmogs中解决了.
有任何想法吗?
我想创建一个仅用于LAN的Chrome打包应用程序,其中一个实例用作服务器(会话主机),其他实例必须发现服务器并加入会话.这可以用chrome.socket实现吗?
我已经设置了这样的服务器:
var socket = chrome.socket || chrome.experimental.socket;
socket.create('udp', {}, function(createInfo) {
var publish_socket = createInfo.socketId;
socket.bind(publish_socket, '225.0.0.42', 42424, function (result) {
if (result < 0) console.error(result); // this works fine
socket.recvFrom(publish_socket, null, function(recvFromInfo) {
console.log(recvFromInfo); // UNABLE TO MAKE THIS HAPPEN
});
});
// Chrome won't let me listen for app window closing
var cleanup_timer;
cleanup_timer = setInterval(function(){
if (requesting_window.closed) {
socket.destroy(publish_socket);
clearInterval(cleanup_timer);
}
},
5000
);
});
Run Code Online (Sandbox Code Playgroud)
套接字是绑定的,我可以在ss -ua:
State Recv-Q Send-Q Local Address:Port …Run Code Online (Sandbox Code Playgroud) javascript multicast multiplayer broadcast google-chrome-extension
我正在开发一个只有一个活动的应用程序(扩展BaseGameActivity),并在多个片段之间切换(很像Google的示例代码状态).
我现在正在2台独立的设备上测试一款多人游戏.两个用户都可以成功登录,相互发送消息等.然而,当一个用户旋转他们的设备时,他们就会被踢出房间.
我认为这是有道理的,因为活动正在被破坏和重新创建.但我不明白的是,我们需要做些什么来让用户旋转他们的设备并保持游戏状态(登录,加入房间等)?
一个想法:android:configChanged ="orientation | screenSize" - 但Android不鼓励(出于好的理由,在大多数情况下) - 但这是我们采用Google Play游戏服务与设备方向更改呆在房间里的方式?
如何使用"onRetainNonConfigurationInstance()"来保存GameHelper实例,并在重新创建活动时再次使用它?
或以某种方式在服务中实现游戏连接(登录,房间加入等)?
或者我是否以错误的方式思考这个问题?!感谢您的想法和帮助.如果可能的话,代码示例也将非常受欢迎.
我目前正在开发我的游戏,我决定在游戏中通过GameCenter启用多人游戏,以允许用户玩他们的朋友.我遵循了RayWinderLinch的教程,但遇到了问题.
我的问题是,当我加载GKMatchMakingViewController并点击Play Now两个设备上的大按钮时,它会找到彼此(这意味着发生)并且在设置的游戏中心用户名下会说Ready.
这意味着GameCenter已找到每个玩家,并准备开始它应该的比赛,但在我的情况下,比赛永远不会开始.它停留在一个循环上,说Starting Game...没有任何反应.看来,
func matchmakerViewController(viewController: GKMatchmakerViewController!, didFindMatch theMatch: GKMatch!)
和
func match(theMatch: GKMatch!, player playerID: String!, didChangeState state: GKPlayerConnectionState)
方法永远不会运行.我完全迷失了正在发生的事情.我已经多次尝试过这个问题来解决问题,但没有任何效果.我将附加一个图像,显示我的问题仍然存在的应用程序的屏幕,我还将附加我正在使用的代码.
我正在使用基于
GameKitHelper.h上述提到的教程的框架.它是用swift编写的,叫做 GCHelper
码
可以使用前面提到的GitHub链接找到GCHelper的代码
我已经删除了这个问题不必要的代码
class GameScene : SKScene, GameKitHelper, MultiplayerNetworkingProtocol {
override func didMoveToView () {
GCHelper().authenticateLocalUser() //Authenticate GameCenter User
println("\n \n \n Authenticating local user \n \n \n")
}
func startMultiplayer () {
var vc = self.view?.window?.rootViewController
GameKitHelper().findMatchWithMinPlayers(2, maxPlayers: 2, viewController: vc!, delegate: self); …Run Code Online (Sandbox Code Playgroud) 我正在开发一款平台游戏,尝试使用IOS Multipeer连接来制作多人游戏.我陷入困境/困惑/不知道在同伴之间发送消息的最佳方式是什么(大多数是游戏中的4个同伴).游戏风格就像有趣的跑步,我有4个英雄跑步和互相射击和类似的东西.问题在于保持其他球员的位置让我疯狂!有时其他玩家处于错误的位置(请记住所有设备都具有相同的屏幕尺寸).这是因为连接滞后.我每秒可以发送多少信息以及管理数据传输的最佳方式是什么?
任何想法/想法都表示赞赏.
multiplayer ×10
html5 ×2
ios ×2
ajax ×1
android ×1
asp.net-mvc ×1
broadcast ×1
c# ×1
c++ ×1
canvas ×1
comet ×1
game-center ×1
iphone ×1
javascript ×1
lidgren ×1
multicast ×1
networking ×1
sprite-kit ×1
swift ×1
websocket ×1
xcode ×1
xna ×1