„Z-machine“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
+kat
 
(28 dazwischenliegende Versionen von 22 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Dieser Artikel|behandelt die virtuelle Maschine ''Z-machine'', für weitere Bedeutungen siehe [[Z-machine (Begriffsklärung)]].}}
{{Dieser Artikel|behandelt die virtuelle Maschine ''Z-machine'', für weitere Bedeutungen siehe [[Z-machine (Begriffsklärung)]].}}


Die '''Z-machine''' ist eine [[Virtuelle Maschine|virtuelle Maschine]], die von Joel Berez und Marc Blank 1979 entwickelt und von [[Infocom]] für ihre [[Adventure#Text-Adventures|Text-Adventures]] verwendet wurde. Infocom kompilierte den Spielecode in Dateien mit Anweisungen für die Z-machine (bekannt als ''story files'', oder ''Z-code files''). Dadurch konnte Infocom auf einfach Weise alle ihre Text-Adventures auf eine neue [[Plattform (Computer)|Plattform]] [[Migration (Informationstechnik)|portieren]], und zwar indem sie lediglich eine [[Implementierung]] der Z-machine für die jeweilige Plattform programmierten. Angesichts der zu jener Zeit großen Anzahl von zueinander inkompatiblen [[Heimcomputer]]-Systemen stellte dies einen großen Vorteil gegen über direkt für die jeweilige Rechnerplattform erstellten Programmen dar.
Die '''Z-machine''' ist eine [[virtuelle Maschine]], die von Joel Berez und Marc Blank 1979 entwickelt und von [[Infocom]] für ihre [[Adventure#Textadventures|Text-Adventures]] verwendet wurde.


== Technik ==
Das "Z" in Z-machine steht für [[Zork]], Infocoms erstes [[Adventure]]-Spiel. Die Namen von Dateien mit Z-code haben meistens die [[Dateinamenserweiterung|Dateiendungen]] ''.z1'', ''.z2'', ''.z3'', ''.z4'', ''.z5'', ''.z6'', ''.z7'' oder ''.z8'' (manchmal auch ''.dat''), wobei die Zahl die Versionsnummer der Z-machine bezeichnet, für die die Datei bestimmt ist. Früher war für die Dateinamen die Endung ''.zip'' (ZIP = ''Z-machine Interpreter Program'') üblich. Dies kollidiert heute allerdings mit der weitverbreiteten Verwendung dieser Dateiendung für [[PKZIP]]-kompatible Archivdateien. Infocom selbst erstellte sechs Versionen der Z-machine, während die Versionen 7 und 8 von Graham Nelson stammen.
Die Z-machine war ein Programm, das für eine [[Plattform (Computer)|Plattform]] einmalig erstellt wurde und das eine plattformunabhängige
Spieldatei [[Interpreter|interpretierte]] und für die Ein- und Ausgaben auf der jeweiligen Plattform sorgte. Für die Erstellung eines neuen Spiels musste mithin nur die jeweilige Spieldatei erstellt werden, um die Darstellung auf beliebigen Computern kümmerte sich die für diese Computer bereits erstellte Z-machine. Angesichts der zu jener Zeit großen Anzahl von zueinander inkompatiblen [[Heimcomputer]]-Systemen stellte dies einen großen Vorteil gegenüber direkt für die jeweilige Rechnerplattform erstellten Programmen dar. Den Programmierern gelang es, die Spiele des Unternehmens so zu strukturieren, dass alle spielspezifischen Inhalte in einer Datei gespeichert und aus dieser ausgelesen wurden. Die Namen von Dateien mit Z-code haben seit dem nichtkommerziellen Z-machine-Revival der 1990er Jahre (ausgelöst durch Graham Nelsons [[Inform]]-Compiler und sein erstes veröffentlichtes Spiel ''Curses'') meistens die [[Dateinamenserweiterung|Dateiendungen]] ''.z1'', ''.z2'', ''.z3'', ''.z4'', ''.z5'', ''.z6'', ''.z7'' oder ''.z8''., wobei die Zahl die Versionsnummer der Z-machine bezeichnet, für die die Datei bestimmt ist. Die Versionen 7 und 8 stammen von [[Graham Nelson]]. Zur Zeit von Infocom waren für die Dateinamen auf Systemen, die Dateiendungen verwendeten, die Endungen ''.dat'' (''Daten'', im Gegensatz zur nativ ausführbaren Datei mit dem Interpreter) und ''.zip'' (ZIP = ''Z-machine Interpreter Program'') üblich. Letzteres kollidiert heute allerdings mit der weitverbreiteten Verwendung dieser Dateiendung für [[PKZIP]]-kompatible Archivdateien.


Die Spieldateien wurden in der von Infocom entwickelten [[Programmiersprache]] ZIL (''Zork Implementation Language'') erstellt, die auf der am [[Massachusetts Institute of Technology|MIT]] entwickelten Sprache [[MIT Design Language|MDL]] beruhte.<ref>{{Literatur | Autor=Nick Montfort | Titel=Twisty Little Passages - An Approach to Interactive Fiction | Verlag=The MIT Press | Ort=Cambridge | Datum=2003 | ISBN=0-262-13436-5 | Seiten=127}}</ref>
Von den ersten beiden Versionen sind jeweils nur zwei Dateien von Infocom bekannt. Die späteren Versionen hatten mehr Möglichkeiten, wobei die sechste Version sogar über Grafikunterstützung verfügte.


== Geschichte ==
Der [[Compiler]], den Infocom zur Erstellung ihrer Story-Files verwendete (''Zilch'' genannt), wurde niemals veröffentlicht, auch wenn die Dokumentation der verwendeten Sprache (''ZIL'' für ''Zork Implementation Language'') noch immer existiert. Im Mai 1993 veröffentlichte schließlich Graham Nelson die erste Version seines [[Inform]]-Compilers, der ebenfalls Z-machine-Dateien erzeugt. Er war es auch, der während der 1990-er nach detaillierter Analyse der vorhandenen Infocom-Dateien einen Z-machine-Standard erstellte. Die zu Grunde liegende Programmiersprache Inform ist allerdings wesentlich anders als ZIL. Die meisten Inform-Dateien sind für die Z-machine Version 5 bestimmt.
Das „Z“ in Z-machine steht für [[Zork]], Infocoms erstes [[Adventure]]-Spiel. Infocom selbst erstellte sechs Versionen der Z-machine. Von den ersten beiden Versionen sind jeweils nur zwei Dateien von Infocom bekannt. Die späteren Versionen hatten mehr Möglichkeiten, wobei die sechste Version sogar über Grafikunterstützung verfügte. Der [[Compiler]], den Infocom zur Erstellung ihrer Story-Files verwendete (''Zilch'' genannt), wurde niemals veröffentlicht, auch wenn die Dokumentation der verwendeten Sprache (''ZIL'' für ''Zork Implementation Language'') noch immer existiert. Im Mai 1993 veröffentlichte schließlich Graham Nelson die erste Version seines [[Inform]]-Compilers, der ebenfalls Z-machine-Dateien erzeugt. Er war es auch, der während der 1990er nach detaillierter Analyse der vorhandenen Infocom-Dateien einen Z-machine-Standard erstellte. Die zu Grunde liegende Programmiersprache Inform ist allerdings wesentlich anders als ZIL.


Inzwischen ist Inform in der [[Interactive Fiction]]-Gemeinde sehr beliebt geworden, sodass nun ein großer Teil der Interactive Fiction als Story Files für die Z-machine erstellt wird. Der Wunsch nach der Möglichkeit, immer größere Spieledateien zu erzeugen, veranlasste Graham Nelson, die Versionen 7 und 8 der Z-machine zu erstellen, wobei die Version 7 allerdings nur sehr selten benutzt wird. Auf Grund der Art und Weise, wie Adressen verwendet werden, waren Story Files für die Version 3 mit einer Größe von 128 [[Byte|KB]] begrenzt. Die Version 5 ermöglichte bereits eine Größe von 256 KB, und die Version 8 ermöglicht sogar Story Files mit Größen bis zu 512 KB. Diese Größen mögen angesichts der heutigen Verhältnisse im Computerspiele-Sektor klein erscheinen, sind aber im Fall von Text-Adventures selbst bei der Erstellung von sehr großen Spielen ausreichend.
Inzwischen ist Inform in der [[Interactive Fiction|Interactive-Fiction]]-Gemeinde sehr beliebt geworden, sodass nun ein großer Teil der Interactive Fiction als Story Files für die Z-machine erstellt wird. Der Wunsch nach der Möglichkeit, immer größere Spieledateien zu erzeugen, veranlasste Graham Nelson, die Versionen 7 und 8 der Z-machine zu erstellen, wobei die Version 7 allerdings nur sehr selten benutzt wird. Auf Grund der Art und Weise, wie Adressen verwendet werden, waren Story Files für die Version 3 mit einer Größe von 128 [[Byte|KB]] begrenzt. Die Version 5 ermöglichte bereits eine Größe von 256 KB, und die Version 8 ermöglicht sogar Story Files mit Größen bis zu 512 KB. Diese Größen mögen angesichts der heutigen Verhältnisse im Computerspiele-Sektor klein erscheinen, sind aber im Fall von Text-Adventures selbst bei der Erstellung von sehr großen Spielen ausreichend.


==Interpreter==
== Interpreter ==
Heute gibt es Z-code-[[Interpreter]] für eine breite Auswahl von Computer-Plattformen. Beliebte Interpreter sind ''Nitfol'' und ''Frotz''.
Heute gibt es Z-code-[[Interpreter]] für eine breite Auswahl von Computerplattformen. Beliebte Interpreter sind ''Nitfol'' und ''Frotz'' für [[Personal Computer]] sowie ''Text Fiction'' für [[Android (Betriebssystem)|Android]].


===Nitfol===
=== Nitfol ===
'''Nitfol''' verwendet die [[Programmierschnittstelle]] GLK und unterstützt die Versionen 1 bis 8 der Z-machine, inklusive der grafischen Version 6. Spielstände werden im ''Quetzal''-Format abgespeichert. [[Binärdatei]]en existieren derzeit für verschiedenste Betriebssysteme, darunter Macintosh, Linux, MS-DOS und Windows.
'''Nitfol''' verwendet die [[Programmierschnittstelle]] GLK und unterstützt die Versionen 1 bis 8 der Z-machine, inklusive der grafischen Version 6. Spielstände werden im ''Quetzal''-Format abgespeichert. [[Binärdatei]]en existieren derzeit für verschiedenste Betriebssysteme, darunter Macintosh, Linux, MS-DOS und Windows.


===Frotz===
=== Frotz ===
[[File:Zork on Frotz on iPhone.jpg|thumb|Frotz auf einem iPhone mit dem Spiel Zork]]
'''Frotz''' ist eine weitere Implementation der Z-machine und vielleicht auch die bekannteste und beliebteste. Frotz hat gegenüber anderen Z-machine-Implementationen zwei wesentliche Vorteile. Erstens ist es eine der frühesten (wenn auch nicht die erste) nicht durch Infocom erfolgten Umsetzungen. Die erste Version - von Stefan Jokisch herausgegeben - stammt aus dem Jahr 1995. Zweitens ermöglichte die Tatsache, dass das Programm in der gut portierbaren Programmiersprache [[C (Programmiersprache)|C]] erstellt wurde, die Portierung der ursprünglichen DOS-Version auf die meisten modernen Computer-Systeme, darunter nicht nur Unix und Windows, sondern sogar [[Personal Digital Assistant|Palmtops]] und Mobiltelefone. Inzwischen wurden verschiedene Erweiterungen hinzugefügt, darunter solche für Sound-Effekte und Grafik.
'''Frotz''' ist eine weitere Implementation der Z-machine und vielleicht auch die bekannteste und beliebteste. Frotz ist eine der frühesten (wenn auch nicht die erste) nicht durch Infocom erfolgten Umsetzungen. Die erste Version –&nbsp;von Stefan Jokisch herausgegeben&nbsp;– stammt aus dem Jahr 1995. Frotz wurde in der gut portierbaren Programmiersprache [[C (Programmiersprache)|C]] erstellt, was die Portierung der ursprünglichen DOS-Version auf die meisten modernen Computer-Systeme ermöglicht, darunter nicht nur Unix und Windows, sondern sogar [[Personal Digital Assistant|Palmtops]] und Mobiltelefone. Inzwischen wurden verschiedene Erweiterungen hinzugefügt, darunter solche für Sound-Effekte und Grafik.


2002 übernahm David Griffith die Verantwortung für den grundlegenden Code von Frotz. Zu dieser Zeit wurde die Codebasis klar getrennt, und zwar zwischen dem Code für die [[Virtuelle Maschine|virtuelle Maschine]] und jenem für die [[Benutzerschnittstelle]]. Dadurch wurde die virtuelle Maschine völlig unabhängig von der Benutzerschnittstelle, was die Programmierung von einigen der ausgefalleneren Portierungen von Frotz ermöglichte. Dazu gehört eine, bei der eine Frotz-Version von einem [[Instant Messaging|Instant Messenger]] umgeben ist, sodass nun die meisten Z-machine-Spiele mit einem Instant Messenger gespielt werden können.
2002 übernahm David Griffith die Verantwortung für den grundlegenden Code von Frotz. Zu dieser Zeit wurde die [[Codebasis]] klar getrennt, und zwar zwischen dem Code für die [[virtuelle Maschine]] und jenem für die [[Benutzerschnittstelle]]. Dadurch wurde die virtuelle Maschine völlig unabhängig von der Benutzerschnittstelle, was die Programmierung von einigen der ausgefalleneren Portierungen von Frotz ermöglichte. Dazu gehört eine, bei der eine Frotz-Version von einem [[Instant Messaging|Instant Messenger]] umgeben ist, sodass nun die meisten Z-machine-Spiele mit einem Instant Messenger gespielt werden können.


=== Text Fiction ===
==Weblinks==
''Text Fiction'' ist eine populäre Implementation der Z-Machine für Android. Zu ihren Besonderheiten gehört ein Bedienkonzept, welches sich an bekannten Instant-Messenger-Applikationen orientiert, sowie die Möglichkeit, Eingaben aus Icons und per Copy&Paste zusammenzusetzen, so dass weitgehend auf die Tastatur verzichtet werden kann.
*[http://www.gnelson.demon.co.uk/zspec Das ''Z-Machine standards document'']
*[http://www.mv.com/ipusers/xlisper/zil.pdf ''Learning ZIL'']: das ZIL-Handbuch von Infocom aus dem Jahr 1989 (PDF-Format)
*[http://www.ifarchive.org/indexes/if-archiveXinfocomXinterpreters.html Interpreter für verschiedene Plattformen (IF-Archive)]
*[http://www.csd.uwo.ca/Infocom/Articles/small.html ''How to Fit a Large Program Into a Small Machine'']: ein Artikel, der die Erzeugung und den Design von Programmen für die Z-Machine beschreibt.


== Literatur ==
[[Kategorie:Adventure|!]]
* {{Literatur | Autor=Steve Meretzky | Titel=Learning ZIL | Verlag=Infocom | Ort=Cambridge | Datum=1989 | ISBN= | Online={{Archive.org|/Learning_ZIL_Steven_Eric_Meretzky_1995}}}}
[[Kategorie:Computerspiel-Entwicklungssystem]]


== Weblinks ==
[[en:Z-machine]]
* [http://www.ifarchive.org/indexes/if-archiveXinfocomXinterpreters.html Interpreter für verschiedene Plattformen] IF-Archive
[[es:Máquina-Z]]
* [http://mud.co.uk/richard/htflpism.htm ''How to Fit a Large Program Into a Small Machine''] Erzeugung und Design von Programmen für die Z-Machine.
[[it:Z-machine]]

[[ja:Z-machine]]
== Einzelnachweise ==
<references />

[[Kategorie:Computerspiel-Entwicklungssystem]]
[[Kategorie:Infocom]]
[[Kategorie:Virtuelle Maschine]]

Aktuelle Version vom 20. Mai 2024, 22:16 Uhr

Die Z-machine ist eine virtuelle Maschine, die von Joel Berez und Marc Blank 1979 entwickelt und von Infocom für ihre Text-Adventures verwendet wurde.

Die Z-machine war ein Programm, das für eine Plattform einmalig erstellt wurde und das eine plattformunabhängige Spieldatei interpretierte und für die Ein- und Ausgaben auf der jeweiligen Plattform sorgte. Für die Erstellung eines neuen Spiels musste mithin nur die jeweilige Spieldatei erstellt werden, um die Darstellung auf beliebigen Computern kümmerte sich die für diese Computer bereits erstellte Z-machine. Angesichts der zu jener Zeit großen Anzahl von zueinander inkompatiblen Heimcomputer-Systemen stellte dies einen großen Vorteil gegenüber direkt für die jeweilige Rechnerplattform erstellten Programmen dar. Den Programmierern gelang es, die Spiele des Unternehmens so zu strukturieren, dass alle spielspezifischen Inhalte in einer Datei gespeichert und aus dieser ausgelesen wurden. Die Namen von Dateien mit Z-code haben seit dem nichtkommerziellen Z-machine-Revival der 1990er Jahre (ausgelöst durch Graham Nelsons Inform-Compiler und sein erstes veröffentlichtes Spiel Curses) meistens die Dateiendungen .z1, .z2, .z3, .z4, .z5, .z6, .z7 oder .z8., wobei die Zahl die Versionsnummer der Z-machine bezeichnet, für die die Datei bestimmt ist. Die Versionen 7 und 8 stammen von Graham Nelson. Zur Zeit von Infocom waren für die Dateinamen auf Systemen, die Dateiendungen verwendeten, die Endungen .dat (Daten, im Gegensatz zur nativ ausführbaren Datei mit dem Interpreter) und .zip (ZIP = Z-machine Interpreter Program) üblich. Letzteres kollidiert heute allerdings mit der weitverbreiteten Verwendung dieser Dateiendung für PKZIP-kompatible Archivdateien.

Die Spieldateien wurden in der von Infocom entwickelten Programmiersprache ZIL (Zork Implementation Language) erstellt, die auf der am MIT entwickelten Sprache MDL beruhte.[1]

Das „Z“ in Z-machine steht für Zork, Infocoms erstes Adventure-Spiel. Infocom selbst erstellte sechs Versionen der Z-machine. Von den ersten beiden Versionen sind jeweils nur zwei Dateien von Infocom bekannt. Die späteren Versionen hatten mehr Möglichkeiten, wobei die sechste Version sogar über Grafikunterstützung verfügte. Der Compiler, den Infocom zur Erstellung ihrer Story-Files verwendete (Zilch genannt), wurde niemals veröffentlicht, auch wenn die Dokumentation der verwendeten Sprache (ZIL für Zork Implementation Language) noch immer existiert. Im Mai 1993 veröffentlichte schließlich Graham Nelson die erste Version seines Inform-Compilers, der ebenfalls Z-machine-Dateien erzeugt. Er war es auch, der während der 1990er nach detaillierter Analyse der vorhandenen Infocom-Dateien einen Z-machine-Standard erstellte. Die zu Grunde liegende Programmiersprache Inform ist allerdings wesentlich anders als ZIL.

Inzwischen ist Inform in der Interactive-Fiction-Gemeinde sehr beliebt geworden, sodass nun ein großer Teil der Interactive Fiction als Story Files für die Z-machine erstellt wird. Der Wunsch nach der Möglichkeit, immer größere Spieledateien zu erzeugen, veranlasste Graham Nelson, die Versionen 7 und 8 der Z-machine zu erstellen, wobei die Version 7 allerdings nur sehr selten benutzt wird. Auf Grund der Art und Weise, wie Adressen verwendet werden, waren Story Files für die Version 3 mit einer Größe von 128 KB begrenzt. Die Version 5 ermöglichte bereits eine Größe von 256 KB, und die Version 8 ermöglicht sogar Story Files mit Größen bis zu 512 KB. Diese Größen mögen angesichts der heutigen Verhältnisse im Computerspiele-Sektor klein erscheinen, sind aber im Fall von Text-Adventures selbst bei der Erstellung von sehr großen Spielen ausreichend.

Heute gibt es Z-code-Interpreter für eine breite Auswahl von Computerplattformen. Beliebte Interpreter sind Nitfol und Frotz für Personal Computer sowie Text Fiction für Android.

Nitfol verwendet die Programmierschnittstelle GLK und unterstützt die Versionen 1 bis 8 der Z-machine, inklusive der grafischen Version 6. Spielstände werden im Quetzal-Format abgespeichert. Binärdateien existieren derzeit für verschiedenste Betriebssysteme, darunter Macintosh, Linux, MS-DOS und Windows.

Frotz auf einem iPhone mit dem Spiel Zork

Frotz ist eine weitere Implementation der Z-machine und vielleicht auch die bekannteste und beliebteste. Frotz ist eine der frühesten (wenn auch nicht die erste) nicht durch Infocom erfolgten Umsetzungen. Die erste Version – von Stefan Jokisch herausgegeben – stammt aus dem Jahr 1995. Frotz wurde in der gut portierbaren Programmiersprache C erstellt, was die Portierung der ursprünglichen DOS-Version auf die meisten modernen Computer-Systeme ermöglicht, darunter nicht nur Unix und Windows, sondern sogar Palmtops und Mobiltelefone. Inzwischen wurden verschiedene Erweiterungen hinzugefügt, darunter solche für Sound-Effekte und Grafik.

2002 übernahm David Griffith die Verantwortung für den grundlegenden Code von Frotz. Zu dieser Zeit wurde die Codebasis klar getrennt, und zwar zwischen dem Code für die virtuelle Maschine und jenem für die Benutzerschnittstelle. Dadurch wurde die virtuelle Maschine völlig unabhängig von der Benutzerschnittstelle, was die Programmierung von einigen der ausgefalleneren Portierungen von Frotz ermöglichte. Dazu gehört eine, bei der eine Frotz-Version von einem Instant Messenger umgeben ist, sodass nun die meisten Z-machine-Spiele mit einem Instant Messenger gespielt werden können.

Text Fiction ist eine populäre Implementation der Z-Machine für Android. Zu ihren Besonderheiten gehört ein Bedienkonzept, welches sich an bekannten Instant-Messenger-Applikationen orientiert, sowie die Möglichkeit, Eingaben aus Icons und per Copy&Paste zusammenzusetzen, so dass weitgehend auf die Tastatur verzichtet werden kann.

  • Steve Meretzky: Learning ZIL. Infocom, Cambridge 1989 (archive.org).

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Nick Montfort: Twisty Little Passages - An Approach to Interactive Fiction. The MIT Press, Cambridge 2003, ISBN 0-262-13436-5, S. 127.