Gamestudio Links
Zorro Links
Newest Posts
Change chart colours
by 7th_zorro. 05/11/24 09:25
Data from CSV not parsed correctly
by dr_panther. 05/06/24 18:50
Help with plotting multiple ZigZag
by degenerate_762. 04/30/24 23:23
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (Ayumi, Power_P), 1,065 guests, and 7 spiders.
Key: Admin, Global Mod, Mod
Newest Members
firatv, wandaluciaia, Mega_Rod, EternallyCurious, howardR
19050 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Datenmanagement/Dateihandling #341423
09/16/10 14:10
09/16/10 14:10
Joined: Aug 2003
Posts: 127
Berlin, Germany
C
CHaP Offline OP
Member
CHaP  Offline OP
Member
C

Joined: Aug 2003
Posts: 127
Berlin, Germany
Hey!

Ich wollte mich mal eben bei euch erkundigen, was denn der beste Weg für das Datenmanagement in einem Multiplayer Spiel ist, bzw. welchen ihr nutzt.

Ich mein* folgendes damit:
Der Server besitzt auf seiner Festplatte einige Dateien, welche jeweils von den Clients gelesen werden sollen. Dabei ist es wichtig, dass nur der Inhalt zu den Clients übertragen wird.

Meine Überlegung wäre jetzt ein STRUCT zu erstellen, diesen mit all den Daten einer Datei zu füllen und es per SEND_DATA/EVENT_DATA in Richtung der Clients übermitteln.
Bei den Client geschieht dann selbiges. Ein STRUCT wird mit den erhaltenen Daten gefüllt und ich könnte es dann verwenden.

Würde das reibungslos funktionieren oder existieren vielleicht noch andere Möglichkeiten?

Re: Datenmanagement/Dateihandling [Re: CHaP] #341483
09/17/10 09:27
09/17/10 09:27
Joined: Jun 2006
Posts: 2,640
Earth
Germanunkol Offline
Expert
Germanunkol  Offline
Expert

Joined: Jun 2006
Posts: 2,640
Earth
Das hört sich gut an. Theoretisch könntest du auch eine Datei senden, wenn das alles auf dem HDD sitzt und sowieso in einer Datei, aber (ich glaube) das wäre anfälliger für das Versenden von Viren und desswegen ist deine Lösung besser.
Da ich mein Spiel schon fast fertig hatte, bevor das Schicken von Structs mit ANet problemlos möglich war, schicke ich einfach per enet_send_var und enet_send_array/string die Daten, die der Benutzer braucht um den richtigen Level zu richtigen Zeit und mit dem richtigen Gamemode zu laden. Das funktioniert auch, aber generell würde ich die Struct empfehlen.


~"I never let school interfere with my education"~
-Mark Twain
Re: Datenmanagement/Dateihandling [Re: Germanunkol] #341504
09/17/10 15:39
09/17/10 15:39
Joined: Aug 2003
Posts: 127
Berlin, Germany
C
CHaP Offline OP
Member
CHaP  Offline OP
Member
C

Joined: Aug 2003
Posts: 127
Berlin, Germany
Sehr schön. Wo finde ich denn bitte die Befehle ENET_SEND_VAR und ENET_SEND_ARRAY/STRING? Gehören diese zu ANet?
Und wie kann ich eine ganze Datei versenden? Würde der Inhalt dabei nur der Engine bekannt sein und nicht irgendwie auf der HDD ausgelagert, wäre das eigentlich schon genau das, was ich erreichen wollte.

Im Grunde genommen geht es einfach nur darum, dass es eine Accountverwaltung ist und die Clients sollen nicht an sensible Daten geraten können.

--------------
Die erste Frage habe ich mir gerade selber beantworten können. Es stammt aus dem ANet.

Last edited by CHaP; 09/17/10 16:31.
Re: Datenmanagement/Dateihandling [Re: CHaP] #341597
09/18/10 13:34
09/18/10 13:34
Joined: Jun 2006
Posts: 2,640
Earth
Germanunkol Offline
Expert
Germanunkol  Offline
Expert

