• Welcome to the new COTI server. We've moved the Citizens to a new server. Please let us know in the COTI Website issue forum if you find any problems.

What do you want in a Java Traveller Chargen App?

Tod13

SOC-5
I'm a professional software developer (20+ years), and I've been learning JavaFX 8 by working on writing Classic Traveller apps for creating characters.

It appears I can release these for free, under Marc Miller/FFE's Fair Use Policy. I've got the careers for Book 1 and Supplement 4 working. I almost have Book 4 Mercenaries complete.

Before releasing, I want to do some refactoring to make things easier to maintain and debug. And to make the code less embarrassing. ;)

What does everyone want in a Traveller Character Generator application?

Do you want a single app for both Book 1/Supplement 4 and Book 4 Mercenaries, or would you prefer the "simple" careers to be kept separate from the more complex/complete careers? The later books create characters so different from the simple careers, I tend to use one set of careers or the other, but not both.

If I were to write versions in C++, what GUI library would people prefer?

If this were made available via GitHub, with a more obvious link to the compiled JAR files than most projects provide, is this acceptable to most folks? I won't promise to accept pull requests, but I will, when time permits, look at them.

If someone wanted to use this as a basis for an Android app, I would be interested in what needs to be modified in the code to make it more usable for both, once I release the code.

From reading other threads, it sound like there is a desire for:

1. Exports at the end both as XML usable by other applications and as a PDF or something else usable by humans. The XML will come with a schema for validation.

2. Ability to add/edit careers via XML or some other sort of data file. Is storing the data files I create in the JAR OK? Is the option to override them from outside acceptable? How about (maybe in version 2) an editor to add/edit careers?

3. Some people seem to want external communications. I couldn't tell what was really desired here. Is simply exposing the classes as public with public methods enough? Or are people talking web or messaging APIs?

Thanks!
 
From my perspective I would like everything in one package. Book 1, HG, merc, Scouts, merchant Prince. Happy to help test if you want.

Cheers
Brian
 
Thanks Brian. I'll need feedback on the user interface for sure. It works how _I_ use it, but I'm only one user.

As one package, I've been implementing it as written, which means for Book 4 Mercenary for example, once you enlist/draft into the Army or Marines, you are asked if you want to use Book 1 or Book 4. The enlistment options are displayed as "Book 1 - Marine (or Book 4 Mercenary - Marine)" to indicate you will have that choice.
 
3. Some people seem to want external communications. I couldn't tell what was really desired here. Is simply exposing the classes as public with public methods enough? Or are people talking web or messaging APIs?

I chose the web app approach, partly because like you I'm using it to delve into a language (Ruby on Rails) and partly to make it accesible to anyone with a browser. But I'm not sure it really matters for this community, its pretty mature and they appear to largely be pretty tech savvy. My core app (a CT ship designer) is pretty much done and I'm working to set it up as a service oriented architecture, with the idea I can leave it running on a free server (user demand is very low) and build on it in a modular fashion. Like any good project tho', its a work in progress :).

Regards testing your app, I'll swap you testing time. Getting feedback on mine has turned out to be difficult, I suspect I have a double whammy of a high barrier to entry and a very small group of potentially interested users. Heck half an hour on my app and a short write up of impressions on usabilty and anything else would be gold to me. More than happy to reciprocate. Don't do anything now, just keep me in mind for when you are ready.
 
Matt, sounds good to me. I'll follow up in your feedback thread with details (reply there if you want--I've subscribed to it) and another try, but I attempted creating a couple of small craft and got "We're sorry, but something went wrong." Just before 7 AM Central time Monday morning, if the server logs help.

Also, my replies may be slow, as my account is still in the must-be-approve-to-post stage.
 
Matt, sounds good to me. I'll follow up in your feedback thread with details (reply there if you want--I've subscribed to it) and another try, but I attempted creating a couple of small craft and got "We're sorry, but something went wrong." Just before 7 AM Central time Monday morning, if the server logs help.

Also, my replies may be slow, as my account is still in the must-be-approve-to-post stage.

Lol, ta for that. I'll tackle it tonight and pop a note on my thread. Cheers!
 
I am further away than I expected on getting the first part of Mercenaries to work. Would you two prefer that I give you just the Book 1 careers and user interface to review, ignoring any code review and realizing I do not have output yet, or would you prefer for me to have at least Book 4 Army and output working?

The JAR is 140KB, so I could email it or put it on my Google docs. (I did not see any forum support for sharing stuff like this, correct?)
 
I'm going to consider that a vote to: comment out the Book 4 stuff, refactor the Book 1 to make it fit for public consumption, and put it on GitHub. :) Do output later.

Or, post it, then comment it out, then make it fit for wider public consumption. Who knows who might make a pull request.

I'm interested in seeing a larger Java FX app, myself.
 
