Programmier-Matrix
Es gibt sehr viele verschiedene Programmiersprachen, viele davon wurden für bestimmte Probleme und Anforderungen entwickelt und optimiert. So sind zum Beispiel spezielle Datenbanksprachen wie SQL oder dBase für die Sammlung von Informationen<ref>Das ManiacWiki beispielsweise basiert auf einer MySQL-Datenbank und eine rauf PHP basierenden WikiEngine</ref> gedacht, andere wie VHDL oder Verilog sind hardwarenahe Sprachen, die zum Beispiel für Grafikkarten verwendet werden. Fanentwickler für Adventurespiele finden in der unten aufgelisteten Matrix einige Programmiersprachen.
Der Fokus liegt dabei auf der Entwicklung von Adventures, sodass sich Interessierte hier einen ersten Überblick verschaffen können. Der Verbreitungsgrad einer Programmiersprache kann maßgeblich für den unter Umständen notwendigen Support sein, so befinden sich auf freshmeat mehr als 9000 (aktive) Projekte in der Programmiersprache C und weniger als hundert Projekte in der Programiersprache Pascal<ref>Freshmeat ist eine Portalseite für Linux Applikationen, diese basieren traditionell auf "C", dementsprechend ist der Vergleich zwischen "C" und Pascal nur exemplarisch zu sehen</ref>. Die meisten Episoden von Maniac Mansioin Mania basieren auf AGS. |
Inhaltsverzeichnis |
Qualitätsmerkmale
Für die Programmierung einer Anwendung gibt es verschiedene Ansätze hinsichtlich Konzeption und Realisierung<ref>Beispielsweise wird auf 99-bottles mit über 1200 Programmiersprachen das Lied 99-Flaschen in einer Schleifenvariante gelöst</ref>. Grundlegende Qualitätsmerkmale, sowohl bei einem Computerspiel (Adventure) als auch bei Anwendungen (z. B. Visionaire) sind jedoch fast immer identisch und sind eben so oder in abgewandelter Form in der Literatur anzutreffen. Zur Qualitätssicherung gibt es verschiedene Qualitätsmodelle. Klassische Bestandteile eines solches Modells sind:
- Korrektheit: Damit ist die Übereinstimmung von Realisierung und Anforderung gemeint (also die möglichst Exakte Erfüllung der Anforderung)
- Zuverlässigkeit: Fehleingaben von Usern (z. B. falsche Eingabe bei parserbasierenden Adventures) soll nicht zum Absturz führen. Idealerweise weist das Programm oder das Spiel auf eine Fehleingabe hin. Beispiele sind vor allem bei parserbasierenden Adventures zu finden, die teilweise nachfragen, ob die Aktion richtig geschrieben wurde oder ob man das ganze auch anders ausdrücken könnte.
- Benutzerfreundlichkeit: Der Quellcode sollte nicht unnötig verschachtelt oder umständlich aufgebaut sein (Spaghetticode<ref>Der bildhafte Ausdruck Spaghetticode bezeichnet ein Programm, in dem, durch unbedingte Sprünge (z.B. zahlreiche verschachtelte Sprunganweisungen), der Programmablauf schwer nachzuvollziehen ist, wie bei einem Berg Spaghetti, bei dem es sehr schwer ist, herauszufinden, welche Nudelenden zusammen gehören. Zitat: Wikipedia</ref>)
- Effizenz: Möglichst unnötige Funktionen vermeiden. Dafür gibt es diverse Möglichkeiten (z. B. Variablen anstatt Strings oder objektorientierte Programmierung).
- Kompatibilität: Einfachheit, mit der Software mit anderer Software verbunden werden kann.
- Portabilität: Ersatzbarkeit erstellter Software auf anderen Zielsystemen (andere Hard- und Software). Gerade hier punkten Sprachen wie dotNet oder Java.
- Integrität: Schutz der einzelnen Komponenten gegen unberechtigten Zugriff und Veränderung. Inbesondere bei Online-Textadventures ist dies wichtig, da sonst ein unerlaubter Zugriff auf den Server möglich sein kann.
Matrix
Der Status ist wie folgt gegliedert: 1 (empfehlswert), 2 (neutral), 3 (eher ungeeignet). Bei Plattform ist die Entwicklungsumgebung gemeint. Meistens ist diese auch gleichzeitig die verwendbare Plattform, die Runtime (das fertige Produkt). Emulatoren, die bestimmte Applikationen auch auf anderen Systemen nutzbar machen (z. B. AGS unter Linux) werden nicht berücksichtigt.
Anmerkung | Anwendung/Eigenschaft | Status | Plattform | |
---|---|---|---|---|
Ada |
|
|
3 | alle |
AGS |
|
|
1 | Windows |
Adventure Maker |
|
|
1 | Windows |
Algol |
|
|
3 | alle |
AGI Studio |
|
|
1 | Windows |
AGAST |
|
|
1 | Windows |
Basic |
|
|
2 | alle |
C / C++ |
|
|
2 | alle |
Cobol |
|
|
3 | alle |
Java |
|
|
2 | alle |
LISP |
|
|
3 | alle |
LUA |
|
|
2 | alle |
MAD-Engine |
|
|
1 | alle |
Pascal |
|
|
3 | alle |
PaCDK |
|
|
1 | Windows |
SCI Studio |
|
|
1 | Windows |
Visionaire |
|
1 | Windows | |
SQL |
|
|
3 | alle |
Z-Code/Frotz |
|
|
1 | alle |
Anmerkung: "Grün" markierte Programmiersprachen sind für Adventures empfehlenswert (z. B. speziell dafür Entwickelte), "Gelb" markierte sind komplex aber durchaus empfehlenswert für Spieleprogrammierung (z. B. solche, die im kommerziellen Umfeld erfolgreich verwendet wurden), "Blau" sind Sprachen, die nicht oder nur mit viel Aufwand sinnvoll sind (z. B. ist SQL eine Datenbanksprache, aber für ein Online-Textadventure durchaus ein Ansatz).
Quelle / Referenzen
<references />