About News Features Platforms Forum


Features

This page lists current features and plans regarding further features. These are not put in a roadmap because I prefer to code however seems best at the time.

Current features

  • File IO library (named mergetag)
    • Data stored with tags
    • Designed to be:
      • Flexible
      • Fast
      • Not primarily designed for ease of use
    • Support for easily merging data tags between files
  • Configurable input system
    • Extensible, for example (not currently implemented, but framework exists):
      • Timed buttons (i.e. click or hold)
      • Button sequences
      • Modifiers (using a flexible-but-low-level approach)
  • String translation module
    • Translate an identifier using a string from data files
    • Each locale can include dependency locales to avoid redefining identical symbols
    • Falls back on supplied identifier if no translated string is available
  • Options module
    • Eases loading and saving of configuration variables
    • Variables are declared on the stack for maximal reading speeds
    • Allows generic handling for all variables; e.g. for a generic GUI options screen with per-item names and descriptions.
    • Locally changed options tracking
      • Requires using a function call to set options
      • Options set during run are merged with options stored under the user path and saved on exit
      • Remaining options are loaded from system/install config files
  • Paths module
    • Defines OS-specific paths
    • Allows multiple paths to be transparently accessed as one directory (using mergetag package)
      • Static data dir and preconfigured configuration dir
      • User-specific dirs with modified data and config files
      • All paths merged together upon loading

Planned features

This is something like a roadmap, but much less rigid.

  • Basic 2D graphics
    • Temporary functions to draw boxes, etc. for the GUI
    • Text rendering
  • Graphical User Interface
    • Soon on my to-do list
    • Support for redesigning windows at run-time
    • Easy stretch-to-fit widgets and windows
    • Windows composed of grids of widgets (or empty space) rather than free-floating widgets
  • 3D Graphics
    • Possibly cooperate with an existing project, such as yage or Odin's Eye.
    • Possibly implement very basic graphics as a temporary measure to implement physics.
    • Possibly go even further and implement a scene graph joint with the physics system, likely using code from other projects.
  • Physics
    • Writing a physics emulation system is something I've wanted to do for a long time. I expect it will be more difficult than I imagine, but all the same I want to give it a go.
    • Either design from scratch or port an existing library, such as bullet.

Further possible features

Features thought-up and possibly planned out, but which either seem of little use or will not be implemented unless requested.

(none listed)