Abschluss der Entwicklung - Beta 1 kommt am Wochenende

Geöffnet als Baustelle! ;) Umbauarbeiten erfolgen noch über einige Bereiche!
Bild von Teralios.de

Eigentlich hätte die erst Beta-Version des QuizCreators vor 2 - 3 Wochen bereits erscheinen sollen, aber leider kommt es erstens anders, zweitens als man denkt. Für die Verzögerung möchte ich mich natürlich bei euch entschuldigen, vor allem weil ich die Verzögerung auch selbst verursacht habe. Ich war nämlich mit dem neuen Game-Code nicht so zufrieden, wie ich es hätte sein sollen und habe deswegen noch mal von vorne begonnen.


In den ersten Versuchen habe ich mich leider oftmals in unsinnigen Wechselbeziehung aus Logik und reiner Darstellung wieder gefunden. Der Code selbst war zwar bereits besser zu lesen und zu verstehen, als der ursprüngliche Code, gleichzeitig haben aber diese Wechselbeziehungen und daraus basierenden Verkettungen dazu geführt, dass der Code noch schwerer zu warten war, als vorher und so Erweiterungen des Codes unweigerlich irgendwann zu Problemen geführt hätte. Der richtige Gedanke für den Code kam mir also vor ca. einer Woche und entsprechend musste ich noch mal alles umbauen.


Nun arbeitet das Spielfeld mit drei Komponenten: Logik (Game.ts, Helper.ts), View (Question.ts, General.ts und Information.ts) und der Section (Main.ts, Header.ts). Diese Aufteilung spielt nun bei der Entwicklung auch wirklich seine ganze Stärke aus. Neben diesen 3 Bestandteilen für das Spiel, gibt es noch eine vierte Komponente Data, sodass ich zu einem MVC-Konstrukt komme, dass ich aber ein wenig angepasst habe für das Spielfeld. Die Logik lädt ein Quiz, initialisiert die Views und aktualisiert sie. Die Views wiederum sind für die Darstellung zuständig und bekommen einfach für die passenden Aktionen ein Callback aus der Logik. Die Sections wiederum sind die groben Abschnitte des Spielfeldes und bekommen von der Logik gesagt, welcher View angezeigt werden soll, sie sind damit auch ein Part von View und sind auch wegen der CSS-Effekten notwendig. Aktuell habe ich eine Kaskade von 3 setTimeout. Das ist wichtig, weil die Effekte des aus und einblenden per CSS gelöst sind. Etwas Eye-Candy muss ja auch sein.


Neben Eye-Candy geht es bei der nun gewählten Lösung aber auch darum, dass (1.) der DOM-Baum nicht mehr in der Form manipuliert wird, wie es bisher getan wurde - was für den Browser besser ist - und dass zukünftig auch (2.) neue Typen von Fragen in die Quizze integriert werden können. Die erste Version des QuizCreators war für mich zu weiten Teilen noch ein Experiment und diente auch dazu, dass ich mich wieder verstärkt mit CSS, HTML und JavaScript befasse - PHP konnte ich ja vorher schon - und auch dass ich mir neue Techniken erarbeite. Gerade mit JavaScript stand ich lange Zeit auf Kriegsfuß. JavaScript war eher Pflicht als Kür, das hat sich nun aber nach und nach geändert und gerade TypeScript macht mir echt viel Spaß.


Neben dem neuen JavaScript fürs Spiel - der Browser führt ja JavaScript aus, nicht TypeScript - war natürlich auch ein wichtiges Anlegen für Version 1.5, dass ich mich ein wenig mit der Darstellung der Quizze emanzipiere und auch versuche eigene Wege zu gehen, bei denen man sich zwar inspirieren lässt, aber nicht quasi eine der bereits vorhanden Ansichten aus dem WSC 1:1 kopiert und nur minimal anpasst. Natürlich habe ich euch bereits die verschiedenen Ansichten vorgestellt:

,
.


