【问题标题】:Real time Multiplayer or Turn based multiplayer API? [closed]实时多人游戏或回合制多人游戏 API? [关闭]
【发布时间】:2023-03-04 10:47:01
【问题描述】:

我是多人游戏开发的新手。我基本上是在为 Android 制作一个棋盘游戏,它需要有一个回合的时间限制,有点像在线多人国际象棋,它对两个玩家都有一个回合计时器。计时器在玩家必须移动时运行,并在同一玩家需要移动时从它离开的地方继续。为第二个玩家维护类似的计时器。

我并没有确切地知道我应该为此目的使用哪个 API。实时多人游戏或基于回合的多人游戏 API?有什么建议吗?

更新: 我终于使用了 Real Time Multiplayer(RTM) API,因为它提供了几乎所有东西。基本上,它创建了一个检查玩家退出的房间,这与基于回合的 API 不同,后者是异步的,并且没有直接的方法来检查其中的玩家退出。另外,RTM 提供实时共享,由于我的游戏复杂性,我需要这种方式(我需要一种方法,可以显示其他玩家在做出最终移动之前所做的每一个动作,这将充当转场变换器)。

现在没有提供的是我自己在实时 API 中实现的转向机制。我修改了Button Clicker,结果如下:

另一个玩家被选为第一玩家

一旦其他玩家点击按钮,回合就会改变,并且分数也会更新为 1。 (分数被修改为两个通用的数字。所以如果我点击按钮,它会变成 2。)

【问题讨论】:

标签: android google-play-services multiplayer google-play-games


【解决方案1】:

这是Google Play Game Services 内置的。

特别是 gms 包com.google.android.gms.games.multiplayer.turnbased

您真的不需要将计时器内置到 API 中,因为它位于 Android Core CountDownTimer class

你要做的是设置 CountDownTimer,然后对于 onFinish() 方法,你会说切换玩家轮流。

new CountDownTimer(30000, 1000) {

     public void onTick(long millisUntilFinished) {
         mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
     }

     public void onFinish() {
         mTextField.setText("done!");
     }
  }.start();

【讨论】:

  • 定时器也内置了?
  • 感谢您的回复。但我的意思是,如果发生崩溃或电话,会发生什么?计时器将被关闭,因为它在本地维护。是否有一种解决方法,以便在他/她在计时器到期之前回来的情况下继续游戏?
  • @Nikhil 这更像是游戏设计,而不是我觉得合适的 API。您可能想访问Android StackExchangeGame Development StackExchange。我无论如何都不是 Android 开发人员,但我假设您将有一个数据库来存储用户信息,因此您可能希望跟踪服务器端的时间。
  • 当您接到电话时,应用程序不会退出 - 它只是在后台运行,因此您仍然可以让您的计时器在本地运行。如果你的手机真的崩溃了,我相信你需要依赖服务器。就像我说的,这真的取决于你如何设计游戏——如果有人的手机死机,你真的希望其他玩家等这个人吗?你可能只是希望那是一种投降。这是how to save data to a SQL database的信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多