标签: multiplayer

社交多人浏览器游戏的架构(后端选择+前端选择[flash/silverlight])

我正在考虑开发在线多人社交游戏.世界的共享状态在后端需要快速的东西,所以潜在的解决方案似乎是:

  1. 服务器上的快速游戏引擎(例如c ++)和一些前端语言(php/python/ruby​​)+ flash

  2. python中的整个堆栈(使用twisted或stackless python)+ flash

  3. .NET(asp.net或asp.net mvc)+ flash

  4. .NET + silverlight

从生产力的角度来看,第一个可能是过度杀手(3个异质层)

NR.4可能是程序员的天堂(所有层的共同环境),但是:

  • 没有用Silverlight构建这样的东西,也许有一些隐藏在角落里的showstoppers
  • 可能很难找到银光设计师
  • 尽管与SL完全OO架构相比,Flash电影/剪辑模型受到批评,但在外部设计师设计虚拟世界的其他部分时,这不是一个优势吗?他们可以用例如准备.swf.4个项目的4个视角 - SL会不会更难?
  • Silvelight显然缺乏某些游戏功能(如碰撞检测)

你怎么看?

[编辑]游戏本身将成为更大的门户网站的一部分 - 因此将引擎与某些Web框架集成将是一件好事.

.net silverlight multiplayer python-stackless

4
推荐指数
2
解决办法
4958
查看次数

更改GKTurnBasedMatch的"轮到你"和"游戏结束"通知中的文字?

我正在使用GameKit和GKTurnBasedMatch实现基于回合制的多人游戏.当游戏结束时,玩家会收到"游戏结束"通知; 当玩家轮到他们时,他们会收到"轮到你"的通知.这些通知使用GKTurnBasedMatch自动发生.

是否可以更改这些通知显示的文本或图标?

notifications multiplayer gamekit ios game-center

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

Java套接字在局域网上工作但不在Internet上工作?

您好我正在制作Java多人游戏,一切正常.它有所有人需要,但我发现了一个问题,它使用ServerSocket服务器,Socket为客户端,工作正常,但最大的问题是它不能在全球范围内工作.只有局域网,我甚至尝试过Hamachi,但这也没有用.

你有什么想法会有用吗?

更多信息:我在服务器中使用特定线程来接受,发送和接收套接字以及客户端中用于发送和接收的特定线程.它发送一个我制作的对象并包含所有信息.

ip = InetAddress.getLocalHost().getHostAddress() + ":" + port;

server = new ServerSocket();

//This asks you if you want to use a specific IP or just the one that we got in first line
String socketaddress;
socketaddress = (String) JOptionPane.showInputDialog(null, "IP: ", "Info",JOptionPane.INFORMATION_MESSAGE,null,null,InetAddress.getLocalHost().getHostAddress());
server.bind(new InetSocketAddress(socketaddress, port));

//Here it starts the accept thread, and then it starts send and receive threads
new Thread(accept).start();
Run Code Online (Sandbox Code Playgroud)

以下是我发现最重要的客户端内容:

socket = new Socket(ip,port);

String set_username = System.getProperty("user.name");
set_username = (String) JOptionPane.showInputDialog(null, "Username: ", "Info", JOptionPane.INFORMATION_MESSAGE,null,null,set_username); …
Run Code Online (Sandbox Code Playgroud)

java sockets performance multiplayer

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

没有互联网的本地网络上的多人游戏

我正在创建一个多人 android 游戏作为我课程的一部分。这是我的第一场比赛。我打算让用户通过简单的网络连接到游戏。我根本不想使用互联网,因此我不会使用安卓游戏服务。我该怎么做。我一点头绪也没有。我尝试了各种教程,但所有教程都使用中央游戏服务器。我只想创建一个简单的客户端 - 服务器网络。一个用户将主持一场比赛,其他人将加入。

android lan client-server multiplayer

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

我可以使用Lance制作多人Phaser游戏吗?

如何使用现有的Phaser游戏并使其成为多人游戏?

我可以将Lance库用于此目的吗?两个库都控制着自己的游戏对象,所以我不知道如何在同一个游戏中一起使用这两个框架.

multiplayer phaser-framework lance

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

好的多人/ mmo客户端<>服务器游戏是否在运动计算中使用延迟?

这里有几个问题.

想象一下,我有客户端A将要向服务器发送以下消息:"START START VVEMENT FORWARD".

