Godot has been suggested repeatedly, here on the forum and in our online voice chat meetings. To investigate the capabilities of Godot and how well it might be suited for FO I made a very rudimentary prototype FO Godot client:
https://github.com/Vezzra/fo-godot-prototype
The report of my findings had been discussed at the July 29th 2020 online voice chat meeting. To quote the summary I posted on the online voice chat thread:
The answers and discussion of these concerns/issues and other ones that might arise or been brought up shall happen here. Please post your questions, comments, opinions.Vezzra wrote: ↑Thu Jul 30, 2020 11:54 amGodot: based on the prototype FO Godot client I implemented over the past two weeks, it looks like Godot could meet all our (GUI) needs, and rewriting the FO client as a Godot app should be actually doable - the effort, while certainly considerable, should be managable with the manpower at our disposal (as far as it's possible to tell at this point).
There are however certain issues/questions that need to be addressed:
- Godot uses SCons as build tool, C++ modules that interface with Godot will be build by Godot using SCons. The question is, to what degree is it possible to integrate building a FO Godot client into our CMake build system, so you can build FO with just calling cmake and invoke building the client from cmake, and not having to separatly build the client first.
- How much control do we have over the main GUI loop - can we completely separate the loop handling all the networking and serialization stuff into a dedicated thread?
- Godot sticks to the C++03 standard. How much does that impact our C++ code? Can we still use more recent C++ standards? Or, to what degree (meaning, what parts of our C++ code) would we be forced to go back to C++03? As that would be a dealbreaker right there.