Splinter (http://splinter.comasu.de/index.php)
- Comasu MORPG (http://splinter.comasu.de/board.php?boardid=50)
-- Programmierung (http://splinter.comasu.de/board.php?boardid=57)
--- Zum Nachdenken... (http://splinter.comasu.de/thread.php?threadid=194)
Geschrieben von MoG am 25.03.2007 um 22:28:
Zum Nachdenken...
Hoi
Es stellen sich noch ein paar kleine Fragen, für die man recht bald eine Lösung finden sollte:
1) Charakter-Erstellung
Der erste Schritt in unserer Programmierarbeit wird die Charakter-Erstellung sein.
Wenn wir das alles in OOP gestalten wollen, müssen wir uns auch früh darauf einigen. Macht es Sinn, schon hier direkt eine Klasse zu bilden, nur weil die Eigenschaften von Spielern mit denen von Monstern übereinstimmt?
Wo liegt der Sinn von Klassen, wenn wir doch genauso gut einfach die Datenbank abfragen können
2) Weltkarte
Das für mich größte Problem... Bisher wurde es beim C-RPG wie folgt gelöst:
Man nehme eine Welt mit 500x500 Feldern. Der Spieler bewegt sich einfach von Feld zu Feld (500x500 ist eine recht große Welt ^^)
Ich hatte es damsl in X und Y Koordinaten unterteilt und somit eine Datenbank-Tabelle mit den Spalten x und y angelegt. Um alle Felder unterzukriegen kam ich auf eine Länge von 250.000 Zeilen/Einträgen
Das ist definitiv zu viel, daher wird dringend nach Lösungsalternativen gesucht.
Die Welt (500x500) in mehrere kleine Felder teilen? (100x100) dann hat man mehrere Tabellen ^^
Ging mir grad so durch den Kopf und sollte geklärt werden.
Geschrieben von Sir Toby am 26.03.2007 um 12:22:
Hallo,
also es ist die Frage, ob man bei der Char-Erstellung schon eine Klasse Spieler benutzt, wäre dann theoretisch einheitlich und sauber aber unter Umständen einiges an umständlicher.
Aber in dieser Klasse könnte man schön alles auslagern und bräuchte es nur noch im Char-Erstellungs Script aufrufen. Habe aber kaum Erfahrung mit OOP in PHP kann daher auch nur bedingt Lösungsansätze liefern, ich nutze das jetzt auch zum lernen.
Tja, mit der Karte ist's schwierig. Man kommt wohl kaum um die Speicherung der einzelnen Felder in der DB umhin bei dem jetzigen System aus C-RPG. Die Aufteilung in abgetrennte "Karten" wäre eine Möglichkeit, um Datenbankabfragen performanter zu gestalten und hilft sicher auch beim Mapdesign. Allerdings bräuchte man dann wieder eine "Mastermap" in welcher die Anordnung der Karten festgelegt ist. Sprich mehr Verwaltungsaufwand, auch bei der Bewegung.
Aber es wäre denke ich die Lösung, welche sich am besten skalieren und warten ließe.
Ein anderer Ansatz, wenn es rein um die Minimierung der Daten der Karte geht, wäre nicht jedes Feld zu speichern, sondern nur Bereiche, welche gleiche Eigentschaften haben. Dazu gibt es dann Extratabellen für Städte und Spezielle Orte, in denen diese mit Koordinaten eigetragen sind.
Nachteil: Es wird schwieriger, einzelne Felder exakt zu definieren und die Variation der Gebiete leidet vermutlich.
Nur mal so auf die Schnelle.
Gruß,
Sir Toby
Geschrieben von MoG am 26.03.2007 um 12:37:
Moin ^^
@OOP:
Ich kenn die Theorie nur aus meinen Informatikstunden, da lernt man das für Kursarbeiten, aber man bekommt nicht gesagt, wo und wie die Anwendung sinnvoll wäre. Jeder kennt das Beispiel von der Klasse Körper mit den Eigenschaften Höhe, Breite, Tiefe, Farbe...
Ist ja alles schön und gut, aber wo besteht explizit der Vorteil, wenn ich das z.B. auf die Charaktererstellung übertrage?
Ich meine, wenn ich die Daten via Datenbank abfrage, hab ich ja ein Array, meinetwegen $userdaten. Da kann ich doch auch einfach auf die Werte zugreifen $userdaten[klasse]
Ich kann mir einfach noch keine Vorteile darunter vorstellen ^^
Wegen der karte hab ich nochmal Makaan eine PN geschickt, er hat sich beruflich auf Datenbanken spezialisiert. Mal schaun, was er dazu sagt.
Aber im Endeffekt dürfte eine eine Spaltung der karte effektiver sein, muss ja weniger abgefragt werden... *grmpf*
mfg mog
Geschrieben von Sir Toby am 26.03.2007 um 12:48:
Hi,
ja, hast schon recht wenn man allein die Erstellung des Chars betrachtet macht OOP keinen Sinn, dafür ist es wohl überdimensioniert. Jeglicher anderer Ansatz ich warscheinlich kürzer und schneller.
Bin mir da aber auch unsicher.
Ah, dass hört sich interessant an. Bin gespannt, was Mak dazu sagen wird.
Gruß,
Sir Toby
Geschrieben von MoG am 26.03.2007 um 17:18:
[quote=Makaan]
[...] Was deine Fragen angeht werd ich mich morgen an die Beantwortung wagen. Zu den Dingen, die ich nicht selbst beantworten kann, werd ich mal unseren Datenbankadmin befragen. Der sollte es auf jeden Fall ganz genau wissen.
Dann bis morgen
Gruß
Makaan[/quote]
so viel dazu ^^
Vielleicht war die Lösung vom C-RPG doch nich so schlecht. Die langen Wartezeiten beim Bewegen auf der Weltkarte können auch an der schlechten Programmierung liegen ^^
Forensoftware: Burning Board 2, entwickelt von WoltLab GmbH