User:Mulehollandaise/Interpreters TODO

From IFWiki

Following this thread, this is an attempt to list some of the work that needs to be done on some interpreters. This encompasses bugs, features, and even ideas for new projects.

I've expanded this to include development tools as well. We could move this to a general ifwiki page. --Z

Entries marked "(proposal)" do not exist! Yet.

Development Tools

Inform 7

Project page: [1] Issue list: [2] Feature suggestions: [3]

  • A little more debate on whether Unified Glulx Input should be the base of future Glulx work, or whether we should abstract it even further so that the event loop is not internal to the parser (Dannii)
  • A set of choice-based and hyperlink-based extensions. (Preferably based on Unified Glulx Input).
  • Port the existing hyperlink and menu extensions over to UGI.
  • Design a state model for choice-based games which is as powerful and easy to use as possible. How hard this is depends on how ambitious you are. :) This might be as flexible (and hard to finish) as Threaded Conversation. ([4])

Inform 6

Project page: [5] Issues list: [6]

- Update more memory settings from manually-set to allocate-as-needed.

  • This means that game authors don't have to set $MAX_WHATEVER limits as their games get larger.
  • There are a lot of these; focus on the ones which tend to overflow first.

Inform 6 library

Project page: [7] Issues list: [8]

  • Write a test suite for the standard parser and model world.

Interpreters

Gargoyle

Project page: [9] Issues list: [10]

Reviving the project

- Need an official maintainer (is there one?)

  • Skills : C, time

- Report bugs

  • Skills : none?

Bugs that need to be fixed

- Fix bugs on the list of issues

  • Skills : C

