Difference between revisions of "Glulx"

From IFWiki
Jump to: navigation, search
(add interpreter category)
(Implementations)
 
(36 intermediate revisions by 15 users not shown)
Line 1: Line 1:
A [[virtual machine]] designed by Andrew Plotkin which uses the [[Glk]] Application Programming Interface (API).  The [[Inform]] language can be compiled for this [[virtual machine]]Glulx imposes far less restrictive limitations on game size than the [[Z-machine]] and offers the I/O features of [[Glk]], allowing [[Inform]] programmers to write larger games with more complicated user interfaces, without having to learn a new programming language.
+
'''Glulx''' is a [[virtual machine]] designed by Andrew Plotkin which by default uses the [[Glk]] Application Programming Interface (API).  The [[Inform]] language can compile bytecode for GlulxIt imposes far fewer limitations on game size than the [[Z-machine]] and offers the I/O features of Glk, allowing Inform programmers to write larger games with more complicated user interfaces, without having to learn another programming language.
  
See also [[Glk]] and [http://www.eblong.com/zarf/glulx the Glulx webpage].
+
==Version History==
 +
* 3.1.2: Added support for [[floating point arithmetic]].
 +
* 3.1.1: Added support for [[function acceleration]].
 +
* 3.1.0: Added support for block operations and heap memory allocation. Games using [[Inform 7]]'s "indexed text" or "list" functionality require an interpreter that supports 3.1.0.
 +
* 3.0.0: Added [[Unicode]] support.  
 +
* 2.0.0: Added modular I/O system system. The default I/O system is no longer Glk, which makes this an incompatible change.
 +
* 1.0.0: Previous versions were all called "1.0.0"
  
--OKB
+
==How to play Glulx games==
 +
Glulx works can be played with a variety of interpreters. See  [[FAQ#How_can_I_download_and_play_IF.3F|the FAQ entry]] for links to the latest version of recommended interpreters for your platform.
  
 +
==Implementations==
 +
 +
{| class="wikitable"
 +
! Name
 +
! Author
 +
! Glulx version
 +
! Release version/date
 +
! Packaged in
 +
! Language
 +
! Notes
 +
|-
 +
| [[Glulxe]]
 +
| [[Andrew Plotkin]]
 +
| 3.1.2
 +
| 0.5.4, 23 January 2017
 +
| [[Gargoyle]], [[Gelek]], [[Spatterlight]], [[Thunderword]], [[Zoom]]
 +
| [[C]]
 +
| The reference implementation
 +
|-
 +
| [[Filfre]]
 +
| [[Jimmy Maher]]
 +
| 3.1.1
 +
| 0.988, 8 April 2010
 +
|
 +
| [[C++]]
 +
|
 +
|-
 +
| [[FyreVM]]
 +
| [[Jesse McGrew]]
 +
| ?
 +
| 25 September 2009
 +
|
 +
| [[C#]] ([[.NET]]/[[Mono]])
 +
| Uses [[Channel IO]] rather than [[Glk]]
 +
|-
 +
| [[Git]]
 +
| [[Iain Merrick]]
 +
| 3.1.2
 +
| 1.3.5, 30 November 2016
 +
| [[Gargoyle]], [[Thunderword]], [[Zoom]]
 +
| [[C]]
 +
|
 +
|-
 +
| [[Quixe]]
 +
| [[Andrew Plotkin]]
 +
| 3.1.2
 +
| 1.0.2, 18 August 2010
 +
|
 +
| [[Javascript]]
 +
|
 +
|-
 +
| [[Unique]]
 +
| [[Own]]
 +
| ?
 +
|
 +
| [[AndroidIF]], [[Incant]]
 +
| [[Java]]
 +
|
 +
|-
 +
| [[Zag]]
 +
| [[Jon Zeppieri]] and [[David Turner]]
 +
| 3.1.2
 +
| 1.07, 1 June 2012
 +
|
 +
| [[Java]]
 +
|
 +
|-
 +
| [[ZMPP]]
 +
| [[Wei-ju Wu]]
 +
| ?
 +
| 1.5-preview, 3 August 2008
 +
|
 +
| [[Java]]
 +
|
 +
|}
 +
 +
==Status of Interpreters==
 +
 +
This table is up to date as of July 2009, at which time the most recent [[Glulxe]] was 0.4.4, the most recent [[Glulx]] VM was 3.1.1, and the most recent [[Glk]] was 0.7.0. It includes interpreters for major platforms only.
 +
 +
{| class="wikitable"
 +
! Interpreter
 +
! Platforms
 +
! Author
 +
! Version
 +
! Latest Release
 +
! Glulxe version
 +
! Glulx VM version
 +
! Glk
 +
! Glk Standard
 +
|-
 +
| [[Filfre]]
 +
| [[Windows]]
 +
| [[Jimmy Maher]]
 +
| 0.981
 +
| 07/08
 +
| ??
 +
| 3.1
 +
| ??
 +
| ??
 +
|-
 +
| [[FyreVM]]
 +
| [[.NET]]/[[Silverlight]]
 +
| [[Textfyre]]
 +
| n/a
 +
| 3/09
 +
| n/a
 +
| 3.1
 +
| none
 +
| n/a
 +
|-
 +
| [[Gargoyle]]<sup>2</sup>
 +
| [[Windows]], [[Unix]]
 +
| [[Tor Andersson]]
 +
| 2008-12-25
 +
| 12/08
 +
| 0.4.3
 +
| 3.1.0
 +
| [[GarGlk]]
 +
| 0.7.0
 +
|-
 +
| [[Gelek Vanilla]]
 +
| [[Ubuntu Touch]]
 +
| Joan [[CiberSheep]]
 +
| 1.5.5
 +
| 14/May/19
 +
| 0.5.4
 +
| 3.1.2
 +
| [[RemGlk]]
 +
| 0.7.5
 +
|-
 +
| [[Git]]
 +
| [[Windows]], [[Unix]]
 +
| [[Iain Merrick]]
 +
| 1.2.4
 +
| 4/09
 +
| ??
 +
| 3.1.1
 +
| [[Windows Glk]] 1.46
 +
| 0.7.0 ??
 +
|-
 +
| [[iphonefrotz]]
 +
| [[iOS]]
 +
| [[Craig Smith]]
 +
| 1.7
 +
| 21/8/14
 +
| n/a
 +
| 3.1.2
 +
| ??
 +
| 0.7.4
 +
|-
 +
| [[Quixe]]
 +
| Web
 +
| [[Andrew Plotkin]]
 +
| 1.0.1
 +
| 29/7/10
 +
| n/a
 +
| 3.1.2
 +
| [[GlkOte]]
 +
| 0.7.0
 +
|-
 +
| [[Spatterlight]]
 +
| [[Mac OS X]]
 +
| [[Tor Andersson]]
 +
| 0.5.0
 +
| 6/08
 +
| 0.4.3
 +
| 3.1.0
 +
| ??
 +
| 0.7.0
 +
|-
 +
| [[Thunderword]]<sup>3</sup>
 +
| [[Android]]
 +
| [[Stephen Gutknecht]]
 +
| pre-release
 +
| 3/11/17
 +
| 0.5.3
 +
| 3.1.2
 +
| [[RemGlk]]
 +
| 0.7.5
 +
|-
 +
| [[Windows Glulxe]]
 +
| [[Windows]]
 +
| [[David Kinder]]
 +
| 0.4.4.136
 +
| 03/09
 +
| 0.4.3
 +
| 3.1.0
 +
| [[Windows Glk]] 1.36
 +
| 0.7.0
 +
|-
 +
| [[Zag]]
 +
| [[Java]]
 +
| [[Jon Zeppieri]]
 +
| 12.0.0 / 1.06
 +
| 3/05
 +
| ??
 +
| 2.0.0
 +
| [[Zing]]
 +
| nonstandard
 +
|-
 +
| [[Zoom]]<sup>1</sup>
 +
| [[Mac OS X]], [[Unix]]
 +
| [[Andrew Hunter]]
 +
| 1.1.4.1
 +
| 6/09
 +
| 0.4.2?
 +
| 3.1.0
 +
| [[CocoaGlk]] 1.0.7
 +
| 0.7.0
 +
|}
 +
 +
<sup>1</sup> [[Zoom]] users can choose either standard [[Glulxe]] or the faster [[Git]] to interpret [[Glulx]] works.
 +
 +
<sup>2</sup> [[Gargoyle]] can use either [[Git]] or [[Glulxe]] to play IF works..
 +
 +
<sup>3</sup> [[Thunderword]] users can choose either standard [[Glulxe]] or the faster [[Git]] version 1.3.5 to interpret [[Glulx]] works.
 +
 +
==Compilers targeting Glulx==
 +
* [[Glasm]]
 +
* [[Glulxa]]
 +
* [[Inform 6]]
 +
* [[Inform 7]]
 +
* [[Snack]]
 +
* [[Superglús]]
 +
 +
==See also==
 +
* [[:Category:Glulx works|Glulx works]]
 +
 +
==Links==
 +
* [http://www.eblong.com/zarf/glulx Glulx webpage].
 +
 +
[[Category:Inform]]
 
[[Category:Interpreter]]
 
[[Category:Interpreter]]
 
[[Category:Glossary]]
 
[[Category:Glossary]]

Latest revision as of 22:13, 19 May 2019

Glulx is a virtual machine designed by Andrew Plotkin which by default uses the Glk Application Programming Interface (API). The Inform language can compile bytecode for Glulx. It imposes far fewer limitations on game size than the Z-machine and offers the I/O features of Glk, allowing Inform programmers to write larger games with more complicated user interfaces, without having to learn another programming language.

Version History

  • 3.1.2: Added support for floating point arithmetic.
  • 3.1.1: Added support for function acceleration.
  • 3.1.0: Added support for block operations and heap memory allocation. Games using Inform 7's "indexed text" or "list" functionality require an interpreter that supports 3.1.0.
  • 3.0.0: Added Unicode support.
  • 2.0.0: Added modular I/O system system. The default I/O system is no longer Glk, which makes this an incompatible change.
  • 1.0.0: Previous versions were all called "1.0.0"

How to play Glulx games

Glulx works can be played with a variety of interpreters. See the FAQ entry for links to the latest version of recommended interpreters for your platform.

Implementations

Name Author Glulx version Release version/date Packaged in Language Notes
Glulxe Andrew Plotkin 3.1.2 0.5.4, 23 January 2017 Gargoyle, Gelek, Spatterlight, Thunderword, Zoom C The reference implementation
Filfre Jimmy Maher 3.1.1 0.988, 8 April 2010 C++
FyreVM Jesse McGrew  ? 25 September 2009 C# (.NET/Mono) Uses Channel IO rather than Glk
Git Iain Merrick 3.1.2 1.3.5, 30 November 2016 Gargoyle, Thunderword, Zoom C
Quixe Andrew Plotkin 3.1.2 1.0.2, 18 August 2010 Javascript
Unique Own  ? AndroidIF, Incant Java
Zag Jon Zeppieri and David Turner 3.1.2 1.07, 1 June 2012 Java
ZMPP Wei-ju Wu  ? 1.5-preview, 3 August 2008 Java

Status of Interpreters

This table is up to date as of July 2009, at which time the most recent Glulxe was 0.4.4, the most recent Glulx VM was 3.1.1, and the most recent Glk was 0.7.0. It includes interpreters for major platforms only.

Interpreter Platforms Author Version Latest Release Glulxe version Glulx VM version Glk Glk Standard
Filfre Windows Jimmy Maher 0.981 07/08  ?? 3.1  ??  ??
FyreVM .NET/Silverlight Textfyre n/a 3/09 n/a 3.1 none n/a
Gargoyle2 Windows, Unix Tor Andersson 2008-12-25 12/08 0.4.3 3.1.0 GarGlk 0.7.0
Gelek Vanilla Ubuntu Touch Joan CiberSheep 1.5.5 14/May/19 0.5.4 3.1.2 RemGlk 0.7.5
Git Windows, Unix Iain Merrick 1.2.4 4/09  ?? 3.1.1 Windows Glk 1.46 0.7.0 ??
iphonefrotz iOS Craig Smith 1.7 21/8/14 n/a 3.1.2  ?? 0.7.4
Quixe Web Andrew Plotkin 1.0.1 29/7/10 n/a 3.1.2 GlkOte 0.7.0
Spatterlight Mac OS X Tor Andersson 0.5.0 6/08 0.4.3 3.1.0  ?? 0.7.0
Thunderword3 Android Stephen Gutknecht pre-release 3/11/17 0.5.3 3.1.2 RemGlk 0.7.5
Windows Glulxe Windows David Kinder 0.4.4.136 03/09 0.4.3 3.1.0 Windows Glk 1.36 0.7.0
Zag Java Jon Zeppieri 12.0.0 / 1.06 3/05  ?? 2.0.0 Zing nonstandard
Zoom1 Mac OS X, Unix Andrew Hunter 1.1.4.1 6/09 0.4.2? 3.1.0 CocoaGlk 1.0.7 0.7.0

1 Zoom users can choose either standard Glulxe or the faster Git to interpret Glulx works.

2 Gargoyle can use either Git or Glulxe to play IF works..

3 Thunderword users can choose either standard Glulxe or the faster Git version 1.3.5 to interpret Glulx works.

Compilers targeting Glulx

See also

Links