Model für Filter? Spiel: Item in "Reichweite"

Nobody

Mitglied
Ich war so ca. bei 60 Zeilen der Erklärung des Problems als ich mir dachte, die Schwarte liest eh keiner, also hier in kurz, falls was unklar ist bitte nachfragen...

Ich programmier ein Multiplayer spiel.. mySQl... Hibernate für presitenz und verwaltung der Spieler- und Item- Klassen Instanzen läuft über hashMaps im Webapp...

Problem...
der Spieler bewegt sich, andere Spieler und Items kommen in "Reichweite" und müssen ins Spielfeld geaddet werden, andere "Verschinden", sind ausser "Reichweite" und müssen removed werden.

Normal würde ich hierzu die DB abfragen welcher user/itam

x < myX +distanz && x > myX -distanz && y < myY +distanz && y > myY -distanz

.. also in "Reichweite" ist... nur würde das bei 1000 Usern und einer tickZeit von 100ms nach Adam Riese 10.000 querys pro sekunde bedeuten... was.. recht... viel ist daher hatte ich es bisher so gemacht das Daten via hiberNate in KlassenInstanzen geladen werden und von Java aus verwaltet.

Also Daten der Tabellen users, positions und players liegen Java gesammelt in hashMaps vor undzwar mit der userID als jeweiligem Key und der Instanz der entsprechenden Klasse als Value.

Wie ich für mySQL den entsprechenden SQL querry schreibe weiss ich, nur 10.000/s querys werden die DB killen...

Was ich nicht weiss wie man für die Klassen einen entsprechenden Filter schreibt der mir dan nur eine List der userID´s ausgibt welche sich in besagtee "Reichweite"
befinden...

Hat da jemdn die Zündende Idee für mich oder könnte mir mit einem Link erfreuen, ich habe bereits nach SpieleEntwicklungstips gesucht aber anscheinend nicht die korrekten begriffe gewählt... auch die richtige bezeichnung für so einen filter (es gibt da bestimmt eine) würde mir helfen...

danke im vorraus
 
hmm ich hab da gerade etwas in dieser Richtung gefunden:

Collection CollectionFilter FilterCriteria

wäre das für mich der richtige Ansatzpunkt?
hat jemand nen Link zu nem entsprechenden Beipiel, weil google spuckt mir leider nicht wirklich eine Beispiel-Implementierung mit eventuellen Tipps aus?
gibts besseres(performanteres)?

mfg
 
hmm ok ich hab mich jetzt für kollisions erfassung mittels gedoubelte daten auf basis eines auf 4 bit reduzierten boundig Prinzip entschieden....

was wäre besser dazu geeigent... eine mehrdimiensionale ArrayList oder eine hashMapofMaps ?

mfg
 
blöde frage kommts bei hashMaps eigentlich nur bei mehreren Threads und gleichzeitiigem zugriff zu einer exception oder auch bei asynchroner bearbeitung und gleichzeitigem adden und auslesen der HashMap?

wäre dann eine concurrentHashMap erforderlich oder dich eher was list basiertes?
 
Zurück