KDE Games/Tagaro: Difference between revisions
No edit summary |
|||
Line 18: | Line 18: | ||
: Even earlier if you help out. :-) But seriously, I hope to get first parts into the 4.7 release. | : Even earlier if you help out. :-) But seriously, I hope to get first parts into the 4.7 release. | ||
== | == Modules == | ||
=== Core === | |||
=== | |||
;Status: configuration facilities are available | ;Status: configuration facilities are available | ||
Line 30: | Line 28: | ||
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. | 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. | ||
=== | === Graphics === | ||
;Status: mostly finished; support for bitmap images missing | ;Status: mostly finished; support for bitmap images missing | ||
Line 41: | Line 39: | ||
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.) | 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.) | ||
=== | === Interface === | ||
;Status: to be done | ;Status: to be done | ||
Line 50: | Line 48: | ||
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). | 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). | ||
=== | === Interaction === | ||
;Status: to be done | |||
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. | |||
=== Gaming === | |||
;Status: to be done | ;Status: to be done | ||
Line 61: | Line 67: | ||
* multiplayer networking (GGZ, Telepathy, Jabber, or whatever provides a solid base) | * multiplayer networking (GGZ, Telepathy, Jabber, or whatever provides a solid base) | ||
* sound output (from our experience, Phonon and KNotify are not up to the task; GluonAudio or OpenAL might be candidates; or an abstraction layer that can switch between multiple output channels?) | * sound output (from our experience, Phonon and KNotify are not up to the task; GluonAudio or OpenAL might be candidates; or an abstraction layer that can switch between multiple output channels?) | ||
* | * social gaming (definitively an area to collaborate with the Gluon people on) |
Revision as of 21:31, 23 August 2010
Tagaro is the top secret codename for my redesign of libkdegames.
Goals
- deprecate unmaintained frameworks like KExtHighscore
- create tools that allow KDE games to scale to new form factors
- use new and state-of-the-art Qt and KDE technology to its full extent
FAQ
- Where is the code?
- Clone the repository from my Git server. I want to move it to git.kde.org when this becomes available, but it is not yet. If you want to participate, send me your push requests. I can also give you commit access, or put it on a more publicly available place, if you plan to work on it regularly.
- What does the name mean?
- Tagaro is an oceanic deity which is said to have created mankind in a game of bowling. A perfect fit for a library which allows you to create games.
- Is its feature set/API/ABI stable?
- No way. Work has just begun, and we're by far not done desigining and implementing everything.
- When will it be ready?
- Even earlier if you help out. :-) But seriously, I hope to get first parts into the 4.7 release.
Modules
Core
- Status
- configuration facilities are available
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.
Graphics
- Status
- mostly finished; support for bitmap images missing
libtagarographics manages and renders theme components. Possible theme formats include:
- SVG-based component themes (like currently managed by KGameTheme)
- single SVG or bitmap images (like currently managed e.g. by KMahjonggBackground)
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.)
Interface
- Status
- to be done
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).
Interaction
- Status
- to be done
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.
Gaming
- Status
- to be done
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 (from what I can see) cannot easily be used with current data exchange frameworks like Telepathy.
More?
We certainly need more modules for Tagaro, for example for...
- multiplayer networking (GGZ, Telepathy, Jabber, or whatever provides a solid base)
- sound output (from our experience, Phonon and KNotify are not up to the task; GluonAudio or OpenAL might be candidates; or an abstraction layer that can switch between multiple output channels?)
- social gaming (definitively an area to collaborate with the Gluon people on)