编辑:我已经做了一个干净的,新的项目,但仍然无法让它工作.请下载它,有一些代码可供查看,可能很容易让专业人士或任何人远程体验,看看我做错了什么.只是试图发送整数.
http://www.2shared.com/file/fPOCLlg5/gkTest.html
你好
我正试图在我的iphone游戏中实现Game Center多人游戏,并且无法理解Apple Docs和第三方有关发送和接收数据的样本.
有人可以请在官方Apple文档中解释代码示例:http: //developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/GameKit_Guide/MatchesandVoice/MatchesandVoice.html#//apple_ref/doc/uid/TP40008304-CH10-SW4
或者帮我弄清楚我提供的示例代码.它是一个预先构建的类,用于处理所有游戏中心任务,以及用于发送和接收数据的样本将是:
- (void) sendPosition
{
NSError *error;
PositionPacket msg;
msg.messageKind = PositionMessage;
msg.x = currentPosition.x;
msg.y = currentPosition.y;
NSData *packet = [NSData dataWithBytes:&msg length:sizeof(PositionPacket)];
[match sendDataToAllPlayers: packet withDataMode: GKMatchSendDataUnreliable error:&error];
if (error != nil)
{
// handle the error
}
}
Run Code Online (Sandbox Code Playgroud)
接收:
- (void)match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID
{
Packet *p = (Packet*)[data bytes];
if (p.messageKind == PositionMessage)
// handle a position message.
}
Run Code Online (Sandbox Code Playgroud)
关于此代码形成官方文档的重要问题是:
哪里PositionPacket/ Packet …
我目前正在开发一款实时多人游戏,并且一直在评估各种基于云的托管解决方案.我不确定App Engine是否符合我的需求,并会对任何反馈表示感谢.
从本质上讲,我希望系统能够像这样工作:玩家A计算第n轮,并在该轮结束时生成游戏状态的哈希.然后,他将该轮的命令和散列作为http POST发送到服务器.玩家B同时做同样的事情.
服务器在处理来自播放器的POST时,首先将收到的哈希码写入内存缓存.如果来自其他播放器的散列还没有在memcache中,它会等待并定期检查memcache以查找其他玩家散列.只要两个哈希都在memcache中,它就会将它们进行相等性比较.如果它们相等,则服务器将每个播放器的命令作为http响应发送给相应的另一个播放器.
这样的一轮应该持续大约半秒钟,这意味着每位玩家每秒两次请求.
当然,这种方式只有在至少有两个应用程序实例运行时才能工作,因为必须并行处理两个请求.此外,内存缓存必须在所有实例上保持一致,相当可靠,并立即更新.
我不能使用XMPP,因为我希望我的游戏能够在受限制的网络中运行,所以它必须限制在端口80上的http.
有没有办法强制应用程序的两个实例始终运行?我的设计中是否存在明显的缺陷?您认为这样的架构可能适用于App Engine吗?如果没有,您会建议基于云的解决方案?
我正在尝试为基于回合制的多人游戏的Google Play服务附带的"玩家选择器UI"创建自定义UI屏幕.可以在此处看到默认值:https: //developers.google.com/games/services/android/realtimeMultiplayer?hl = fr-CH#invite_players_option
该页面(我知道的实时)提到了如何使用默认UI以及可以使用自定义UI,但没有提到自定义外观的实际方法.我不是那些巨大的图标的粉丝,而是一个简单的列表.我一直试图研究这几天,但什么都没发现.
我正在寻找任何帮助我需要调用哪些方法来自定义.是在onActivityResult方法中完成的吗?有没有人有运气做类似的事情?
谢谢
user-interface android multiplayer google-play-services google-play-games
我刚刚使用 flutter 创建了一款手机游戏,并希望将其扩展到多人在线游戏。所以我考虑用 firebase 来制作它。我对这个领域相当陌生,所以我希望我的问题听起来不太愚蠢。
当我的游戏中的角色流畅地移动时,我需要每帧至少更新一次他们的位置,因此如果使用 firebase,我需要一个每秒运行 60 次且永不结束的云函数。然后,该函数将获取游戏中的所有对象(存储在实时数据库中)并根据其速度更新它们的位置。更新后的值将写回客户端侦听的数据库。他们更新游戏中的值并将对象渲染到正确的位置。每当玩家与游戏交互时,就会调用另一个云函数来处理该问题并更新所需的内容。
是否有可能做出这样的事情并且有意义吗?以这种方式使用云函数对我来说听起来不太顺利,但我没有其他实现它的想法。它将如何影响成本?听起来像很多函数调用和数据库读/写..
如果这完全不可想象,还有什么替代方案呢?我不太介意使用另一个数据库和/或框架来制作游戏本身。
非常感谢
我在计算 Netcode 中玩家的 ping 时遇到问题。我有一个大厅列表,我想在客户端连接之前显示每个大厅的预期 ping。目前,我正在使用它NetworkManager.Singleton.NetworkConfig.NetworkTransport.GetCurrentRtt(0);来计算 ping。有没有办法在完全连接到中继之前知道 ping?
我正在尝试发送游戏中心邀请.从模拟器发送到设备或从设备发送到模拟器会导致InviteFailed错误.
可能是什么问题?实施不正确?互联网速度低?或者是否无法使用模拟器测试Game Center邀请?
谢谢

