Table of Contents
| 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)
- Extensible, for example (not currently implemented, but framework exists):
- 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)
