Multijoueur Android en temps réel sur LAN [fermé]

9

J'ai développé plusieurs jeux pour la plateforme Android et je prévois maintenant de créer mon premier jeu multijoueur. Ce que j'ai à l'esprit est essentiellement une sorcière de jeu à 2 joueurs avec laquelle vous pouvez jouer avec 2 téléphones via une connexion locale / WiFi.

Les deux téléphones doivent pouvoir transmettre 3 valeurs entières à l'autre téléphone en temps réel. Jusqu'à présent, j'ai envisagé d'utiliser Socket, mais avant de creuser trop profondément, je voulais demander s'il pouvait y avoir une meilleure approche?

Merci!

Heigo
la source
3
Une meilleure approche que socket ... pas sûr. Cependant, vous n'avez pas besoin d'utiliser des sockets bruts car les bibliothèques déjà existantes le font pour vous. Je suppose que vous développez sur une plate-forme Android avec Java (vous n'avez pas marqué comme java) afin que vous puissiez regarder Kryonet.
nathan
C'est vrai, je développe avec java. Je vais regarder dans Kryonet. Merci pour le commentaire.
Heigo
Si vous ne passez que quelques valeurs, vous voudrez peut-être envisager le Bluetooth. Voici quelques bonnes références: developer.android.com/guide/topics/connectivity/bluetooth.html et stackoverflow.com/questions/5619850/...
amb
Je pourrais également envisager d'utiliser le bluetooth dans le développement ultérieur, mais pour le moment, je pense que les gens connaissent mieux le WiFi.
Heigo
1
Je commence également à créer un jeu multijoueur et je pense avoir un backend de service de repos (pour l'inscription des joueurs, le matchmaking, etc.) et un serveur de jeu basé sur des sockets tcp. Lorsque la correspondance est établie et que le jeu démarre réellement, le service de repos enverra un message de socket au serveur et l'instance réelle du jeu sera créée (pour rendre les choses évolutives). Les clients obtiennent l'ip du serveur et créent une connexion à l'aide d'un jeton de sécurité fourni par le service de repos. Le serveur de jeu valide et fait le reste.
Thomas

Réponses:

-2

Une option que vous pourriez envisager est Socket.IO .

Il semble y avoir beaucoup de discussions sur Socket.IO à Stack Overflow, y compris:

Hélas, je n'arrivais pas à comprendre comment obtenir un appareil Android pour communiquer directement avec un autre appareil Android via Socket.IO, ou même une étape d'indirection avec les deux parlant à un seul point d'accès WiFi entre eux. (Je ne sais toujours pas si c'était un bogue dans mon code, une sorte de pare-feu dans le code de quelqu'un d'autre ou une limitation inhérente de Socket.IO). J'ai obtenu une petite démonstration fonctionnant avec un appareil Android envoyant des messages à un serveur Web, qui a transmis le message à l'autre appareil Android.

David Cary
la source
En tant que plugin pour un serveur Node.js, Socket.IO peut être pertinent pour une question sur le multijoueur en temps réel dans un jeu par navigateur. Dans le contexte actuel de java et android , cependant, sa mention ne sert qu'à tromper.
Eric
J'ai une petite démo avec une application Android personnalisée utilisant Socket.IO pour communiquer (indirectement) avec une autre application personnalisée sur un autre appareil Android, via un serveur Node.js. Cela "fonctionne" plus ou moins, mais si vous connaissez une meilleure approche, en particulier une approche avec une communication plus directe, je (et je suis sûr que l'affiche originale) aimerais en être informée - veuillez nous le dire.
David Cary
-2

Avez-vous dit que les deux appareils étaient dans la même pièce?

Chaque appareil Android dispose d'un haut-parleur et d'un microphone. En principe, il est possible qu'une application envoie une série de tonalités par le haut-parleur, puis que l'autre application écoute les tonalités et les décode à nouveau dans une chaîne de message. Vous pouvez soit (a) utiliser tout le spectre audio pour envoyer des données, quelque chose comme les coupleurs acoustiques des années 60 et 70, ou (b) utiliser une bande passante beaucoup plus étroite de 15 KHz au plus haut supporté par votre appareil (probablement 24 KHz) - - un canal de données beaucoup plus lent, mais la plupart des gens n'entendent plus ces fréquences - c'est ultrasonique pour eux.

Les opérateurs de radioamateurs ont développé de nombreuses techniques intelligentes pour extraire des signaux extrêmement faibles de beaucoup de bruit.

" Communication via la prise audio pour les téléphones Android"

Lecture du son sur Android: a b c

"Le logiciel Zoosh de Narrate exploite les haut-parleurs et les microphones des smartphones pour permettre les mêmes communications de données entre les appareils que le NFC d'aujourd'hui fournit, mais avec des fréquences ultrasoniques qui sont inaudibles pour les humains." - Eweek , Slashdot .

David Cary
la source