Wie machen die das?

the snake II

Erfahrenes Mitglied
Hallo zusammen,

Ich bin 'fortgeschrittener Anfänger' in PHP (... d.h. Anfänger Buch gekauft...rumexperimentiert...und autodidaktisch ein bisschen mehr von der Programmiersprache angeeignet).

Ein paar kleiner Scripts später kam mir die Idee, ein kleines Spiel zu programmieren. Ich bin zu dem Schluss gekommen, dass Grafikgames (wie Tetris o.Ä.) mehr was für Flash und Java (...C++ etc.) ist.
Das bedeutete, dass man in PHP besser Spiele programmieren kann, die auf Text basieren z.B. Wirtschaftssimulationen (und/oder etwas wie G-wars etc.).
Ich verstehe aber nicht, wie die Programmierer das anstellen. Ich meine ich habe gar keinen Durchblick mit welcher Technik die Arbeiten.
Also um nochmal auf den Titel zurückzukommen;
'Wie machen die das?'.

Nach welchem Schema und mithilfe welcher Technik gehen die Programmierer dieser Onlinegames vor?
 
Also eigentlich ist das alles nur ein geflecht aus MYSQL und PHP scripten ;)

Ne, mal im Ernst ein Browser game zu schreiben ist eine ziemlich größe sache und läuft hauptsächlich über Datenbanken.
In den Datenbanken werden die Infos von den Usern, wieviel Schiffe Rohstoffe bla bla die haben gespeichert und per Script bearbeitet.
Wie genau die das machen kann ich dir nicht sagen, weil bestimmt jeder etwas anders macht.
Ich würde dir empfehlen erstmal mit kleineren Sachen weiterzumachen.
Ein Gästebuch schreiben, mit PHP und Mysql.
Dann bekommst du ein gefühl dafür wie groß ein solches Projekt wird.
Beispiel Gästebuch.

Zuerst ist da nur der Eintrag des Users 1 Tabele.
Dann kommt noch eine Kommentarfunktion und eine Reload sperre. Jetzt sind es schon 3 Tabellen.
Je mehr funktionen du rein baust um so größer wird es und um so mehr wirst du verstehen wie die Browsergames schreiben und warum es so viel aufwand ist.

MfG

Ecthelion

PS: hoffe ich hab das alles einigermaßen verständlich geschrieben!
 
Danke für die Antwort.
Ecthelion hat gesagt.:
Ich würde dir empfehlen erstmal mit kleineren Sachen weiterzumachen.
Ein Gästebuch schreiben, mit PHP und Mysql.
Hab ich bereits geschrieben.

Mit meiner Frage wie die das machen, meinte ich, wie die vorgehen, das hast du ja auch schön beschrieben.

Außerdem möchte ich ja kein Onlinegame für 6500 Spieler wie G-Wars oder so schreiben, sondern eine 'Anfänger Version'. D. h. mit ganz wenigen Extras etc.

PS: Also ich habs verstanden ;)
 
Ich würd dir empfehlen, wenn du wirklich keinen Überblick hast mal ein Opensource-Onlinegmae zu laden. Da bekommt man eine Methode mit. Es gibt viele verschiedene Methoden.
Entweder machst du ein Tickbasiertes oder ein Echtzeitspiel.
Beim tickbasierten Spiel hast du bestimmte Scripts, die alles möglich wichtige Berechnen. z.B. fertigstellung von Gebäuden, die Angriffe oder die Pkt.
Bei einem Echtzeitspiel macht dies meist der User selber, indem er die Seiten aktualisiert. Da könnte man zum Beispiel mit einer Auftragsliste arbeiten, wo dann drin steht, wann wer wen angreift oder wann ein Gebäude fertig ist. Diese Liste arbeitet dann jeder User ab und hält somit das Spiel online. Aber da muss man auch Kompromisse ziehen.
Ein tickbasiertes Spiel aktualisiert immer alles, egal ob wirklich was geschehen ist oder überhaupt nichts passiert. Ein Echtzeitspiel aktualisiert nur wirklich was, wenn was ansteht. Dies hat aber auch Vor- und Nachteile. Wenn viele Leute auf dem Server sind ist ein Echtzeitspiel immer ein wenig Komplizierter zu handhaben, weil du diese Liste eben so gestalten musst, dass wirklich nur ein Eintrag nur einmal ausgeführt wird. Es kann aber zum Beispiel vorkommen, dass 2 User zur gleichen Zeit auf die Liste zugreifen und somit die Leute eine identische Aktualisierung durchführen, was ja nicht Sinn der Sache ist.

