"Jewels" version 1.0 is out

Just wanted to mention that version 1.0 of Jewels is finally released. I'm glad it's out of my hands now, phew! :) Download it from http://www.codeplex.com/jewels.

Qt 4.4 released + plans for summer

Qt 4.4 framework was recently released. Hopefully PyQT 4.4 soon follows. Qt just rocks. 8-) Having been working with Java Swing (*cough*h o r r i b l e*cough*) these last four months, Qt 4.4 brings some light to the end of the tunnel..

Now that that's out of the table, I can talk a little about a project I'm perhaps going to do next summer. It's about remaking CSSTint. While I think the current Windows version of CSSTint is quite nice, it's still… well, Windows-only. While I am using wxWidgets, it's still doesn't work in Linux properly – I have tried. I'm doing some nasty, ugly hacks in the code, so no wonder. All this could probably be fixed, but for the sake of learning and for an interesting experience, I've been thinking of rewriting the whole shebang.

I'm sure I will use Qt for the job, but I'm still undecided between C++ and Python. Learning Python has been interesting for me, as I've blogged before. Python version would also work on Windows as is, which won't hurt even if the original is also for Windows. On the other hand I could reuse some of my non-GUI CSSTint code if I went with C++.. Decisions, decisions…

Anyway, that's my current plan – things might still change. :)

Why my stuff is Open Source?

I have several reasons why most of my games and programs are Open Source. Here are some of them.

Let's consider an example. Why is Formido available for Windows, Linux, MacOS X, BeOS, Xbox, AmigaOS and even OS/2..? The answer is obvious. Should I have kept it closed source, it'd be for Windows only, and maybe Linux.

Here's another example. Recently I was contacted regarding a bug in Funguloids that prevented it from working with Ogre versions 1.4.6 and newer. I had no idea of this bug, as I haven't personally touched the game since its last release, which uses Ogre 1.4.1. Things have been happening on the community front however, as Funguloids has found its way into Ubuntu Hardy (for which I'm very grateful! :)) After exchanging a few e-mails, the person who reported the bug presented me a patch (an one-liner, even) that fixes the problem. I didn't even get started examining the issue myself! Very nice.

Also, as I have learned a lot by reading source code, I feel kind of obliged to do the same.. I'm not worried about people stealing my code – the code's not that good to begin with. ;)

Why I use Linux more than Windows on these days..

Yesterday I dug up my Jewels-project from under the thick layer of frost it had gathered during the winter days. As it is a XNA-game, I have to boot into Windows to develop it. I installed XNA 2.0 and started porting the game. After a few head scratchers I finally got the game working properly in XNA 2.0. Great!

I'll try to finally finish that game, so I have been making some improvements and fixes. I need to add the timed play mode, and the do the game settings menus.. *sigh* Damn, why games must have settings menus..!?

Anyway, I noticed that I needed a key typing sound for the highscore screen where the player enters their name. You know, the old typewriter sound. So, I browsed my earlier game sounds, found a sound, double clicked it. Winamp starts. At this point it occured to me: oh crap! I have Winamp set to playlist looping, which is what I like when I listen to music. However, double clicking a file replaces the current playlist and plays the single file looped. In case of a short sound clip, the sound repeats quite often. It sounds a bit annoying, but that's not the worst effect here.

You see, on this machine, Winamp somehow cannot handle a short sound clip played on repeat (I only remembered that *after* I had activated the file!) – it crashes. And hard. So Windows presents me a message the Winamp had to close. When I click on Close, the computer reboots cold. Same as when I press the reset switch. And that annoys me. This has happened several times, and it's annoying. A cold reboot doesn't exactly do wonders on your HD.. :(

When Windows finally comes up (that's another thing, it takes ages to start up – although I do have years worth of crap installed, so no wonder..), it presents me a familiar little dialog:

Feels like coming home.

My adventures with Python / PyQT

First of all, let me just say that Python + PyQt just rocks.

I've been recently learning Python. Just for fun, basically. Additional benefit is that now I have a better understanding on how to cope with Zope/Plone at my work. Anyway, apart from the Zope/Plone stuff the first thing I did in Python was a command-line script that allows creation and handling of .mpk files that I've used in a couple of my games. MPK or MPak is a simple WAD-like format that stores all the game files in a single package file. I had a C++ CLI application that did the job, but it was really a piece of crap..

So I deciced to write a replacement for that app, in Python. The finished script (mpak.py) is much nicer to use and works better. I wrote it in Linux and it worked as is in Windows too – neat.

Then, I wanted to try GUI stuff and went with PyQt. I had a simple DVD collection management software called MyDVDCollection that I had written in .NET using C#. It worked, but was not too good either. So I began hacking away with PyQt and now I have PyDVDCollection (pretty clever names, huh? ;)) that I use for maintaining my collection. It has less code and more features than its .NET counterpart. It works in Linux, naturally, and also beautifully in Vista.

As you can probably tell, I'm very impressed with PyQt and the Python language, and I'll be using them in the future as well. :)