服务器不会立即收到此消息,因为延迟会导致延迟.

问题1:ping(或更好:往返时间)是客户端向服务器发送消息并接收响应所需的时间.如果您可以忽略服务器注意到它已收到消息并开始发送响应(这应该非常短)所需的时间,这是否意味着以下内容?

  1. 客户端向服务器发送一些内容所需的时间=往返时间/ 2
  2. 服务器向客户端发送内容所需的时间=往返时间/ 2

因此,当客户端A发送该消息时,服务器将在客户端发送消息后的往返时间/ 2毫秒内接收该消息.这引出了我的下一个问题.

问题2:如果客户端首先发送包,然后在实际执行客户端命令(在这种情况下:向前移动)之前等待往返时间/ 2毫秒以补偿延迟/延迟?

现在,服务器将向所有附近的玩家发送以下消息:"客户端A现在正在向前移动".然后,这些客户端将确保客户端a的角色开始移动,这将引导我进入下一个问题.

问题3:客户端是否应该收到其他客户端已移动的消息,并考虑到此消息是由服务器往返时间/ 2毫秒发送的?那么用于运动计算时间戳的当前时间应该减少往返时间/ 2?

在我看来,所有这些方法都会确保客户端之间的同步得到改善,因为延迟会被考虑在内.这是正确的做事方式吗?大多数其他好的多人游戏都这样做吗?您想提供的任何评论,建议,替代方案或随机但相关的呼喊?提前致谢.

synchronization latency multiplayer roundtrip

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

用于多人webgame的JavaScript或Flash?

我推荐这两种语言作为多人网页游戏开发的一个很好的选择,但我不知道这些语言在游戏开发方面有什么限制.我个人喜欢JavaScript,但我不确定客户端 - 服务器通信和安全性.

游戏将成为基于2D回合的策略.

javascript flash multiplayer

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

如果我正在使用Twisted编写多人游戏服务器,请使用哪种协议?

我正在使用Twisted开发一款多人游戏服务器.这是一个简单的游戏,在每个地图上有几个玩家互相交流.在一开始,我只想让它们移动并且可以被其他人看到.

我认为我需要来回发送的大多数数据都是移动数据,例如方向,速度等.

是否有Twisted已经实现的协议我应该使用?是否NetstringReceiver适合呢?

谢谢!

python twisted multiplayer

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

多人回合制游戏架构问题

我正在努力创建一个2D游戏,以便学习一些多人游戏的细节.在战略转弯的战斗中,游戏本身将使两名玩家的军队相互对抗.我正在开发它作为一个独立的桌面客户端(最后可能是一个手机应用程序).

我用Java编写游戏,我不信任客户端,因此我考虑了安全性.玩家将拥有一个个人帐户,其中包含军队列表和服务器上的内容.另外,我计划使用mySQL在服务器上存储这种数据.

但是,我不确定如何实现这一点.我是否使用类似网络服务器的东西?这似乎是错误的,但我不知道哪些技术可用于客户端不受信任的Java前端和后端.请注意,我不是在寻找关于最佳方法的辩论,我只需要了解概念,可能是一些示例技术,也许是教程的链接.

谢谢你的帮助!

java mysql webserver multiplayer

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

Google Play服务:创建自定义等候室UI

我即将使用Google Play游戏服务为我的Android应用程序实现实时多人游戏,并且听到房间更新时遇到了一些问题.我没有经验,所以请原谅可能的理解问题.

我的意图是,如果有人加入我最近创建的房间,或者自己创建了另一个房间,并且我的房间与我的房间相同,我需要知情.

我试图在RoomStatusUpdateListener上听,但在我创建了一个房间后,这个监听器永远不会被调用,我想知道为什么.被调用的是RoomUpdateListener,但它不包含我需要的回调方法.

我知道建议在等候室ui中使用android build并使用Games.RealTimeMultiplayer.getWaitingRoomIntent()来启动activityForResult,但我需要创建类似我自己的等候室并且不知道如何.显然谷歌活动(等待)房间确实了解变化,所以必须有一种方法来观察这些.

据我所知,我想尝试做类似的事情:

  1. 创建具有不同变体的多个房间
  2. 在任何房间听取更新(玩家加入或创建同一个房间)
  3. 加入第2步更新的房间.

有没有人知道如何实现这一目标?我会很高兴的.对不起,我的英语不好.

问候,史蒂夫.

android multiplayer google-play-services google-play-games

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