Könnte dir nun weitere Sachen erzählen, aber du willst ja nur erstmal ein Einblick bekommen. Viele Echtzeitspiele täuschen dem Nutzer nur vor, dass jeder Sekunde aktualisiert wird. Dies ist aber bestimmt nicht der Fall. Das würde den Server sprengen :)
 
Klingt vermutlich ziemlich theoretisch, aber ein gutes Konzept geht über alles! Wenn du eine klare Idee hast, was du willst, und das vielleicht auch mal auf einem Blatt Papier festgehalten hast, dann musst du dir eigentlich nur noch überlegen, wie das konkret in der MySQL-Datenbank aussehen soll, also welche Tabellen und PHP-Scripte du brauchst. Mehr steckt da eigentlich nicht dahinter - es gibt kein grosses, gut gehütetes Geheimnis zum Thema Browser-Games programmieren. ;)
 
Einige Programmierer sagen auch, dass man PostgreSQL nutzen sollte anstatt MySQL. Kann dies aber noch nicht bestätigen.
Auf was du achten solltest bei der Spielearchitektur. Index auf wichtige Spalten vergeben. Kaum Joins verwenden und vorallem keine Updates überdie ganze Tabelle machen. Das zieht am Server ungemein, weil MSql meist den ganzen Arbeitsspeicher nutzt von dem Server und damit alles lahm legt ;) Auch die Datenbankarchitektur spielt eine sehr große Rolle. Normalisierst du deine Datenbank ziemlich stark hast du vielleicht auch wieder das Problem, dass du auf viele Tabellen zugreifen musst, um auf dein Ergebnis zu kommen. Normalisierst du die DB dagegen weniger hast du mehr Zugriffe auf ein und dieselbe Tabelle was auch wieder die Performance drückt.
 
Ich programmiere z.Z. für einen Kunden ein solches Spiel, für einen Anfänger ist davon nur abzuraten.
Alleine das Konzept dauert eine halbe Ewigkeit, da eine kleine Änderung im nachhinein fatale Folgen auf den gesamten Code und die gesamte Datenbank haben kann (da man die db ja möglichst schonen sollte ;)) . Von daher ist für einen Anfänger absolut abzuraten (ausser er hat sehr sehr viel Zeit und Nerven, so paar Monate ;))
Alleine die Datenbank habe ich gut 5 mal abgeändert, und damit meine ich nicht hier und dort ein Feld hinzugefügt, sondern komplette Tabellen mit anderen vereint und danach wieder den Code umschreiben dürfen.

Ich würde dir Empfehlen ein kleines CMS zu bauen, wie PHPkit, PHPNuke oder Typo3 oder was auch immer. Das klingt jetzt vielleicht schwieriger, ist aber letztendlich ganz einfach. Solch ein Teil schreib ich mitlerweile in wenigen Tagen (bei Sonderwünschen dauerts natürlich mal ne Woche :-) :-))


Also dann, viel Spass damit.

mfg - sagg
 
Hallo

Ich gebe dir einen Tipp, der dir wirklich kein Geld aus der Tasche ziehen soll.
Gehe in die nächste Buchhandlung und frage nach dem PHP5 Praxisbuch von Wolfgang Kannengiesser.

So was bei mir, und plötzlich habe ich es geschafft eine Komplette Webseite zu schreiben.

Das Buch hat mich 25 Euro gekostet. Aber es wäre mir ein vielfaches Wert gewesen.
Dort bekommst auch eine gute Einführung in GD Bibliotheken, was dir recht hilfreich sein könnte.

Ich arbeite ständig mit diesem Buch, und es hilft mir beim lösen von Problemen.
Nimm dir das mal zu Herzen, ich will hier echt keine Werbung machen, noch kenne ich den Author persöhnlich.

Du wirst sehen, welche Welt sioch dir öffnen wird.

Grüsse!
 
@Lukasz

Ich hoffe du hast dir die Studentenausgabe geholt. Da gibt es das PHP5 Praxisbuch und das MYSQL 4 Buch von Kannegieser in einem für 25 Euro. Also das hatte ich mir geholt, weil wenn man gleich mal 2 wichtige Themen in einem Buch hat...

Kostenpunkt war auch 25 Euro

edit: Mist das war ja von Matthias Kannegieser nicht vom Wolfgang :)

Naja aber ich denk mal fast die selben ;)
 
Zurück