|
| This Week... |
|
The beginnings of a KControl module for Decibel configuration make an appearance. Developments in the Subversion plugin for KDevelop. More optimisations in the KJS JavaScript interpreter. Further progress in the KBattleship rewrite. New country maps in KGeography. KRfb, a desktop sharing utility, starts to be ported to KDE 4. A new GStreamer backend for Phonon, and QSR, a search-and-replace utility, are imported into KDE SVN.
|
Gaël de Chalendar introduces KsirK, a strategy game proposed for inclusion in the kdegames module for KDE 4:
|
KsirK is a computerised version of a well-known strategy board game: Risk! It is a game for KDE released under the GPL. KsirK is a multi-player, network-enabled game with artificial intelligence.
The game has two modes: conquer the World or reach a goal like conquering two given continents. This is done through attacking your neighbors with your armies. At the beginning of the game, countries are distributed to all the players. Each country contains one army (represented by an infantryman). Each player has some armies to distribute to his countries. Note that five armies are represented by a cavalryman and 10 by a cannon. On each turn, each player can attack his neighbours, eventually conquering one or more countries. At the end of each turn, some bonus armies are distributed to the players relative to the number of countries they own.
KsirK is fully skinnable, allowing the use of other maps, other countries, other goals, etc. depending only on your imagination and artistic skills.
My motivation for this work is simply to offer KDE gamers a pleasant and challenging game in which the user can have good moments with players all over the world. That's all :-)
I have developed my KDE development skills through steady practice - I also wrote KGraphViewer, an application which has been in extragear/graphics for some months. I'm not a great technician, but I now have a good experience in digging into Qt and KDE API docs: what makes it so great to develop for KDE is these great docs.
I started this game around 1995 in order to learn C++ and Windows 95 programming. It was initialy named "Risk". I used a book about WinG, one of the first Microsoft attempts to give gaming abilities to Windows. But a lot of the examples of this book were in assembly language (which I never learned). I used these routines, but without being able to fully understand them. This first version never reached an acceptable status. Some time later I heard about Java and decided to learn it. So, I decided to convert Risk to JRisk. I obtained, if I remember well, a version that was running adequately, but really slowly. This was due to the use of an early version of Java but also to a really ugly programming!
In the meantime, for my work, I learned Smalltalk (VisualWorks), the object-oriented language (try it, you really cannot experience higher OO programming pleasure - I'm addicted!) and so discovered all the power of good OOP. I started also to use Linux and KDE. I wanted to learn KDE programming and so decided to convert back my lovely project to C++. KRisk was born! Through my experience of Smalltalk and the APIs of QT and KDE, my work has steadily improved.
At the time of April 2002, some architectural problems due to this complex history remained, but the application worked well and I could release a public version. I choosed to rename it in order to avoid copyright issues: welcome to KsirK!
In early 2003, KsirK got a minimal AI (for Artificial Idiot as its decisions were chosen completely at random) and the themability of the world. This last point was a direct consequence of the improvements of the overall architecture of the game.
I finally decided to propose the inclusion of KsirK in the kdegames module because I believe it would be good to have such a game in the package and because I felt the application ready for it. I made my proposal during one of the #kdegames IRC meetings and it was well-received. Also, during the poll about the future of kdegames, KsirK was one of the more demanded games.
The KGame library was a great help to develop the network part of KsirK and it's a pity that this library is rarely used.
Here is one of the first snapshots of the KDE 4 version of KsirK:
|
|
Gaël points out that the trunk version of libkdegames (so, for KDE 4) is now Qt3 and KDE3-support free. So, games which use this library can now be compiled without the support libraries.
|
For yet another indication of the current vitality of the kdegames module: Luka Marinko, someone who is completely new to KDE development, proposes to port KSnake to KDE 4 as his introductory task:
|
For some time now, I wanted to (had an itch) to help develop KDE. But since most of my programming to date has been on server side (C, Java, PHP, Python), never found enough time to learn GUI programming or C++. Now I have some more time, and decided to finally do it.
So after reading a few blogs and KDE wiki's I decided that best place to start is probably the games. I also noticed that KSnake isn't getting much attention. Since I quite like this kind of game (all the way back to Nibbles on DOS) I decided to do something about it.
What I am planning on doing:- Firstly, I intend to port the graphics to SVG.
- Another problem is size of game area. By default, the window size is about 1/4 of the size of a 17 inch monitor (1280x1024). Even with SVG graphics, if you maximize the window the game will look odd, since everything will be too big. So we need bigger levels, but if we just increase current level size, you get more room to move in, and the game gets easier as a result. So we also need new levels :)
- Current levels (and also the title screen and "level loading" graphic) are stored as 1-bit per pixel bitmaps, stored in header files which get linked in at compile time. I intend to change this to something that gets read at runtime.
I had some discussion about this on the #kdegames IRC channel, and one suggestion by Mark A. Taff, is to store levels as SVG (with help of clones and an ID naming scheme), the other one is to store levels similar to how KAtomic stores them. I welcome other suggestions.
- About gameplay, I find enemy snakes and balls annoying, so I would change the default game style to be without them. I was thinking of providing a few pre-configured game styles (this is just a few off the top of my head, suggestions welcome):
- Pick up a specified number of apples (depends on the level) before you can move to the next level (less time you take and higher the level the better the score)
- Pick up as many apples as possible, each time you do you grow or the speed increases - you never advance to the next level (so, how long you can last :). This mode would probably need some dedicated levels.
- Survive against enemy snakes, survive a specified amount of time against killer snakes (maybe balls also), you _don't_ grow (so you can't box yourself in someplace :)).
In general I think this is the sort of the game that shouldn't become too complicated: it should be quick to load, and quick to play.
- Sound: I listen to my ogg's and mp3's :)), so I have no plans in that regard. (that said, the Phonon API is nice, if there is demand for music/sound in games).
KSnake currently has no maintainer. Since I am so new/fresh I don't think I am capable of being one just yet. So what do we/I do? Is there someone willing to take over at least for the time being, or perhaps just move it to playground, until it's up to speed?
While I am sure I can learn to do everything myself, I will take any help I can get, whether this is in the form of pointers, suggestions, graphics, comments, code or tips & tricks.
|
|
Allen Winter provides a quick update on the state of KDE-PIM as we get ever-closer toward KDE 4:
|
In KDE-PIM news, this week saw some big fixes with the KMail IMAP support, thanks to a tremendous debugging effort by Stephan Kulow, Will Stephenson and our merry band of testers. The bug fixes have already been ported to trunk for the KDE 4.0 release and will be available in KDE 3.5.7, of course. KMail also received an infusion of new features from the good folks at KDAB, including:- folder drag'n'drop, allowing to copy or move (nearly) any folder
- search result drag'n'drop
- local subscription for disconnected IMAP accounts, allowing to mix online and disconnected IMAP on the same account.
- inline viewing of MS-TNEF attachments
The first two are already merged into the 3.5 branch, the remaining ones will be merged in the coming week from the KDE-PIM enterprise branch and thus will be available in KDE 3.5.7.
As with KDE 3.5.6, KPilot continues to receive much love from the KPilot team. All the recent changes are contained within our features development branch, but we expect them to be released with KDE 3.5.7.
On the API front, kdepimlibs received Christian Weilbach's blogging library called "kblog". From Christian:"KBlog is a small library for access to Blogger 1, MetaWeblog and Blogger 2 compatible blogs. It makes heavy use of the KXmlRpc client library of kdepimlibs and supports asynchronous sending and fetching of posts and (if supported on the server) multimedia files. Almost every modern blog software supports one of the APIs mentioned above." We hope this new library will give our blogging team a solid basis for providing some cool blogging capabilities in KDE 4.
In addition, the old "emailfunctions" library was renamed to "kpimutils" and this is where we intend to keep our general purpose PIM utilities.
|
|
Though somewhat similar in content to the previous 51 weekly issues, this issue is fairly special, as it is number 52 of the "new" KDE Commit-Digest series, marking a year of digest goodness. To another year of exciting issues!
|
|
| Statistics |
|
| Contents |
|
|
Bug Fixes |
Features |
Optimise |
Security |
Other |
|
Accessibility |
|
|
|
|
|
|
Development Tools |
|
|
|
|
|
|
Educational |
|
|
|
|
|
|
Graphics |
|
|
|
|
|
|
KDE-Base |
|
|
|
|
|
|
KDE-PIM |
|
|
|
|
|
|
Office |
|
|
|
|
|
|
Konqueror |
|
|
|
|
|
|
Multimedia |
|
|
|
|
|
|
Networking Tools |
|
|
|
|
|
|
User Interface |
|
|
|
|
|
|
Utilities |
|
|
|
|
|
|
Games |
|
|
|
|
|
|
Other |
|
|
|
|
|
|
|
Bug Fixes |
|
Games |
|
Mark A. Taff committed changes in /trunk/KDE/kdegames/libkdegames:
|
Fixes for errors found by EBN's krazy
- Don't use @since tag for major version - Don't compare a QString to "" - Don't add single character Qstrings to a QString - Fix a misspelled word |
|
|
|
|
|
|
|
|
|
|
Features |
|
Development Tools |
|
Andreas Pakulat committed changes in /trunk/KDE/kdevelop:
|
|
Make subversion support optional and rename the cmake module as there exist a core-cmake-module with the same name. (Confused me so it would confuse others too) |
|
|
|
|
|
|
|
|
Dukju Ahn committed changes in /branches/KDE/3.5/kdevelop/vcs/subversion:
|
Subversion UI/KIO addition. Run kdeinit after installing to use changes
1. Invoke diff and blame on log-view output widget. Diff and blame can now be done for any revision using log-view widget. 2. Adding "replace" status. 3. Adding the way to get subversion-metadata, including repository URL, repos root URL, uuid, etc |
|
|
|
|
|
|
|
|
Educational |
|
Aleix Pol Gonzalez committed changes in /trunk/playground/edu/kalgebra:
|
- Some kdeification (KMainWindow and klocale) - Icon added, horrible I know, I am not an artist and I can't make nice things :(. - Compiled with Qt 4.3, works nice, 3D calc is a bit faster :) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Carsten Niehaus committed changes in /trunk/KDE/kdeedu/kalzium/src:
|
|
New feature. I want the new bottom widget to hold many more information, for example context info what the table is supposed to be. All that perhaps in nice html. Currently it only display an ugly QLabel, though. annma, perhaps we can discuss this? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mauricio Piacentini committed changes in /trunk/KDE/kdegames/kshisen:
|
New game option, patch by Jeremy Wick. Implements the chinese style match for flowers and seasons, consistent with Kmahjongg and the more traditional game rules. |
|
|
|
|
|
|
Mark A. Taff committed changes in /trunk/KDE/kdegames/libkdegames:
|
Introducing a new class, KGameSvgDcoument, which permits an SVG file's style and transform properties to be modified in DOM. Either the whole document, or a specific node and its children may then be loaded and rendered via KSvgRenderer.
This is useful to permit one gamepiece to be drawn, yet allow that piece to have its color set/reset at runtime, perhaps based on a value from KConfig.
The class permits full control over the SVG style attribute, as well as over the transform attribute. It includes convenience functions for scaling, translating, shearing, and rotating an element.
Also, this is my first commit to KDE SVN, and my first working C++ class. :-)
Many thanks to those who patiently helped me along in #kde4-devel, #kdegames, and in the mailing lists. |
|
|
|
|
|
|
Mauricio Piacentini committed changes in /trunk/KDE/kdegames/kgoldrunner:
|
Double walk and hanged frame cycles from 4 to 8 for heroes and enemies. Artwork in the legacy theme and the new SVG template were adjusted to the new behavior.
Change will be needed for the new runner art (in testing, not committed yet.) |
|
|
|
|
|
|
|
|
|
|
|
|
Mauricio Piacentini committed changes in /trunk/KDE/kdegames/kgoldrunner/src:
|
Previous attempt of implementing 8 step graphics for alternate walk cycles was wrong, as actualPixmap is overriden by startWalk(). Restore previous behavior in walkLeft and walkRight (4 cycle), and assign the alternate step graphics in startWalk, using an instance flag. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
KDE-Base |
|
Vincent Ricard committed changes in /trunk/kdesupport/strigi/src/streamanalyzer:
|
the PNG analyzer now supports the tIME chunk this is using a workaround (as discussed with Jos) to compute the number of seconds since epoch (mktime use the local time zone for the computation, though the chunck is UTC...). Another solution could be using Qt and make this analyzer a module. |
|
|
|
|
|
|
Jos van den Oever committed changes in /trunk/kdesupport/strigi/src:
|
|
Add registered fields to the global database of field properties. This allows ontoprint to print an RDFS file of all the fields of all the loaded analyzers. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Josef Spillner committed changes in /branches/work/knewstuff2:
|
- fine-tune knewstuff2_test do not download when we don't want download - fix the i18n-id mechanism: if assumption holds that languages only get added, it works now
Interestingly, if Hotstuff is optimised to only deliver in the most-wanted user language, the identification will still fail. There's no way around that. Very bad - do we really need a server-generated id?
Also of interest is that KIO doesn't use the same language preference which is used in Konqueror. Will have to find the reason. |
|
|
|
|
|
|
|
|
|
|
|
|
Vincent Ricard committed changes in /trunk/kdesupport/strigi/src/streamanalyzer/endanalyzers:
|
extract all metadata described in the PNG specfication. Remaining issues: - parse the "Creation Time" format - convert the iso-latin-1 to utf-8 for the tEXt chuncks - there is a problem with some compressed fields (e.g. Description value in /usr/share/apps/kdm/pics/users/Apple.png) |
|
|
|
|
|
|
|
|
Tom Albers committed changes in /branches/work/mailody-4/src:
|
|
Work on the headerlist. Use Qt::UserRole for the sorting, which results in large cleanups. Fixed the Quick Search, Fixed the display of all the color labels, etc, etc. |
|
|
|
|
|
|
|
|
|
|
Urs Wolfer committed changes in /trunk/KDE/kdenetwork/kget:
|
Add skeleton for new TransferContainer class: this class will handle every single transfer, e.g. for using metalink.
The TransferFlags enum saves the properties of a transfer. The class does nothing at the moment. |
|
|
|
|
|
|
|
|
|
|
Office |
|
Thomas Zander committed changes in /trunk/koffice/kword/part/dialog:
|
Add spinbox to alter the first page of document. Add checkbox to allow user to choose if he wants to change the margins for the whole document, or just for one page. |
|
|
|
|
|
|
Jan Hambrecht committed changes in /trunk/koffice:
|
Prepare for an infinite canvas mode in the canvas controller. The methods centerCanvas and isCanvasCentered got replaced by setCanvasMode and canvasMode which are setters/getters for the CanvasMode enum. Possible modes are Centered, AlignLeft, Infinite as of now. Centered and AlignLeft map to the old centered/uncentered behaviour, Infinite is not implemented yet. |
|
|
|
|
|
|
|
|
Optimise |
|
KDE-Base |
|
Maks Orlovich committed changes in /branches/work/kjs-blizzard:
|
|
Convert Var statements to take advantage of local array as well... Gets slight improvements on a few benchmarks -- e.g. 2.7% on MD5, 1.5% on iBench, and no change in cordic. The var-intensive computation portion of Mikelima's Maldelbrot test #4 (dropping the 60% of the execution time that's spend setting innerHTML within KJS) shows about 7.5% improvement, though, but that was the motivating example, really. |
|
|
|
|
|
|
|
|
Office |
|
Boudewijn Rempt committed a change to /trunk/koffice/krita/ui/kis_qpainter_canvas.cpp:
|
|
This seems to speedup the drawing of the checks with about 25ms on my laptop and of the image by about 10ms -- maybe it'll help those poor people without xrender. Only I thought we didn't have to double-buffer ourselves anymore with Qt4... |
|
|
|
|
|
|
Other |
|
|
|
|
|
|
|
|
|
|
|
Tuomas Suutari committed changes in /:
|
|
Move KPhotoAlbum trunk to branches/kphotoalbum/3.0.x to make room for moving devel branch back to trunk. |
|
|
|
|
|
|
KDE-Base |
|
Laurent Montel committed a change to /trunk/KDE/kdebase/apps/dolphin/CMakeLists.txt:
|
dolphin is the first apps which requires qt4.3 but by default we don't requires it for the moment I will not increase check into kdelibs now but it will a good idea to increase it => for the moment disable dolphin if we don't have qt >= 4.3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Matthias Kretz committed a change to /trunk/KDE/kdelibs/kdeui/dialogs/kmessagebox.cpp:
|
|
the margins are way too big. The inner layout probably was never supposed to have a margin, and the margin of the outer layout is added to the margin of the dialog which gave 3 layouts adding margins. Now it's only the dialog layout that defines the margin. |
|
|
|
|
|
|
Sebastian Trueg committed changes in /trunk/playground/base/nepomuk-kde:
|
Added libKonto to the Nepomuk-KDE playground. Konto is an Ontology wrapper library which is intended to be used to get information about ontologies stored in the Nepomuk-KDE RDF store. It supports internationalization which allows for a simple creation of GUIs that display metadata stored in the RDF store.
I will probably integrate it into KMetaData at some point to make handling these things even more easy. No app developer should be forced to handle URIs.
Be aware that LibKonto is not tested yet at all. I will do that tomorrow probably. |
|
|
|
|
|
|
Albert Astals Cid committed changes in /trunk/KDE/kdelibs/kdeui/widgets:
|
kill KDateInternalWeekSelector and KDateInternalMonthPicker as noone used them
port KDateTable away from Q3GridView
set margin and spacing to 0 in kdatepicker.cpp to reproduce kde3 look |
|
|
|
|
|
|
Alex Merry committed changes in /trunk/kdesupport/strigi:
|
Strigi API cleanups. The jstreams namespace is gone, replaced by the Strigi namespace. getFoo() functions have been replaced by foo() in streams and streamanalyzer. StringReader is now StringStream, BufferedInputStream is now BufferedStream and several headers are deprecated: use streambase.h instead of inputstream.h and stringstream.h instead of stringreader.h.
APIdox might be out of sync. Updates to follow. |
|
|
|
|
|
|
Laurent Montel committed changes in /trunk/KDE/kdelibs:
|
Split sonnet between kdeui/kdecore ok'ed in january It will allow to add spellchecking into ktextedit New sonnet organization ok'ed by David. libsonnetcore/libsonnetui is removed now. |
|
|
|
|
|
|
Thiago Macieira committed changes in /trunk/KDE/kdelibs/kdecore:
|
Add the code for KSocketFactory. For now, it doesn't support any proxies. I'll add the code for that later.
Let's see if it breaks compilation anywhere.
Also, use this opportunity to fix an old-time NetBSD problem: it provides reentrant a getservbyname() function. So assume all NetBSDs running KDE 4 have it reentrant. |
|
|
|
|
|
|
|
|
|
|
Networking Tools |
|
Alessandro Praduroux committed changes in /trunk/KDE/kdenetwork/krfb/krfb:
|
porting to KDE4/Refactoring of krfb - remove kinetd dependency - implement internal TCP server - reorganization of dialog (unfinished) - removed dcop/qdbus interface for now, will see if it's needed in the future or not- porting of dialogs to uic4 (unfinished) |
|
|
|
|
|
|
Office |
|
David Faure committed changes in /trunk/koffice/libs/kofficeui:
|
Clean up the recent files and filedialog stuff, which are now unused. Keep only the templates tab, for use in kpresenter's "Insert new page". This allows me to make big changes to KFileIconView now that it's not used here anymore :) |
|
|
|
|
|
|
|
|
|