Archive for the 'openismus' Category

Introducing GMemory v0.1

For the last few weeks I’ve been working on a small concentration game called GMemory. This was done as a part of the Openismus trainee program.

Update: See below.

For those not familiar with the game Concentration, or Memory as I grew up knowing it, the basic idea is that one has a number of matching card pairs turned face down. The player(s) then attempt(s) to match these pairs by turning over two cards. If the cards match those two cards remain face up. Otherwise, the cards are returned to the face down position. This is repeated until all cards are face up. Here’s a screencast of GMemory being played.

As you can hopefully see, GMemory is currently in a playable state and it actual quite enjoyable if you’re into these types of games. However, there is a lot more to do to reach what I’d consider a 1.0 release. Besides some code reworking and some known bugs, I’d like to see a score tracker, multi-player mode, card animation and selectable themes.

The game is written in C using GTK+, GObject, Clutter and Cairo. In the course of writing GMemory I ran into a few bugs in clutter-gtk. The first bug was that no events were being received when using the embedded clutter gtk widget. You can find the bug report here. The second major bug I ran into was that once I got a version combination that gave me events, I always received double the events that I expected. This is a known bug and I’ve got a work around in the code for that.

There are also a number of known bugs. As you may have noticed from the screencast, the last card of the last successful match does not get shown before the statistics dialog box pops up. It seems the dialog blocks the drawing even thought the function to draw the card is called before the call to show the dialog box. Another bug is that once the game is over the playing area does not resize when the window is resized. I’ll tackle this once I’ve reworked the code some.

You can find GMemory’s git repository at Gitorious and the tarball can be had here.

Unfortunately, right now I’m building against the master branches of clutter and clutter-gtk. Expect breakage.

Btw, I'm attending GUADEC right now.

Update: After trying this on Ubuntu Lucid, I experienced none of the event-related problems with clutter-gtk. This seems to be Fedora 13 specific. Thus, I’ve removed the workaround for the double event issue and changed the configure.ac file to rely on the clutter and clutter-gtk versions shipped with Ubuntu Lucid. The new tarball is here.

Openismus

As I mentioned in an earlier post, I’ll be moving back to Berlin at the end of May. Making the move has become even more exciting after learning that I’ve been chosen as one of the new trainees for Openismus. Since Murray has made the announcement, I thought I’d introduce myself to the community.

First of all, I should state that I’m American despite what the umlaut in my last name would suggest. My last name was Wilson before taking my wife’s last name just before our daughter, Vada, was born a couple years ago. I met my wife in Berlin and am very familiar with the city, having lived there from October ’99 until late 2005. I love Berlin and am excited to be moving back.

In a few weeks I’ll be graduating with a BS in Computer Engineering from San Diego State University. While in school I interned at a small company programming mostly in C++. I learned a lot from my work there but feel like I’ve got lots more to learn.

I’ve been a long time GNOME user after being converted from KDE at about the 2.4 release. Before starting school I’d occasionally submit bugs for Ubuntu and GNOME. I even attended GUADEC in Stuttgart where I met lots of interesting folks and got really inspired. But, alas, school started and free time vanished. We then sprouted a family which is a timesink, but such a wonderful one. Having a chance to learn and contribute on the job is a chance I couldn’t pass up.

I’m very much looking forward to the opportunity that I’m getting at Openismus to learn about and contribute to the projects I’ve been following so closely for so long.

Thanks Murray and Openismus.