Mindestenssechszeichen...keine Panik!

Lecker Buchstabensuppe

20. März, 01:48 von Yhoko
Text. Es ist schon verblüffend, wie man als Autor nur ein paar Worte zu schreiben braucht, um im Kopf des Lesers eine ganze Welt zu erschaffen. Manchmal reicht sogar ein einzelner Begriff, wie etwa "Spielplatz", und schon sieht jeder vor seinem inneren Auge... nun ja, zunächst einmal etwas anderes, aber grundsätzlich doch dasselbe. Je nach Region, Kultur und persönlichen Erlebnissen sieht so ein Spielplatz anders aus, bei mir enthält er z.B. eine Schaukel, Wippe, Rutsche und Kinder, die lachend vorbeirennen. Und siehe da, mein inneres "Bild" hat sogar Ton! Und Wetter. Und Kinder. Diese tragen Kleidung. Haben Stimmen. Der Wind ist lau, lässt Blätter sanft rauschen. Es duftet nach frisch gemähtem Gras, am blauen Himmel sind kaum Wolken zu sehen, es ist früher Nachmittag und das Ganze befindet sich in einer kleinen Stadt irgendwo im deutschsprachigen Europa. Das alles, und bei genauerem Hinsehen noch viel mehr, kann in einem einzigen Wort stecken. Ist das nicht Wahnsinn? Aber, wie schon erwähnt, sieht dieses Bild bei jedem etwas anders aus und während manche Szenen beim einen Leser als Füllmaterial durchgehen, wecken sie beim Nächsten schon alte Erinnerungen, Gefühle und Erlebnisse, wodurch sie in diesen Köpfen besonderes Gewicht erhalten.

Diese Faszination verfolgt mich schon lange. In den Köpfen der Leute etwas zu wecken, sie auf eine fantastische Reise mitzunehmen und in eine Welt zu entführen, die im Wesentlichen ihre eigene ist. Nur schade, dass es umso schwerer ist, mehrere Leute in dieselbe Welt hineinzuziehen. Es bedarf schon deutlich mehr als einem Wort, um einen Sachverhalt so genau zu beschreiben, dass am Ende jeder zumindest einigermassen dasselbe sieht, hört, spürt oder sonstwie wahrnimmt. Aber es funktioniert, weil die Details, die nicht erwähnt werden, auch gar nicht so wichtig sind. Wenn etwa ein "Baum" gefällt wird, um die Strasse zu blockieren, spielt es keine Rolle, wie seine Blätter aussehen, ob der Stamm glatt oder furchig ist, hell oder dunkel, dick oder dünn – Hauptsache, er liegt am Ende vor dem hupenden Auto.

Meine zweite grosse Leidenschaft sind Videospiele, was ich sicher nicht weiter ausführen muss. Erwähnenswert ist aber, dass ich kürzlich damit begonnen habe, beides zusammenzuführen. Unter dem Namen TEFLON, was für "text flow engine" steht, erschuf ich ein Werkzeug zur Darstellung und Verarbeitung von Textspielen, wobei der Begriff relativ weit gefasst werden kann.

Anfangs konzentrierte ich mich auf die wirklich klassischen Text-Adventures, wo man selbst "Nimm Zahnstocher" tippen muss, merkte aber bald, dass damit einige Probleme verbunden sind (und damit meine ich nicht nur das gebrochene Deutsch bei der Eingabe). Beispiel Verben und Synonyme: Der Spieler muss tatsächlich herausfinden (also raten und ausprobieren) mit welchen Wörten er bestimmte Aktionen auslösen kann – und ich als Entwickler müsste vorrangig möglichst viele Synonyme und Begriffe eingeben, damit das nicht in völligem Frust ausartet. Wer dann verzweifelt "Benutze Auto", "Starte Karre", "Lass den Motor an" oder "Dreh den Zündschlössel" eingibt und immer nur die Meldung "Das funktioniert nicht." zurückbekommt, verliert schnell das Interesse am Spiel (richtig wäre wohl gewesen: "Fahr los"). Das Thema ist also mühsam für beide Parteien und davon wollte ich abkehren.

