2d online game programmieren

  • Hey Community,


    ich bin gerade dabei ein 2d Pong Spiel für Android zu programmieren. Das Spiel selber ist so gut wie fertig. Ich möchte den Usern allerdings die Möglichkeit geben online gegeneinander zu spielen. Dies soll auch tatsächlich massentauglich sein.


    Ich verwende als Bibliothek libgdx.


    Mein Ansatz bestand darin die Positionen der Spielelemente, also Ball, Schläger,etc. updaten zu lassen.
    Spieler A's Client sendet nach jedem Frame die Positionen seines Schlägers und lädt die Position des Gegners und des Balls runter. Spieler B's macht das gleiche.
    Der Server weiss immer wo alle Elemente sich befinden.


    Dazu habe ich einige Fragen.


    - Was soll ich für den Informationsaustausch verwenden? Reichen simple Sockets die mit den socket.print() Funktionen die Infos versenden?
    - Ich nehme an, dass ich mehrere Threads verwenden muss. Also einen Thread für die Darstellung und einen für die Verbindung?
    - Auch wenn die Frage dumm erscheinen mag: Was brauche ich für den Host? Würde ein Raspberry als Server reichen? Wenn ja für wie viele Spieler? 100? 1000?


    Ich freue mich über jede hilfreiche Antwort!

  • - Simple Sockets reichen normalerweise. Schwierig wird es erst, wenn ein Proxy die Socket Verbindung nicht zulässt. In dem Fall sind Websockets besser geeignet.


    - Ja unter Android ist Netzwerk-Kommunikation auf dem Main-Thread nicht erlaubt (Auch wenn es Ausnahmen gibt ;) )


    - Ob ein Raspberry als Server reicht ist eine schwierige Frage. 1000 parallele Verbindungen brauchen schon ein wenig Power. Node.js Server sind normalerweise sehr gut darin, viele parallele Verbindungen gleichzeitig zu handeln. Falls es dem PI zu viel wird kannst Du etwas mehr Hardware verwenden. Node.js Server laufen ja auf (fast) jeder verfügbaren Hardware.


    Melde Dich mal, wenn es massentauglich geworden ist. Dann mische ich mich vielleicht mal unter die Masse :)

  • Es sei noch kurz erwähnt, das du den Raspyberry am besten nur als Test oder Beta-Server nimmst.
    Selbst wenn der Raspberry genug Power hat um x Spiele gleichzeitig zu bewältigen, leidet der Flashspeicher vom Raspberry sehr bei vielen Verbindungen.
    Dieser kann dann mal schnell kaputt gehen, wenn man wirklich Traffic drauf hat.


    Aber generell kannst du ihn ja fürs Testen nutzen und falls es dann wirklich Produktiv geht, einen günstigen Server mit Node.Js mieten (im Rechenzentrum hättest du ja auch einen deutlichen Verbindungs-Vorteil).

  • also, ich finde hier wird es perfekt erklärt :
    https://www.youtube.com/watch?…Ld2Qh6r7jxBKPuB4hl-Xw5uZT




    BTW : ich habe mich auch mal an ie Programmierung mit LibGDX gewagt : https://www.youtube.com/watch?v=CUo78crOIf0

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!