php.de

Zurück   php.de > php.de Intern > Off-Topic Diskussionen

Off-Topic Diskussionen Mach mal Pause vom Programmieren!

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 4 Stimmen, 3,00 durchschnittlich.
Alt 11.05.2011, 16:38  
Neuer Benutzer
 
Registriert seit: 05.01.2011
Beiträge: 24
PHP-Kenntnisse:
Fortgeschritten
Frajac befindet sich auf einem aufstrebenden Ast
Standard Browsergame Tutorial

Hi,

mir wurde schön öfter die Frage gestellt, wie man ein Browsergame programmiert und worauf man dabei zu achten hat. Es ist wirklich kein einfaches Thema, bei dem man so manchen Fehler machen kann (und ich bei meinem auch gemacht habe). All denjenigen die es auch einmal mit einem eigenen Game versuchen wollen, möchte ich die Tutorial Reihe auf http://gameseal.net/tutorials nahelegen. Hier erfährt man recht schnell was wirklich dahinter steckt und ob man sich das antun will.

Allen mutigen Browsergameentwicklern wünsche ich gutes Gelingen und viel Erfolg.

Greetz,
- Frajac -

PS: Bei Fragen zum Thema "Browsergames entwickeln" könnt ich mich auch gerne jederzeit anschreiben.
Frajac ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.05.2011, 00:10  
Erfahrener Benutzer
 
Benutzerbild von splasch
 
Registriert seit: 05.01.2009
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
splasch kann nur auf Besserung hoffen
Standard

Fein Tutorials in dieser Richtung gibst nur sehr wenige. Weiter so
splasch ist offline   Mit Zitat antworten
Alt 12.05.2011, 01:59  
Erfahrener Benutzer
 
Registriert seit: 19.06.2009
Beiträge: 837
PHP-Kenntnisse:
Fortgeschritten
Jens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nett
Standard

Also ich hab jetzt nur die ersten beiden Tutorials mal überflogen und würd dringend zu einer Überarbeitung raten.

- 2. Tabelle für das Ranking? Auszählen per PHP? Warum um Himmels willen?
- kombinierter View und Modell? Über das Objektmodell würd ich auch noch mal ein wenig grübeln.

Gruß Jens
Jens Clasen ist offline   Mit Zitat antworten
Alt 12.05.2011, 08:02  
Neuer Benutzer
 
Registriert seit: 05.01.2011
Beiträge: 24
PHP-Kenntnisse:
Fortgeschritten
Frajac befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Jens Clasen Beitrag anzeigen
Also ich hab jetzt nur die ersten beiden Tutorials mal überflogen und würd dringend zu einer Überarbeitung raten.

- 2. Tabelle für das Ranking? Auszählen per PHP? Warum um Himmels willen?
- kombinierter View und Modell? Über das Objektmodell würd ich auch noch mal ein wenig grübeln.

Gruß Jens
Hi,

am besten du liest dir die Tutorials mal ganz durch.

- Warum man die 2. Tabelle beim Ranking braucht wird dort ausführlich beschrieben.
- Das auszählen per PHP ist ein Negativbeispiel. Es wird im Anschluss die performantere Variante gezeigt.
- MVC würde bei den einzelnen Themenabschnitten zu weit führen. Ein eigenes Tutorial zu diesem Thema wird noch folgen.

Grundsätzlich sollen bei den einzelnen Tutorials ausschließlich das betroffene Thema behandelt werden ohne zu weit auszuholen. Es geht hierbei weniger um eine Codesammlung. Vielmehr soll verstanden werden worum es geht, worin die Problematik steckt und wie man damit umgehen kann.

Greetz,
- Frank -

Geändert von Frajac (12.05.2011 um 08:49 Uhr).
Frajac ist offline   Mit Zitat antworten
Alt 12.05.2011, 09:21  
Erfahrener Benutzer
 
Benutzerbild von splasch
 
Registriert seit: 05.01.2009
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
splasch kann nur auf Besserung hoffen
Standard

So wie ich das sehe wird die 2 Tabelle ledigt zum Cachen der ersten Tabelle verwendet. Obs wirklich schneller ist sollte man per Sql befehl mal testen (zb EXPLAIN). Denkbar were das man die selbe Performenc auch über einen index erreichen könnte.

