Koordinaten verschlüsselt übertragen

Also ich habe jetzt viel getüftel und ausprobiert.

Ohne die Startzeit bzw. die Clickzeit auf den Button mitzugeben, bekomme ich es nicht hin. (also komplett ohne Clientzeit)

Ich habe die Zeit jetzt komplett vom Server berechnen lassen und einen Durchschnittswert der Abweichung gebildet - das funktioniert gut. Dauert der Request (warum auch immer) zwischendrinn mal richtig lange + >1 Sekunde, verfälscht es den kompletten Durchschnittswert und keine zukünftige Eingabe wird mehr akzeptiert.

Der Ping beträgt zw. 20 und 25 ms - die tatschächliche Abweichung von ClientClick - ClientStart - Uhrzeitdifferenz sind im Schnitt 150 ms und ich kann mir nicht erklären wo diese Abweichung herkommt.

Ausserdem funktioniert pingen vom Server auf sich selbst auch nicht bzw. gibt keinen Wert zurück.

Ich verzweifel noch...
 
Mal etwas Anderes:
Was ist denn wenn ich eine Canvas Animation baue (habe noch keine Erfahrung mit Canvas), beim Buttonklick das Bild mit dem aktuellen Stand der Animation übermittle und dann das Bild Serverseitig auslese und die Koordinaten bekomme?

Kann ich Clientseitig auch die Position des animierten Objekts im Canvas manipulieren?
 
Hmm und alle x Millisekunden einen Request an den Server senden und die aktuellen Koordinaten mitgeben?
Oder ist das vom Traffic und der Performance zu schwierig?
Canvas real-time Multiplayer Spiele machen das ja wohl so oder?
 
Was soll das helfen? Nochmal, solange der Clientcomputer nicht 100% unter deiner Kontrolle ist (inkl. physisch) gibt es keine Möglichkeit, das fälschungssicher zu machen.
 
Ja, ich dachte jetzt an ein anderes (semi) live Konzept.

Ist es überhaupt ratsam / üblich, requests im Millisekundenbereich zu feuern, werte in die DB zu speichern usw?
 
Hi mal wieder :)
Ich bin übers Wochenende auf socket.io gestoßen und habe meine Animation nun in die server.js gepackt.
Beim Klick auf den Button, stoppt die Animation und es wird die Position die in der server.js errechnet bzw animiert wurde hergenommen.

Kann man sowas nun auch manipulieren? Die server.js ist ja nach aussen hin nicht sichtbar oder?
 
Kenn mich mit Node.js, Socket.io und dem ganzen Kram praktisch nicht aus, aber:
Ändert es irgendwas?
Die server.js ist ja nach aussen hin nicht sichtbar oder?
Ja und? (falls es überhaupt so ist, keine Ahnung). Falls man PHP, J2EE usw. verwendet, ist der serverseitige Code auch nicht sichtbar. Macht nichts.

So lange das Gewinnen etc. irgendwie vom Client abhängt, kann der Client es manipulieren. Und bevor ich das noch öfter wiederhol, ich bin mit dem Thread vorerst fertig. Cheaten bei einem Server-Client-Spiel verlässlich verhindern, ohne den Clientcomputer vollständig zu kontrollieren, geht einfach nicht.
 
Zurück