OK ... I'm building a system because it's interesting to play with, but I don't actually have a game to go with it. So, I might as well make it a library. Even put the original HDD back in my laptop occasionally so I have a Windows machine to test it on.
So… if you might use a character creation library, or if you've built a character creation system for your own games before, can you help me figure out what kind of questions it needs to support?
My basic structure is a set of 'question' objects, which are placed inside the player object. They're called one by one until all are answered. If a question contains another question, the outer one will be asked first. So far, I have 3 types of question:
So… is there anything I've missed there? What else would you expect this library to offer?
Questions might depend on previous answers. If the player chooses to play a race with a tail, ask about the tail, otherwise skip it. You might want to include the facility to explain what the options mean to the character and how it will affect attributes.
This is kind of looking at it from the other side, but I prefer to see all the questions at once so I can build a holistic character. Here are a couple of examples from games that never happened.
This is a CV; you can click the boxes to change the options:
http://textadventures.co.uk/games/view/xhzhv186qekchqag1_f6uq/the-intern
And some text; you can again click on bits to scroll through options.
http://textadventures.co.uk/games/view/14ynzvspr0ex6dgvbdjvqw/the-sun-queen
This completed game is for a more traditional RPG, and has a point-buy system for attributes. Spending points can get tedious if you gave to do it one step at a time.
http://textadventures.co.uk/games/view/em15b32xd0o-y-ysvgrtcg/deeper
Questions might depend on previous answers. If the player chooses to play a race with a tail, ask about the tail, otherwise skip it.
I figure my system already allows that. In most cases, because a race is a complex thing that will affect multiple stats, you'd have it as a "Choose an object" question; a set of child objects representing the base stats of different races. If you set it to move their child objects into the inventory, then you could put the "Tail length" question inside one of them, and it gets added to the queue as soon as it's in the player.
If it's enabled by multiple races, you could either have the tail question's "before" script invalidate the question if not needed; or have the race question's "after" script move it in or out of the player object as needed. The question objects will sit around as invisible objects as long as their canundo flag is set.
This is kind of looking at it from the other side, but I prefer to see all the questions at once so I can build a holistic character.
I was thinking about some kind of container for questions that displays several at once. For menus, that might be tough, but I think I can see a way to do it. (ShowMenu is non-blocking ☺. I was already playing with a similar system to take "Skip question", "Help", and "Back" options off the end of a ShowMenu call and displaying them as buttons rather than list items; while still keeping the scripts on them the same so that I don't need to edit ShowMenu or the parser code that deals with responses)
Having JS question widgets (especially for the numbers) would be good too… might leave that until I've got basic functionality, though.
Or… I could make everything look like a menu. Have a ShowMenu with options like "INT +1", "STR -1", "Done", etc … and generate a chunk of javascript (or even CSS) that changes how and where the options display on the client side.
I think for now I'll do the questions in order, except maybe for the numbers.