Wenn man schon cached kann man das auch gleich als fertige Datei auf den Server anlegen das were die schnellste Methode um die Daten auszugeben. Da hierbei nicht einmal ein Datenbank zugriff notwendig were.

Zum Karten Tutorial:

Hier fehlt mir die Belegung der einzelnen Felder. Welche Grafik auf welchen Feld dargestellt werden soll. Sowie die Abfrage ob sich jemand schon auf den Feldquadrat befindet. Eine Map in Html darzustellen über php anweisungen ist noch die einfachere Sache. Fehlen tut auch die Map darstellung um 45 Grad gedreht.

Gerade so eine Map darstellung ist bei der Ausgabe oft sehr performenc lastig. Da viele einzelne Html/css befehle vom Browser verarbeitet werden müssen. Und eine Darstellung über 5 mal 5 Felder = 25Felder oft auch schon für den Spieler der Aufbau der Karte sichtbar ist.

Hier mal ein Beispiel wie ich vor jahren die Map umgesetzt habe.
PHP-Code:
<?php 
/**
* Map Berechnen und Erzeugen
* @version 1.1 
* @author Splasch
* frei und besetze Felder ermitteln und Map ausgeben
**/ 
class Map
{
 protected 
$y;     # Länge / Zeile
 
protected $x;     # Breite
 
protected $matr;  # Array Map Matrix
 
protected $map_y# Längen Feld Bereich
 
protected $map_x# Breiten Feld Bereich
 
/**
* Klassen aufruf Start Position übergeben links/oben
* @param Int $x  Breite
* @param Int $y  Länge
*/
public function __construct($y,$x)
{
 
$this->y=$y;
 
$this->x=$x;
 
$this->map_y=$this->get_felder($y);
 
$this->map_x=$this->get_felder($x);
}
/**
* Einlesen eines Karten abschnittes zb 5 * 5
* @param Int $xcord  Breite
* @param Int $ycord  Länge
*/
public function set_map()
{
 
$matr= array();
 
$ycord=$this->map_y;$xcord=$this->map_x;
 
 
$sql="SELECT 
       ba_name,land_id,f_basisid,land.xcord,land.ycord,land_name,land_frei,
       user_id,username 
      FROM 
       land
       LEFT JOIN basis ON land.f_basisid = basis.basis_id
       LEFT JOIN user_land ON user_land.f_landid = land.land_id
       LEFT JOIN login ON user_land.f_userid = login.user_id      
      WHERE        
       land.xcord in("
.$xcord.") AND land.ycord in (".$ycord.") ";
 
#echo $sql;
 
$stmt =Dbpdo::get_db()->query($sql); 
 while(
$data $stmt->fetch(PDO::FETCH_OBJ))
 {
  
$matr[$data->ycord][$data->xcord]['ba_name']=$data->ba_name;
  
$matr[$data->ycord][$data->xcord]['land_id']=$data->land_id;
  
$matr[$data->ycord][$data->xcord]['basis_id']=$data->f_basisid;
  
$matr[$data->ycord][$data->xcord]['land_name']=$data->land_name;
  
$matr[$data->ycord][$data->xcord]['land_frei']=$data->land_frei
  
$matr[$data->ycord][$data->xcord]['user_id']=$data->user_id
  
$matr[$data->ycord][$data->xcord]['username']=$data->username
 }
 
$this->matr=$matr;
}
/**
* Karte erstellen
* @return array $karte
*/ 
public function get_map()
{
 
$y=$this->y;$x=$this->x;$matr=$this->matr;
 
$main_basis="";
 
#return $this->matr;
 
while($y <= $this->4#Länge
 
{
  while(
$x <= $this->4)
  {
  
#offeset abfangen
  
if (isset($matr[$y][$x]['user_id']))
  {
   if(
$matr[$y][$x]['user_id']==$_SESSION['id']) #Eigenes Gebiet
   
{
    if(
$matr[$y][$x]['basis_id'] != null)
    { 
     
$main_basis=$matr[$y][$x]['basis_id'];
     
$zaun=$this->check($y,$x,$_SESSION['id']); #die($zaun);
     
if($zaun!="")
     { 
$karte['bild'][]="basis_".$zaun.".jpg";}
     else 
     {
$karte['bild'][]="basis_solo.jpg";}
 
     
$karte['art'][]="eigene Basis";
     
$karte['name'][]=$matr[$y][$x]['ba_name'];
     
$karte['link'][]="main";        
    }
    else
    {
# Eigenes Land 
     
$zaun=$this->check($y,$x,$_SESSION['id']); #echo$y.$x.$zaun;
     
if($zaun!="")
     { 
$karte['bild'][]="gras_".$zaun.".jpg";}
     else 
     {
$karte['bild'][]="gras_solo.jpg";}  
 
     
$karte['art'][]="eigenes Land";
     
$karte['name'][]=$y." ".$x." ".$matr[$y][$x]['land_name'];
     
$karte['link'][]="land&amp;y=".$y."&amp;x=".$x;
    }
   }
# end eigenes Gebiet
 
   
if($matr[$y][$x]['user_id']!= null && $_SESSION['id'] != $matr[$y][$x]['user_id']) # Fremdes Gebiet
   
{
    if(
$matr[$y][$x]['basis_id']!= null && $main_basis != $matr[$y][$x]['basis_id'] )
    { 
# Fremde Basis
     
$zaun=$this->check($y,$x,$matr[$y][$x]['user_id']); #die($zaun);
     
if($zaun!="")
     { 
$karte['bild'][]="fbasis_".$zaun.".jpg";}
     else 
     {
$karte['bild'][]="fbasis.jpg";}
     
$karte['art'][]="Fremdes basis";
     
$karte['name'][]=$matr[$y][$x]['ba_name'];
     
$karte['link'][]="prof&amp;player=".$matr[$y][$x]['username'];
    }
    else
    {
     
$zaun=$this->check($y,$x,$matr[$y][$x]['user_id']); #die($zaun);
     
if($zaun!="")
     { 
$karte['bild'][]="fgras_".$zaun.".jpg";}
     else 
     {
$karte['bild'][]="fgras_solo.jpg";}
     
$karte['art'][]="Fremdes Land";
     
$karte['name'][]=$matr[$y][$x]['land_name'];
     
$karte['link'][]="land&amp;y=".$y."&amp;x=".$x;
    }    
   }
# end fremdes Gebiet
 
   
if($matr[$y][$x]['user_id'] == null# Freies Gebiet
   
{
    
$karte['bild'][]="gras.jpg";
    
$karte['art'][]="freies Land";
    
$karte['name'][]=$y." ".$x." freies Land";
    
$karte['link'][]="land&amp;y=".$y."&amp;x=".$x;
   }
  }
#end offset
  
else 
  {
   
$karte['bild'][]="gras.jpg";
   
$karte['art'][]="freies Land"
   
$karte['name'][]=$y." ".$x."freies Land";
   
$karte['link'][]="land&amp;y=".$y."&amp;x=".$x;
  }
  
$x++; #Weiter springen 
 
}#end Wihle breite x
 #echo" y:".$y;
 
$y++; #Weiter springen Länge/höhe
 
$x=$this->x#Breite zurück setzen auf beginn start wert nacher Dynamisch angeben
 
}
 return 
$karte;
}
#end get map
/**
* Kordinaten neu berechen für die Abfrage Standard größe 5 Abfrage auf 6 Felder
* @param Int $y
* @return string
*/
public function get_felder($y)
{
 
$map_y="";
 for(
$i=0;$i<5;$i++) # 1 feld mehr in jede Richtung abfragen für den Zaun also 6 Felder
 
{
  
$map_y.=$y.",";
  
$y++;
 }
 
$map_y.=$y;
 return 
$map_y;
}
/**
* Umfeld auf eigene Länder prüfen
* @param Int $y
* @param Int $x
* @return string
*/
protected function check ($y,$x,$id)
{
 
$matr=$this->matr;$pos="";
 
#var_dump($matr[$y][$x+1]);
 
if(isset($matr[$y-1][$x]['user_id']) && $matr[$y-1][$x]['user_id'] == $id)
 {
$pos.="ob"; } # Oberhalb
 
if(isset($matr[$y+1][$x]['user_id']) && $matr[$y+1][$x]['user_id'] == $id)
 {
$pos.="un"; } # Unten
 
if(isset($matr[$y][$x-1]['user_id']) && $matr[$y][$x-1]['user_id'] == $id)
 {
$pos.="li"; } # Links
 
if(isset($matr[$y][$x+1]['user_id']) && $matr[$y][$x+1]['user_id'] == $id)
 {
$pos.="re"; } # Rechts
 
 
return $pos;
 
}
}
?>
Der Aufruf selbst dann
PHP-Code:
<?
$map 
= new Map($y,$x);        # Start Position mittig der Darstellung
$map->set_map();              # Karten Felder Berechnen und Erzeugen
$karte=$map->get_map();       # Matrix der Karte als Array 
$tpl->setLoop("karte",$karte); # Karte am Bildschirm ausgeben (Template).
Weiters für die Html ausgabe benötige ich nur 1 Div element nicht wie in deinen Tutorial für jedes Feld ein Div
PHP-Code:
<div id="map">
   {
loop=karte} <!-- Template Schleife -->
    <
a href="index.php?seite={$link}">
     <
img class="fmap" src="game/style/images/ingame/map/{$bild}" alt="{$art}" title="{$name}">
    </
a>
   {
loop=karte end}
   </
div
Mfg Splasch

Geändert von splasch (12.05.2011 um 09:56 Uhr). Grund: Quellcode Nachtragung
splasch ist offline   Mit Zitat antworten
Alt 12.05.2011, 09:52  
Neuer Benutzer
 
Registriert seit: 05.01.2011
Beiträge: 24
PHP-Kenntnisse:
Fortgeschritten
Frajac befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von splasch Beitrag anzeigen
So wie ich das sehe wird die 2 Tabelle ledigt zum Cachen der ersten Tabelle verwendet. Obs wirklich schneller ist sollte man per Sql befehl mal testen (zb EXPLAIN). Denkbar were das man die selbe Performenc auch über einen index erreichen könnte.
...
Hi Splasch,

die 2. Tabelle wird, wie du richtig erkannt hast, zum zwischenspeichern der Daten verwendet. In eine Datei würde ich die Daten allerdings nicht auslagern, da man oft nur eine kleine Teilmenge benötigt und mit einem einfachen SELECT auf eine Datenbanktabelle schnell und einfach die Daten abrufen kann die man braucht. Eine Datei müsste immer ganz geladen werden. Bei einer größeren Anzahl an Spielern könnte diese recht groß werden.

Die Idee hinter den 2 Tabellen ist folgende.
In die eine Tabelle wird (fast ausschließlich) geschrieben und auf die Andere wird fast nur lesend zugegriffen.
Dadurch erübrigen sich unperformante Datensatzsperrungen mittels Transactions.
Greift man auf eine Tabelle lesend und schreibend zu, kommt es zwangläufig zu Überschneidungen zwischen Lese- und Schreibzugriffen, die durch die Transaktionen abgefangen werden müssen.

Greetz,
- Frajac -

Geändert von Frajac (12.05.2011 um 09:55 Uhr).
Frajac ist offline   Mit Zitat antworten
Alt 12.05.2011, 10:02  
Erfahrener Benutzer
 
Benutzerbild von splasch
 
Registriert seit: 05.01.2009
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
splasch kann nur auf Besserung hoffen
Standard

Zitat:
Zitat von Frajac Beitrag anzeigen
Hi Splasch,

die 2. Tabelle wird, wie du richtig erkannt hast, zum zwischenspeichern der Daten verwendet. In eine Datei würde ich die Daten allerdings nicht auslagern, da man oft nur eine kleine Teilmenge benötigt und mit einem einfachen SELECT auf eine Datenbanktabelle schnell und einfach die Daten abrufen kann die man braucht. Eine Datei müsste immer ganz geladen werden. Bei einer größeren Anzahl an Spielern könnte diese recht groß werden.

Die Idee hinter den 2 Tabellen ist folgende.
In die eine Tabelle wird (fast ausschließlich) geschrieben und auf die Andere wird fast nur lesend zugegriffen.
Dadurch erübrigen sich unperformante Datensatzsperrungen mittels Transactions.
Greift man auf eine Tabelle lesend und schreibend zu, kommt es zwangläufig zu Überschneidungen zwischen Lese- und Schreibzugriffen, die durch die Transaktionen abgefangen werden müssen.

Greetz,
- Frajac -
Da könntest aber gleich dann eine Table View anlegen dazu brauchst du dann nicht extra per script diese ständig aktuallisieren.
(http://sql.1keydata.com/de/sql-create-view.php)

Weiters werden Ranglisten überlicherweise Seiten weiße ausgeben und nicht alles auf einmal. Die Seiten kann man wiederum leicht als Datei cachen.

Zur Karte noch
Die html ausgabe erfolgt bei mir nur über 1 Div element und nicht ein div pro Feld (Perfomenc lastig - divsube)
Code:
<div id="map">
   {loop=karte} <!-- Template Schleife -->
    <a href="index.php?seite={$link}">
     <img class="fmap" src="game/style/images/ingame/map/{$bild}" alt="{$art}" title="{$name}">
    </a>
   {loop=karte end}
   </div>

Geändert von splasch (12.05.2011 um 10:09 Uhr).
splasch ist offline   Mit Zitat antworten
Alt 12.05.2011, 10:39  
Neuer Benutzer
 
Registriert seit: 05.01.2011
Beiträge: 24
PHP-Kenntnisse:
Fortgeschritten
Frajac befindet sich auf einem aufstrebenden Ast
Standard

Das Thema Performanceoptimierung ist natürlich eines für sich. Dazu wird es auch noch ausführliche Tutorials geben.

Thema Dateien.
Angenommen man möchte die Ranglistenposition eines Spielers ermitteln oder immer den Spieler mit den 4 Spieler über und unter ihm anzeigen. Das lässt sich mit Dateien nicht mehr performant realisieren.

Ich bin leider gerade etwas in Eile. Deshalb nur diese kurze Antwort. Sorry.
Frajac ist offline   Mit Zitat antworten
Alt 12.05.2011, 11:01  
Erfahrener Benutzer
 
Benutzerbild von splasch
 
Registriert seit: 05.01.2009
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
splasch kann nur auf Besserung hoffen
Standard

Zitat:
Zitat von Frajac Beitrag anzeigen
Thema Dateien.
Angenommen man möchte die Ranglistenposition eines Spielers ermitteln oder immer den Spieler mit den 4 Spieler über und unter ihm anzeigen. Das lässt sich mit Dateien nicht mehr performant realisieren.
Der Rang erste Spieler sieht dann nur 4 Spieler unter ihm? Schließlich wollen Spieler mehr sehen als eher weniger sehen.
In einer Rangliste soll man schnell einen Überblick bekommen wo die ganze Spieler stehen und net sich mühsam durch viele Seiten zu quälen müssen.

In der Regel werden 15 bis 25 Spieler pro Seite angezeigt. Hier hat er genauso die Information welche 4 oberhalb und unterhalb stehen. Sehe daher wenig sin in so einer Begrenzung.

Nicht selten werden als Premium Features größere Karten abschnitte angeboten weil eben alle Spieler mehr sehen wollen als eher weniger.

Aber selbst auch diese Sachen lassen sich performenc messig über Datein cachen. Dazu sollte man aber auf xml Datein zurück greifen. So wird das Ergebnis über php ausgeben. (xmlReader)

Fehler im Karten Tutorial:
So hab nun mal kurz dein Script getestet:

Folgender Fehler hat sich im Quellcode eingeschlichen
Orginal
PHP-Code:
<?
 $code 
.= '<div style="float: left; width: '.($this->field_width_px-1).'px; height: '.($this->field_height_px-1).'px; margin-right: 1px; margin-bottom: 1px; background-color: '.$color.'; text-align: center;" title=".$caption.">('.$x.'|'.$y.')</div>';
Hier wird als Titel dann $caption ausgeben war sicher nicht beabsichtigt
Korregiert
PHP-Code:
<?
 $code 
.= '<div style="float: left; width: '.($this->field_width_px-1).'px; height: '.($this->field_height_px-1).'px; margin-right: 1px; margin-bottom: 1px; background-color: '.$color.'; text-align: center;" title="'.$caption.'">('.$x.'|'.$y.')</div>'."\r\n"
// ."\r\n" für eine schönere Html Quellcode ausgabe Zeilenumbruch
Kann schon mal passieren das die ' vergessen werden.

Dann gibt es 2 mal eine id ohne dazugehörigen css inhalt.
Daher stimmt dann die Kartendarstellungs ausgabe auch nicht da immer nur nach links versetzt wird bis das ende des Browserbreite erreicht wird. Es wird also nicht am ende der Maximalen Breite eine Zeile nach unten versetzt.
Dies wird warscheinlich über die vergessen Css anweisung mit der Id bewirkt. Zb fixe Breite vorgibt.

Erweiterung
Dynamische css Anpassung
PHP-Code:
<?
// Zeile 69
$code '<div id="mymapwindow" style="width:'.$this->field_width_px*$this->window_width.'px";>'."\r\n";
Dadurch wird die nötige Breite für die Darstellung im Fenster berechnet und immer passend mit ausgeben
Die selbe anpassung muß auch noch die ganze Map darstellung gemacht werden

PHP-Code:
<?
//Zeile 100
$code '<div id="mymap" style="width:'.$this->field_width_px*$this->map_width.'px";>'."\r\n";
Das ganze ohne abstand sieht dann so aus: (Map Generator)
http://250kb.de/u/110512/p/RlddKWjwUiAj.png

Bzw im Kleinen Map Fenster und unterhalb die Gesamte Map
http://250kb.de/u/110512/p/MQxYhZisIutO.png


Der Map Generator ist eine Feine Sache. Erzeugt aber noch zu regelmässig gleich viele Inhalte.(Siehe Screenshoot oben) Es Sollte doch mehr Land geben als Flus oder Berg. Eine Weitere schöne ergänzung dazu were ein Map Editor. Damit kann man schnell sich die Map so gestallten wie man will ohne das man dabei viel Schreibarbeit hat oder auf die Kordinaten zahlen achten muß.

Für ein anderes Game hab ich mal vor langen so einen Map Editor geschrieben der war allerdings sehr langsam *g

Empfehlenswert were es auch wenn du deinen Quellcode mehr Kommentieren würdest.
Gerade Anfänger haben mit der sehr kurzen Beschreibung oft Probleme.

Zu jeder Methode eine genaue Beschreibung were sinvoll. Und auch im Tutorial beschreiben wie der Quellcode arbeitet. Also was er in den einzelnen Schritten macht. Sonst verstehen die meisten Anfänger nicht was hier überhaupt bassiert.

Geändert von splasch (12.05.2011 um 13:29 Uhr).
splasch ist offline   Mit Zitat antworten
Alt 18.07.2011, 12:53  
Erfahrener Benutzer
 
Benutzerbild von splasch
 
Registriert seit: 05.01.2009
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
splasch kann nur auf Besserung hoffen
Standard

@Frajac

Kommen hier auch noch neue Tutorials hinzu oder war das alles?
Find es schade wenn keine mehr dazu kommen!

Mfg Splasch
splasch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Suche] Verstärkung für Browsergame luks2com Freizeit 3 05.08.2010 13:01
Hobby Browsergame Nuc Beitragsarchiv 0 12.11.2009 21:09
Online - Einsatz Browsergame h3nny Beitragsarchiv 2 23.10.2009 22:01
Gesucht: 3D-Grafiker und Programmierer für bestehendes Browsergame Ray94 Beitragsarchiv 1 03.10.2009 23:26
Tutorial: PHP/MySQL und OOP Chriz Tutorials 11 19.08.2009 23:51
Lerne Grundlagen | Quellensammlung cycap PHP Einsteiger 0 12.11.2008 16:23
[Erledigt] Problem mit Tutorial PrisonerOfDreams PHP Tipps 2008 4 16.05.2008 11:59
Browsergame Beitragsarchiv 3 01.04.2005 14:33

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php browsergame tutorial, browsergame tutorial, browsergame tutorial php, browsergame php tutorial, php browsergame, browsergame map programmieren, php spiel tutorial, php game tutorial, browsergames tutorial php, browsergames programmieren, browsergame map tutorial, browsergames php tutorial, php browser game tutorial, browsergame tut, browsergame map, php tutorial für browsergame, browsergame programmieren tutorial, php tutorial browsergame, tutorial browsergame php, browsergame php

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:21 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum