- Inspired by the comments in
http://www.hard-light.net/forums/index.php?topic=63215.60First of all, this is merely a feasibility study.
Don't take the existence of this thread as an indicator that anything is actually going to happen.
Rewriting FRED from Scratch(Referred to as newFRED here)
The current architecture of FRED has several fundamental flaws, that make it extremely difficult to maintain.
This is both in terms of adding new features (including insertion of SEXPs), and correcting bugs.
There are several reasons for this:
1) FRED is currently based around the Microsoft MFC classes. This leads to the following issues:
- It cannot be ported to other operating systems (eg Mac, Linux)
- It cannot be compiled using any free or opensource tools, thus much of the community cannot currently assist
2) FRED is currently essentially modal.
- Edits made in one dialog while another is open may not be applied correctly
- No possibility of an Undo option
3) The current UI is far too reliant on the mouse.
4) Many new features have been requested that simply can't be done with the current architecture.
Item 1 can be essentially solved by a port to wxWidgets or QT, but this port appears to be relatively complex due to the lack of separation between GUI and functionality.
However, before a reboot can be done, two things need to happen:
A) A complete specification for the FS2 Mission and Campaign formats must exist.
- This is key to the project, as the output must be usable from the first semi-operational builds or the project will fail
B) An architecture for newFRED should be defined.
- It must use a free and multi-platform (Windows/Mac/Linux) GUI system
- It must include full multi-step Undo stack
- It must not rely on modal dialogs for normal edit functions
- It must be easy (and obvious) to select mods and multi-mods
- It must be easily extendible - preferably it should be trivial to add/edit
SEXPs and flags by editing a single configuration source file. (Already exists for SEXPs in FRED) - It should allow editing and assembly of mods into the correct folder structure on disk
- It should include error-checking editors for TBMs and TBLs. For these, there should a second configuration source to define rules