# Browsergame programmieren



## Levitan (19. Februar 2008)

Hi Leute.

Ich habe vor ein Browsergame auf die Beine zu stellen nur bin ich mir unsicher womit ich anfangen soll.... Also Open Source oder selber Programmieren....

Ich habe mich mal in PHP eingelesen und mir ist aufgefallen das es sehr dem Javascript ähnelt....

Ich habe in JavaScript und PHP bis jetzt folgende Kentnisse:
Grundschritte wie Variablen
Bedingungen und halt so mathematische sachen formulare ( mit HTML ) usw.

Als nächstes wollte ich mit MySQL und PHP anfangen....
Also ich hab mir mal die Sktruktur von MySQL angeguckt und ich denke das ich das verstanden habe....


Als nächstes wollte ich fragen Wie man denn z.B. die Forschungen oder Gebäude updates Programmiert.... Diese werden doch in der MySQL Datenbank unter dem jeweiligen account abgespeichert oder ?


----------



## m0rius (19. Februar 2008)

Ich gehe jetzt mal nicht auf die kaum vorhandene Ähnlichkeit zwischen den beiden Sprachen ein, sondern auf deine inhaltlichen Fragen: Ja, für die Gebäude gibt es normalerweise eine extra Tabelle in der Datenbank (sofern nur ein Dorf vorhanden; sonst gibt es Tabellen für die Dörfer), in der die Stufe abgespeichert wird.
Fürs Upgraden schreibst du eine Funktion, die von einem Script aufgerufen wird, das der User ausführt, wenn er eine Gebäude erlaubt upgradet.


----------



## Levitan (19. Februar 2008)

m0rius hat gesagt.:


> Ich gehe jetzt mal nicht auf die kaum vorhandene Ähnlichkeit zwischen den beiden Sprachen ein, sondern auf deine inhaltlichen Fragen: Ja, für die Gebäude gibt es normalerweise eine extra Tabelle in der Datenbank (sofern nur ein Dorf vorhanden; sonst gibt es Tabellen für die Dörfer), in der die Stufe abgespeichert wird.
> Fürs Upgraden schreibst du eine Funktion, die von einem Script aufgerufen wird, das der User ausführt, wenn er eine Gebäude erlaubt upgradet.





Also mit ner if funktion...

wenn er geld fürn ausbau hat, dann der eintrag inner datenbank.... Was kommt dann ? 
bekommt jede stufe der gebäude ne neue id wo die neuen kosten des neuen updates drin ist oder woher weiß er die neuen kosten ?

wenn des update ne neue id hat, müsste er ja von id 1 zu 2 wechseln oder seh ich das falsch ?


----------



## Layna (19. Februar 2008)

Spontan zusammengedacht:
Ein gebäude hat eine id, eine art (Lager, Fabrik...), einen Besitzer, und einen ausbaustufe.
Wenn der Besitzer Bedingung XY erfüllt, darf Ausbaustufe erhöht werden.
Was die Bedingung für den Ausbau ist ergibt sich aus Gebäudeart und Ausbaustufe.

Hoffe da shilft dir etwas weiter .

Layna


----------



## m0rius (19. Februar 2008)

Das Gebäude hat eine gewisse Stufe, aus der sich der Preis zum Upgrade errechnen lässt.
z.B. 

```
$preis = 5*$stufe * $stufe;
```


----------



## Kingkevin (28. August 2008)

leute ich wünsch euch viel spass hab das zum glück alles schon hinter mir!

http://worldunions.wo.funpic.de

noch ne kleine baustellle aber geht schon voran!
MfG DJK1992


----------



## SimonErich (28. August 2008)

@Levitan

Ganz ehrlich. Ich denke es fehlt dir an den Grundlagen für so ein Spiel.
Ein Browsergame ist nicht ganz einfach zu programmieren.
Du solltest wirklich gut in PHP drauf sein und vor allem dich mit der Datenbank auskennen. So ein Spiel kann sehr schnell Performancelastig werden und da solltest du viel Ahnung von DB Optimierung haben.
Eine gute Datenbankstruktur (hier braucht man viel erfahrung) und durchgedachte queries sind wohl sehr wichtige Aspekte, für die man einiges an Erfahrung braucht, das man nur erhält, wenn man selbst ein mal ein bisschen herumgespielt hat.

Was bei so einem Spiel auch sehr wichtig ist:
Javascriptwissen. Hier reichen Grundkenntnisse, die du dir angelesen hast einfach nicht aus.

Ganz ehrlich. Bevor du so ein Game machst, solltest du dich zuerst an 2-3 anderen "kleineren" Projekten betätigen um die Grenzen, ... von PHP, Javascript, Mysql heraus zu finden. Dann kannst du dich erst an so etwas machen.
Denn an der Performance wird es sicher Probleme geben und von der Sicherheit möchte ich gar nicht erst beginnen.

