Tagaro is the top secret codename for my redesign of libkdegames.
This library will (if necessary) define common data types used throughout the other Tagaro libraries.
libtagarocore also provides configuration facilities in order to allow users and packagers to control the behavior of all Tagaro-based games from one central point.
libtagarographics manages and renders theme components. Possible theme formats include:
The KGameRenderer framework has become a part of libtagarographics for this purpose.
Furthermore, libtagarographics provides some convenience classes for embedding these theme components into QGraphicsView and possibly QDeclarativeView. (We have not made a final decision whether Tagaro will have built-in QML support.)
Today, the user experience of our KDE games resembles very much the interface of desktop GUI applications: They have a menubar, a toolbar, a statusbar. There is no homogeneous API for on-screen game interface elements.
libtagarointerface will provide these on-screen game interface elements, and automatically substitute them for the traditional KXmlGuiWindow chrome on mobile devices, or in fullscreen mode (which will be available to all games automatically).
This is where the dreaming starts. :-D
I envision an input framework that recognizes the context of input events, rather than just their receiver, like QtGui does. Palapeli has something remotely similar with its InteractorManager, but these classes have serious design flaws.
There is the KGame namespace in libkdegames, which provides an abstraction for general game components (like players, data exchange in network games, chat channels). Like most parts of libkdegames, KGame is near ancient, and should probably be rewritten, based on the actual requirements of our games.
Phonon cannot (and does not) guarantee low latencies and is therefore (in general) unsuitable for games. TagaroAudio therefore uses OpenAL+libsndfile, but that's an implementation detail which is very well hidden by the API (in contrast e.g. to GluonAudio, which is essentially a Qt-style C++ wrapper for the OpenAL libraries). The only OpenAL-specific feature exposed by the API is positional playback.
We certainly need more modules for Tagaro, for example for...