Hallo Dominik1990,
ganz zum Anfang:
Was die Vorposter hier geschrieben haben, stimmt. Ein Browsergame lässt sich nicht mal so nebenbei programmieren und schon gar nicht, wenn du noch lernst. Du kannst dir das gerne als Ziel setzen und ein Spiel allgemein ist ein Ziel, was einen guten Ansporn für die meisten Bereiche der Programmierung bietet, aber dann solltest du das in kleinen Schritten erledigen.
Ich kann von mir nicht behaupten, dass ich weiß, wie man ein Browsergame programmiert, aber ich denke, ich weiß ungefähr, wie man das in der Theorie macht.
Allerdings kenne ich nur C# und MsSQL, kann also anders sein, weil ich keine Ahnung habe, was bei PHP und MySQL anders ist.
Und zwar brauchst du erst einmal eine Datenbank.
Da ich nicht weiß, wie dein Spiel aufgebaut ist, bleibt es bei zwei großen Tabellen (was noch dazu gehört, lasse ich also weg).
Ich würde mit einer Tabelle für den Spieler anfangen. Da kommen die notwendigen SPieler-Daten hinein. Erst mal Name, Alter, Nickname, Punkte, etc.
Danach kommt die Haus-Tabelle. Einfach eine Tabelle, die alle Daten (Größe, Bewohner, etc.) enthält.
Diese beiden Tabellen stehen dann in einer 1 - n - Beziehung. Ein Spieler, n Häuser. Beginnend bei 1.
Wie du das machst, musst du selber wissen, oder schaust unter Programmieren bei meiner Frage zu MsSQL. Da hab ich genau nach dem gefragt und eine gute Antwort bekommen.
Nun gut, das wäre unsere Mini-Datenbank. Aber noch kann sie eigentlich nix anderes, als Daten speichern und ausgeben. Also müssen noch einige Methoden eingebaut werden. Wie z.B. eine Methode mit dem Namen "Erweitern". Die macht dann im Hintergrund folgendes:
- Den Wert "Größe" um einen bestimmten Wert erweitern
- Den Wert "Maximale Bewohner" um einen bestimmten Wert erweitern
- Das Bild von dem Haus löschen und durch ein neues Bild von dem größeren Haus ersetzen
Es müssten noch enige Tabellen, Methoden und Beziehungen mehr hinein, aber das reicht erst einmal als Beispiel.
Wenn die Datenbank dann mit allem Drum und Dran komplett ist, kommt das eigentliche Spiel. Bei C# gibt es dafür ASP. Das ist objektorientierte Programmierung mit Net.Framework-Unterstützung, die im Web genutzt wird. Das Problem ist allerdings, dass nicht unbedingt jeder Server ASP unterstützt, wenn du das also hoch laden willst und es bei einem kostenlosen Server bleiben soll, solltest du bei PHP bleiben.
Bei C# würde ich es dann allerdings wie folgt machen:
Die Datenbank implementieren, damit ich sie verwenden kann.
Zu Beginn kommt die Anmelde-Seite. Die Daten für die Tabelle "Spieler" werden eingegeben oder auf einen Standart-Wert gesetzt.
Im Spiel selber kannst du dann die einzelnen Methoden in der Datenbank aufrufen, oder Dinge tun, wie z.B. "Anderes Haus angreifen". Das würde dann die Daten von zwei Spielern beeinflussen.
Ich würde also eigentlich nur vorher alle Möglichkeiten, die der Spieler hat, als Methoden erstellen (alles in direkter Zusammenarbeit mit der Datenbank) und dann nur noch diese Methoden während des Spiels aufrufen.
Das Problem dabei ist vermutlich nicht das Aufrufen, sondern, dass du alles bei den Methoden beachtest. Denn ein genaues Konzept des Spieles reicht nicht aus. Du musst auch jede Information genau definieren, jede Möglichkeit beachten, Fehler und Ausnahmen rechtzeitig abfangen und du musst jede Auswirkung, die eine Option haben kann, mit bedenken. Das kann verdammt viel werden, also stelle es dir nicht so einfach vor.
Ich bin zwar selber kein Freund davon, aber in manchen Fällen, besonders bei SQL-Datenbanken, solltest du dir vorher genau den Inhalt jeder Tabelle, jede Beziehung und jede Methode überlegen und genau wissen, was sie wie tun. Das erleichtert dir später das Programmieren enorm, kostet aber auch eine Menge Vorbereitungszeit.
Das größer Problem ist aber die Grafik. Bilder anzeigen und ändern ist kein Ding. Das kann jeder, der sich etwas mehr in solche Programmiersprachen eindenkt, aber es ist langweilig.
Ich habe selber einige Jahre Stämme gespielt und war auch ziemlich gut, aber was mir an Stämme gefallen hat und was die etwas eintönige Grafik überdekt hat, war das sehr geschickt und spannend durchdachte Spiel-Konzept. Und das bekommt man wahrscheinlich erst hin, wenn man die Erfahrung hat. Und das haben die Betreiber von Stämme ganz sicher ^^
Ganz abgesehen davon wurde es mir auch langweilig, weil ich nix mehr lernen konnte und einfach alles konnte.
Wenn du also nicht mit einem extrem guten und lange spannenden Spiel-Konzept aufwarten kannst, brauchst du eine gute Grafik, die am besten 3D ist und auch Interaktion im Spielfeld selber ermöglicht.
Und davon habe ich nicht die geringste Ahnung, weil das bei C# alles über die DirectX-Klassen geregelt wird. Hab mir das mal ein bisschen angeschaut, aber rein gar nichts hinbekommen.
Ich hoffe, die ist jetzt halbwegs klar, was soetwas bedeutet. Ich will dir dein Ziel nicht austreiben, aber es ist besser, wenn du noch einiges an Zeit davor in andere kleinere Projekte investierst, bis du tief genug in der Matherie bist und genug Erfahrung vorweisen kannst.
Gruß
ot:
PS:
Ich behaupte nicht, dass das alles, was ich geschrieben habe, auf Fakten, Tatsachen und Profi-Erfahrung beruht.
Ich habe mein bisheriges Wissen kombiniert und mit Hilfe von meinem Verständnis der objekt Orientierten Programmierung versucht, den Kern der Funktionsweise eines Spieles zu erfassen und zu erklären. EGal, ob ein Browsergame, oder ein installiertes Spiel. Da nimmt sich nicht viel, außer die Umsetzung der Darstellung, denn das Spiel im Hintergrund läuft trotzdem nur als normales Programm auf dem Server.
Wer also was zu bemeckern hat, ich lasse mich gerne belehren^^
Edit:
Ich seh grad, dass der Thread ja urald ist. -.-
Hab ich mir die ganze Arbeit gemacht, wo er wahrscheinlich gar nicht mehr liest.
Naja, freut euch an meinem Roman zur Spiel-Erstellung, oder lasst es bleiben^^
Vielleicht hilft es ja irgendwem.