ProtoCiv: porting Freeciv to Python CANNED

Brandon J. Van Every try_vanevery_at_mycompanyname at
Tue Jan 13 12:30:41 CET 2004

"Brandon J. Van Every" <try_vanevery_at_mycompanyname at> wrote in
message news:bsd101$c1oj1$1 at
> I am
> (operative word) undertaking the project of porting the GPL open source
> "Freeciv" to Python.  Freeciv is, in essence, an almost straight clone of
> Sid Meier's Civilization II, albeit with better cross-platform and
> multiplayer support.

Here's a postmortem.  Short version: I've canned the project.  Many of you
will say "I told you so," but at least I almost have a VS .NET 2003 build to
show for it.

First I decided to tackle the subgoal of freeing Freeciv from the UNIX
Cygwin / MinGW crud.  As I write this, I have it compiling and running on VS
.NET 2003, and that isn't a small accomplishment.  But, the game hangs
shortly after the server starts.  I'm probably within spitting distance of
completing this subgoal, but it has taken too long and has been really
really boring.  If there isn't some major lurking horror I'll get it working
eventually, but I've put it on the backburner.  Personal projects have to be
personally rewarding, and this isn't it.

Looking at the Freeciv C code in more detail, I've realized that there's way
too much code to consider "generally" rewriting stuff in Python.  Rather,
I'd have to embed Python and add / rework game functionality piecemeal.
This is a lot of work, there's a whole lot of boring "wrapper code" to cough
up.  Between performing this kind of labor on a GPL project, and performing
it for Ocean Mars, I've decided that the former is not rational.  And more
importantly, it doesn't make me happy.

I've also become extremely disillusioned with Open Source developers.
Basically, for a commercially minded developer such as myself, I don't think
they're any value add at all.  Ergo, all public projects I might conceive of
are fundamentally DOA.

For 6 months I've experimented with how Open Source development might fit my
commercial goals.  What I've found is that I can't rely on people, only
their coding artifacts.  Every Open Source game developer I've met in the
past 6 months has been, at a basic level, a hobbyist.  Hobbyists simply
don't manage projects according to the demands of commercial development.
This implies that if I'm in charge, they won't like my style; and when
they're in charge, it drives me fucking nuts.  I've now accepted that the
Open Source talent pool is what it is.  It is capable of being fun for
programmer geeks.  But with few exceptions, such as perhaps, it cannot achieve the kinds of projects I
have in mind.

I'm also starting to downright despise Linuxers.  If I see another project
that's "cross-platform, so long as your platform is Linux," I'm going to cut
someone's head off.  Linuxers have this completely broken piece of shit
build management mentality about them.  They think that because on *their*
OS all these libraries are preinstalled, and everyone's compiling things all
the time, that they don't have to do anything to maintain consistent builds
on other platforms.  Rather, it's always the induhvidual's responsibility to
download and install all the needed component libraries.  Of course these
are usually UNIX-centric libraries, often not readily compiled on Windows.
Or requiring Cygwin or MinGW, which real Windows developers don't want to
use.  Versioning becomes a nightmare, is it the Cygwin or MinGW version?
It's just not the way mainstream Windows developers do things.

Whether my Freeciv VS .NET 2003 build makes it into the official Freeciv
source pool remains to be seen.  The Freeciv people are, after all, a bunch
of Linuxers.  They don't have a single .NET developer among them, and I'm
not about to become their .NET buildmaster.  When I say things like "Windows
people want to link libpng and zlib against MSVCRT71.dll," they say, "we
don't want to bloat our source tree with needed libraries."  Maybe in time I
will get them to accept a separate package of underlying libraries for
Windows folk.

Brandon Van Every               Seattle, WA

"Desperation is the motherfucker of Invention." - Robert Prestridge

More information about the Python-list mailing list