Ausserdem solltest du dir im klaren sein, dass so etwas nicht in einer Woche ensteht, sondern Zeit braucht.

viel glück dennoch.


@Kingkevin
ich würde dir empfehlen das Design etwas zu ändern. Ganz ehrlich: es sieht nicht besonders professionell aus und passt auch nicht zu einem Spiel 
Ich weiß nicht ob du es nur aus Testzwecken oder wirklich auf funpic hosten willst, aber ich würde dir davon abraten, denn das geht nicht lange gut. 

Grüße Simon


----------



## Dark Ranger (29. August 2008)

Ich programmiere auch schon länger an einem Browsergame. Habe vorher lange Zeit damit verbracht erstmal zu überlegen, was ich erreichen will und wie ich es vielleicht realisiere. Bin nun lange dabei und habe schon einiges programmiert und zwischendurch fallen einem immer wieder Fehler auf (gestern erst einen großen behoben ) außerdem bastelt man sich immer wieder funktionen, die einem das programmieren erleichtern und man merkt, dass manche Sachen nicht so gehen wie man es sich vorstellt oder einfach nur nicht sicher genug sind, denn das müssen sie ja auch sein.

@Kingkevin:
Wie mein Vorredner schon meinte, würde ich das Design ändern, außerdem fehlen mir irgendwie so ein paar ausgaben, baue Bank aus und es leitet weiter usw. aber ich habe erstmal gedacht es würde nichts ausgebaut. Auch der Login war komisch, alles eingetragen, login gedrückt, dann bin ich wieder auf der startseite, nichts mehr eingetragen und ich so toll, geht nicht, gucke bisschen später und ich bin drin, finde ich schon sehr komisch


----------



## worldunions (20. September 2008)

Hi leute,
ich bin der Kumpel von Kingkevin. Das Browsergame hat sich nun wieder weiterentwickelt. Die Grafiker von uns sind bei den grafiken dabei und ich bin am programmieren und sicherheitslücken stopfen. Is ne Menge Arbeit.
Inzwischen haben wir ne de Domain

http://www.worldunions.de

wenn ihr aber ins Spiel wollt müsst ihr mir eine Mail an *DJK1992@worldunions.de* schreiben. Derzeit kommen nur die Testspieler ins Game!

MfG DJK1992


----------



## splasch (21. September 2008)

@Levitan

Versuch dich mal einer Gruppe anzuschliessen und dort erfahrungen auszutauschen zu können dafür gibst schon zahlreiche Foren wie zb. http://www.seberoth-online.de/
Allein mit kaum php kentnissen wird das nix werden man macht viel zuviele fehler dabei bwz ist dann erst garnicht in der Lage gewisse sachen umzusetzen.

Man muß sich schon ein wenig mal mit der Material auskennen bevor man an das Programmieren von Games rangehen kann.

@worldunions
Von deinen Game kann man leider net viel sehen ein parr mehr Information bwz. Screenshoot auf der Startseite weren da angebracht.

Mfg Splasch


----------



## worldunions (21. September 2008)

Na klar. Ist ja aber alles noch im Aufbau und das Design ist ja noch lang nicht fertig. Meine Grafiker brauchen halt noch ne weile und ich muss halt auch noch ne Menge machen. haste dich schon regestriert

MfG Daniel


----------



## worldunions (21. November 2008)

*Browsergame: worldunions.de*

So, jetzt bin ich etwas weiter (2-3 Monate). Schaut es euch einfach nochmal an!

http://worldunions.de

MfG worldunions


----------



## Napofis (21. November 2008)

deine HTML Gliederung ist etwas falsch

- vor der DTD kommt kein kommentar
- includierte scripte kommen in den Head nicht zwischen body und head
- den body/head tag sollte man am ende auch wiederschliesen
- die weiterentwicklung von iso-8859-1 wurde vor jahern schon eingestellt nimm lieber utf-8
- du schreibst die links auch falsch
- classen können nur einmal pro tag angegeben werden

guckst du hier

```
<a class="starlink" href="thickbox/spielregeln.php?height=400&width=600" class="thickbox" title="Spielregeln">Spielregeln</a>
```


----------



## splasch (22. November 2008)

@worldunions

Dafür das net mal fertig ist schon viel Werbung drauf!
Dazu zahlreiche fehler

Startseite:

