Complete.Org: Mailing Lists: Archives: freeciv-dev: December 2001:
[Freeciv-Dev] Re: C vs C++ vs Java
Home

[Freeciv-Dev] Re: C vs C++ vs Java

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: "Ross W. Wetmore" <rwetmore@xxxxxxxxxxxx>, gregor@xxxxxxxxxxxxx
Cc: freeciv development list <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Re: C vs C++ vs Java
From: Andrew Sutton <ansutton@xxxxxxx>
Date: Mon, 3 Dec 2001 09:30:52 -0500

On Monday 03 December 2001 02:45 am, Ross W. Wetmore wrote:
> The Choice of language should depend on your design goals. And in
> some designs using a number of languages may make more sense than
> a mono-cultural decision.
>
> If there is no real change in style, stick with "C" and make the
> most of code reuse and of dinosaur programmer's reflexes :-).

i thought i'd given a list of design goals for fc2. some of the actual 
requirements for runtime configuration are still being discussed however. i'd 
basically like to do a complete paradigm shift for the fc2 server from 
functional/monolithic to OO/microkernel. general consensus (with a few 
dissenting voices) seems to support this. i think we'll be looking for the 
following properties
        - modular
        - extensible
        - maintainable

how the system itself is extended and modularized is yet to be determined.

> The key to this is good interfaces, highlevel design concepts and
> modular building blocks that only get specific at the last subclass
> or ruleset parameterization. With an appropriate adapter, you should
> be able to hook almost anything up to anything else through the defined
> interface, and have it just work as a configurable runtime option.

agreed. hopefully this won't be too hard. we should probably start talking 
about the components of the game that rulesets can set/alter. here's my short 
list. i know its incomplete, but hopefully people will add to it:
        - unit capabilities
        - technologies
        - city improvements
        - wonders
        - nations
        - algorithms - replacable playtesting components?
        - tile properties
        - resources
        - derived incomes? (e.g. c2p has public works as a derived income of 
productivity).
        - others?

clearly we'll need to define interfaces for extending and integrating the 
above.

> And, one last thing ... this is a network client-server application,
> so heterogeneous, portability really helps. Running the same binary
> code everywhere, or being able to ship pieces of it around as opposed
> to going through layers of translation and protocol, is a good thing.
> When you deal with objects, remember this is code+data.

downloadable code? hmmm.. that's an interesting idea. now that would be 
interesting. instead of downloading static configurations for unit 
capabilities you could just download the implementation. hmm... very 
interesting indeed. i'm assuming java allows that as its a web protocol.

i'd still really, really like to use c++ though - if not because i know the 
language really well, because of the ACE toolkit. it probably provides the 
best network/os c++ abstraction i've ever seen. writing the entire network 
layer for fc2 could probably be reduced to a couple hundred lines of code 
(excepting the protocol itself).

andy


[Prev in Thread] Current Thread [Next in Thread]