0) werden z.b. meine Koordinaten permanent in eine zentrale DB übertragen (zb. via UDP) und die anderen Nutzen rufen stetig diese Daten ab?
Das ist meistens nicht notwendig, da aufgrund bestimmter Faktoren die möglichen zukünftigen Punkte vorhersagbar sind. Wenn eine Figur seint 10 Meter gerade aus läuft, wird sie das möglicherweise auch die Nächsten 2 Meter machen.
Der Netcode moderner Shooter beinhaltet hier z.B. auch übliche Bewegungsmuster um solche vorhersagen zu treffen damit auch im fall von höheren Latenzen die Bewegung flüssig erscheint.
Wenn das schief geht, erkennt man das daran, dass die Spielfiguren ruckeln.
- bleibt die Verbindung offen, oder muss ich mich immer wieder neu verbinden?
Du meinst "Zustandslosigkeit" - das ist häufig so, ja.
- welches Netzwerkprotokoll wird dafür genutzt? TCP/IP, UDP...?
Wenn man es auf einem niedrigen Level betrachtet UDP - aber üblicherweise verwendet man hierzu heute APIs wie z.B. DirectPlay:
- in welchen Intervallen werden die Daten gesendet? Diese müssen ja extrem klein sein.
Nicht notwendigerweise - wenn zwei Spielfiguren so weit voneinander entfernt sind, dass sie unmöglich miteinander interagieren, müssen auch die Positionen und Handlungsinformationen nicht ausgetauscht werden. Das ist etwa so wie bei der Sichtbarkeitsbereichtung in der Darstellung - die Karten werden z.B. in Binärbäume zerlegt und es werden nur Informationen getauscht, die tatsächlich relevant sind.
- würde man sowas (ähnliches, nur sehr viel simpler) mit Ajax umsetzen: wäre das technisch möglich, oder wären die Intervalle so klein, dass es Probleme geben könnte?
Sollte theoretisch ohne Probleme funktionieren - die Latenzen bei HTTP sind halt etwas "unberechnenbar".
- ich würde sowas gerne mal mit java-applets ausprobieren. Wie wäre am besten der Versuchsaufbau? (z.b. zentrales Python-Skript, welches die Daten entgegennimmt und in eine DB spielt bzw. ausgibt, Applet n, welches diesem Skript die Daten übergibt bzw. entgegennimmt.)
Bez. Java fragst du den falschen :)