AllegroPro Development Roadmap
This document specifies how AllegroPro should be developed, from design
through full implementation.
AllegroPro, as specified in the core
design document, is divided into 5 parts. The 4 main components, and the
core systems. Each component is relatively independent of each other, but there
are some dependencies.
This roadmap deals only with one platform. As development proceeds, it is
expected that various ports of AllegroPro can be made to other platforms. Until
those ports mature, the principle platform of focus will be Win32.
Roadmap
- Distribute designs for the components for discussion
- Finalize core design
- Design AllegroPro API conventions/language (C vs. C++)
- Finalize AllegroPro API conventions/language
- Implement the core design (thread, errors, etc)
- Finalize Graphics design
- Implement Graphics design, using Allegro 4 as a base graphics driver. Feel
free to just get the basics up and running.
- Finalize Input model design (can happen anytime after implementing core design)
- Implement Input model design, possibly using Allegro 4 as a base input driver
(can happen anytime after implementing core design)
- Design sound design (can happen at any time)
- Finalize sound design (can happen anytime after implementing core design
and sound design)
- Implement sound design, possibly using Allegro 4 as a base sound driver.
- Design filesystem (can happen at any time)
- Finalize filesystem (can happen at any time after implementing the core
and designing the filesystem)
- Implement file system
At this point, AllegroPro would be functional, though not entirely complete.
At this stage, the system would be considered version 0.1. The purpose of this
is to have a codebase up and running as fast as possible.
From here, there isn't a precise roadmap, but merely a list of things to do,
in no particular order:
- Fully implement the generic graphics driver. It need not be fast, just
100% functional.
- Implement an OpenGL-based graphics driver that supports all of the design,
or as much as possible. Finalize OpenGL-specific API.
- Implement a GDI-based graphics driver, with GDI limitations, though as a
windowed-tool implementation.
- Implement a DirectX-based graphics driver (provides support for overlays,
if we decide to care)
- Implement a DirectX-based audio driver.
- Re-implement the input driver as a native DirectInput-based system (thus
culling out the Allegro 4 driver if not already done).
- Potentially implement all driver systems as SDL-based drivers.
- Port AllegroPro implementations to Linux/MaxOS/etc.
The important steps are the OpenGL graphics drivers (gives AllegroPro
features), the generic graphics driver (implements the design fully), and the
sound driver.