Keep in mind, gents: No traveller material except T20 includes character gen as open content. (and T20's is not entirely open content...)

The CGen content cannot be counted as open source, and so is not suitable for inclusion in github public repositories.

If the files are separated, great - the app can be open sourced, provided it relies upon external, closed source data files.

Character Generators can be done under the FUP, but...
  • the FUP doesn't apply to Mongoose
  • SJG doesn't allow GURPS software without approval, putting GT & GTIW off the menu
  • The specific character generation tables are not open content
  • you aren't charging for them
  • you acknowledge Marc's IP rights, preferably with the FUP specified text
 
I read all the old threads I could find--and it appears that for Classic Traveller, a free program is OK, given the caveats in the Free Use Policy.

Character Generators can be done under the FUP, but...

Fair Use Policy=FUP - that is what I thought.

[*] the FUP doesn't apply to Mongoose
[*]SJG doesn't allow GURPS software without approval, putting GT & GTIW off the menu

This is Classic Traveller. That's the one I like.

[*]The specific character generation tables are not open content

I'm not sure what you mean here.
Is this for Classic Traveller? Or are you referring to Mongoose et al? CT never uses "open content" because none of it is open.

[*]you aren't charging for them

No way. Too much trouble--something free I can support as/if/when I can. I have a real life, am studying genomics/molecular biology on the side, and my wife is a PhD student in cancer genetics. We're a bit too busy to support paying customers.

[*]you acknowledge Marc's IP rights, preferably with the FUP specified text

Yup--he gives two versions of the text, the long and the short version--I figured on the website, startup screen for program, and in the about box.

My plan was to send a preview copy of the JAR when I send the email saying I plan to make it available. (I'm hoping to have Book 1 and Supplement 4 cleaned up this weekend.)
 
Essentially, for CT, you cannot release as open source any coding of the tables, because CT isn't itself open source and you can't release as open source someone else's IP.

Therefore, if you hardcode the tables, you can't open source the software. If you make them a library or a separate data file system, then you can opensource the rest.
 
Essentially, for CT, you cannot release as open source any coding of the tables, because CT isn't itself open source and you can't release as open source someone else's IP.

Therefore, if you hardcode the tables, you can't open source the software. If you make them a library or a separate data file system, then you can opensource the rest.

So, if I got it right, my options are:

Choice A
  1. Free closed source data library/file with table data, licensed to prevent others from distributing/modifying but reserving Traveller rights to Marc/FFE, distributed separately from the
  2. Free open source application that uses the closed source data, reserving Traveller rights to Marc/FFE
or

Choice B
  1. Free closed source application, including table data, distributed together, but with licensing to prevent others from distributing/modifying but reserving Traveller rights to Marc/FFE
OK--I can understand that. Marc doesn't want to lose his copyright/other rights from lack of enforcement by allowing open source projects to use the tables, or lose book sales by having major projects implementing all the books for free. I was thinking I could find a GitHub compatible license that would enforce that, but I can deal with it like this.

I may write this up in nicer language and offer it as a FAQ, since I did not comprehend precisely this from my other readings. I probably should have, but having it like this makes it simpler to comprehend and follow.

Thanks for your patience and assistance aramis. (I see you are in Anchorage. My wife and I spent our honeymoon in Fairbanks in early/mid February of this year. We learned to drive dog sleds. It was wonderful--we actually liked the -27F to 9F weather while were there, especially compared to the Texas Gulf Coast.) :squirrel:

ETA: Italics are edits to above to change "copyright" to "license". An important distinction. Basically, the program writer can't assert copyright to the data, since that belongs to Marc/FFE.
 
So long as you use the disclaimer provided by FFE that you respect MM/FFE trademarks etc, let him know it exists and will withdraw the app on request, largely you are ok.

The point Aramis raises relates to supplying tables (and text if that was to be presented) in such a manner as to be a threat to income/copyright. You can use the tables, but you cannot present them to the public in an alternative format, containing the same information. This applies to the app as well as within its opensource code.

I suggest distributing a closed source version for the general public and put up on github the code with test tables and a straight forward api for creating new tables in say YAML or JSON. Both versions would need the MM/FFE disclaimer. Keep in mind the real interest from Traveller coders going to github is how you handle the tables, rather than the table contents. You could even turn this into a feature, providing an interface allowing general users to manually create new Traveller character types.
 
It means things are slower, because instead of handling the exception (Barbarian ranks compared to everyone else for simple table careers), in for example the Barbarian class, I have to either go through all the careers first to design decent classes, or figure out a decent way to add exceptions to the rule as I go along. (The later isn't too horrible to do, but then you've got to implement it. :p ) CT isn't as bad as some other systems I've seen, but when there is an exception, it really stands out.
 
I haven't forgotten this. I've been working on a rewrite/update.

For the curious, the Java marshal/unmarshal for automagically converting class instances to and from XML works great. (I haven't have a chance to play with this since it became part of Java.)

I think for at least version one, I'm going to stick with the "simple" career paths--those in Book 1, Supplement 10, and (I think) the Alien books. High Guard, Scouts, Mercenary, and Merchant Princes paths are different enough that I'll defer them for version 1.
 
Separate table files suits me, means I can put in my own customizations for skill mixes that much more easily.

To that end, I would leave some room for making up new career options.
 
I've kind of put this on indefinite hold. I emailed Marc Miller and never heard back. Instead I've been working on one for BareBones Fantasy, with the willing collaboration of the creators--it's all CC NC, which is a lot easier to deal with. I had a pretty decent version working--I may salvage some of the framework for generating character background information.
 
Back
Top