Crossfire is built around objects, so I can see why making such a change would seem to make sense, but I'm not clear that it would really improve anything in particular.  The first question is what language features in C++ would be useful?

I was looking at making the maximum window size a runtime config option instead of a compile-time option (default 25x25 now). There are places where using a language with object constructors would make that much simpler since we have a bunch of hard-coded arrays now.  I don't think this justifies such a change.

I'm a bit concerned about security running a public Crossfire server.  Switching to C++ would do nothing to help, but I was thinking Rust would be interesting.  That would be a major porting effort; essentially a rewrite.  Probably not worth it, especially for such a relatively new language.

For the server, the game is quite stable, so we would need some major reason to make a big change.  Most of the changes now should be tweaks to fix issues, often hidden bugs that are exposed when a new map tries something original.

Ultimately, what the game needs is not server work.  It needs more players and more maps.  For more players, a browser-based client would be awesome.  For more maps, I'm working on some on my server, which I'll push out eventually.

If you want to do coding, is there some possibility to build a client in Rust compiled to Webassembly to run in a browser?  That would be all kinds of awesome!

On 5/27/22 09:46, Nicolas Weeger wrote:
Hello.


I just pushed branch "cpp-build" which changes all .c files to .cpp files. The
only other changes are what was required for correctly building (adding some
casts, renaming a few variables, things like that).

Functionally, everything is the same.


I'd like to merge those changes to master, but well, I'd like to get opinions
before.


I don't plan on migrating to a full C++ code base with classes, inheritance &
other things, the current code is fine.

I do plan to use C++ to replace some home-grown things (lists handling mostly
- for new code, I don't want to always have to realloc() and check size, a
std::vector is enough for that), and to solve issues with object* items being
free'd while still referenced (with our nice check on "count == saved_count"
here and there urgh).



Regards


Nicolas

_______________________________________________
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire
IRC: http://crossfire.real-time.com/irc/index.html
Discord: http://crossfire.real-time.com/discord/index.html
Project Site: https://sourceforge.net/projects/crossfire/
Wiki: http://wiki.cross-fire.org/
Website: http://crossfire.real-time.com

_______________________________________________
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire
IRC: http://crossfire.real-time.com/irc/index.html
Discord: http://crossfire.real-time.com/discord/index.html
Project Site: https://sourceforge.net/projects/crossfire/
Wiki: http://wiki.cross-fire.org/
Website: http://crossfire.real-time.com

Reply via email to