Spec

Project Goals:

Primary:
- Start up fast and allow the user to quickly have their mod collection at their disposal.
- Have a minimalistic UI that is easy to use.
- Minimal file system interactions.
- Auto detect all five supported games if possible. JK/MotS/JO/JA detected by retail CD installer registry keys, all five games detected via Steam registry keys.
- Allow users to specify manual paths for games, or disable game support even when a game is detected.
- Allow for Knight to be able to quit after launching a game, since it starts up fast enough hiding or minimizing wouldn't be a necessity.
- Support mods stored inside ZIPs like UJMM.
- Should scan JK/MotS/JO/JA mods for a more descriptive mod name than a file or directory name. This should also work inside of a ZIP.
- Deep scanning mods for embedded metadata should only be done on first detection of a mod, then the results should be cached to improve subsequent Knight startups.

Secondary:
- Users should be able to easily manage their JK/MotS patches. (Unofficial Patch, Steam/non-Steam binaries, etc).
- Users should be able to give listed mods more descriptive names if they don't come with them.

To Do List:

Simple List:
- Options menu shows simple/tiered list selectors.
- When in simple mode, Options menu has refresh mods button.
- When in simple mode, options menu has submenus for each game, each game submenu has Options, Refresh, Path, Enable/Disable
- ListView which uses game names for groups. No checkboxes. Double clicking runs the selected mod. A game appears at the top of its list to allow for mod-less play.
- Main toolbar has play button in simple mode.
- Play button deactivates on selection clear

Not in this release, possible later:
- No downloading or internet features. It's a good idea, but not for a first release especially if I want to get this out before the next decade.
- May offer a server browser, but I'd have to do it with full JK/MotS/JO/JA support to do it right. JK/MotS looks tricky since it uses DirectPlay so I'd want to utilize DirectPlay as well to actually query a server, as well as to make JK/MotS launch and instantly join. JO/JA I could dump the traffic if needed and figure it out but there's probably documentation on Quake 3 net protocols out there I could use too.