Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > ProtoCiv: porting Freeciv to Python

Reply
Thread Tools

ProtoCiv: porting Freeciv to Python

 
 
Brandon J. Van Every
Guest
Posts: n/a
 
      12-24-2003
I am

- *TENTATIVELY* -

(operative word) undertaking the project of porting the GPL open source game
"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. www.freeciv.org

I'm undertaking the project independent of the current Freeciv project
managers. They are not a variable as to how the project will proceed. Our
goals are too disparate for us to attempt to coordinate with each other.

I'll consider offers of assistance, although first I must do a lot of work
on my own. Still, if my goals strongly ring a chord with your own goals,
let's talk. (And conversely, if you want something totally different, let's
not waste the breath. Here are my goals:

- the working title of the project is "ProtoCiv," but I'm amenable to better
names. "Better," in my parlance, means more marketable and more likely to
get people to play / develop / notice / care about / remember the project.

- the primary language of ProtoCiv development will be Python. Freeciv is a
C codebase, so a lot of migration work is needed. Python will "own" the
app, I will be starting at main() and digging as far down as I can easily
go. Once the digging is no longer easy, i.e. once I've hit "bad dirt," an
initial Python extension interface will be established. Over time, with the
help of others, the C code will be whittled away to bare performance
essentials.

- new coding in C will be actively discouraged.

- no clones of commercial games such as Civ II will be supported. One of
the first things I'll do in the ProtoCiv project is remove the current Civ
II support, and change the game significantly so that it is no longer almost
just like Civ II. I find straight or near-straight clones of commercial
products to be an offense to the game industry.

- "knockoffs" are ok. I define a "knockoff" as something very similar to
another game, but still a distinctly different game. For instance, Call To
Power II is a knockoff of Civ II, not a clone.

- the main purpose of the ProtoCiv project is to encourage rapid prototyping
by 4X TBS Game Designers. This is against the desires and energies of the
current Freeciv project management, and is my primary reason for going my
own way with this.

- an \alpha, \beta, and \release directory infrastructure will be
established in all distributions so that it's easy for Game Designers to add
features and get them distributed for in-the-field testing. Users will
voluntarily enable features. In ProtoCiv, there will be no Gatekeepers
deciding what game designs may or may not be tried. Anyone will be able to
submit \alpha features, although of course they'll be turned off by default
and the game developer will have to jazz people up about turning them on.
\beta and \release will be more stringently controlled for purposes of
making sure the code works, not for purposes of evaluating whether a given
game feature is good or not.

- ProtoCiv emphasizes Game Designer flexibility, not techie flexibility /
libido for its own sake. Gatekeepering to keep the system architecture
working properly will be more "traditional."

- I am a Windows-centric developer. Currently I'm working on the subgoal of
eliminating Freeciv dependencies upon crufty Cygwin and/or MinGW tools. I
will be maintaining Visual Studio .NET 2003 solution files. I am amenable
to cross-platform support, given that Freeciv already has a lot of
cross-platform client code, but Windows development will not be Cygwin or
MinGW dependent.

- I may integrate .NET support later on, using Python for .NET.

- This is a 4X TBS genre project. It is not a RTS, RPG, FPS, or other kind
of genre project. Project management will not become confused about the
basic nature of 4X TBS. Creating an engine for any game is not a goal.
Creating an easily modified 4X TBS engine, starting from a Civ-style
codebase, is the goal.

- If project components could in fact be used independently of genre, i.e.
world map generators, their modularity will be considered.

- I'm a commercial developer, not a hobbyist. Project participants are free
to treat the project "as a hobby," but when hobbyist and commercial
development cultures collide, commercial culture will win. For instance,
Commercial developers don't think all tools have to be free, nor does all
software have to be open source. Commercial developers do not say "let's
wait a long time before trying X." Commercial developers don't badger
people about giving away tons of work as some kind of moral virtue.
Commercial developers consider time to be money, and assess risk before
spending their money.

