[crossfire] C++/Qt server version

Nicolas Weeger nicolas.weeger at laposte.net
Mon Nov 24 09:24:02 CST 2008


>   Seems like a sort of odd decision since most recent conversations have
> seemed to have decided that more content and less code work is what is
> really needed to be done, but this seems to be a big code project...

Yes, it has the potential to be ambitious.

>   And just given the size and changes of the project, I'd like to see more
> detailed information - this isn't a minor change being made here.

I plan on having design documents before coding, so hopefully we'll have time 
to think things over. So I can't give much details now, as I don't know them 
all :)
Is that a satisfactory anwser? :)

>   I also wonder that given such a rewrite if maybe a more drastic approach
> is needed.  IMO, one reason for the messy/bad code is to maintain
> compatibility - new things are added, but don't want to break old
> maps/archetypes/whatever.  I think some things could be simplified a great
> deal (or made more efficient) if it was considered OK to break some of that
> compatibility - this may mean lots of maps need updating, but if you're
> going to do a major rewrite, it may be an overall plus just to give up on
> some of that compatility for clean code.

Indeed, but then let's do the whole thing and convert *ALL* things. One of the 
reasons for the mess is that people (me included, quite certainly) don't do 
the conversion globally, and only change a few maps/archs, thus we need to 
keep old compatibility code.

>   I do remember a long time ago someone else looked at doing crossfire in
> C++, and his decision was basically to do it from scratch - better to write
> something that meets the functional spec than to try and figure out what
> all that code does, etc.  But that is clearly a larger project.  A plus is
> that with a complete re-write, one could at least architect it for certain
> things.  But then you start asking questions on what is crossfire really,
> etc.

As Yann mentioned in another mail, rewriting from the ground up with copy / 
paste can be a solution.

>   I think it sort of depends on the expected development model.  But I'd
> generally say do it as a branch.
>
>   If individual changes were limited in scope to a few files and were
> basically complete at each commit, then maybe working directly in trunk
> would be OK.  But changing languages would seem that that is less likely
> case.  .
>
>   The flip side is also that if not many changes are being made in the
> trunk, it should generally be fairly easy to keep up to sync (there aren't
> changes be made that requires syncing up, etc)

I think it'll be on a branch, yes.

>   I do have some concerns like Kevin's, in that the rewrite could take a
> long time (I have no idea on your expected schedule on this, so maybe not).
>  I'd actually be more concerned that the trunk gets left in some hybrid
> state - some stuff rewritten, some stuff not, and unclear if having 30% of
> it rewritten in C++/Qt and rest be old C is better than 100% in old C.

Doesn't matter. Current C code builds in C++ easily, so no "is that C or C++?" 
philosophical question :)
(and that's not a theoritical reply, I did test a few months ago - code didn't 
change enough to warrant another test)


Nicolas
-- 
http://nicolas.weeger.org [Petit site d'images, de textes, de code, bref de 
l'aléatoire !]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
Url : http://mailman.metalforge.org/pipermail/crossfire/attachments/20081124/e96d3842/attachment.pgp 


More information about the crossfire mailing list