Natürlich will ich an dieser Stelle nicht nur auf die Artikel verlinken, sondern euch auch noch mal die Bilder des neuen Interfaces zeigen:

Bild von Teralios.de Bild von Teralios.de Bild von Teralios.de Bild von Teralios.de Bild von Teralios.de

Mir hat diese Überarbeitung sehr viel Spaß gemacht, vor allem konnte ich auch sehr viel lernen, was ich immer am wichtigste finde. Für mich heute zählt es nicht möglichst schnell etwas Funktionales umzusetzen, sondern ich will mich selbst verbessern und auch etwas Neues schaffen. Das führt dann auch mal dazu, dass ich funktionierende Ideen auch wieder verwerfe und neu anfange.

Pläne für die Zukunft - Was wird mit Version 2.0 passieren?

Ich bin ein Freund offener und klarer Kommunikation und deswegen direkt vorweg: Die Integration von JCoins wird sich verschieben, und zwar auf Version 2.0. Das Frontend ist nun weitgehend umgebaut und in einem Stand, der mir wirklich gefällt. Ich will nicht sagen, dass es nicht besser geht, aber ich in nun hier an einem Punkt, der für mich gut genug ist und das war schon eine lange Reise.


Nur zeichnet sich bereits jetzt am Horizont bereits WSC 5.5 ab und auch hier kommen wieder einige interessante Änderungen, die dabei helfen den Code besser zu organisieren und zu gestalten und vor allem auch noch sauberer zu werden. Das WSC 5.5 bringt ein verbessertes Event-System, dazu kommt auch, dass man die Sprachen also auch Dateien effektiv aufräumen kann und dazu kommt auch das ColorFormField. Damit lassen sich endlich ein paar weitere Funktionen komfortabel umsetzten, die eigentlich für Version 1.0 bereits angedacht waren, aber wegen dem fehlenden Feld nicht umgesetzt wurde. Ich schreibe nicht gerne Polyfills.


Es geht in der nächsten Version aber auch darum das Backend - also das ACP - zu verbessern, und zwar vollständig. Natürlich ist die aktuelle UI bereits vergleichsweise gut - ich habe da auch lange dran getüftelt - aber es geht eben immer noch besser. Ebenso kommen mit WSC 5.4 bereits einige Änderungen, die dann in die Version 2.0 mit einfließen.


Was steht also für Version 2.0 auf den Plan? Nun zuerst das offensichtliche: Bei Goals können die Icons nun eingefärbt werden. Ebenso hinzu kommt die Möglichkeit einen Hintergrund zu wählen und auch diesen ein zu färben. Leider vermutlich nicht ganz so schön, bei den Trophäen von WoltLab, aber hey es kommt! Das ist aber nur eine kleine Detailverbesserung.


Mit Version 2.0 wird dann auch endlich der Support für JCoins integriert, besser alles was dafür notwendig ist. Klar, ich könnte das nun auch jetzt machen, aber da auch der PHP-Code aufgeräumt und überarbeitet werden soll, würde ich mir die Arbeit in dem Moment doppelt machen.


Und als letzte große Änderung kann ich auch folgendes ankündigen: Bei der Überarbeitung des ACP und des PHP-Codes wird das Fragesystem flexibler gestaltet und ich werde Fragetypen umsetzen. Es gibt dabei ein paar Grenzen, da ich auch auf die Bedienbarkeit achten muss! Ebenso möchte ich anmerken: Der QuizCreator ist kein Tool um Tests nachzustellen. Multiple-Choice-Fragen, bei denen mehrere Fragen richtig sind, kann man zwar prinzipiell umsetzen, doch müsste man hier auch ein paar Sachen beachten. Es in den neuen Code zu integrieren, wäre nicht so kompliziert und gleichzeitig wäre es das doch.


Aber zum Beispiel Bilder zu Fragen oder auch Schätzfragen sind da nicht mehr so das Problem und ich werde mir darüber Gedanken machen diese Fragen auch einzubauen. Ihr könnt gespannt sein, was kommt!