- FWIW I'm a proponent of MIT / BSD style "do whatever you want with it"
open source licenses, not GPL. I believe if you're going to give something
away, you should give it away completely. And if you don't want to do that,
don't give it away. I don't want GPL licenses interfering in my business
decisions, what I choose to make open source or proprietary. However,
Freeciv is a GPL codebase, so if I want to use it I'm stuck with it. I will
be looking for ways to put independent project components under MIT / BSD
license.

- Because of the GPL license, no commercial gain of any kind is believed
possible with this project. My main motives are:

1) get Game Designers to advance the Art and Science of 4X TBS game design
2) prototype game features that I might try in Ocean Mars someday
3) find out what level of 4X TBS modding is or isn't possible

- to accomplish these purposes, the project will be actively marketed. i.e.
Get articles about it on Gamasutra, Gamedev.net, gamer websites, etc. when
it's at an appropriate stage.

--
Cheers, www.indiegamedesign.com
Brandon Van Every Seattle, WA

Taking risk where others will not.

 
Reply With Quote
 
 
 
 
cr88192
Guest
Posts: n/a
 
      12-25-2003
<snipped entire post>

I am mostly responding because I found it amusing that I disagreed with
nearly every point mentioned here, this is not meant as any kind of
discouragement though...

it is quite likely that I just have a very much different set of ideals...



 
Reply With Quote
 
 
 
 
Mark Carter
Guest
Posts: n/a
 
      12-25-2003
> - FWIW I'm a proponent of MIT / BSD style "do whatever you want with it"
> open source licenses, not GPL. I believe if you're going to give something


Microsoft have always complained that GPL-ish licences "infect"
everything they touch (yes, yes, I'm perfectly aware of the irony). I
was thinking that, if more stuff was released into the Public Domain -
then that would be a good thing. It might actually be a benefit for
Microsoft to rip off good quality PD work. If they got it for free,
then they might be less inclined to roll there own "feature rich"
solutions, and instead opt for a more conventional approach.

There might be a chance - and of course I emphasis the word "might" -
that they would contribute, in some small way, to ongoing PD efforts.
After all, if they though that they could get someone to effectively
work on their product for free, then they might be a bit more
forthcoming.

Just an opinion.
 
Reply With Quote
 
Tom Plunket
Guest
Posts: n/a
 
      12-25-2003
Brandon J. Van Every wrote:

> I am
>
> - *TENTATIVELY* -
>
> (operative word) undertaking the project of porting...


Brandon, why not heed the advice that one holds back such an
announcement until someone actually has something interesting to
announce? You know how many of these sorts of projects are
started, and you know how many of these projects get carried
through to completion.

> - the primary language of ProtoCiv development will be Python.
> Freeciv is a C codebase, so a lot of migration work is needed.
> Python will "own" the app, I will be starting at main() and
> digging as far down as I can easily go. Once the digging is no
> longer easy, i.e. once I've hit "bad dirt," an initial Python
> extension interface will be established. Over time, with the
> help of others, the C code will be whittled away to bare
> performance essentials.


Seems like a huge waste of time, starting with the fact that
editing the C codebase to do what you want is likely, at this
point, far easier.

Since it's GPL'd, it's not like you couldn't just fork the
project and do it in C, sticking Python on for new bits as
appropriate.

> - no clones of commercial games...
> - "knockoffs" are ok.
> - the main purpose of the ProtoCiv project is...
> - an \alpha, \beta, and \release directory infrastructure will...
> - ProtoCiv emphasizes...


Show us the money. Let us know when there's something to see.
Until that point, you might heed the advice here:
http://www.sloperama.com/advice/lesson24.html#tal
Scroll to entry 16 if your browser doesn't go for you (Opera, for
example).

> I will be maintaining Visual Studio .NET 2003 solution files.


"So people who help me will be required to pirate it, and the
ActiveState plugins that make Python develpoment possible in
VS.NET."

> - I'm a commercial developer, not a hobbyist.


Good luck. You haven't made any money yet, right? It's been
five years?

