Zum Inhalt springen

Client / Server Datensätze synchronisieren ?


Empfohlene Beiträge

Geschrieben

hi,

wie Synchronisiere ich Datensätze in einer Client / Server-Anwendung ohne Primärschlüssel / identifier ?

um es konkreter zu beschreiben:

es geht um ein kleines Strategiespiel bei dem Einheiten bewegt werden und im Netzwerk-Spiel muss synchronisiert werden,

- wo die Einheiten sind (x,y)

- wem sie gehören (Referenz auf Objekt vom Typ Spieler)

- auf welche Einheit sie gerade Zielen oder an welchem Gebäude sie bauen

(Referenz auf ein Objekt vom Typ/Interface "Target")

Mein Problem: da ich keinen Primärschlüssel habe, weis der Client nicht, zu welcher Einheit die neuen Daten gehören oder ob es sich um eine neue Einheit handelt.

Jede Einheit ist schlicht eine Instanz die innerhalb eines java.util.Vector bzw. java.util.list registriert und hat Attribute die auf den Spieler sowie auf ihr Ziel (Gebäude, andere Einheit) gerichtet sind.

"Alle" Daten zu versenden klingt nach der Falschen lösung, da jeder Client den ganzen Objekt-Baum in jedem logic-Frame neu Aufbauen müsste.

Um nur die Änderungen zu übertragen müsste ich aber irgendwie die Einheiten identifizieren.

Wie würdet ihr das machen oder wie machen das Spiele meistens ?

danke

Geschrieben
da ich keinen Primärschlüssel habe, weis der Client nicht, zu welcher Einheit die neuen Daten gehören oder ob es sich um eine neue Einheit handelt.

Wenn es um Datenbanken geht, dann stimmt Dein Modell nicht und somit würde ich das überarbeiten.

Aber irgendwie mischst Du Objekte und Begriffe aus der Datenbanktechnik. Es wäre vielleicht gut, wenn DU einmal ganz exakt definierst, worum es geht. Klar ist Du willst über das Netz Daten synchronisieren.

Phil

Geschrieben

Reicht es nicht, dem SpielerObjekt noch einen eindeutigen Wert (Spielername, ID o.ä.) hinzuzufügen?

Andere Psiele ... hmmm wie machen die das, gute Frage.

Aber die meisten Weisen wohl den Spielern eine ID zu wenn sie connecten ...

Geschrieben

danke soweit, ich denke ich habe vorerst eine Lösung.

Und zwar wird der Server jedem Objekt (Spieler, Gebäude, Einheit ... whatever) eine ID geben, die nichts weiter ist als ein Integer.

Da nur der Server die ID verteilt wird sie wie ein Primärschlüssel funktionieren und die Objekte auf Server und Clients identifizieren.

Hätte ja sein können das es noch eine andere, mystische Methode gibt das Problem zu lösen ;)

Geschrieben

Und zwar wird der Server jedem Objekt (Spieler, Gebäude, Einheit ... whatever) eine ID geben, die nichts weiter ist als ein Integer.

Achte dabei darauf, dass keine Kollisionen entstehen. Ich persönlich würde das gar nicht machen, sondern jedes Objekt erhält automatisch bei der Erzeugung schon einen Schlüssel den Du verwenden kannst: Java 2 Platform SE v1.3.1: Class Object)

Phil

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...