Hi there!
That's a nice screen you created there
pygameI tried it about two years ago and really didn't like it. The documentation was poor, the API felt unpythonic and I didn't find a nice GUI toolkit to go with. The GUI toolkits I found were incomplete and often poorly documented.
packagingPython offers multi-platform support, packaging and scripting.
No argument about multi-platform support and scripting, but packaging? I'm pretty sure with "packaging" Xela meant creating an .exe, .deb or other binary/installer from the game source so your players can run it easily without having to install dependencies. The best way to do this that I've found so far is to use PyInstaller. I also tried py2exe and cxfreeze some time ago. All of these options may create problems when you try to package libraries, especially more complex toolkits like Qt or GTK. It often is doable, but it's far from easy IMHO.
serializationI've not looked at serialisation yet, but I can't imagine it's difficult, knowing python.
It's not

*) The best XML library is
ElementTree, unless you want to parse XML files that are too big to keep them in memory.
*) For JSON: import json
*) To serialize native python objects
pickle works great. Unless you want to get close and personal with the pickle protocol, I would advise against trying to pickle instances of classes inheriting from standard data types.
*) For easy, human-readable object serialization, including custom classes, PyYAML works nicely.
I wrote some pretty generic ressource loaders which might be of interest to you. Look for the RessourceMap class and its descendants here:
http://sourceforge.net/p/pytherworld/tags/ci/default/tree/resload.pycustom widgetsThe widgets are nice, but I find I like working at low level, and I enjoy the control you get that way. And nothing kills a game atmosphere faster than standard widgets to my mind.
Well, IIRC renpy implements its widgets in pure python, so you can take as much control of them as you want, right?
Another option for widgets with a customized look is to take a mature GUI toolkit like Qt and reimplement the paint methods of the widgets. After all, why should you implement all the boring, technical details widgets need to handle when all you want are widgets that look non-standard?
PytherworldI've been working on a reimagination of Otherworld, implemented in Python. The GUI is based on Qt and lately we've been talking about adding 3D graphics. Koffii is currently working on that.
Maybe we've created something you can use or are interested in? The discussion thread is over at the Otherworld forums:
Pytherworld discussionPytherworld's code is on Sourceforge:
Mercurial repositorypaperdollsDid you write the paperdoll code for Otherworld? Just so you know: Daisy lately talked about breaking the current system and reimplementing it to fix some issues with the scaling and positioning of the dolls. This would also mean that all items have to be repositioned. I've tried to convince Daisy to just fix the bugs causing the scaling and positioning problems, but I'm not sure I succeeded.
It would be a shame if Daisy actually decides to break the current implementation because I know the structure of the XML is not the problem. I implemented Otherworlds paperdolls in Python and they work very nice, no issues with scaling.