Joined: Jun 2006
Posts: 2,640
Earth
Hm, also bis jetzt habe ich Dateien immer nur direkt von der HDD geschickt. Sie liegt irgendwo im Verzeichnis auf PC 1 und wird zu einem bestimmten Verzeichnis auf PC 2 geschickt, der sie dann öffnet und damit arbeitet - so mache ich das. Ob aus dem RAM eine Datei geschickt werden kann, weiß ich nicht, das würde heißen, 3dgs muss eine Datei erstellen, die es nicht speichert. Keine Ahnung, nie gemacht.

Für das was du brauchst, wenn ich es richtig verstanden habe, würde ich aber das verschicken einer struct empfehlen, unter anderem weil du dann nicht aufpassen musst, wer grade an wen Dateien verschickt; es geht nämlich immer nur eine Datei auf einmal, pro client.

Theoretisch kann man an alle Daten gelangen, die der PC einmal bekommen hat, sie können ja irgendwo "mitgehört" werden, auf dem eigenen PC, selbst wenn sie nie auf die Harddrive gespeichert werden.
Ich weiß nicht genau, was alles bei deiner Accountverwaltung geschickt wird, aber ich verstehe das so:
Client sendet Benutzername und Passwort an Server und bekommt den momentanten Status des eigenen Spielers zurück: Level, Geld, Inventar, etc. Für so ein Setup würde ich das ganze "einfach" per Struct (oder bei mehreren Spielern vielleicht eine Array von structs, nacheinander?) und um mogeln zu verhindern immer die Werte, die zum Beispiel mit dem Level zu tun haben (Damage, Health, Stärke etc) auf dem Server zu überprüfen, immer dann, wenn der Client etwas damit macht. Beispiel: Client schickt "ich habe einen Eisenhelm, den setzte ich jetzt auf" und Server prüft, ob bei ihm dieser Eisenhelm auch wirklich im Inventar des Nutzers ist, und nur wenn das der Fall ist, schickt er zurück "ok, setz ihn auf", woraufhin der client jetzt mit Helm auf dem Kopf rumläuft.

Das wäre mein spontaner Ansatz, es gibt eventuell bessere, aber so sicherst du dich gleich gegen alle Client-Side Möglichkeiten des Mogelns.

Last edited by Germanunkol; 09/18/10 13:35.

~"I never let school interfere with my education"~
-Mark Twain
Re: Datenmanagement/Dateihandling [Re: Germanunkol] #341608
09/18/10 16:16
09/18/10 16:16
Joined: Jul 2005
Posts: 1,930
Austria
Dark_samurai Offline
Serious User
Dark_samurai  Offline
Serious User

Joined: Jul 2005
Posts: 1,930
Austria
Quote:
Wo finde ich denn bitte die Befehle ENET_SEND_VAR und ENET_SEND_ARRAY/STRING? Gehören diese zu ANet?
Und wie kann ich eine ganze Datei versenden? Würde der Inhalt dabei nur der Engine bekannt sein und nicht irgendwie auf der HDD ausgelagert, wäre das eigentlich schon genau das, was ich erreichen wollte.


enet_send_var/array/string() gehören zu ANet und können im ANet Manual nachgelesen werden. Eine ganze Datei kannst du mit ANet's Dateifunktionen (File Transfer) verschicken (siehe Manual). Dazu gibt es auch ein fix fertiges Beispiel auf der Downloadseite: http://www.anet-plugin.com/downloads_eng.htm
Aber es ist wahrscheinlich intelligenter nicht die gesamte Datei zu senden, da diese eben dann auch auf der Festplatte gespeichert wird. Durch Senden eines Structs bleibt der Inhalt nur im Ram.


ANet - A stable and secure network plugin with multi-zone, unlimited players, voip, server-list features,... (for A7/A8)!
get free version
Re: Datenmanagement/Dateihandling [Re: Dark_samurai] #341890
09/21/10 13:53
09/21/10 13:53
Joined: Aug 2003
Posts: 127
Berlin, Germany
C
CHaP Offline OP
Member
CHaP  Offline OP
Member
C

Joined: Aug 2003
Posts: 127
Berlin, Germany
Cool! Danke für die ausführliche Antwort!
Ich denke das Hilft mir weiter.

An dieser Stelle beschäftigt mich jetzt noch eine weitere Frage.


Moderated by  HeelX, Spirit 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1