Java Game Networking con Kryonet: trasferimento di pacchetti Bare-bones


Sto usando Opengl e Jbox2d per scrivere un gioco 2d in tempo reale in Java.

Voglio iniziare a codificare i componenti di rete.

Sebbene usi box2d, il mio gioco è molto piccolo e voglio creare un'architettura bare-bones usando la libreria Kryonet.

Il programma stesso è un "match game" come gli scacchi. Il sistema più logico che posso pensare sarebbe quello di avere un server dedicato che memorizza tutti i dati del giocatore.

PlayerA e PlayerB si connetteranno con il server che faciliterà un collegamento TCP tra i loro computer.

Quando la partita è completata, entrambi i giocatori comunicheranno i dati risultanti al server dedicato, che autenticherà e quindi salverà i rispettivi dati del giocatore.

Per chi ha familiarità, Diablo2 ha implementato una configurazione simile.

Voglio che questa connessione TCP invii semplicemente i dati vettoriali delle coordinate di forma dall'host (diciamo playerA) al client (player B) che il client quindi render da solo.

Quindi voglio che il client invii i dati del mouse/tastiera all'host. Tutta l'elaborazione verrà eseguita sul computer dell'host.

La mia prima domanda: ci sono difetti in questa logica di rete?

La mia seconda domanda: come si implementa il trasferimento di pacchetti barebone server/client (come descritto) usando Kryonet?

Nota: ho fatto questo tipo esatto di trasferimento di pacchetti in C++ usando una libreria diversa. La documentazione / tutorial che ho trovato per Kryonet sono terribili. Suggerire un'altra libreria con un buon supporto è una risposta accettabile.

Author: bigcodeszzer, 2015-08-15