Difference between revisions of "Glk"
Thunderforge (talk | contribs) |
Thunderforge (talk | contribs) |
||
(6 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{EngineDescription | {{EngineDescription | ||
|name=Glk | |name=Glk | ||
|developer=[[User:dreammaster|dreammaster]] | |developer=[[User:dreammaster|dreammaster]] | ||
|companies=See [[Glk#Sub-engines|Sub-engines]] | |companies=See [[Glk#Sub-engines|Sub-engines]] | ||
|usedBy=See [[Glk#Sub-engines|Sub-engines]] | |usedBy=See [[Glk#Sub-engines|Sub-engines]] | ||
|dateAdded=December 9, 2018 | |dateAdded=December 9, 2018 | ||
|release= | |release=2.2.0 | ||
}} | }} | ||
==About== | ==About== | ||
The Glk API for text adventures (a.k.a. interactive fiction) was created by [[Andrew Plotkin]]. | |||
The ScummVM Glk engine implements the Glk API. Under it sits a number of sub-engines, each supporting games from different companies and/or a category of text adventures. | |||
==Sub-engines== | ==Sub-engines== | ||
* [[Glk/ADRIFT|ADRIFT]] - For playing games created using the Adventure Development & Runner - Interactive Fiction Toolkit. | * [[Glk/ADRIFT|ADRIFT]] - For playing games created using the Adventure Development & Runner - Interactive Fiction Toolkit. | ||
* [[Glk/AdvSys|AdvSys]] - For playing games created using the AdvSys text adventure writing system. | |||
* [[Glk/AGT|AGT]] - For playing games created using the Adventure Game Toolkit. | * [[Glk/AGT|AGT]] - For playing games created using the Adventure Game Toolkit. | ||
* [[Glk/Alan2|Alan2]] - For playing games created with the Alan 2 standard library version of the Adventure Language System. | * [[Glk/Alan2|Alan2]] - For playing games created with the Alan 2 standard library version of the Adventure Language System. | ||
* [[Glk/Alan3|Alan3]] - For playing games created with the Alan 3 standard library version of the Adventure Language System. | * [[Glk/Alan3|Alan3]] - For playing games created with the Alan 3 standard library version of the Adventure Language System. | ||
* [[Glk/Archetype|Archetype]] - For playing games created with the Archetype object-oriented programming language. | * [[Glk/Archetype|Archetype]] - For playing games created with the Archetype object-oriented programming language. | ||
* [[Glk/ | * [[Glk/Comprehend|Comprehend]] - For playing games commercially released using the Comprehend engine. | ||
* [[Glk/Glulxe|Glulxe]] - For playing Glulx games authored using Inform. | * [[Glk/Glulxe|Glulxe]] - For playing Glulx games authored using Inform. | ||
* [[Glk/Hugo|Hugo]] - For playing games created using the Hugo interactive fiction development system. | * [[Glk/Hugo|Hugo]] - For playing games created using the Hugo interactive fiction development system. | ||
Line 27: | Line 29: | ||
* [[Glk/Scott|Scott]] - For playing the Scott Adams games. | * [[Glk/Scott|Scott]] - For playing the Scott Adams games. | ||
* [[Glk/TADS|TADS]] - For playing games created with the Text Adventure Development System. | * [[Glk/TADS|TADS]] - For playing games created with the Text Adventure Development System. | ||
* [[Glk/ZCode|ZCode]] - For playing Infocom games and more recent Z-code games authored using Inform. | |||
==Notes== | ==Notes== | ||
Whilst at first I tried to keep the sub-engines as close to the original source they're derived from as possible, this quickly proved impossible. Not only did I have to add in proper C++ namespaces to encapsulate all the code, I also had to do various conversions to change them over from using STL to using ScummVM classes. So don't anticipate that it'll be easy to take any interpreters converted specifically for ScummVM Glk and simply drop them into any other Glk implementations. | Whilst at first I tried to keep the sub-engines as close to the original source they're derived from as possible, this quickly proved impossible. Not only did I have to add in proper C++ namespaces to encapsulate all the code, but I also had to do various conversions to change them over from using STL to using ScummVM classes. So don't anticipate that it'll be easy to take any interpreters converted specifically for ScummVM Glk and simply drop them into any other Glk implementations. | ||
==TODO== | ==TODO== | ||
* support user gestalts. So far, very few games use them, since the specification was only written recently and not many people know about them, but in future there might be more. One game being written, xyzabcde2, uses user gestalts 0x1400 and 0x140C. | * support user gestalts. So far, very few games use them, since the specification was only written recently and not many people know about them, but in the future, there might be more. One game being written, xyzabcde2, uses user gestalts 0x1400 and 0x140C. | ||
==External links== | ==External links== | ||
Line 39: | Line 42: | ||
[[Category:Engines]] | [[Category:Engines]] | ||
[[Category:Engines Supporting Text-to-Speech]] |
Latest revision as of 15:52, 17 April 2023
Glk | ||
---|---|---|
Engine developer | dreammaster | |
Companies that used it | See Sub-engines | |
Games that use it | See Sub-engines | |
Date added to ScummVM | 2018-12-09 | |
First release containing it | 2.2.0 |
About
The Glk API for text adventures (a.k.a. interactive fiction) was created by Andrew Plotkin.
The ScummVM Glk engine implements the Glk API. Under it sits a number of sub-engines, each supporting games from different companies and/or a category of text adventures.
Sub-engines
- ADRIFT - For playing games created using the Adventure Development & Runner - Interactive Fiction Toolkit.
- AdvSys - For playing games created using the AdvSys text adventure writing system.
- AGT - For playing games created using the Adventure Game Toolkit.
- Alan2 - For playing games created with the Alan 2 standard library version of the Adventure Language System.
- Alan3 - For playing games created with the Alan 3 standard library version of the Adventure Language System.
- Archetype - For playing games created with the Archetype object-oriented programming language.
- Comprehend - For playing games commercially released using the Comprehend engine.
- Glulxe - For playing Glulx games authored using Inform.
- Hugo - For playing games created using the Hugo interactive fiction development system.
- JACL - For playing games created using the JACL HTML-based interactive fiction development system.
- Level9 - For playing the commercial games originally released by Level 9 Computing.
- Magnetic - For playing the Magnetic Scrolls games.
- Quest - For playing games created using Alex Warren's Quest text adventure writing system.
- Scott - For playing the Scott Adams games.
- TADS - For playing games created with the Text Adventure Development System.
- ZCode - For playing Infocom games and more recent Z-code games authored using Inform.
Notes
Whilst at first I tried to keep the sub-engines as close to the original source they're derived from as possible, this quickly proved impossible. Not only did I have to add in proper C++ namespaces to encapsulate all the code, but I also had to do various conversions to change them over from using STL to using ScummVM classes. So don't anticipate that it'll be easy to take any interpreters converted specifically for ScummVM Glk and simply drop them into any other Glk implementations.
TODO
- support user gestalts. So far, very few games use them, since the specification was only written recently and not many people know about them, but in the future, there might be more. One game being written, xyzabcde2, uses user gestalts 0x1400 and 0x140C.