Hi Harmless, welcome back to Oolite.
Thanks for your kind words, much appreciated. To quickly answer some of your questions:
Is it self-documenting, or should I be looking for a high level summary of the program structure?
The core of the game is written in Objective-C, which is quite a bit different to C++. In my humble opinion, much easier to understand and work with than C++, also much cleaner errior messages - it helps a lot. Of course, it requires some initial reading if you are not familiar with it, but if you have prior programming experience it should be very easy to pick up and do stuff with it. As for the program structure, I recommend you run Doxygen on the Doxyfile located in the root folder of the source code tree, in order to have the program structure generated and auto-documented in full detail.
Recently I played Oolite-1.84_x64.exe, then tried Oolite-1.84_x86.exe because x64 doesn't support full screen well, but the x86 seemed to have the same full screen artifacts (my motivation was to try to take advantage of time compression with pause/left-right arrows, only accessible in full screen mode).
Need to clear up a misconception here. Time compression does not depend on full screen, it just requires the Test Release version of the game (we distribute two types, Deployment and Test Release, the second is very useful to OXP developers). Also, I am not sure what you mean by not supporting full screen well. You may want to report the problem iin more detail in the Testing and Bug Reports section of the forum or raise an issue on the project page on github (https://github.com/OoliteProject/oolite
) and we'll take a look at it. Fullscreen has been tested extensively in various systems under Windows and is handled in the same way by both the x64 and the x86 versions.
I'm working on the theory that combat is noticeably harder now
I do have to save a great deal under 1.84, because it crashes frequently on my laptop. I've filed a few bug reports, at least one of which was very repeatable. Hopefully that level of detail can be helpful, even if I never do figure out C++ and the Oolite program structure in order to make a better contribution.
Assiming that we are talking about the Windows version, crashing frequently indicates a possible driver issue to me (esp. in conjunction with the artifacts in full screen) or maybe an NVidia gfx card with Threading Optimizations enabled. If the second case is true, disable Threading Optimizations and everything will be fine. If not, then please raise a bug report as mentioned earlier, describing the issue in detail and a way to reproduce it, if possible. As for C++ and program structure, refer to the earlier paragraph - don't figure out C++, figure out Obj-C instead!