- how would you go about restructuring the project if you would rewrite it from scratch
The main problem is not the structure (there is not much structure at all), but the unnessarily cryptic code with lots of hardcoded and undocumented numbers inside of it.
I think, using of constants and more comments would help a lot, making the code at least human-readable (try to replace all occurences of "6" in the whole code by an constant, but only the 6 which depicts the number of lights, the other 6 is the number of formulas ;-)) After that it could be refactored, and OO techniques could be applied.
Another major (maybe the worst) problem is that most formulas are not documented and are only available in ASM-code. This makes it nearly impossible to port MB3D to another language, or would make it at least to a very time-consuming task. I. e., throwing all the main code away and starting from scratch, creating a new UI should be a fun thing, but after that, the program would be "naked", not having all the formulas!
In my experience, users already notice it, when only one formula is missing ;-)
- what would you do differently than what was done initially by Jesse
The thing what really hurts me is the file-format, which is just a kind of a dump of the internal structures. And there are even multiple file-formats as you know. Any internal change will potentially affect the file formats. And you must always support all versions of them, at least this is currently the case.
- list of things that you really wanted to implement (to finish), but never got the chance
User-defined (JIT) dIFS-formulas. Did not work because MB3D used some non-standard-way to call dIFS functions.
- UI decisions
I never got used to the UI by myself, I think I would have created a very different one, which does not mean that it would have been better. Especially only one editor window with easier access to all the properties.
- roadmap - where did you want to take this project (think back to the time when you just started on it, and was very enthusiastic about it's future)
I primarily wanted to enable the users to use more formulas and more lights, and to define their own formulas. It was initially clear to me that MB3D is a dead project because of the dead plattform (Delphi, Windows 32 Bit). The BulbTracer and MutaGen-stuff were just additions for fun which could be done easily because they are new code.
I hope this answered your questions well and not any part is taken as Jesse-bashing in any way, which was and is never intended by me! Doing a software-project like this always deserves respect, and hindsight is always smarter!
Cheers!