- High priority bugs

  • "Fix the scrolling delays that have been reported?" (from zarf's list)
  • Full support for high-res ("retina") displays!

- Wade: people have hacked Gargoyle just to get a popular game to run (eg Counterfeit Monkey)

- Wade: sound on Mac (are we talking about the Glulx terp?) have bugs, not longer up to date, out of date with glk

- I think the Linux version of the frotz in Gargoyle has a bug where some one-letter commands are not recognized, but I could be wrong (todo: test and see)

Supporting more formats

- Support TADS games with version > 3.1

  • dddddd needs help with adapting his Linux code to multiplatform: [11]
  • Skills: Multiplatform C/C++ and jam required. Bonus if TADS and gargoyle codebases familiarity.

- TADS webui support

  • I think this means support HTML TADS ?

- Support ADRFIT 5 games?

- Use the "very latest" Alan interpreter

  • Robert DeFord's Onaar (IFComp2015) patched Gargoyle so that it used the latest Alan interpreter
  • Skills: see with Robert DeFord

Other

- Add "Preferences" UI


Parchment

Project page: [12] Issues list: [13]

- allow CSS stylesheets to be passed in URLs, implement timed effects, autosave system, etc.

  • Skills : JavaScript, Z-Machine knowledge

- Is the buglist on GoogleCode still relevant?

Zeugma

- Detailed instructions on how to use this

  • Skills: C64 and multi-function cartridges (like 1541 Ultimate)

- Accents are not displayed yet

  • Skills: being awesome at C64 programming

- perf improvements? (Inform 7 games are way too slow)

  • I doubt it's possible since the author seems pretty awesome at C64 stuff
  • Skills: being awesome at C64 programming

Glulxe

Project page: [14] Issues list: [15];

- Finish integrated debugger.

  • Will also need UI work in all Glk libraries

Quixe/GlkOte

Quixe project page: [16] Issues list: [17]; GlkOte project page: [18] Issues list: [19] (These are the UI and engine of the Glulx Javascript interpreter. Normal people don't have to fuss about the distinction.)

- Implement sounds

  • Skills : JavaScript, Glulx knowledge

- Implement style hints? Or wait until the CSS-style stuff is implemented?

- Detailed instructions / documentation? (kind of like that

  • Skills : fiddling with zarf's tools until you get it right, clear writing

Glulx-TypeScript

- Implement Templates

  • TypeScript, JavaScript, HTML, CSS, Design, Inform 7 (story and extensions)

WinGlk (Windows Glk library)

- Add integrated scrollback.

CocoaGlk (MacOS Glk library)

Project page: [20] or the copy included in [21] -- sorry, it's unclear which is more current

  • Many bugs! Memory leaks and pointer errors! See [22]
  • When fixed, recompile Mac Zoom and release it.

iOSGlk

  • Graphics and sound
  • Merge data-import/export from iOSGlulxe to iOSFizmo (ability for interpreter to import and export save files to/from Dropbox, etc)

MacOSGlk (proposal)

It wouldn't be too hard to port iOSGlk to MacOS. Perhaps easier than understanding and fixing up CocoaGlk.

  • You'd need to change UIKit calls to AppKit (or use a shim layer? must be one) and also modernize the text display widget.
  • This gets you a lightweight MacOS interpreter. Glulx and Zcode only, no skein or game collection UI, but it would run.
  • This would be a good "learn Swift" project.

RemGlk (JSON-interface Glk library)

  • Support timer events (I think these will have to be handled by GlkOte and transmitted through the JSON API)

Twisty (Android Glk/Glulx interpreter)

Project page: [23] Issues list:[24]

  • Skills : Android/Java, Z-machine

Vorple

Repository: [25]

The function KeyCharPrimitive()/"wait for any key" is not supported

  • Skills : JavaScript, a little Z-machine knowledge? (maybe)

Command history (browsing old commands with the up arrow key) isn’t available.

  • Skills : JavaScript

Menus are not available

  • Skills : JavaScript, Z-Machine

Undoing, saving and restoring, maybe?

  • Skills : JavaScript, Z-Machine

Glulx support

  • talk to Juhana about it first!
  • Skills : JavaScript, Glulx, Quixe

Zinc

Repository: [26]

This was a remarkably well-done multiplayer IF client written in Java. If possible, it would be great if it could be updated to work with recent Java versions.

  • Skills : Java


Web Sites and Services

IFDB

- Modernize UI

- Understand the existing of pure-HTML games, iOS-only games, etc

- IFOMatic [27]

  • This is a demo of a tool which can run through a batch of Z-code and Glulx games and generate a "screenshot" (text, not GIF) of the game's opening screen. Would work in bulk, but would need a human to go through and tweak for particular games (e.g. if you have to hit a key to start).
  • Something like this could work for Twine, but would need completely different underlying technology. (IFOMatic is based on RemGlk.)
  • Finish this up, add to IFDB?

IF Archive

- Rewrite ifmap (the program which generates the index files) from C to Python 3. Fix all the stupid encoding issues.

- Implement the proposed http://babel.ifarchive.org/ service (a RESTful API for fetching IF metadata)

IPlayTwine service (proposal)

- A web service where you hand it a URL of a zipped-up Twine package; it gives you a playable version. This would allow IFDB to link to Twine zips on the Archive (or on people's web sites) with a "play online" button. There would also be a "download zip" button for the offline-play fans.

IFPress

A FyreVM glulx based CMS web application that allows authors to drag-drop design the web interface for their Inform 7 stories, similar to WordPress. System would allow authors to upload story files with special I7 extensions that allow the CMS to reflect internal structures. This would allow the CMS to display various story paths and let the author fine tune how those "pages" would display. Or the author could choose from predefined templates and widgets. New extensions would become available for UX assistance, like built in tutorials, web menu's, hyperlinked words, and more.

Technical help needed

  • TypeScript developer
  • Inform 7 author
  • Inform 7 extension author
  • Web UX Designer
  • Front-End Developer
  • Front-End Dev Ops

IFWiki

  • Create a meta-site or tool that would allow adding works to IFWiki without duplicating the effort of adding them to IFDB, as suggested here: [28]. Or else something that would pull info from IFDB to be easily added to IFWiki.
    • There is now a Python script for pulling info on individual works from IFDB and generating wiki pages for them. bg (talk) 13:36, 29 December 2016 (UTC)

Parchment Proxy

  • Add ability to unzip files from the archive, extract, and return a storyfile.
  • Possibly implement a RESTful API for metadata (rather than running it directly on the IF Archive server)

Skills needed

The site is currently written in Python, but Dannii started a rewrite into node.js. The site is small and an experienced programmer could probably rewrite it in any language in an afternoon. If someone wanted to take on these changes they could choose whichever language they wished.

Specs and General Information

Glulx/Glk Spec

Look at Zarf's list and help him!

- Glk 2.0 (integrate HTML and CSS) + change interpreters to fit the spec (see the post)

  • Skills: don't know

Releasing games

- Write a tutorial on how to release a standalone-app of your interactive fiction (Inform, in particular)

  • Some people use NSIS to create bundle; others say "rename WinFrotz.exe or Gargoyle.exe so it has the name of your game and it'll start it automagically"
  • Skills: writing a clear tutorial for multiple platforms and formats

- How do you do it on mobile?

  • iOS: Z-code and Glulx instructions at [29]
  • Android: is there *any* way to do it?

Other

- Mobile interpreters? (on Android, iPhone, etc)

  • Skills: unknown yet

- A Choosatron-style interpreter (that prints the output on 'receipt'-sized thermal paper) would be amazing

  • Maybe we can use a Rasberry Pi for that (frotz is available on it + some people (see http://frederickvandenbosch.be/?p=1297 ) interface raspPi (and its touch screen) and thermal printers
  • Skills: Arduino, code, etc.