Thursday, May 1, 2008

ArcLib all-in-one vs. modular design

Forum thread: http://www.dsource.org/forums/viewtopic.php?t=3861


Here's an idea that I'd been thinking about in my head a while, about
which design route I should be taking ArcLib in.

1. Modular design
- Arc Core Library
- Arc Scenegraph
- Arc Particle
- ArcLib compatible Blaze
- etc.

2. All-in-one design
- The way it is now. Everything is well mixed together.

I'd rather stick with one design or the other, to have a strong design
philosophy behind the library, at least.

I've been leaning towards the all-in-one design, which is what ArcLib
is currently, for ease of use. However, to keep up with this design, I
/will/ need to integrate Blaze directly into the ArcLib code base. It
also puts the pressure on me to maintain / develop more code, and
slows down the release cycles.

Recently I've been thinking of a modular approach as well... this
approach works well for the SDL library (SDL_image, SDL_ttf, etc.) It
would allow game programmers to 'pick and choose' which components of
ArcLib they would want to use, and the core of ArcLib would become
really well polished. DSSS would remove the pain of installing all the
libraries separately. This way, different members of a future 'arclib
community' can make arclib compatible extension libs and people can
choose to use them or not, and my 'GUI' implementation would have the
possibility of 'disappearing' if a better one from the community
emerged, or certain sections of arclib can be redesigned without
really much of a problem.

Anyways, I've been struggling with these ideas for a while and kind of
want to know what others think about them.

1 comment:

Logwad said...

Modular, hands down. With everything you've said, it's clearly the best decision for a long term library.

As I see it, the more popular arclib gets, the less work you'll have to do if people can make adjustments easily.