|
The Summer of Code begins, with 40 KDE projects. Registration opens for Akademy 2007. Hosting proposals invited for Akademy 2008. Further progress in the KBattleship rewrite with sounds and network play integrated, and theming support added to the Bovo game. More work on Strigi file analysers. Drag-and-drop and porting work in Mailody. A new CVS plugin for KDevelop 4. KSquares moves to kdegames. A new game, Kollision, is imported into playground/games.
|
In recent times, the kdegames module has modernised and matured in exciting quantity. The past week has been no exception to this. I asked the kdegames team for a roundup of the recent activity - Paolo Capriotti introduces the game imported into the playground this week, Kollision:
|
This weekend I've found some time to implement an idea for a game that had been floating in my mind for some time (actually, I have stolen it from a flash applet - with author's permission). It's called Kollision, and it's a very simple but (hopefully funny) game where you control a blue ball in a box full of bouncing red balls; your mission is to dodge them, surviving for as much time as you can, while red balls continue to be added to the box. You can find the game at playground/games/kollision/.
The physics is quite rough, at the moment, but I have some ideas to make it more realistic. Inside the code you will find a nice animation system, which allows simple graphical effects to be implemented very easily. There are already a couple of text animations that appear when you "level up" (i.e. you get an additional red ball to avoid). I hope to be able to move the game to kdereview soon, so that it has a chance to be included in the KDE 4.0 release.
|
|
An important focus of the kdegames revival is on usability. A recent mockup has turned to implementation: KWelcomeScreen, a way to display the game options available to the user in an obvious way upon application startup. Riccardo Iaconelli talks about it:
|
KWelcomeScreen is an effort to create a general framework for displaying semi-transparent menus on top of a game area (or any other widget). Its main purpose is usability: a user should not have to fiddle around with menus just to start a game. The "new game" option should be presented to him immediately and visibly, together with other common options. That was the idea that Johann Ollivier Lapeyre launched: he proposed in his blog to use a "welcome" screen that should be displayed when a game starts and provided a mockup.
This initially posed a number of technical problems, however, such as how to add an overlay to the game area in a way that were independent of the painting strategy employed by the particular game. The initial idea was to exploit the new Qt painting system, which automatically propagates widget content to their children, so that transparent widgets actually "show what's behind". I've rapidly implemented KWelcomeScreen using this overlay widget approach, using a container widget which stacks another one (just a transparent black overlay in this case, parent of the buttons) on top of the game-specific stuff. Every added element (like buttons) is a QWidget. This is a screenshot of the first real result I obtained with the first approach:
So I worked on a test implementation for KBattleShip, the game that Paolo Capriotti and myself are rewriting from scratch, and I managed to realize a working prototype for the game. The main problem was essentially its lack of flexibility: any graphical effect one could have wished to add would have resulted in useless X window calls and repaints, and ultimately in noticeable flickering and sluggishness. The only way we had to remove the flickering was to use a composite manager. And it wasn't still possible to add any kind of animations.
Therefore, Paolo started a refactoring of the class (while I was implementing some other cool graphic effects) which moved the whole painting and inputting logic in a separate class. This class can be used to adapt the painting mechanism to the specific game graphic framework (whether it is a simple QPainter-based approach, QGV, KGameCanvas or whatever) with very little work, or alternatively can be employed by a transparent widget just like in the original approach. The drawback is that it does not reuse the standard widget inputting and layouting system, but includes a simplified custom algorithm to compute button positions and implement mouse tracking. That shouldn't create any pain to the final application developer, though.
We now have the basis to implement in real life the faboulous concept that Johann presented in his blog. It will hopefully become a major feature in KDEGames 4, and could be easily used in other apps as well, maybe instead of modal dialogs (it is much nicer and way less annoying). We made all this all in just 5 days. We still need to finish the animations and improve the graphic (read: beauty; I will take care of this, as I'm also an Oxygen artist), and fine tune a bit more the API, but the class it's already at a really good point.
|
|
Aron Boström talks about Bovo:
|
Bovo has seen a lot of improvements lately. The playing field is larger, the Game engine has been redesigned, replay mode has been rewritten and the AI has been refactored to be more extensible. Oh, yeah, and a bunch of cool features has been added. Such as:- Configuration with KConfig XT.
- Introduction of themes (installable in $KDEHOME/share/apps/bovo/themes), configurable on-the-fly from the GUI.
- Four Bovo themes are now in SVN (all four in need of artists), they are Scribble, Spacy, High Contrast and Gomoku.
- Theme names and comments are translatable in the same way as .desktop files.
- Undo Move
- Gameplay Hints
- Demo mode, where two AI battle each other, demonstrating how the game is played
- Auto saving unfinished game at exit, and restoring that next time bovo is started. If no auto saved game is found, demo mode is launched.
- Statistics of wins and losses are saved from session to session.
- Everything on the board is now painted with svg elements from the themes, and everything is animated (configurable from GUI and configuration file).
- Bovo is more user-friendly now that it highlights the coordinate the mouse pointer hovers (if the coordinate is a legal move, i.e. not already in use). This is very important in Gomoku with its reversed grid background.
- And some more things I think I might have forgotten...
|
|
Stephan Kulow announces the schedule for KDE 3.5.7:
|
Hi!
It is about time, we do the next step on the KDE 3.5 series: releasing KDE 3.5.7.
I put the following dates into the 3.5 Release Schedule:- April 16th: Message and documentation freeze
- April 30th: Tagging
- May 8th: Expected release date
Please note that KDE 3.5 branch is already frozen while exceptions are granted more easily than with older KDE 3 releases, so the time between freeze and tagging should see some testing by everyone who is able to do so.
Thanks, Stephan
|
|
With the onset of the nice weather of Spring and Summer, something immediately becomes clear - Akademy 2007 is rapidly approaching! With this in mind, registration for the conference attendance and accomodation has now opened. Register before April 31st to secure KDE-organised accomodation!
Akademy is the annual KDE World Conference for both users and developers. As an annual event, the previous conference is not concluded before planning for the next event has begun. A call for proposals for Akademy 2008 has been made, the perfect opportunity for enthusiastic and dedicated local groups to bring a slice of KDE to their home region. Malága, Dublin, Glasgow - your city can also become a strong part of the KDE history and identity!
|
The Google Summer of Code selections for 2007 were announced this week, and KDE has been allocated 40 projects!
The projects span a wide range of areas, but all have one thing in common - all will advance the KDE desktop, with the improvements lifting KDE 4 to greater heights.
As the Summer of Code gets up to full speed, the Digest will feature weekly introductions and updates directly from the developers about their projects as they follow through to completion.
|
|