Project goal
Provide a platform independant abstraction layer with game-oriented services built-in, such as virtual filesystems(eg. Quake 3's PK3s),
variables(eg. Quake 3's cvars), a console, timers, initialization of OpenGL, multiple audio streams, texture loading, etc.
This will be the base of GlDemo and CheapoDDR. Probably other things too.
Why?
I didn't find such a library. SDL doesn't give me enough.
Design ideas
The engine will probably put together libraries like DevIL,
zlib, PortAudio,
SDL and SDL_sound.
Planned features
- PORTABILITY!
- Multiple timers
- Virtual filesystem(with optional PK3-style(ZIP) filesystem containers)
- Texture loading, from the virtual filesystem or memory maps(think mmap())
- Quake 3 style commands
- Quake 3 style cvars
- Quake 3 style input->command binds(eg. bind w +forward)
- Quake 3 style console
- Initialization of an OpenGL window with parameters from the cvars
- Multiple audio channels
Current progress
Code and design.
Completed
- Timer design
- Filesystem design
- Windows timer implementation
In progress
- Basic filesystem implementation
Left to do
- Audio subsystem design and implementation
- Input subsystem design and implementation
- Cvar subsystem design and implementation
- Rendering subsystem design and implementation