Skip to content

Roadmap for 1.0 #4

@CrazedProgrammer

Description

@CrazedProgrammer
  • Clean up computer creation code, especially the parts that deal with multiple implementations depending on the platform
  • Write a JSON table parser so that there's no dependency on a third-party json.lua library
  • Improve term performance significantly so that full-screen games work without slowdown
    - Improve idle CPU usage Not possible without compromising on response time with the current "collect user input for x seconds" method. Idle CPU usage is around 5% (one core, Ryzen 5 1600) with both Lua and LuaJIT.
  • Useful defaults for CLI interface depending on platform
    - Add single-file mounts Not a proper solution to the "mounting real files on the PUC platform" problem. There is probably a way to read/write files and directories with only the POSIX tools. Not strictly necessary for 1.0.
  • Make the platform-specific methods and platform detection methods generic and conceptually decoupled from the main code. In this way, support for a new platform can be added without touching the base code.
  • Implement fs.find
  • Implement alphanumeric keycodes
  • Implement modifier keys if possible
  • Handle SIGTERM signals just like SIGINT
  • Flush filesystem on SIGINT
  • Handle mouse scroll events

Compatibility improvements:

  • Fix crash in BBCards by Bomb Bloke (doesn't crash anymore, but needs a monitor to work)
  • Fix crash in Minesweeper by GopherAtl
  • Fix crash in Doom by Xelostar
  • Fix timing issues in QuickDraw by LDDestroier
  • WONTFIX: Fix crash in BBTetris by Bomb Bloke
    This requires a source translator. LuaJIT, Lua 5.2 and Lua 5.3 don't provide the arg table for vararg functions.
  • WONTFIX: Fix crash in CCSand by CosmoConsole
    This requires a source translator. LuaJ interprets 16f as 16, whereas the normal Lua variants throw a syntax error.

Terminal-specific issues:

  • Fix mouse controls not working in urxvt.
  • Fix backspace not working in xterm.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions