Sto programmando un server dedicato in C # usando le DLL BeamServer2. All'inizio volevo essere in grado di vedere gli altri giocatori muoversi sulla nostra mappa Omuni già creata. Questo l'ho fatto semplicemente inviando la tua posizione al server ogni frame. Questo ha funzionato e sono stato in grado di giocare con alcuni amici, ma il movimento non era lento. Così ho iniziato a provare ad aggiungere il livellamento dei movimenti e anche un po 'di sicurezza in modo che non possano semplicemente inviare una posizione falsa al server senza che il server gli impedisca di raggiungere gli altri client.
Quello che ho fatto, ho creato un masterClient con un controller di movimento sul telecomando. Quando un cliente vuole spostarsi, si sposta localmente e invia un messaggio al server con la sua direzione di spostamento. Il server quindi prende la sua velocità e la invia a masterClient. Il masterClient di sposta RemotePlayer proprio come si sposta da solo RemotePlayer. Quando smette di muoversi, invia un messaggio con la sua posizione. Il client principale verifica che la posizione in cui è arrivato sia vicina alla posizione che ha dal client, se è realistico in base al ping del client, il server lo mette nella posizione del client.
Funziona, ma ho ancora un problema di ritardo e non sono sicuro di come risolverlo. Devo rendere il movimento più fluido sul client, ma mi sono reso conto che posso semplicemente spostare (x / 2, y / 2, z / 2) nella posizione e metterlo nella posizione reale del fotogramma successivo, non ci sono riuscito e io ci riproverò presto. Anche se questo viene aggiunto, non sono sicuro che il ritardo sia corretto.
Altre tecniche, suggerimenti, domande, ...? Grazie, Diede.