Some of you may be familiar with Xconq, which is a generic strategy
game engine that I’ve been working on since 1986. (Home page is at
http://sourceware.cygnus.com/xconq)
Xconq started out as a simple X10 (that’s right, before X11) clone
of the old WB Empire game, and has since evolved into a rather
complex engine whose declarative game design language can handle a
wide variety of games. For instance, Civ can be (mostly) written in
Xconq’s GDL. Xconq also provides its own GUI for players, and to
date, interfaces have been written using X10, X11, Xt/Xaw, Motif,
tcl/tk, and Mac toolbox.
The reason I’m writing here is that I’m not satisfied with the current
state of Xconq’s GUI. I switched from Xt/Xaw to tcl/tk to get better
toolkit and a Windows port, but it’s taken a lot of custom widget work
to get tk to do the right things fast enough on Windows, the existing
tk widgets are unattractive, and it’s complicated to connect Xconq’s C
code to tcl scripts. The Mac interface, while superior in many ways,
is Mac-only, and it’s a lot of redundant work to maintain it alongside
the tcl/tk interface.
So I’ve been looking around at alternatives. Here are the basic
requirements:
-
Fast 2D graphics. Xconq’s library includes maps of up to 250K
hexes, with multiple data layers; graphics system must be able
to draw all of it. -
Multi-platform. Unix/Linux, Mac, Windows.
-
Multiple windows. While most of the action is in a single
map window, players often want extra windows for aux displays. -
Widgets. Xconq needs to support lots of knobs and switches,
since it’s aimed at experienced and sophisticated game players. -
Sound. Mac Xconq is the only version with sound currently.
-
C API.
-
GPL or LGPL sources.
From the past several months of investigation, SDL seems to fulfill
the most requirements, widget availability being the most problematic.
One that concerns me is that SDL games seem to fall into two
categories. I see simple arcade-type designs, and the big commercial
games ported by Loki; which makes me think there is a huge amount of
infrastructure work needed to use SDL with a more complex game.
What’s the largest completed open-source game using SDL?
Thanks for reading this far, and hopefully this is enough background
to answer the big question: should Xconq adopt SDL as its standard
interface library?
Stan