Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

1

02.02.2008, 13:17

Verwaltung großer Datensätze

So ich muss mich demnächst an die Programmierung meines Masterservers setzen, und der soll alle relevanten Account- und Charakterdaten der Spieler verwalten, also Mail, Passwort, Aussehen des Helden, Inventar etc.
Würdet ihr mir da SQL empfehlen oder ist ein eigenes Dateisystem ausreichend? Gibts zu SQL irgendwelche nennenswerten Alternativen?

3dcoder

Frischling

Beiträge: 40

Wohnort: Krefeld

  • Private Nachricht senden

2

02.02.2008, 14:17

Also ich würde auch auf SQL setzen - SQL Datenbanken sind ja für Mehrbenutzerbetrieb ausgelegt und bringen daher alles mit was dafür nötig ist: Locking, Multithreading, Auflösung von Deadlocks etc. Außerdem sind Datenbank rasend schnell wenn sie gut aufgebaut sind. Zudem sind die Sicherungsmechaniken (dump, restore) alle erprobt und funktionieren.
Das müsstest du alles selbst erstellen und testen wenn du auf Dateiebene arbeitest.

Was machst du z.B. mit Dateien wenn du das Datenformat ändern/erweitern möchtest? In SQL legst du eine neue Spalte an, sagst was für ein Defaultwert da hinein soll und fertig. Bei Dateien musst du erstmal ein Tool erstellen das alle Dateien einzeln anpasst...

Grüße
3dcoder

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

3

02.02.2008, 16:02

Wir nutzen in unserem Projekt MySQL. Vorteile: man findet Leute, die damit umgehen können und viele Standardprobleme sind schon gelöst. Nachteile: MySQL nervt einerseits durch das Lizenssystem und andererseits fehlt eine vernünftige UNICODE Unterstützung für die C-Schnittstelle.
Ist halt auch das Frage wozu genau du das brauchst, weil bei uns werden auch die Accdaten darüber verwaltet (HP<->MySQL) und auch die Sicherungen vom Spielstand gespeichert (Spiel<->MySQL).
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

4

02.02.2008, 16:10

Hmm Nox naja du kannst ja die UNICODE Zeichen in entsprechender Form in mehrere char's packen und dann geht das :) Ist zwar nen wenig doof, aber nuja ...
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

3dcoder

Frischling

Beiträge: 40

Wohnort: Krefeld

  • Private Nachricht senden

5

02.02.2008, 16:23

Ich würde nie wieder etwas anderes nehmen als PostgreSQL :) Ist OpenSource und wir machen fast alles damit - die Datenbank hat uns noch nie enttäuscht. Super stabil, Features ohne Ende und sehr schnell.
Ein genauerer Blick lohnt sich! Bei Fragen zu PostgreSQL steh ich natürlich gern zur Verfügung.

Edit: Unicode wird natürlich schon seit Jahren voll unterstützt ;)

Grüße
3dcoder

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

6

02.02.2008, 16:47

Also da man für MySQL, wenn ich das richtig sehe, bei kommerziellen Projekten eine Lizenz kaufen muss, würde ich spontan eher zu PostgreSQL tendieren. Kannst du mir da eine Starthilfe geben 3dcoder? Benutzt du einen C++ Wrapper dafür? Und gibts da prinzipiell auch die Möglichkeit, die Daten über eine Webseite abzurufen, über php o.ä?

3dcoder

Frischling

Beiträge: 40

Wohnort: Krefeld

  • Private Nachricht senden

7

02.02.2008, 17:03

Zitat von »"rewb0rn"«

Benutzt du einen C++ Wrapper dafür? Und gibts da prinzipiell auch die Möglichkeit, die Daten über eine Webseite abzurufen, über php o.ä?


Ich habe PostgreSQL bisher nur mit JDBC und PHP benutzt - daher befürchte ich, dass du dich in http://pqxx.org/development/libpqxx/ selbst einarbeiten musst (das ist die C++ Anbindung an PostgreSQL).

Wegen Webzugriff kann ich wärmstens phpPgAdmin empfehlen ( http://phppgadmin.sourceforge.net ). Damit kann man so ziemlich alles machen. Es ist das Pendant zum phpMyAdmin.

Wie du PostgreSQL zum Laufen bekommst steht alles hier:
http://www.postgresql.org/docs/8.2/interactive/index.html

Sollten noch Fragen offen sein kannste mich auch gern per ICQ anfunken.

Grüße
3dcoder

8

02.02.2008, 22:38

Für PgSQL und PHP empfehle ich dir PDO zu verwenden. Das ist sehr leicht zu benutzen, objekt orientiert, bietet sehr gute transaktionsunterstützung und es lässt sich später lehr leicht der Datenbanktyp wechseln.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

9

03.02.2008, 00:10

Hmm vielleicht stelle ich unser Projekt auch noch auf PgSQL um. Wir könnten uns ja ggf. gemeinsam in die C-API einarbeiten :)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

10

03.02.2008, 02:25

na sehr gerne :)

Werbeanzeige