Archive for August, 2008

The week in Palapeli: User research, or: Is that the opportunity?

What opportunity?!?

“Never miss an opportunity to throw away code.” — Guillaume Laurent

Ah.. that opportunity. But first things first: I have a patch in my working copy which throws the old Palapeli interface out, and only shows the new one. On Wednesday, I made some user research with this adapted version of Palapeli: I took three visitors of our local Linux User Group meeting, and presented them with a survey of 19 questions (essentially a UI walkthrough). During this survey, I saw that many terms used in the interface were ambigous or hidden too well (“Is saving to some internal storage, or to the hard drive, and what is this export all about?” or “If New starts a puzzle from the library, where is the function to create a puzzle from a custom image?”).

I had some thoughts about the results of this test today, and read some usability papers that Celeste linked in her last blog entry. My conclusions are:

  • The user should not have to create savegames. The progress should be saved in the puzzle directly. That’s easier to manage, and looks more persistent. (Think of it like you take a box of jigsaw pieces, begin to assemble pieces, then put everything back into the box to continue later. It’s still the same box, not some magic copy of the box that’s being put in a special room.) If you want it, you should always be free to reset the puzzle, of course.
  • The user should not have to save at all. The only real change is when a piece is moved, and the amount of changed data is so small that it these changes can be saved instantly. That removes these annoying “Do you want to save before closing?” dialogs.
  • If you reopen your box of puzzle pieces, the pieces do not necessarily have to stay in the same order. We might reorder the pieces randomly when loading. (The persistence of piece positions should however be configurable.)
  • On a side note unrelated to the above points, dockwidgets have been found to be unoptimal for the minimap and image preview as they produce large whitespace.

Now, what does these changes mean technically? (Attention, brain dump following.)

  • On the interface side, these changes would effectively mean to throw out the new interface completely. The new code can however be reused to display the minimap and the image preview as (moveable) on-screen widgets.
  • Inside the application, most of the code handling with loading and saving games has to be refactored. (That’s about 40% or 2000 LOC. The rest is 50% interface and 10% for the actual game engine. Remember the 80-20 rule?)
  • On the library side, out with the GameStorage code. It has served its purpose very well in the last months, but I think it is overkill to use it anymore. The new storage could adapt the format currently used for the puzzle library, and extend on it for games being played currently.

If you have stood this brain dump, here comes my question: What do you think about this vision? The key is to view the puzzle as a single object with a persistent state (no more manual saving); where the only load/save is what is called import/export now: packaging the puzzles into files to share them with your peers.

Comments (7) »

The week in Palapeli: Old wine in new skins

Palapeli contains all features I would like to have in a 1.0 release (except for GHNS integration), but the interface did not scale up during development. It consisted of some popup menus (with integrated input widgets) and a list for “advanced” actions (import, export and deletion of saved games) which was hidden in menus quite well. The following screenshot shows both interface elements (the popup below the “Save” button, the list at the right):

Old interface of Palapeli

Old interface of Palapeli

Now where is the problem with that? As already said, the saved games list is to the new user invisible (as it is not shown by default to avoid clutter), and the screenshot shows that it does not scale up; it’s toolbar is nearly full already. Also, the popup widgets have problems with keyboard shortcuts. (If there was a shortcut and you pressed it, where would the popup appear? Would it show up below the toolbar, or would the menu popup where the action is also available? The answer might be obvious to you, but not to a generic implementation.)

As you see, I could not keep this implementation. (Its only advantage is that it has proven to be bug free, as far as I can consider, and for that reason it currently coexists with the new interface in trunk.)

Now, my friends know that I’m suffering from regular intuition. Last week I had an intuition about a new interface, using the benefits of the QGraphicsView, which is clearly arranged, scales up well, and makes use of your shiny new graphics card. (Just joking, it’s just a small slide and a fade effect.) Most actions have a dialog widget associated with them which appears once you select this action on the toolbar, on the menu or (new!!) by shortcut. This widget will appear on the puzzle table like shown on the next screenie:

Palapeli's new interface showing the "Save" dialog

Palapelis new interface showing the "Save" dialog

Disclaimer: This screenshot shows my working copy where I have removed the old interface to show you how clean the new interface looks. (Like already said, the only thing missing is GHNS which will most likely be in a “Get hot new…” menu or similar.) After some usability testing and bug squashing (as far as necessary), I will delete the old interface completely. Palapeli 0.3 is likely to be released then.

Now, I would like to hear your feedback about the new interface. If you do not have any experience with SVN checkouts, follow the build instructions for Palapeli. For those familiar with SVN, Palapeli is in the games playground.

Comments (3) »

Palapeli 0.2 is out

As some of you might already have noticed, Palapeli 0.2 is out. The website is quite empty at the moment, but hopefully I can expand it a bit in the next weeks and months.

