[crossfire] Qt experiments

Tolga Dalman tolga.dalman at googlemail.com
Mon May 25 12:37:38 CDT 2015


Hi,

from what I understood, you are searching for a replacement (or even a proper solution) for these functionalities:
1) platform independent networking
2) a test framework
3) a platform independent build system
4) a graphical framework
5) misc. utility classes (which ones ?)

I think, there are a couple of advantages with Qt.
* Qt is a really great GUI framework. Especially Qt5 has evolved to a very good framework IMHO.
* portability is greatly eased. In future, we could also easily provide an Android or IOS crossfire client.
* You seem to have some experience with Qt with CRE.
* The crossfire code would have to be converted to be C++ (at least compilable).

However, it really depends where the Crossfire project is heading towards. My concerns are these (hence, I'm asking so many questions):
* Qt is actually quite big (on my system libQt5Core is 5MB large - stripped!). I have always liked the light-weight nature of crossfire.
* Over the years, the API changes caused some headaches, e.g., from 3 to 4 and from 4 to 5. I don't think it is feasible to support all different versions.
* we would (at least in the interim) have to support Qt AND the current GTK+ client. This seems unfortunate as both frameworks have a similar functional scope.

Finally, let me again mention that there are alternatives to the above requirements:
1) SDL provides a good networking abstraction (SDLnet)
2) I really like GoogleTest. Other alternatives include Boost::Test and CPPUnit
3) CMake is a great cross-platform build system. Other alternatives include, e.g., scons.
4) Qt is really the best choice here. As mentioned above, I would harmonize all graphical tools, i.e., CRE and the client should be based on the same framework.
   We could even think about using a Python Qt binding (PyQt or PySide).
5) Depends on which classes you actually need.

Opinions ?

Best regards
Tolga Dalman


More information about the crossfire mailing list