我是Android游戏新手.我必须开始我的新项目,这只是一个多人游戏,我想知道android是否支持多人游戏?如果是,是否有任何sdk /游戏引擎/库或其他任何支持多人游戏的东西.我在很多博客中都读过它,但我没有找到任何有用的信息.
openfeint, plus+, scoreloop , crystal是不提供Android多人游戏的支持.
如果您对此有任何了解请分享,任何博客/文档/示例app/demo都会对我有所帮助.
谢谢,Mahaveer
我一直在学习插座(我很年轻),我认为我对Java套接字有很好的把握.我决定创建一个简单的多人Java 2D社交游戏.我的目标是让服务器输出玩家的X,Y坐标并每10毫秒聊天一次.根据我的阅读,我的平均逻辑告诉我,一次只有一个用户可以连接到套接字.因此,对于每个连接的玩家,我都需要一个单独的线程和套接字.
每个播放器是否需要一个ServerSocket和线程?
我正在尝试使用Google Play游戏服务在我的Android游戏中实现实时多人游戏,但是当我调用的方法被调用时,我遇到了一个问题.onRoomCreated
@Override
public void onRoomCreated(int statusCode, Room room) {
if (statusCode != GamesStatusCodes.STATUS_OK) {
stopKeepingScreenOn();
showGameError();
return;
}
roomId = room.getRoomId();
showWaitingRoom(room);
}
Run Code Online (Sandbox Code Playgroud)
状态代码总是不同的GamesStatusCodes.STATUS_OK,实际上等于2(+ room参数为空),这意味着根据Google:
GoogleApiClient处于不一致状态,必须重新连接到该服务才能解决问题.使用当前连接进一步调用服务不太可能成功.
但如果我打电话,没有变化getApiClient().reconnect().所以我真的很感激任何帮助.有关信息,请getApiClient()参阅GameHelper我扩展的类,该类在Android示例页面的库中提供.
android multiplayer libgdx google-play-services google-play-games
我正在实施一个在线TCG游戏(想像《炉石传说》 /《魔幻》)作为一个宠物项目,我决定将React / Redux用于客户端UI。这使我考虑在服务器上使用Redux以及维护每个客户端/游戏的全局状态的可能性。
它的工作方式是,游戏中的玩家会将事件(通过socket.io)发送到服务器,该事件将根据游戏状态和规则进行验证,然后触发服务器状态的更改并将其传播到服务器各自的客户。
问题是,我觉得我将不得不跳很多圈来使所有游戏规则/逻辑符合Redux的更多功能/不变方法,而不是将我的所有游戏实体建模为类。另外,由于每个玩家对自己对手的信息都很有限(例如,您看不到另一位玩家的手),因此我必须具有一些自定义逻辑,用于根据接收数据的玩家来过滤状态信息。
另一方面,我喜欢这样的想法:在每个域的不同处理程序之间分配集中状态,可预测的数据流以及回归到先前状态的可能性。同样,Redux中的动作也非常适合命令模式,这对于这类游戏很有用。
我是否应该像状态管理器那样实现自定义Redux,但放弃不变性部分呢?对于这种情况,是否有更“尝试而真实”的方法?
multiplayer ×10
android ×3
game-center ×2
iphone ×2
objective-c ×2
architecture ×1
firebase ×1
flame ×1
flutter ×1
java ×1
libgdx ×1
mobile ×1
node.js ×1
redux ×1
sockets ×1
state ×1