> - Because of the GPL license, no commercial gain of any kind is
> believed possible with this project.


Just because the code is GPL doesn't mean the assets need to be.
Regardless, nothing is preventing you from sticking it on a CD
and charging money for it.

-tom!
 
Reply With Quote
 
Erik Max Francis
Guest
Posts: n/a
 
      12-25-2003
Mark Carter wrote:
>
> > - FWIW I'm a proponent of MIT / BSD style "do whatever you want with it"
> > open source licenses, not GPL. I believe if you're going to give something

>
> Microsoft have always complained that GPL-ish licences "infect"
> everything they touch (yes, yes, I'm perfectly aware of the irony). I
> was thinking that, if more stuff was released into the Public Domain -
> then that would be a good thing. It might actually be a benefit for
> Microsoft to rip off good quality PD work. If they got it for free,
> then they might be less inclined to roll there own "feature rich"
> solutions, and instead opt for a more conventional approach.


There's plenty of MIT, BSD, and public domain code which Microsoft has
"appropriated" for their own purposes. It's a part of why they're so
successful.

> There might be a chance - and of course I emphasis the word "might" -
> that they would contribute, in some small way, to ongoing PD efforts.


That chance is about as close to zero as you can get, since they're
already have no problem using public domain and the like code and have
made no effort of ever releasing something back. Part of their business
model is to buy software, buy the rights to software, or use public
doman/MIT/BSD software, modify it by adding their own lock-in features,
then sell it.

--
__ Erik Max Francis && http://www.velocityreviews.com/forums/(E-Mail Removed) && http://www.alcyone.com/max/
/ \ San Jose, CA, USA && 37 20 N 121 53 W && &tSftDotIotE
\__/ I have not yet begun to right!
-- John Paul Jones
 
Reply With Quote
 
Ville Vainio
Guest
Posts: n/a
 
      12-25-2003
Tom Plunket <(E-Mail Removed)> writes:

> Brandon, why not heed the advice that one holds back such an
> announcement until someone actually has something interesting to
> announce? You know how many of these sorts of projects are


It's just Usenet - people use the bandwidth for much less interesting
stuff anyway. Also, I think mentioning a project one is about to
embark on in Usenet is a good idea, for finding the possible prior art
or like-minded individuals if nothing else.

> Seems like a huge waste of time, starting with the fact that
> editing the C codebase to do what you want is likely, at this
> point, far easier.


Perhaps the eventual results would be less interesting w/ that
approach?

--
Ville Vainio http://www.students.tut.fi/~vainio24
 
Reply With Quote
 
Brandon J. Van Every
Guest
Posts: n/a
 
      12-25-2003

"cr88192" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> <snipped entire post>
>
> I am mostly responding because I found it amusing that I disagreed with
> nearly every point mentioned here, this is not meant as any kind of
> discouragement though...


Different strokes for different folks!

> it is quite likely that I just have a very much different set of ideals...


Yes, given our previous discussions in
comp.games.development.programming.misc, I'd say your tastes run the
opposite for a number of significant things. Functional vs. imperative,
technology vs. Game Design.

--
Cheers, www.indiegamedesign.com
Brandon Van Every Seattle, WA

"Trollhunter" - (n.) A person who habitually accuses
people of being Trolls.



 
Reply With Quote
 
Brandon J. Van Every
Guest
Posts: n/a
 
      12-25-2003

"Tom Plunket" <(E-Mail Removed)> wrote in message
news(E-Mail Removed)...
> Brandon J. Van Every wrote:
>
> > I am
> >
> > - *TENTATIVELY* -
> >
> > (operative word) undertaking the project of porting...

>
> Brandon, why not heed the advice that one holds back such an
> announcement until someone actually has something interesting to
> announce?


Because if someone has my project goals and wants to volunteer source
control right now, I'm taking them up on it. Here's the consideration on
that: some people are telling me to use TLA, not CVS, so that means it's not
just a hop-skip-jump to Sourceforge.

>You know how many of these sorts of projects are
> started, and you know how many of these projects get carried
> through to completion.


Yes I do. And you'll notice that I didn't start a mailing list, or really
ask for any help. All I need at this point is:

1) gauge project interest
2) sanity check my goals, in the face of opposition
3) see if anyone happens to be ready and willing to work towards the same
goals

