I need a very strong TypeScript developer that is also comfortable with virtual machines, DOM manipulation, and tool development.
This is an open source Github project for parser-based Interactive Fiction (text adventures) deployed in a browser.
The over-arching project is called ifpress.org and will host playable IF stories as well as allow an author to build and host their own story.
The current VM code is on Github at:
But it was built against alpha Angular2 and an older version of TypeScript. It will need to be reviewed and updated for the latest versions of both as well as "completing" the code. It needs have a build process, a distribution, and be able to be a dependency in other projects.
The final vision for all of this is to be able to create a story in Inform 7 (inform7.com) and have the ifpress UI builder working in the background with a live update feature. This would:
* retrieve the latest compiled story file and deploy it to the ifpress game folder
* clear game cache
* reload web app
The author will also be editing the app and reload should occur when changes are made here as well (so after any Angular2 app changes).
* create testing tool (chester) which will run a story file from a command line, look for tests within the story itself (on a known channel) and run those tests, emitting the results to stdout.
* create command line templating tool
$ ifpress --new mystory standard
...would create a folder 'mystory' and add all of the basic Angular2 files along with the specified templateName. The 'standard' template will be similar to the standard IF interpreter with a status line, main text, and line input.
1. Review and Clean Up glulx-typescript (fyrevm)
- review and update to latest version of TypeScript
- enable EngineWrapper module
- enable running story from command line using node
$ node fyrevm storyfilepath
- where storyfile path contains a story file, a fyrevm.config file, history
- where config file identifies the story file
2. Create 'chester' (channel tester) testing tool
$ node chester storyfilepath --out results.txt
- reads story file, looks for known channel with tests, run tests, emit to stdout or --out
- create Angular2 app to run chester and emit to browser
3. Integrate fyrevm with a basic Angular2 app
- wire all channel output dynamically to exported variables
- wire all EngineWrapper events
- store history in browser storage
- elegantly manage reloads