line 17 column 1 - Warnung: <script> isn't allowed in <html> elements
line 4 column 1 - Info: <html> previously mentioned
line 18 column 1 - Warnung: <script> isn't allowed in <html> elements
line 4 column 1 - Info: <html> previously mentioned
line 21 column 18 - Warnung: replacing unexpected b by </b>
line 21 column 157 - Warnung: discarding unexpected </span>
line 27 column 1 - Warnung: discarding unexpected </div>
line 63 column 12 - Warnung: <input> element not empty or not closed
line 64 column 16 - Warnung: <input> element not empty or not closed
line 65 column 1 - Warnung: <input> element not empty or not closed
line 75 column 62 - Warnung: unescaped & or unknown entity "&width"
line 75 column 1 - Warnung: <a> dropping value "starlink" for repeated attribute "class"
line 76 column 58 - Warnung: unescaped & or unknown entity "&width"
line 76 column 1 - Warnung: <a> dropping value "starlink" for repeated attribute "class"
line 97 column 45 - Warnung: <img> element not empty or not closed
line 105 column 47 - Warnung: unescaped & or unknown entity "&width"
line 106 column 48 - Warnung: unescaped & or unknown entity "&width"
line 107 column 52 - Warnung: unescaped & or unknown entity "&width"
line 71 column 1 - Warnung: <div> anchor "box" already defined

Frame:

line 1 column 1 - Warnung: missing <!DOCTYPE> declaration
line 5 column 134 - Warnung: unescaped & or unknown entity "&ai"
line 5 column 389 - Warnung: unescaped & or unknown entity "&num"
line 5 column 395 - Warnung: unescaped & or unknown entity "&adurl"
line 5 column 486 - Warnung: unescaped & or unknown entity "&client"
line 1 column 7 - Warnung: inserting missing 'title' element
line 1 column 13 - Warnung: <style> inserting "type" attribute
line 2 column 120 - Warnung: <script> inserting "type" attribute
line 5 column 17 - Warnung: <body> proprietary attribute "leftmargin"
line 5 column 17 - Warnung: <body> proprietary attribute "topmargin"
line 5 column 17 - Warnung: <body> proprietary attribute "marginwidth"
line 5 column 17 - Warnung: <body> proprietary attribute "marginheight"

Die Anderen Seiten hab ich mir erst garnicht mehr angesehen

Mfg Splasch


----------



## Jacka (22. November 2008)

Hi!

Tolle Screenshotseite! Leider ohne Screenshots.... 

Grüße,
Jacka


----------



## worldunions (22. November 2008)

Danke für die Infos. Ich werd mir das mal genauer anschauen. Das mit der class weiss ich zwar aber habs nicht gesehen.

Wo bekommt man eigentlich diese Fehlermeldungen alle her? Ist das irgend so n Befehl oder was?


MfG Worldunions


----------



## pHyro (22. November 2008)

Huhu,

hier z.B. kannst du deinen HTML-Code checken lassen (spuckt 21 Fehler und 11 Warnungen aus, also einiges zu tun )

LG

pHyro


----------



## Loomis (22. November 2008)

Oder das HTML Validator Add-On für Firefox installieren.


----------



## worldunions (22. November 2008)

Ich finde diese Fehler nicht so schlimm. Und das iso hab ich drin, wegen den sonderzeichen, wenn ich utf-8 rein mach, macht er bei den sonderzeichen nur ?.

Was lässt sich denn da machen dass ich utf-8 nehmen kann und die äöüÜÄÖÜ usw richtig augegeben werden und keine .

MfG worldunions


----------



## pHyro (23. November 2008)

Du ersetzt alle Sonderzeichen durch die entsprechenden HTML-"Codes": 
http://de.selfhtml.org/html/allgemein/zeichen.htm#umlaute

lG


----------



## tamtam (23. November 2008)

worldunions hat gesagt.:


> Ich finde diese Fehler nicht so schlimm. Und das iso hab ich drin, wegen den sonderzeichen, wenn ich utf-8 rein mach, macht er bei den sonderzeichen nur ?.
> 
> Was lässt sich denn da machen dass ich utf-8 nehmen kann und die äöüÜÄÖÜ usw richtig augegeben werden und keine .
> 
> MfG worldunions



Es reicht ja nicht das charset im header zu ändern - die dateien selbst müssen ja auch unter UTF-8 gespeichert sein. Prinzipiell bietet UTF8 viel mehr Sonderzeichen als ISO-Formate. Das was pHyro vorgeschlagen hat wäre dadurch ebenfalls überflüssig.

BTW: Fehler sind Fehler - ob du sie persönlich schlimm findest oder nicht ist in dem Fall eigentlich relativ unerheblich. Es gibt gewisse Standards an die man sich einfach halten sollte.


----------



## Loomis (24. November 2008)

So viele Fehler sind es ja garnicht mehr:


```
<meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" />
```


```
<option value="europa" selected="selected">
```

Und alle Input-Felder:

```
<input type="password" name="user_passwort" class="text" />
```

Ganz am Ende des Dokumentes fehlt noch:

```
</div>
</body>
</html>
```

Das wars dann für die Startseite.


----------



## worldunions (2. Dezember 2008)

Ich mach jetzt ne ganz neue Version, wenn diese veröffentlicht wird gebe ich bescheid!


----------