Eine Lösung bestand darin, dem Spieler die möglichen Verben konkret zu nennen. Das sieht dann etwa so aus; gibt man nur "Tür" ein, listet TEFLON die Aktionen dieses Zielobjekts auf: untersuchen, öffnen, oder aufschliessen. Es kann dann immer noch sein, dass "öffnen" nicht funktioniert (weil sie abgeschlossen ist und man erst den Schlüssel finden muss), doch zumindest sieht man direkt, dass etwa "eintreten" nicht implementiert wurde. Damit fällt immerhin das Raten bei Verben weg, aber die Gegenstände selbst benötigen immer noch ihre Synonyme (Eingangstür, Eingang, Haustür, Holztür, etc.) und die wollen vom Entwickler eingetragen werden.
Versteht mich nicht falsch; gerade das (Er-)raten macht womöglich den Reiz dieser Spiele aus, und das Erfolgserlebnis ist entsprechend gross, wenn eine Aktion auf Anhieb klappt, aber unterm Strich ist es doch mehr ein Durchknobeln mit viel Ausprobieren, was beide Parteien viel Zeit und Nerven kostet. Davon kann man zwar abkehren, indem man z.B. alle interaktiven Objekte im Beschreibungstext der Szene erwähnt oder gar hervorhebt, oder sich im Falle der Aktionen auf ein kleines Set an Verben einigt (etwa geh/schau/öffne/nimm; Monkey Island lässt grüssen), doch damit wiederum geht der Reiz des Unbekannten irgendwie verloren und man könnte die Wörter genausogut anklicken statt sie einzutippen. Moment, anklicken? Das klingt sympathisch, zumal es auch Touch-Steuerung ermöglicht...

So kam ich zu der Erkenntnis, dass ich vornehmlich eine Story vermitteln möchte und das Knobeln mich als Entwickler, sicher aber auch die Spieler, bestenfalls ausbremst und schlimmstenfalls zum Wahnsinn treibt. Infolgedessen passte ich das alte Dialogsystem (aus Endyr) für TEFLON an und begann damit, ein Spiel nur auf dieser Basis zu entwickeln. Statt also Texte einzugeben erhält man mehrere Antworten präsentiert und muss nur noch das Gewünschte auswählen, mit Tatatur (1 bis 5), Maus oder dem Finger. Gerade auf Mobilgeräten, wo das Tippen ohnehin recht mühsam und zeitfressend wäre, muss dabei keine Tastatur eingeblendet werden und es bleibt mehr Platz zum Lesen. Und glaubt mir, es bleiben immer noch genug Texte für mich einzugeben, denn linear soll der Verlauf damit noch lange nicht sein!

Das Ergebnis ist die Geschichte einer jungen Magierin namens Mendéll, die sich in einer Welt, in der Magie streng verboten ist, irgendwie durchs Leben schlägt. Das Ganze basiert auf der Vorlage meines Buches "Die scharlachrote Magierin", bietet dem Spieler zahlreiche Wahlmöglichkeiten und beinhaltet sogar ein rundenbasiertes Kampfsystem. Wer möchte, ist herzlich eingeladen, die ca. 45-minütige Demo direkt hier im Browser zu spielen.
Es handelt sich dabei mitunter um einen Taser für Kickstarter, denn ich möchte dieses Projekt in den kommenden Monaten umsetzen und benötige dafür finanzielle Unterstützung... eure Unterstützung! Daneben bin ich auch besonders froh um Mundpropaganda und natürlich Rückmeldungen zu Spiel, Story und Technik.


Ich hoffe nun, dass ich das Abenteuer in Textform einigen von euch näherbringen oder gar schmackhaft machen konnte, und dass eure Namen bald bei Mendéll in den Credits auftauchen – genau das ist nämlich eine der Kickstarter-Belohnungen.

Also danke schonmal und bleibt gesund!

Yhoko
Themen: Technik VideospieleNews

Halbrunde Farben

16. Juli 2019 von Yhoko
Farben sind für Programmierer immer irgendwie problematisch, denn es sind an sich keine Zahlen. Computer können aber nur mit Zahlen, also muss man die Farben irgendwie umwandeln. Das wohl berühmteste Farbmodell "RGB" dürfte dabei jedem ein Begriff sein, der schon irgendwie mit Farben am Computer zu tun hatte. Das Prinzip ist simpel; man stellt jeden der drei Farbaspekte (Rot, Grün, Blau) mit einem Byte (von 0 bis 255) dar und aus der Kombination ergeben sich alle möglichen Bildschirmfarben. Himmelblau ist beispielsweise als "R34 G113 B179" definiert (gemäss RAL Palette).

