Browsergame Map System

Bubble10

Mitglied
Hallo,

wenn ihr den Titel ließt denkt ihr sicher sofort... omg noch sonen , der denkt er könne ein BG (Ogame clone) programmieren...
Dem ist nich so, Konzept usw. alles schön ausgearbeitet (kein Clone, definitiv nicht), bis auf ein Punkt.

Die Map. Die Map selber, soll so wie eine Übersicht der Räume in einem Chat sein.
Wo welcher Raum liegt und ob ich zugang zu dem Raum hab etc. Daten darüber liegen in einer DB vor.

Nun hat ich mir überlegt, das aktuelle Bild welches gebraucht wird mit imagecreate zu erstellen. Weil Räume hinzukommen können(passiert aber eher selten) wäre die Lösung dynamisch etc. Da das aber viel Ram oder CPU frisst, denk ich wäre das nich so das wahre.

2. Idee war es eine Große Map berechnen zu lassen 4000*4000 zum Beispiel diese zu teilen und die Teile (die Teile müssen je nach Bedarf dann neu berechnet werden) dann auf'n Server speichern und dann bei Bedarf ausgeben. Denke mal wahrscheinlich die beste Idee. Da es weniger CPU Leistung frisst.

Von vornherein ich will keine 16*16 Bilder(oder sowas), diese dann in einer Tabelle ausgeben usw. wie's manche BG's machen. Das sieht einfach nur scheußlich aus.

Habt ihr bessere Ideen oder Vorschläge bin für alles offen.
 
Ehrlich gesagt, das einzige Resourcenkritische an Idee 1 ist, wenn man diese Idee nicht richtig umsetzt. Die CPU macht das locker mit, und der RAM an für sich auch, wenn man den temporären Speicher, der für das Erzeugen eines Bildes angelegt wird mit DestroyImage() immer wieder schön freigibt.

Aus meiner Sicht spricht nichts gegen Variante 1, wenn man das alles nicht gerade bei einem FreeWebspaceHoster ablegt, was bei einem BrowserGame ja sowieso nicht zu empfehlen ist!
 
Kannst du nicht so machen, bevor du eine neue Map generiest das du nach schaust ob du diese nicht schon hast.
Wenn nein, dann generierst du diese und speichert das Bild auf dem Server.
Wenn du die Map, oder das Bild hast bindest du es einfach ein.

Damit hättest du es dynamisch, und CPU schonender.

Oder ist es immer ein großes Bild das du erstellst, und verändert werden muss?

Dann würde es natürlich nicht gehen.
 
Zuletzt bearbeitet:
Ehrlich gesagt, das einzige Resourcenkritische an Idee 1 ist, wenn man diese Idee nicht richtig umsetzt. Die CPU macht das locker mit, und der RAM an für sich auch, wenn man den temporären Speicher, der für das Erzeugen eines Bildes angelegt wird mit DestroyImage() immer wieder schön freigibt.

Aus meiner Sicht spricht nichts gegen Variante 1, wenn man das alles nicht gerade bei einem FreeWebspaceHoster ablegt, was bei einem BrowserGame ja sowieso nicht zu empfehlen ist!

FreeHoster auf keinen fall :D

Aber sonst ich weiß nich wie sich das mit PHP verhällt, wieviel die CPU verkraftet bei jedem Seitenaufruf ein Bild von bsp. 400*600 zu berechnen bei ~100 Usern is das doch schon heftig oder?


Kannst du nicht so machen, bevor du eine neue Map generiest das du nach schaust ob du diese nicht schon hast.
Wenn nein, dann generierst du diese und speichert das Bild auf dem Server.
Wenn du die Map, oder das Bild hast bindest du es einfach ein.

Damit hättest du es dynamisch, und CPU schonender.

Oder ist es immer ein großes Bild das du erstellst, und verändert werden muss?

Dann würde es natürlich nicht gehen.

Das wär doch Idee 2 so zusagen oder?
Wobei das Bild so oder so nur verändert wird wenn es neu geladen wird.



Danke für die schnellen Antworten :)
 
~100 User pro Tag, oder pro Stunde, oder pro Minute, oder pro Sekunde?
Bei ~100 Usern pro Tag ist das kein Problem, pro Stunde dürfte je nach Server auch noch gehen, aber pro Minute wird dann schon kritisch, da dann ja knapp 2 User pro Sekunde aktiv sind... Bei ~100 Usern pro Sekunde müssen wir natürlich nicht darüber reden! Wobei, ein Oktacore könnte das schaffen ;)
 
Hi,

ich weiß nich wie das Game einschalgen wird kann wirklich keine genauen Daten liefern die Daten kommen von meinem alten Klone die hatten 100 User pro Tag.

Mhh nen Kumpel hatte Flash mit Xml vorgeschlagen? Fragen wir mal so was gibts denn sonst für alternativen?

MFG
Bubble
 
Zurück