Android,在一个简单的在线游戏中连接两个用户,比如井字游戏。

Posted

技术标签:

【中文标题】Android,在一个简单的在线游戏中连接两个用户,比如井字游戏。【英文标题】:Android , connect two user in a simple online game , like tic tac toe 【发布时间】:2015-01-25 14:57:06 【问题描述】:

假设我制作了一个非常简单的游戏,例如井字游戏。 以下是游戏攻略:

首先,用户进来,点击START按钮开始游戏, 然后我得找另外一个也在线的玩家,然后把这两个玩家连接起来,现在,他们可以开始游戏了。 每个玩家都必须看到他的对手的行动(结果)。

问题

1 - 当用户点击 START 时,我的应用程序应该如何响应?

我的意思是我应该为这个用户打开一个套接字吗?如果是的话,似乎我应该创建一个具有服务器套接字的网络服务器,当用户连接时,这个网络服务器获取用户信息,并向他发送一些东西(我不知道是什么:()

2 - 当另一个玩家来玩并点击 START 时,我应该如何找到另一个也在线并准备玩的玩家并将这两个玩家相互连接,以便他们相互发送数据(如 JSON 数据)

我不想使用谷歌服务,我想建立自己的。 我对 php,数据库很好,但对 android 不太好(虽然我正在学习)

我知道我的问题有点宽泛,但我一直在谷歌上搜索,我无法解决这个问题。

谁能告诉我如何开始,我的意思是给我一个计划,我不需要任何代码

我可以通过学习 NodeJS 来解决这个问题吗?

也许是一些教程、一本书、一个例子?

非常感谢

【问题讨论】:

【参考方案1】:

这确实是一个非常广泛的问题。

我认为这一切都归结为以下问题:设备如何相互发送数据?

有多种选择。我猜你希望玩家通过网络进行互动。我的建议是您使用服务器作为中间人。这样做有几个优点(例如,您可以让服务器检查规则是否确实得到遵守)但也有缺点(其中,您必须设置服务器并编写服务器脚本)。

此时,您确实可以使用套接字进行播放器到服务器的通信。由于最终您只能通过网络传输字符串,因此您必须对数据进行序列化,而 JSON 是众多选项之一。

如果您考虑一下,您的问题并不比一个简单的聊天应用程序复杂。服务器将数据从一个玩家传输到另一个玩家。看看那个方向,比如这里:http://lakjeewa.blogspot.co.uk/2014/05/simple-android-client-server-application.html

【讨论】:

你说得对,我想要一个中间人,但我现在不知道如何开始,我可以制作 webservise RESTful api,但是如何开始呢?还有其他教程吗? 假设我制作了服务器,android用户启动了游戏,他向服务器发送了一些字符串,等待另一个玩家进来,现在,我应该将这些字符串(没有价值)存储在一个数据库,所以当另一个用户进来时,向他展示这个数据? 这取决于你想要什么,这两个选项都可以。最简单的方法是要求两个用户始终在线,如果服务器无法立即发送数据,则在发送者的设备上显示错误。 好的,那么服务器将如何向用户发送(推送)新数据?通过使用玩家 ip ? Google 是您的朋友,寻找推/拉方法。你现在有所有的线索可以开始了,我不能为你编程;)

以上是关于Android,在一个简单的在线游戏中连接两个用户,比如井字游戏。的主要内容,如果未能解决你的问题,请参考以下文章

Android 实时多人游戏通知连接丢失

我希望我的Android应用程序将数据同步到MYSQL以用于我的在线ERP

保存的游戏+实时多人Android

Android多人国际象棋 - 如何处理服务器连接?

在React Native JSX中如何在一个房间里连接两个用户?

当用户点击广告横幅时,Google Play 游戏服务断开连接