First post moved here for reference
Hi guys, long time no see :)
TLDR
I present here my idea of a system's long description generator.
With this feature, all systems will get a randomly generated long description, hopefully that is consistent with what they are and with the game universe.
Custom systems will still have their custom long description.
The opening post is about the mechanics. Your comments will be welcome!
[/TLDR]
1. Base idea
You may remember me for having written the long description of custom systems.
My motivation is that this vast universe quickly gets repetitive and ought to be "populated by stories".
The only problem is that it takes me a about a week to coin a custom system, and there are zillions of waiting for a story...
Which is why I'm working about generating these long descriptions randomly.
This idea seems much more in tune with the spirit of Pioneer's development, with its procedurally generated systems, space bodies, and faces.
With this first post, I'd like to present you the base idea and discuss it. In the next few days, I'll present a module that will serve as a proof of concept.
Example #1
Gliese 674 (Earth Federation Democracy)
"As a system belonging the Solar Federation, Gliese 674 sends tribute to Sol and abides to many laws decided in the faraway capitol. However, the local government is the one that decides on local matters. Not only do the people vote for their governors, they also have a direct say on issues such as planetary development, social and environmental laws, taxation etc.
A popular event is Boyd’s race around Harry's Rock. Flying at high speed and low altitude, competitors must avoid risky terrain to claim victory. Most people stop their activities at the time of the race, not only to watch the thrill of it, but also to show support to their champions.
Gliese 674 is famous for its speciality, the Kreikkalainen. This recipe originated from King Starport, which remains the best choice for gourmets.
-- Courtesy of the Encyclopedia Galactica"
Example #2
Ethex (-7, 25, 8, plutocratic dictatorship)
"No matter what you do here, do not go against Petalimited's plans. Don't talk about it, don't trade against it... or the police will come see you. And no, they're NOT cool guys.
You know teenagers. Bored at school and bored at home virtually blowing stuff up while sitting on their couch. Well, over here, a teen's life is much cooler. When they turn 14, the young'uns go spend a year in the navy, with real guns and real explosions! (and no respawn, but the loss rate is reasonable, really). After having served, they become real men and women who'll get to ramble on the same navy stories over and over.
-- Sam's guide to the Galaxy, entry on Ethex"
2. A must: lots, lots and lots of contents
In a gigantic universe such as pioneer, a real difficulty is not to get repetitive.
The simplest way would be to assemble several dozens paragraphs, and claim there are 716467688 possible combinations or so.
However, as the face generator shows us, consistency is also very important.
So, the idea is to
create a basic framework which has the following attributes:
- Base contents (paragraphs) are already written
- Contributors can easily add new paragraphs to the game with minimal meddling with the code.
In order to multiply the possible contents, a long description would write 1-4 paragraphs drawing from the following categories:
- Astronomy
- History
- Government
- Economy type
- Lawlessness
- IsCommodityLegal
- Society
- Trivia
- Cuisine
... and always the general paragraphs (signature, transitions)
Each category would be divided under sub-categories.
For example, Government would be divided under government_is_earthdemoc, government_is_plutocratic etc.
Another example, Astronomy could be divided under astronomy_has_startype_m, astronomy_has_icyplanet etc.
Every sub category could have as many possible paragraphs as the contributors imagine. For example, I've written 4 paragraphs describing the government EARTHDEMOC.
Finally, there are two flavours, the Encyclopedia Galactica and Sam's Guide to the galaxy (the description picks one of these two flavours and sticks to it).
3. Big question: module or long desc in the core of the game?
Right now, I'm working on a module which shows on the BBS, for two reasons:
- I'm not good enough with programming to tamper with the core of the game
- As long as there is not enough content, those long descriptions will quickly get boring.
If there is enough content, I think the idea would strongly add up to the core of the game. The module wight be left for some "pure fluff", like local rumors and ads.
4. Some questions about code
I'm not a programmer by any means, but I have already a working module supporting multi-language (right now, only about cuisine). I want to improve that module in the next days so that it adds the text I've already written so far.
However, I think it is important that contributors can easily add new paragraphs to the en.json file with as little meddling with the rest of the code as possible.
I'm using the
for loop extensively. So I was thinking about creating a bunch of local constants to show the max amount of paragraphs for each sub-category. For example,
Code: Select all
local govtype_is_earthdemoc_flavour_0_max = 4
Only problem is that you get a great load of constants, and contributors may forget about updating them. Is there any way to analyse the en.json file, so that the code decides by itself how many paragraphs come from each sub-category?