Hey guys!
So... this is a pretty huge favor to ask, sorry about this. But if any of you have any time you'd be willing to donate, I'd be much appreciated. And the market in the game will be that much cooler for it.
BackgroundThe tech tree in this game is a hand-designed affair, and is ONLY used by the player races. Your race is so far behind everyone else that nobody else needs what you're working on.
BUT! There's a whole other section of the game called the Market, and it works kind of like a procedurally-generated tech tree. It's more randomized than that, but you can affect the outcome of what you're "unlocking" in various ways. And you can then trade those things away even if you don't find them really useful for yourself. And you can trade for things that other races invent as time goes on.
In order to really make this shine, that involves having each market item come up with a cool procedurally-generated name. I have the framework for that in place, and as of the 4/9 update it's going pretty swimmingly (thanks in huge part to your help).
The Krolin wrote a hilariously-titled piece of Dark Philosphophy entitled: "Why Do The Fatally Crabby Die?" Seeing that show up in my inventory just made me laugh out loud. And there were a bunch of other good ones, too. What a difference this makes to the feel of the market!
The TaskOkay! After much work by many talented people, we have arrived at the (current as of now) attached spreadsheet. The actual online spreadsheet has already evolved well beyond this, naturally, even as I write this.
Here's how this works:
1. There are a variety of categories of market item types, and it looks for a column with the header matching that exact name. The types are:
Broadcast_Comedy
Broadcast_Sports
Broadcast_News
Broadcast_Education
Broadcast_Violent
Broadcast_Romance
ConsumerProduct_Hygiene
ConsumerProduct_Clothing
ConsumerProduct_DangerousToys
ConsumerProduct_Technological
ConsumerProduct_Gadgets
Military_Components
Military_PersonalWeapons
Military_VehicleWeapons
Military_PersonalArmor
Military_VehicleArmor
Military_PersonalBioAugments
Military_RangedWeaponAugments
Military_BannedWeapons
Philosophy_Serious
Philosophy_Dark
Philosophy_Trivial
Philosophy_Social
Fiction_Uplifting
Fiction_Tragic
Fiction_Propaganda
NonFiction_TortureResults
NonFiction_MilitaryTactics
NonFiction_Politics
NonFiction_Science
NonFiction_Biology
NonFiction_Technology
Periodical_News
Periodical_Research
Periodical_Propaganda
Periodical_Entertainment
Poetry_Humor
Poetry_Crude
Poetry_Uplifting
Poetry_Romantic
Poetry_EpicHeroism
Poetry_Angsty
2. Once it has found the appropriate column for the type of "item" being generated, it then pulls a random row from that column.
3. It then looks into that column and finds any tags (anything that starts with { and ends with } is a tag), and does a couple of things with them.
a. Special tag: {n} -- in this case, it places a number between 0 and 9. I'd advise staying away from numbers and mark levels and such too much, though, because if you put that in there players will assume it has meaning when it does not. If you want to say "A Collection of {n} Poems," that's a good use for this tag.
aa. Special tag: {n1} -- in this case, it places a number between 1 and 9. Same notes as above. Note that you can chain these together to make interesting longer numbers.
ab. Special tag: {nn} -- in this case, it places a number between 1 and 99. A bit more flexibility.
ac. Special tag: {nnn} -- in this case, it places a number between 1 and 999. A bit more flexibility.
ad. Special tag: {nnnn} -- in this case, it places a number between 1 and 9999. Yet more flexibility.
b. Special tag: {RacialAdjective} -- In this case, it will look to the column for the race that is inventing this item. So for the Skylaxians, this is the SkylaxiansAdjectives column, for the Andors it's the AndorsAdjectives column. It then pulls a random row from the appropriate column.
c. Special tag: {RacialPlace} -- In this case, it will look to the column for the race that is inventing this item. So for the Skylaxians, this is the SkylaxiansPlaceTypes column, for the Andors it's the AndorsPlaceTypes column. It then pulls a random row from the appropriate column.
d. Special tag: {OurRacePlural} -- This is the name of the race that made it. So if it's an acutian thing, this will always say "Acutians". If it's peltian, then it will say "Peltians" and so on.
e. Special tag: {OurRaceSingular} -- Same deal as above, except that this is singular. So if it's an acutian thing, it says "Acutian".
f. Special tag: {OurRandomRaceLeader} -- Each race has three possible leaders, of which only one is in the game at a given time. However, each is a good source of racial names, right? So this picks one of the three at random.
g. Special tag: {OtherRacePlural} -- This is the name of any other race EXCEPT the race that made it. And it's the plural version, as you might guess. Note that multiple calls to "OtherRace<Whatever>" in an item name will NOT return the same race each time. It may or may not. Best bet is to only use one of the "OtherRace<Whatever>" tags in a given name.
h. Special tag: {OtherRaceSingular} -- Same deal as above, except that this is singular. Once again, any race EXCEPT ours. And no consistency.
i. Special tag: {OtherRandomRaceLeader} -- Each race has three possible leaders, of which only one is in the game at a given time. This picks the name of any leader that is NOT from our race. Again no consistency.
j. All other tags are considered custom, and will look for a column in the spreadsheet with that same name. So if you want to have a tag named {HiThereBob}, you would need a column with the header HiThereBob as well. These are case-sensitive, so your capitalization matters.
5. The generator runs through this recursively until there are no more tags. So if there are tags within tags, that is okay. Also, if you have multiple copies of {n} or {GenericAdverb} or whatever in one name, it will pick a unique name for each instance of that tag.
Important rules of thumb:I. If you wouldn't mind having everything in proper capitalization, that would be awesome. It's super easy to do by just going here:
http://www.textfixer.com/tools/capitalize-sentences.php Choose "Capitalize Every Word" and paste in your entries, and bam.
II. The inventor race is something I'd prefer be apparent. So pretty much everything should use {Adjective} or {Place} in there somewhere. If we wind up needing to make other race-specific categories, then fine. And I guess there can be exceptions to this. But it's pretty nice when the race makes their own mark on things.
III. As mentioned before, the capitalization of the tags matters. The tag name and capitalization must exactly match the header of the column to pull from. Just re-emphasizing that.
IV. Overall not having names that are ridiculously super-long is a good thing, as is not having things that seem to indicate a specific function when really the name has nothing to do with the function. Aka "Amulet of Power Reduction" would be incredibly misleading since it might have nothing to do with power reduction.
V. If there is a gap of any rows in a column, there is a good chance it might be skipped. It's not a certain thing, but once the spreadsheet reaches a row where no columns have any content -- even if more rows down south of that row have content in at least one column -- then it stops. So leaving gaps is something to avoid when possible.
-- Most importantly, here's the actual sheet where data is to be entered at this point:
https://docs.google.com/spreadsheets/d/1ngsCKxrQUVM5JRxN5eN-ZnSbWaPvw9G5BKcbFARhVRk/edit#gid=0Thank you very much for any help!