BenGunn said:Some ideas:
Don't try to make the system "universal" but rather add the individual careers as new modules/classes that link into a common framework
The framework handles the "basic stuff" like dice-rolling, display, character storage/retrieval etc, the add-on classes do the special stuff hardcoded.
Using an interface/abstract class for the implementation should be able to handel it. After all the RESULT of the roles is always the same, it's the rolling and tables that differ. So "public abstract LifepathEvent doLifepathRole()" should work
As for the group stuff, that only comes in late in CharGen and can be handled by a "assemble/finalise group" screen.
One of the first programs I ever wrote was a Classic Traveller (Book 1, Mercenary, High Guard) character generator in UCSD Pascal for my Apple //e. That's pretty much what I did, although I never completely finished it. "It's 90% finished."

I also had an Appleworks spreadsheet for ship design. Really, you don't need a "program" for that, it's all calculations, and that's what spreadsheets do. One of the first things I do for each new version of Traveller is whip up a spreadsheet. I'm working on one for Mongoose now, and trying to make it a little more full-featured so other people besides me can use it.