Nun ist es recht mühsam und platzverbrauchend, Farben immer auf diese Weise anzugeben. Man könnte die Buchstaben weglassen, da die Reihenfolge klar ist, aber "34 113 179" ist immer noch recht umständlich einzugeben. Viel praktischer ist es, wenn man für jeden Farbaspekt immer 1 oder 2 Buchstaben eintragen kann – und hier leistet das Hexadezimalsystem (kurz: Hex) einmal mehr gute Dienste. Statt von 0 bis 255 stellt man damit die Farbwerte von 00 bis FF dar und siehe da, nun sind alle Zahlen "gleich breit". Aus dem Himmelblau wird nun "#2271B3" und das ist wirklich vergleichsweise kompakt (die # stellt man davor, damit klar ist, dass es sich um eine Hex-Zahl handelt). Jeder, der schon mit HTML/CSS gearbeitet hat, dürfte diese Schreibweise gut kennen. Ich persönlich bevorzuge sogar meistens die Abkürzungsmethode mit 3 Ziffern: "#27A" (der Browser verdoppelt dabei alle Ziffern, das Beispiel entspricht also "#2277AA" und ist immerhin nah dran am Himmelblau).

Ein drittes, ebenfalls weit verbreitetes System kommt aus der Grafik-Programmierung und scheint zunächst auch nur eine alternative Darstellung zu sein: Statt von 0 bis 255 verwendet man einfach die (Bruch-)Werte von 0 bis 1 und nennt das ganze "normalisiert". Das Himmelblau von oben wird damit zu "0.008 0.153 0.106" und macht damit erstmal keine gute Figur: viele Zahlen, Dezimalpunkte und wer kann sich unter den Fliesskommazahlen schon gross etwas vorstellen? Technisch hat dies jedoch viele Vorteile und Entwickler lieben normalisierte "von 0 bis 1" Werte; man kann diese z.B. problemlos miteinander multiplizieren und überblenden. Ausserdem sind die Abstufungen mit Kommazahlen beliebig fein, während im klassischen RGB-Modus nur ganze Zahlen vorkommen (klar könnte man auch da so etwas wie "Rot 12.7003" angeben, aber spätestens im Hex-Modus klappt das nicht mehr).

Nun kommen wir zum eigentlichen Problem: Farben halbieren.

RGB-Farbwerte kann man also mit Ganzzahlen von 0 – 255 oder Kommazahlen von 0.0 – 1.0 darstellen. Aber wie halbiert man diese? Normalisiert ist das ziemlich leicht, die Hälfte von 1.0 ist 0.5, Fall erledigt. Aber bei der RGB-Darstellung? Die Hälfte von 255 ist 127.5 und das ist ein Problem, denn hier sind ja nur Ganzzahlen erlaubt. Nehmen wir also 127 oder 128?
Nun, an sich sind es ja 256 Abstufungen, man stelle sich diese als Klaviertasten vor. Ganz links befindet sich 0 und ganz rechts 255. Die Tasten haben eine gewisse Breite, weil es sich um Ganzzahlen handelt – selbst wenn man bei 0.5 drückt, erwischt man dennoch die Taste 0. Sogar bei 0.9 ist es immer noch die 0, erst ab 1.0 kommt die 1 und die wiederum reicht bis fast zur 2.0. Ganz am Ende bei 255 ist es dasselbe, sowohl 255.0 als auch 255.9 oder 255.99999 sind dort untergebracht. Im Grunde geht der Farbwert also bis (unendlich knapp) zur 256, und wenn man das halbiert erhält man eine Zahl unendlich dicht vor 128, sagen wir 127.99999. Nun wird deutlich, dass 127 als Mitte deutlich schlechter passt als 128 – wäre das also korrekter? Woher kommt überhaupt diese neue Erkenntnis?

Die Auflösung liegt in der Rundungsfunktion, denn im obigen Gedankengang habe ich stillschweigend immer abgerundet. Vergrössert betrachtet reicht die erste Klaviertaste 0 von 0.0 bis fast 1.0, aber das geht auch anders. Man kann die Zahlen genau in der Mitte der Taste festlegen, dann reicht die Taste 0 plötzlich von -0.5 bis fast 0.5 und gerundet wird beides zu 0, das klappt also. Bei der letzten Taste haben wir entsprechend links den Wert 254.5 und rechts fast 255.5, was beides auf 255 gerundet wird. Mit dieser Betrachtungsweise liegt die Mitte erneut bei 127.5 und das wird bekanntlich zu 128 aufgerundet (Hex: #80).

Diese unendlich kleine Rundung führt zu einer wesentlichen Diskrepanz zwischen RGB-Schreibweise und normalisierten Farben. Während nämlich 0.5 verdoppelt wieder genau 1.0 gibt, kommt man im RGB-Modus von 128 auf 256 (was 1 zu viel ist) oder allenfalls mit 127 auf 254 (was 1 zu wenig wäre).

Halbe Farben sind also doch nicht ganz rund, obwohl sie gerundet werden.
Themen: TechnikErklärung

Ein Schrecken zum Frühstück

7. April 2019 von Yhoko
Alles begann vor ein paar Tagen, als mich zwei automatische E-Mails von meinem Provider erreichten. Darin hiess es, man würde alle US-Domains (.com, .net, .org) auf EU-Registrare (z.B. DENIC) umschreiben und auch meine Domain Yhoko.com sei davon betroffen. Eine Aktion meinerseits sei nicht erforderlich, es würden lediglich noch weitere Informations-Mails vom Registrar kommen. Das war erstmal eine gute Nachricht, sollen die .com Domains ruhig nach Europa umgezogen werden. Ich zitiere:

[...] Auch Ihre Domain yhoko.com ist davon betroffen. Wir möchten Sie daher informieren, dass wir im Verlauf des Monats April 2019 den Transfer Ihrer Domain vornehmen werden. Aufgrund des Verifizierungsprozesses ist es notwendig, Ihre Stammdaten kurzzeitig zu ändern. Dies betrifft u.a. Ihre E-Mail-Adressen. Über diesen Punkt werden Sie per Mail von der Registry noch einmal separat informiert werden. Handlungen Ihrerseits sind nicht notwendig.
Nach dem erfolgreichen Transfer der Domain sind alle Ihre Stammdaten inkl. E-Mail-Adressen wieder wie gewohnt hinterlegt. Fortan profitieren Sie von einem noch höheren Sicherheitsstandard und verbesserten Serviceleistungen.


Zwei Tage später, also gestern, kam dann tatsächlich eine weitere Mail, die mich aufforderte, meine E-Mail Adresse zu bestätigen. Darin war ein kryptischer Link enthalten, der auf [https] domreg.keyweb.de führte – eine Domain meines Anbieters, also alles in Ordnung. Das alles war an sich auch völlig normal und plausibel, man will ja aktuelle Daten haben. Also klickte ich ihn an und keine zwei Minuten später trudelte eine Bestätigungs-Mail in mein Postfach, mit nur folgendem Inhalt:

Der Transfer fuer die Domain yhoko.com wurde gestartet.


Das "fuer" versetzte mich in Aufregung, plötzlich schlugen alle Alarmglocken und ich fasste in Gedanken zusammen: "Du hast gerade einen kryptischen Link in einer E-Mail angeklickt, die angeblich von deinem Provider kommt. Direkt im Anschluss wurde ein Domain-Transfer von Yhoko.com eingeleitet und du weisst nicht mal, wohin."
Ich war nervös und ging der Sache weiter nach. Zunächst rief ich das Admin-Panel von Keyweb auf, wo solche News und Änderungen ja auch immer publiziert werden: nichts zu finden. Dann prüfte ich die Whois-Daten um zu sehen, ob die Meldung überhaupt echt und der Transfer wirklich in Gange war: Ja, war er – zudem war nicht mein Provider eingetragen sondern "enom.com", ein Anonymisierungsdienst für Domains. Die Nervosität wuchs weiter. Jetzt galt es, als letzten Strohhalm noch die Herkunft der E-Mails zu prüfen; ein Blick in den Header verriet: sie kamen nicht von keyweb.de sondern von keyspecial.de. Kurzer Blick auf [https] www.keyspecial.de — leer. Ups.

Plötzlich fiel es mir wie Schuppen von den Augen. Die Informations-Mail erwähnte explizit nur Yhoko.com, obwohl ich noch einige weitere .com Domains registriert habe. Sie wurde doppelt versendet bzw. zugestellt. Es gab keine persönliche Anrede und auch keinen Sachbearbeiter, in keiner der Mails. Immer nur der Hinweis auf den automatischen Versand und dass Antworten direkt gelöscht würden. Dann diese Bestätigungs-Mail, in der ausdrücklich und sogar in Fettschrift dazu gedrängt wurde, den kryptischen Link innerhalb von 2 Wochen anzuklicken (andernfalls drohte man mit einer Sperrung). Es gab zudem Tippfehler in den Mails und das "ue" statt "ü" in der Transfer-Bestätigung. Und als Tüpfelchen auf dem i verschwand daraufhin die Domain Yhoko.com aus meinem Admin-Panel bei Keyweb. Dort werden DENIC-Domains (.de) separat zu den CNO (.com/.net/.org) Domains aufgelistet und Yhoko.com verschwand aus der CNO-Liste – tauchte aber auch nicht bei der DENIC auf. Plötzlich klang auch die erste Informations-Mail völlig unglaubwürdig, wieso sollten meine Stammdaten geändert werden? Und am Ende versprach man mehr Sicherheit und Service..? Wozu überhaupt der Bestätigungslink? Und vor allem: Warum gingen all diese Mails nicht an meine übliche Kontaktadresse, die nur Keyweb kennt (dort landen normalerweise auch Ankündigungen und News) sondern an die Mail-Adresse, die im öffentlichen Whois-Register steht und damit für jeden einsehbar war? Doppel-Ups.

Nun aufgestachelt kontaktierte ich den Support, gleichzeitig informierte ich mich bei Google über die Masche und fand einige Negativberichte über enom.com, die aber nicht Enom selbst betrafen sondern Scammer, die unter deren Flagge Kundendaten phishten. Zumindest der Laden selbst schien also sauber zu sein, gehörte zudem zu GoDaddy (trotz doofem Namen der grössten US-Registrar) und ich hatte ja keine Benutzerdaten herausgegeben oder fremde Links angeklickt, das war einerseits beruhigend... aber wie konnte dann überhaupt ein Transfer ausgelöst werden? Selbst wenn der kryptische Link irgendwie präpariert gewesen wäre, so war ich zu dem Zeitpunkt ja nicht im Admin-Panel eingeloggt und er hätte überhaupt nichts bewirken können/dürfen. Trotzdem war Fakt, dass direkt nach dem Anklicken der Transfer gestartet wurde. Plötzlich kam mir noch eine, äusserst beunruhigende Möglichkeit in den Sinn: Was, wenn Keyweb selbst gehackt wurde? Andererseits, wozu brauchte man dann meine Mithilfe bzw. warum wurde ich überhaupt informiert und nicht gleich erpresst? Selbst wenn eine Art Bestätigung erforderlich gewesen wäre, hätte das alles ohne mein Zutun ablaufen können.

Es ergab irgendwie alles keinen Sinn, und die Situation blieb unklar, aber nicht zu handeln hätte ich als fahrlässig empfunden. Also schrieb ich sofort Enom und auch Keyweb an, um den Transfer zu stoppen (so ein Domain-Transfer dauert zum Glück einige Stunden bis Tage). Mein "Notfall"-Ticket wurde auch sofort an die zuständige Abteilung weitergeleitet, doch da versauerte die Anfrage erst einmal über Nacht. Schlafen konnte ich nicht wirklich gut und hatte auch immer die Zeitlimits im Kopf, die bei so einem Transfer gelten. Noch war Yhoko.com "im Transfer" und noch war ein Widerspruch möglich, aber wenn der Support den Termin verschläft...

Schliesslich, am nächsten Tag, die gute Nachricht: Der Support bestätigte, das alles seine Richtigkeit hat, und Yhoko.com war auch wieder im Admin-Panel aufgetaucht. Wohlgemerkt nur in der Liste meiner Domains, weder im CNO noch im DENIC-Bereich – aber das wird wohl auch nachgeholt. Es stellt sich also heraus, dass Keyweb tatsächlich...
  • unpersonalisierte und automatisierte E-Mails
  • von keyspecial.de statt normalerweise keyweb.de
  • an meine Whois-Adresse statt wie sonst die interne Kontaktadresse
  • mit Tippfehlern und ausgeschriebenen Umlauten
  • mit kryptischen Link-Bestätigungen
  • und konsequent doppelt verschickt.
  • Und das alles für den Anfang und zufälligerweise nur für Yhoko.com.
Anders gesagt, die Firma erfüllt offiziell sämtliche Anzeichen für Scam-Mails, mit dem letzten Punkt sogar noch mehr. Ganz ehrlich, ich wette (und hoffe) sie haben damit tausende von Admins aufgestachelt und ernten nun den Shitstorm bzw. Supportsturm dafür. Wird wohl mal Zeit, den Anbieter zu wechseln...

Yhoko