Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: libARun #4

Open
tajmone opened this issue Aug 8, 2019 · 0 comments
Open

Feature Request: libARun #4

tajmone opened this issue Aug 8, 2019 · 0 comments
Labels
💡 feature request New feature request ⚙️ terps ALAN interpreters

Comments

@tajmone
Copy link
Contributor

tajmone commented Aug 8, 2019

@thoni56,

it would be quite useful if the Alan project could also include a library version of the ARun interpreter (static or dynamic) that could be bound to third party applications in order to run automated game sessions.

It could be used, for example, to create a tool similar to the Inform 7 Skein, which would allow to create a graph of different possible commands to be fed to libARun in order to efficiently simulate/test adventure sessions.

Also, it would be useful for big projects (like libraries) that rely on a test suite to check that changes to code base don't introduce errors. In this context, a library would speed up all tests by circumventing the need to access an external interpreter, especially when the same adventure needs to be tested multiple times with different commands scripts (for the story file would only need to be loaded once by libARun), or in case one needs a test suite that relies on pseudo-randomly generated commands to test for edge cases and uncovered error responses.

Last but not least, this would be an invaluable tool for creating a dedicated interpreter for the visually impaired, allowing easy interfacing to accessibility devices (Braille reader, speech synthesizers, voice-recognition tools, etc.). I think that accessibility is an important feature to invest in, especially since IF is one of the very few (if not the only) genre of video games accessible to the blind.

The library would need to expose some functions to:

  • load a story file into memory.
  • initiate a game session.
  • send a command to the virtual interpreter and capture the response.
  • terminate a game session.
  • free a story file from memory.
  • access debug info (optional but useful).

Since no multimedia or styles need to be supported, and all I/O operations would be in plain strings, this library wouldn't need Glk support either.

How complex would it be to add a library like this to the ALAN builds?

I wouldn't mind trying to work on it myself, but I might need some help from you for this. Also, I think that this feature would require introducing some compiler directives to the ARun sources in order to work (#ifdefs, etc.) — so chances are that to be a maintainable project it requires to be officially endorsed in the ALAN repository.

What's your view on this?

@tajmone tajmone added 💡 feature request New feature request ⚙️ terps ALAN interpreters labels Aug 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💡 feature request New feature request ⚙️ terps ALAN interpreters
Projects
None yet
Development

No branches or pull requests

1 participant