Navigation Menu

Skip to content

Roadmap

Bjorn Stahl edited this page Sep 14, 2023 · 5 revisions

This page tracks the planning for new development, targets for each development branch and completion criteria.

0.6

This series of releases will have a focus on networking and remoting support. A big part of this is consolidated into the 'a12' protocol and the related arcan-net tool. The big items for this series of releases are:

  • Networking

    • Rewrite networking frameserver to use A12 state machine
    • Separate TODO in (net/HACKING.md)
    • AGP backend that can output using A12
    • A12 added to encode frameserver as well
    • Packing formats for:
      • LWA
      • TUI
      • VOBJ/VR
  • Finalizing TUI API

    • Embedded / decode
    • bindings
    • Support Widgets (listview, bufferview, readline)
    • complete CLI shell
  • Graphics

    • Remove CTM support, add model loading into decode frameserver
    • Multi-Card GPU
    • HDR support (special wiki for tracking)
    • low level optimizations (rendertarget-scanout, atomic props)
    • Server-side TUI rendering
  • Lua

    • Asynch- compute jobs

0.7

This series of releases is about the lose ends in the audio and 3d support and is the last stage of raw feature expansion.

  • Audio

    • Split audio up to use the same platform structure as video
    • Add plugging for simplified backends
    • Migrate to f16 as native sample format
    • Expose better device controls and routing rules to Lua layer
  • 3D

    • Event- driven collision detection and response
    • VR client compositing

0.8.x

With 0.7 marking the end of feature expansion, it is time for quality and optimization level work. This means all performance critical paths should be fully vectorized, the possibility for profile-based builds that target specific appls-. Complete documentation and test coverage, fully automated testing and benchmarking.

0.9.x

At this stage we're both feature complete and fast. Last is to bring out the heavyweight security. All parsers (except the Lua interface and DB) should be removed from the main engine, outsourced to external providers. All contact surfaces should be fuzzable, with continuous fuzzing integrated into the automated testing. Tools for analyzing crash dumps, snapshots and live monitoring should be completed.

1.0.0

This marks the freeze of both internal engine interfaces and SHMIF. All contact points should be documented, reviewed and lib:ified. The Lua VM should become an optional build and the last bits of GPL scrapped. Absinthe and Cigars to celebrate.