Mit begrenzt meinte ich lediglich das ich nicht alles kann. So würde ich z.B. kein Templatesystem gecodet bekommen.
Also ein simples Template system zu erstellen ist einfach vorallen jetzt wo man OOP nutz.
Die meisten Sachen bekomme ich auch selber hin. Davon mal abgesehen will ich ja auch nicht den Leuten sagen was sie zu machen haben und wie das Spiel im kleinsten Deteil sein soll, sondern möchte ich das Team da auch drin integrieren. Ansonsten könnte ichs ja wirklich alleine machen.
Also da wieder sprichst dich aber nun selber kein Template erstellen können aber die meisten anderen sachen kannst du? Ich glaub da mußt du noch sehr viel php lehrnen wird oft unterschätz der Umfang.
Man muß ja nicht jeden verbieten seine eigene Ideen mit einzu bringen aber ein fertiger Leitfaden were von Vorteil ohne dem Endet das Erfahrungsgemäss in einen Kaos.
Stell dir vor jeder macht was er will.Danach passt kein Teil mehr mit dem anderen zusammen. Zb. Um es einfach zu erklären wenn jetzt jeder macht was man will und ihr wollt ein Auto bauen dann macht der eine einen 5 meter große innen Austattung und der andere eine 3 meter große Kasserie. Wie du sieht passt am Ende dann nix mehr zusammen vorallem bei der Programmierung sollte man sich auf einen Standart einigen.
Weil ich glaube keinem macht es Spaß für Lau etwas zu coden wo er kein Mitspracherecht hat. Deshalb bekommen die Entwickler zugang zum Entwicklerforum wo das Konzept auch verfeinert werden soll.
Es macht auch keinen Spaß wenn nur kaos herscht und am ende feststellen muß das keiner was tut bwz man nur immer alles alleine machen muß. Weil der Projektleiter sag da kenn ich mich nicht aus. Aber eine Richtline gebe ich auch net vor ihr macht am besten die ganze Arbeit allein. Ich sage nur was ich im Game drinen haben möchte.
Ich habe übrigends schon ein paar Ideen. Das Konzept überarbeiten ist also vieleicht gar keine so schlechte Idee. Auch wenn das Wort Konzept vieleicht falsch gewählt war. Es ist vielmehr eine Erklärung meiner Ideen.
Ja der Name (Konzept) weicht doch ein wenig vom Inhalt ab. Erklärung zu deiner Idee trifft es da genauer.
Wichtig Punkte in einen Konzept schnell und kurz Aufgelistet sollten unter anderen sein.
.)Ziel des Spieles
.)Welche Zielgruppe möchte man mit dem Game ansprechen
.)Aufbau des Spieles
.)Was unterscheidet das Spiel von anderen
.)Detallierter Spiel information (was soll wann bassieren)
.)Geplante dauer der Erstellung für die einzellen punkte (Nicht die Gesamt dauer)
unsw.
So hier noch eine kleines einfach Template system für dich (Klasse)
PHP:
class Template
{
protected $templateDir = "templates/"; // Der Ordner in dem sich die Template-Dateien befinden.
protected $languageDir = "language/"; // Der Ordner in dem sich die Sprach-Dateien befinden
protected $leftDelimiter = '{$'; // Der linke Delimter für einen Standard-Platzhalter
protected $rightDelimiter = '}'; // Der rechte Delimter für einen Standard-Platzhalter
protected $leftDelimiterF = '{'; // Der linke Delimter für eine Funktion
protected $rightDelimiterF = '}'; // Der rechte Delimter für eine Funktion
protected $leftDelimiterC = '\{\*'; /* Der linke Delimter für ein Kommentar * Sonderzeichen müssen escaped werden, weil der Delimter in einem RegExp * verwendet wird. */
protected $rightDelimiterC = '\*\}'; /* Der rechte Delimter für ein Kommentar * Sonderzeichen müssen escaped werden, weil der Delimter in einem RegExp * verwendet wird.*/
protected $leftDelimiterL = '\{L_'; /* Der linke Delimter für eine Sprachvariable * Sonderzeichen müssen escaped werden, weil der Delimter in einem RegExp * verwendet wird.*/
protected $rightDelimiterL = '\}'; /* Der rechte Delimter für eine Sprachvariable * Sonderzeichen müssen escaped werden, weil der Delimter in einem RegExp * verwendet wird. */
protected $templateFile = ""; // Der komplette Pfad der Templatedatei.
protected $languageFile = ""; // Der komplette Pfad der Sprachdatei.
protected $templateName = ""; // Der Dateiname der Templatedatei
protected $template = ""; // Der Inhalt des Templates.
public function template($tpl_dir = "", $lang_dir = "")
{
// Template Ordner ändern
if (!empty($tpl_dir)) {
$this->templateDir = $tpl_dir;
}
// Language Ordner ändern
if (!empty($lang_dir)) {
$this->languageDir = $lang_dir;
}
return true;
}
/**
* Die Templatedatei öffnen
*
* @access public
* @param string $file Dateiname des Templates
* @return boolean
*/
public function load($file)
{
// Die Eigenschaften zuweisen
$this->templateName = $file;
$this->templateFile = $this->templateDir.$file;
// Wenn ein Dateiname übergeben wurde, versuchen, die Datei zu öffnen
if(!empty($this->templateFile)) {
if($fp = @fopen($this->templateFile, "r")) {
// Den Inhalt des Templates einlesen
$this->template = fread($fp, filesize($this->templateFile));
fclose ($fp);
} else {
return false;
}
}
// Die methode replaceFuntions() aufrufen
$this->replaceFunctions();
return true;
}
/**
* Die Standard-Platzhalter ersetzen
*
* @access public
* @param string $replace Name of var which should be replaced
* @param string $replacement Text with which to replace the var
* @return boolean
*/
public function assign($replace, $replacement)
{
$this->template = str_replace($this->leftDelimiter.$replace.$this->rightDelimiter, $replacement, $this->template);
return true;
}
/**
* Die Sprachdateien öffnen
*
* @access public
* @param array $files Dateinamen der Sprachdateien
* @return boolean
*/
public function loadLanguage($files)
{
// Die Dateinamen der Sprachdateien
$this->languageFiles = $files;
// Versuchen, alle Sprachdateien einzubinden
for ($i=0;$ilanguageFiles);$i++) {
// wenn die Datei $this->languageDir.$this->languageFiles[$i] nicht existiert
if (!file_exists($this->languageDir.$this->languageFiles[$i])) {
return false;
}
// Einbinden...
include($this->languageDir.$this->languageFiles[$i]);
// !! jetzt steht das Array $lang zur Verfügung
}
// Die Sprachvariablen mit dem Text ersetzen
$this->replaceLanguage($lang);
// $lang zurückgeben, damit $lang auch im PHP-Code verwendet werden kann
return $lang;
}
/**
* Replace language vars with text
*
* @param string $lang
*/
function replaceLanguage($lang)
{
$this->template = preg_replace("/\{L_(.*)\}/isUe", "\$lang[strtolower('\\1')]", $this->template);
}
/**
* Die Funktionen ersetzen
*
* @access protected
* @return boolean
*/
protected function replaceFunctions()
{
// Includes ersetzen ( {include file="..."} )
while(preg_match("/".$this->leftDelimiterF."include file=\"(.*)\.(.*)\"".$this->rightDelimiterF."/isUe", $this->template)) {
$this->template = preg_replace("/".$this->leftDelimiterF."include file=\"(.*)\.(.*)\"".$this->rightDelimiterF."/isUe", "file_get_contents(\$this->templateDir.'\\1'.'.'.'\\2')", $this->template);
}
// Kommentare löschen
$this->template = preg_replace("/".$this->leftDelimiterC."(.*)".$this->rightDelimiterC."/isUe", "", $this->template);
return true;
}
/**
* Das fertige Template ausgeben
*
* @access public
* @return boolean
*/
public function out()
{
echo $this->template;
return true;
}
}
?>
Und da sind jetzt wirklich keine schwirigen php befehl bwz funktionen drin. Diese Simple Template klasse unterstützt sogar verschiedene Sprachversionen.
Bsp zu anwendung der Template Klasse
PHP:
// Eine neue Instanz der Template Klasse erzeugen
$tpl = new Template();
/ Das Templatedatei laden
$tpl->load("index.tpl");
// Die Sprachdatei laden
$langs[] = "de/sprache.php";
// Sprachen einlesen
$lang = $tpl->loadLanguage($langs);
// Dem Platzhalter $titel den Text "Willkommen" zuweisen
$tpl->assign("title", "Willkommen");
// Template am Bildschrim ausgeben
$tpl->out();
Die Template Platz halter im den Html Code sehen dann so aus {$titel} .Alles was in den 2 geschwungen Klammer steht wird dann durch den gewünschten dynamischen inhalt ersetzt.
Mit {include file="templatedatei.tpl"} kann man weiter Template datein hinzufügen.
Hier noch ein Beispiel für die Sprach Übersetzung Datei
$lang['titel'] = "Startseite";
?>
Mfg Splasch