> > - the primary language of ProtoCiv development will be Python.

>
> Seems like a huge waste of time,


One of the meta-goals is Python advocacy in the field of Game Design. Given
my strategic view on the matter, it is not a waste of time, unless it is too
much work to have any chance of ever getting done.

> starting with the fact that
> editing the C codebase to do what you want is likely, at this
> point, far easier.


Even the "simple" act of eliminating the Cygwin dependencies is proving to
be a chore. C is not a good language for anything but portable assembly.

> Since it's GPL'd, it's not like you couldn't just fork the
> project and do it in C, sticking Python on for new bits as
> appropriate.


Do you have an understanding of what it takes to put on "new bits" in
Python? I'm thinking not.

> Show us the money.


Excuse me? If you are in a snit about anyone communicating about stuff, if
that's your personal taste, then that's your problem.

> Let us know when there's something to see.
> Until that point, you might heed the advice here:
> http://www.sloperama.com/advice/lesson24.html#tal
> Scroll to entry 16 if your browser doesn't go for you (Opera, for
> example).


I could argue all sorts of reasons why it's not "stupid" to state what I
have, but I won't bother. That *would* be stupid; as I said initially, if
you don't have my goals let's not waste the breath.

> > - I'm a commercial developer, not a hobbyist.

>
> Good luck. You haven't made any money yet, right? It's been
> five years?


Almost six. And I'm still doing what I want to do, so that should tell you
something.

> > - Because of the GPL license, no commercial gain of any kind is
> > believed possible with this project.

>
> Just because the code is GPL doesn't mean the assets need to be.


But I'm not Mr. Art Guy cranking out assets. They will probably come from
other people, and it will depend on their sensibilities on whether they're
GPL'd or not.

> Regardless, nothing is preventing you from sticking it on a CD
> and charging money for it.


Sure there is. First CD sold, someone else can do exactly the same thing.
What's the point? Unless you're doing online subscription stuff it is
difficult to have a service model for games.

--
Cheers, www.indiegamedesign.com
Brandon Van Every Seattle, WA

20% of the world is real.
80% is gobbledygook we make up inside our own heads.

 
Reply With Quote
 
Brandon J. Van Every
Guest
Posts: n/a
 
      12-25-2003

"Ville Vainio" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
>
> It's just Usenet - people use the bandwidth for much less interesting
> stuff anyway. Also, I think mentioning a project one is about to
> embark on in Usenet is a good idea, for finding the possible prior art
> or like-minded individuals if nothing else.


Yes, that is indeed a peripheral consideration. What if someone in
comp.lang.python had *already* started porting Freeciv to Python? Or was
contemplating it?

--
Cheers, www.indiegamedesign.com
Brandon Van Every Seattle, WA

"Desperation is the mother****er of Invention." - Robert Prestridge

 
Reply With Quote
 
Dan Olson
Guest
Posts: n/a
 
      12-25-2003
On Thu, 25 Dec 2003 14:12:12 -0800, Brandon J. Van Every wrote:
> C is not a good language for anything but portable assembly.


This will be fun, the same flamewar we had last month... but with Python
fans involved!
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Porting from Python 2.3 to 2.4 Anand Python 2 07-14-2005 02:14 PM
porting Python Jive Dadson Python 1 10-06-2004 10:10 PM
Porting Java web application to Python to make it faster? Wolfgang Keller Python 14 07-14-2004 06:13 PM
porting python script from linux to windows hokieghal99 Python 4 12-13-2003 03:08 AM
wanted($): mac and linux python gui coders for porting Mark Hahn Python 7 09-18-2003 12:13 AM



Advertisments