Skip to content
vic

jedi4ever/ifplayer.js

Interactive Fiction player in nodejs

jedi4ever/ifplayer.js.json
{
"createdAt": "2013-04-10T13:56:41Z",
"defaultBranch": "master",
"description": "Interactive Fiction player in nodejs",
"fullName": "jedi4ever/ifplayer.js",
"homepage": null,
"language": "JavaScript",
"name": "ifplayer.js",
"pushedAt": "2015-03-14T14:15:11Z",
"stargazersCount": 8,
"topics": [],
"updatedAt": "2020-02-18T03:35:51Z",
"url": "https://github.com/jedi4ever/ifplayer.js"
}

ifplayer is a nodejs module to play interaction-fiction files.

It is currently alpha-state and pretty much in flux, and are my first steps at understanding the z-machine.

  • To read the interactive-fiction files, it uses ifvms.js
  • We borrowed the etude as a text file for now

Take a look at : (thx to @curiousdannii)

It’s designed to be used with Web Workers (though it isn’t yet…), so everything happens with two functions: ZVM.inputEvent() and ZVM.outputEvent().

$ npm install

$ npm install ifplayer

$ ./bin/ifplayer <your-story-file>

ifplayer = new IfPlayer(filename);
ifplayer.on('output', function(message) {
console.log(message);
})
ifplayer.on('quit', function() {
console.log('done');
})
ifplayer.on('ready', function(message) {
// ifplayer.send('north');
})
  • currently the input is also written on the output : not sure if this by design or not

  • the flow of output is not caught when quitting

  • we need to separate the css code to a more abstract type so we can pass our own formatter

  • sending the inputEvent is still a mess , as I don’t really understand the required params, currently resorting to keeping the last read event

  • obviously support mode code types

  • make it read gluxl files and other format

  • maybe use Inform i7 compiler for on the fly compilation