Ein eigenes CMS

28. März 2018

CMS steht für Content-Management-System. Damit meint man in den meisten Fällen Webanwendungen, mit denen sich Webseiten und deren Inhalte möglichst einfach verwalten lassen. Content-Management-Systeme gibt es mittlerweile wie Sand am Meer. WordPress, Joomla, Drupal, Typo3 und andere leisten hervorragende Arbeit. Wozu sollte man also ein eigenes System programmieren?

Zunächst einmal, weil das durchaus Spaß machen kann. Man befasst sich mit Techniken, über die man sich vorher nie Gedanken gemacht hat. Viel entscheidender als der Spaß ist für mich aber das Beherrschen eines Systems. Aus­schlag­ge­bend war für mich das Spiel CYPEST. Das Spiel selbst übermittelt Daten in eine Datenbank, vorzugsweise Anmeldedaten der Spieler und Bestwerte. Diese Daten müssen verarbeitet und an das Spiel zurück geschickt werden. Da man heute für ein Spiel ohnehin noch eine eigene Webseite braucht, gibt es hier drei Möglichkeiten.

Man kann die Webseite mit einem handelsüblichen CMS oder nur per HTML erstellen und die Daten Daten sein lassen. Das heißt, dass die Daten nur vom Desktop-Spiel verarbeitet werden. Das wäre die einfachste Lösung, aber sie würde bei einem Spiel, das von zahlreichen Bestwerten lebt, sehr komisch wirken. Man spielt gegen die ganze Welt, aber auf der Webseite merkt man davon nichts? Unerhört!

Die zweite Möglichkeit ist, dass man ein bestehendes CMS nimmt und die Elemente, die man für das Spiel braucht, als Erweiterungen selbst programmiert. Wenn man die Logik hinter WordPress, Joomla und Co durchdrungen hat, ist das sicher eine feine Sache. Man stolpert aber auch ganz schnell über Probleme, auf die ich gleich eingehen werde.

Die dritte Möglichkeit ist das eigene CMS. Anfangs ist das sicherlich viel mehr Arbeit, schließlich muss man viele Dinge machen, die bewährte Systeme bereits seit vielen Jahren haben. Eines der größten Vorteile für mich ist aber ein schlankes System. Man passt sein CMS komplett auf das Spiel ab, auf diesen einen Fall und kann alles was überflüssig ist, ausblenden. Das hilft nicht nur bei der Administrierung, sondern auch bei Themen wie Ladezeiten, Datenbankabfragen und dergleichen. Alles in allem hat man hier den höchsten Grad an Flexibilität.

Für CYPEST war das die beste Entscheidung, die ich treffen konnte. Am Anfang war lediglich eine Desktop-Version geplant. Mittlerweile arbeiten wir an einer Browser-Version und das ist eine wesentliche Änderung. Der Spieler muss sich im Browser registrieren und anmelden können. Das bedeutet: Die Verschlüsselung der Daten muss genauso ablaufen wie im CMS. Wenn man das CMS selbst schreibt, ist das nur ein kleines Problem. Setzt man auf ein bewährtes CMS, muss man im schlimmsten Fall die Verschlüsselungstechnik des Spiels anpassen, was dazu führen kann, dass Versionen zueinander nicht mehr kompatibel sind. Der Desktop-Account würde mit dem Browser-Account nicht mehr funktionieren. Das ist eine Katastrophe, selbst wenn man nicht viele Spieler hat.

Doch auch ein anderer Umstand macht ein eigenes CMS vergnüglich. Ich betreibe momentan, inklusiver dieser Seite, zwei mit WordPress. Es vergeht kaum eine Woche ohne Updates. Bei manchen Updates des Systems folgen Updates der PlugIns. Das bedeutet folgendes: Wenn ich, wie oben beschrieben, die Spielerdaten als PlugIn für WordPress erstellt hätte, müsste ich nun nach jedem Update prüfen, ob noch alles funktioniert und alles kompatibel ist. Das ist, zumindest aus meiner bescheidenen Sicht, blanker Horror. Ich müsste mich laufend in Dokumente einlesen um zu erfahren, war im WordPress im Hintergrund geändert hat. Bei einem eigenen CMS habe ich das selbst im Kopf und dabei noch mein eigenes, sehr schlankes PlugIn-System entwickelt.

Inspiriert von der Film- und Fernsehserie Terminator habe ich meine erste CMS-Engine “T-600” genannt. Die niedrige Zahl (die coolen Terminatoren beginnen erst bei 800) ist dem Umstand geschuldet, dass es meine erste Engine war und entsprechend verbesserungswürdig ist. Das ist, wenn man so ein System mit mehreren 10000 Zeilen Code schreibt, völlig normal. Deshalb kommt diese Engine nur bei dem Spiel zum Einsatz. Momentan plane ich die “T-800” Engine, die komplett neu geschrieben wird. Beispielsweise war das Usersystem bei der T-600 nie angedacht und wurde im Zuge der Browserversion aufgesetzt. Die T-800 soll von Anfang an auf einem User Management Framework basieren. Da das immer ein heikles Thema ist (Sicherheit und so), baue ich auf ein kleines OpenSource-System und schreibe den Rest (der immer noch extrem umfangreich sein wird) selbst. Vorwiegend in PHP.

Wozu der Aufwand? Für ein neues Spiel? Nicht wirklich. Ich wollte schon lange ein eigenes, sehr flexibles CMS haben um spezielle Webseiten und Anwendungen zu schreiben. Beispielsweise für Firmen. Oder für reine Browserspiele. Oder einem Online-Turnierplaner für Schach. Ideen habe ich dutzende, aber ohne eine gesunde Basis, also der Engine, bringt das alles nichts. Klar kann ich jedes Mal beispielsweise Joomla nehmen und PlugIns schreiben, aber dann habe ich erneut die bereits beschriebenen Probleme. Und abgesehen davon ist es ja auch ein ganz nettes Hobby. wink

1
Hinterlasse einen Kommentar

avatar
1024
1 Kommentar Themen
0 Themen Antworten
0 Follower
 
Kommentar, auf das am meisten reagiert wurde
Beliebtestes Kommentar Thema
0 Kommentatoren
Gedanken über ein eigenes CMS – Bastian Calando Letzte Kommentartoren
  Abonnieren  
neueste älteste meiste Bewertungen
Benachrichtige mich bei
trackback

[…] « Ein eigenes CMS […]