Port existing story to fyrevm-web platform demonstration

Hey folks,

I’m developing my own work-in-progress for my new fyrevm-web platform, but I want to also adapt an existing story. I’d like suggestions, given the following requirements:

  1. Something reasonably recent.
  2. I7 6M62 compatible.
  3. No crazy glk or UI experiements. Simple and straight-forward is fine.
  4. Clean code.
  5. Uses extensions that are easily available and also cleanly coded.

The caveat is that I’d like something that could have easily had a custom UI, but the author chose to make it traditional, if that even exists. Something that clearly or probably would have benefited from a custom web UI.

Counterfeit Monkey’s graphics code is pretty much stand alone and could be cut out easily. And seeing as I haven’t finished fixing it’s graphics code, a reimplementation would be worth while haha. But even if you ignore the graphics code it should provide a good stress test of the system. I think all the extensions are there.

I guess I have a pretty good grasp of the non-graphics parts of the Counterfeit Monkey code by now, so I’m happy to answer any questions about it. I’m afraid some of the speed optimizations I’ve done may have made things less clean. Worst case, I could easily reinstate any older, simpler, slower code.

Without the jit customizations ported to glulx-typescript, I’m worried CM will run way too slowly. Thilo said he’d eventually get to it, but it’s been a year, so I don’t see that happening. That would be a great platform test though, so I am interested.

The graphics is only one part of porting to fyrevm. I’d also need to comb through all output to make sure it was emitted in the right channels. Given that CM is mostly a standard story, this shouldn’t be that big of a deal.

Of course one of the things that could be done is additional work to add value to the story using contextual side outputs.

I haven’t played CM since it was released, so I’m playing through again now…

Things I see so far as contextually managed in the UI:

  1. The map
  2. The tutorial.
  3. Memories.
  4. Scoring
  5. The ?-remover status