Comments (6) »

Coders are not the only contributors

Eugene Trounev (also known by his nickname it-s) is just a great guy. Yesterday evening, I implemented the jigsaw puzzle support in Palapeli, and today, he commited some puzzle shapes. Also, Palapeli does now have a decent scene background. Both can be seen in the following picture:

A game in Palapeli with the new scene background and the new jigsaw puzzle shapes.

A game in Palapeli with the new scene background and the new jigsaw puzzle shapes.

I’m pretty sure that this won’t be the only background included in Palapeli. GHNS support for puzzle table backgrounds seems like a viable option to me, besides a rich default set of backgrounds.

Eugene’s efforts are a great example for that coding is not the only way to contribute to KDE. Therefore, I invite everyone to get creative: May it be code, graphics, sounds, or a nice booth or presentation at your local Linux event. Everything helps. (By the way, I will release Palapeli 0.2 tomorrow. I planned to do that today but I want to have these new graphics included.)

Comments (2) »

Jigsaw puzzles in KDE: yesterday, today, and tomorrow

After my last post, you are probably waiting for screenshots. Let’s start with what was yesterday: I recently found the KPuzzle website. KPuzzle was a puzzle game for KDE 2 and 3, it seems to have had last activity in 2004, therefore it never recieved a KDE 4 port. Here is one of the screenshots the KPuzzle website offers:

KPuzzle screenshot

KPuzzle 0.4 screenshot

In my eyes, the interface is functional, but somewhat cluttered. Actually, I tried the game and had problems to find my way in. I hope that the first steps can be achieved easier in Palapeli. Right now, its interface looks very clean from the start, but clutters a bit once you try to do more sophisticated actions like import/export of saved games. No more words, here it is:

A jigsaw puzzle in Palapeli using the block theme.A jigsaw puzzle in Palapeli using the curved theme.

A jigsaw puzzle in Palapeli using the block and the curved theme.

What you will not see here, are the minimap, the preview pane, and the saved games view. Apart from that, you will probably notice that Palapeli’s jigsaw themes look very, ummm, simple at the moment. This will hopefully change; I have already requested nicer shapes.

Now that does already look quite good, so when can we see that? I’m planning yet more features for Palapeli, including rotatable pieces, background pictures for the puzzle table and GHNS (Get Hot New Stuff) support. Including an interface cleanup, I’m pretty sure that Palapeli won’t make it into KDE 4.2, but 4.3 seems like a reachable target. (It may also be that Palapeli becomes the first KDE game in extragear, I’m uncertain about that.)

Leave a comment »

The week in Palapeli: Jigsaw pattern

In the next months I will be writing irregularly about “The week in Palapeli”. (It’s just a nice name, this is not really meant to come out once every week.)

So what is my motivation to write about Palapeli today? It’s that I have reached an important milestone: real jigsaw patterns. The last month, I have (besides the user interface) mostly worked on the plugin-based pattern infrastructure. Today, this pays off. I’ll make some screenshots for the next post.

Leave a comment »

Akademy is over…

…and due to a lot of unfortunate events, I did not code very much. At least, I managed to find Jonathan Riddell, so I do now have the opportunity to greet all Planet KDE readers. In case you do not know me already: Hello, I’m Stefan, a student and kdegames programmer from Dresden in Saxony. I have written KDiamond and am currently working on Palapeli.

That brings me back on topic: Palapeli could be progressing faster, but at least I have polished the dialogs and the minimap quite a bit. Also, rendering of non-rectangular pieces does now work as expected, and hopefully, I get jigsaw puzzle pieces done soon.

On a side note, I had a very enlightening talk to it-s, our kdegames graphics designer, and some other developers. Now if everything goes well, Palapeli will soon look much nicer. That is all for now, I cannot write on the N810 keyboard anymore.

Now I just remember a second side note I would like to throw in: There has not been any progress in KaNDAS for the last months. It depends on my personal organization and real-life influences whenI can resume work on it. Anyone is of course free to step up and help out, the code is quite readable.

Leave a comment »

Akademy is coming

Im going to Akademy

In fact, we are four in our car: Josef (from KDE’s GGZ activities), Felix (known for some commits to Palapeli, and KDiamond’s default theme) and Jeffrey (to be introduced into KDE programming in Belgium). While I hope to make more progress on Palapeli, Felix meant that he did (due to real life issues) not manage to watch my commits, and Palapeli’s code is too big for him to get through.

Instead, Felix and Jeffrey are now planning a new application which is to be revealed, but I can guarantee that it would be gorgeous if they could make it. And it will actually have a good use for Wiimotes, even for professionals. (That should be enough for you to speculate.)

Leave a comment »