Android Multi Player -Spiel über dem NetzwerkJava

Java-Forum
Anonymous
 Android Multi Player -Spiel über dem Netzwerk

Post by Anonymous »

Ich programmiere ein Android-Multi-Player-Spiel, das im Grunde aus einem Server besteht, auf dem die Clients Nachrichten verbinden und austauschen. Wenn der Spieler eine Verbindung zu einem Server herstellt, wird eine Spielerliste zu ihm/ihr zurückkehren. Ein Spieler kann dann einen Benutzer auswählen, der herausfordert - natürlich muss er einen Spieler aus der Spielerliste auswählen, der nur verbundene Benutzer enthält. Der Player2 kann dann die Herausforderung annehmen /ablehnen. Der Server akzeptiert im Grunde genommen eine Verbindung vom Client, die einen neuen Thread für jeden angeschlossenen Client hervorbringt. Das Problem dabei ist: < /p>


Es muss eine persistente Verbindung bestehen, die von Client zu Server verschwendet wird, die Akkulaufzeit des Android -Telefons. Dies ist nicht wirklich eine große Einschränkung, da der Akku nicht so viel verbraucht wird. < /li>
Ich mache mir auch Sorgen, wenn dies der Weg ist, dies zu tun. Wenn Sie einen anderen Thread für jeden Kunden lasieren, klingt es ziemlich viel, wenn sich Tausende Kunden gleichzeitig verbinden. Aber ich vermute, die PC -Spiele machen es so. Ich bin mir nicht sicher über Android. Dies wäre eine perfekte Lösung, wenn der Server einfach Benachrichtigungen an Clients senden könnte. Hier gibt es tatsächlich mehrere Designentscheidungen: < /p>


Der Client zieht alle paar Sekunden den Server für neue Daten /Benachrichtigungen - das ist wirklich schlecht, da wir mit Nichtantwortverlust festhalten, verzögert usw.. Dies ist besser, kann aber dennoch zu einer Verzögerung führen, wenn zwei Benachrichtigungen nach dem anderen an den Benutzer gesendet werden müssen. Die erste Benachrichtigung wird sofort gesendet, da der Client bereits über eine Verbindung geöffnet ist und auf die Empfangsdaten wartet. Wir müssten jedoch darauf warten, dass der Kunde eine weitere lange HTTP -Anfrage einleitet, um die zweite Benachrichtigung zu erhalten. Das Problem wird größer, da es mehrere Benachrichtigungen gibt, die in eine Zeile an einen bestimmten Client gesendet werden müssen. Das Problem hier ist, dass ich nicht weiß, wie gut das auf Android funktioniert. Ich habe einige Implementierungen angesehen:

Java Jersey + Atmosphäre: Es ist nicht gelungen, es tatsächlich zum Laufen zu bringen. Dies scheint das vielversprechendste zu sein, aber ich möchte nicht zu viel Zeit damit verbringen, da ich nicht einmal sicher bin, ob es das tut, was ich will. Wenn ein Player1 Player2 herausfordert, kann er eine Benachrichtigung an Player2 über die Match-Anfrage informieren? Ein völlig neuer Vorschlag, wie ich das erreichen kann, was ich will. Ich kann so ziemlich alles codieren. Zögern Sie nicht, mich über eine schwierigere Möglichkeit zu informieren, die Netzwerkkommunikation zu erreichen. Damit kann ich eine Schnittstelle /was auch immer programmieren und den Code in anderen Android -Spielen, Android -Anwendungen wiederverwenden.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post