FreeOrion

Forums for the FreeOrion project
It is currently Tue Dec 12, 2017 9:50 pm

All times are UTC




Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 79 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next
Author Message
PostPosted: Thu Jan 22, 2009 7:57 am 
Offline
Programming, Design, Admin
User avatar

Joined: Wed Oct 08, 2003 1:33 am
Posts: 12041
Location: Munich
This thread is to (hopefully) quickly discuss and resolve a design issue that's come up. The issue is how to deal with colony ships on the production queue and the population that will go into them.

If a colony ship founds a new colony, there is some initial colony population. Currently this is 1 unit of population for all colony ships, but it could change to depend on the type of colony pod or the number of pods or other factors, and could be a much smaller number, should that be deemed appropriate.

Regardless of how much population a colony ship carries, there is an issue of where this population comes from. Currently, a planet building a colony ship does so at no expense to its own population. That is, building a colony ship creates a unit of population out of nothing, with no resulting reduction in poulation on the planet where the ship was built.

This makes building colony ships a quick way to generate poulation units, and could become a serious balance issue in future if there is migration of population between planets or the ability to unload colonists from a colony ship to an existing colony.

So this question to address: How should colony ships being built take population from the planet where they're built?

The "simplest" solution is to deduct the appropriate number of population from a planet when it builds a colony ship. This might be not so simple though, in that we'd need to be sure that any planet building a colony ship has enough population to fill the ship. If multiple colony ships are being built simultaneously at a planet, and they individually have less population than the planet, but combined have more, what would be done?

A more "elegant" solution is to consume population continuously while building the ship, so that when the ship is finally built, there's no sudden loss of population on the planet. This might be implemented by taking a small amount of population each turn a ship is being built, but then there are issues of what to do if the ship is being partly funded, so that it takes more turns than the minimum to build it. Should any ship on the queue take an equal amount of population each turn regardless of how much PP it's getting, or should there be some complicated calculation to determine how many population the ship gets each turn? And even if the population taken per turn is small, it might deplete the population of a small planet that's not growing very quickly, and multiple ships being built might add up.

Planets have a "health" meter that affects their population growth rate, but they don't have a "growth" meter. If they did, we could make building a colony ship have a negative penalty to growth, representing the population being diverted into the ship. I don't think adding a growth meter is a good idea, though.

We could possibly complicate the build queue somewhat, so that any item on it can require a certain amount of something other than PP to build. There would still be a total cost in PP to produce things, and a maximum amount of PP per turn that can be spent on the item. There would also be a separate accumulator for some other resource, perhaps with a max contribution per turn, that would also have to be filled up for the item to be produced. If the one of the accumulators, PP or alterate, was filled up before the other, the item would remain on the queue until both accumulators were full.

Along these lines, colony ships might have a population accumulator they need to fill to be built. Population growth from the planet where a colony ship is being built would be diverted into the colony ship, limited by the max per turn contribution to population the ship can accept while being built, and by the amount of growth on the planet. Planets with maximum population would be preferred locations to build colony ships, as they would lose no population growth to the ship since they would gain no population from that (potential) growth anyway. (This is assuming that there is a "potential population growth" number for planets that is larger than 0 if the planet is at max population, which there presently is.) Planets that aren't able to grow, even if they're not at max population, perhaps due to too-small health meters, would be unable to produce colony ships.

If there were multiple colony ships being built at a planet, they would be allocated population growth in order they appear on the queue, so that the first colony ship would be allocated up to its limit per turn, and then growth would go to the second colony ship on the queue, etc. Any left over potential population growth would go to the planet, which would then grow, assuming it wasn't already at maximum population.

This type of system could be modified later if and when we set up a migration system between planets. Population wanting to migrate off a planet could perhaps contribute to the colony ship population, even if the planet isn't able to produce more population by growth.

Other resources, such as trade, food or research could also potentially be given accumulators for production items to fill up, although this might complicate the distribution and consumption of those resources that normally occurs.

...

There are certainly other alternatives. Any suggestions about how to handle this issue? Comments on the above possibilities?


Top
 Profile  
 
PostPosted: Thu Jan 22, 2009 9:34 am 
Offline
Creative Contributor
User avatar

Joined: Sat May 26, 2007 8:05 pm
Posts: 576
Here are two possible ideas from the top of my head:

Colony people migrate to colony ships in orbit after its built, the more emigrants a planet is producing the faster a ship fills up. This may be a bit too microy and detailed for FreeOrion though.

Colony ships don't actually contain colonists but rather a load of supplies and contract workers/robots, they build an empty city of sorts and then invisibly fly the workers home. Afterwords people migrate to the new colony and once enough people to be considered one population arrive you gain control off the planet.


Top
 Profile  
 
PostPosted: Thu Jan 22, 2009 9:57 am 
Offline
Programming, Design, Admin
User avatar

Joined: Wed Oct 08, 2003 1:33 am
Posts: 12041
Location: Munich
Have to wait for a colony to fill up after being built would involve adding extra waiting to use your newly-built ship... It would be rather annoying, I suspect, and I'd rather have the population accumulate while the ship is building, and delay its production than delay its use after production.

Having new colonies have effectively zero population is intersting. If colony ships have 0 population in them, then they can't be used to shuttle population around, which eliminates a potential motivation for micromanagement.

It's also a bit more realistic, since if an Earth-like planet has 25 population, that's probably roughly equivalent to 25 billion people. (I'm assuming some near-future tech makes this sustainable). The smallest initial colony population we could reasonably use in the UI is 0.01 population points, which is still 10 million people, which is way too many to fit on any plausibly built colony ship.

This would depend on us having a very functional migration system, though, and could be rather limiting of colonization to only be possible in areas where migration can occur. Presumably migration would be limited similarly to resource exchange (quite short range) or fleet supply (a bit longer, but still somewhat limiting). Near the start of the game, an empire's resource or fleet supply range might not be long enough to reach any colonizable planets...


Top
 Profile  
 
PostPosted: Thu Jan 22, 2009 3:11 pm 
Offline
Design & Graphics Lead Emeritus
User avatar

Joined: Sat Sep 23, 2006 7:09 pm
Posts: 3858
Location: USA — midwest
Geoff the Medio wrote:
This makes building colony ships a quick way to generate poulation units, and could become a serious balance issue in future if there is migration of population between planets or the ability to unload colonists from a colony ship to an existing colony.
It seems like the ability to "unload colonists from a colony ship to an existing colony" is the much more problematic part of the two listed above. But really i don't see why we need to be able to do that. It seems to be contrary to the earlier embraced design idea that we won't be manually shuffling population around.

:arrow: Simply declare it impossible to "unload colonists from a colony ship to an existing colony" and most of the problem goes away.


But still, "where do the colony ship population come from?" is a valid question.

Geoff the Medio wrote:
The "simplest" solution is to deduct the appropriate number of population from a planet when it builds a colony ship. ...

Whoa, sounds like you've forgotten about shipyards. With all ships built in a fraction of your total planets, subtracting population only from the building planet would be a problematic hardship for shipyard worlds.

The other aspect to consider is the species of the colonists. Though it's not clear if we would want to require a shipyard on a species X planet, to create a species X colony ship, or if we would allow any shipyard to build a colonyship for any of your member species. Another possibility is that colonyships are species-neutral, and you get to define it when you plant a colony. I don't think we can choose how the species aspect will work at this point, but we should be aware that there will be more to colonyships in the future.

I would advise that we stick to the current unexplained generation of 1 population unit, until the point that it becomes clear there is an un-resolvable balance issue with it. As you point out there are a number of complications involved with actually taking the population from somewhere. I don't want to wait for the population bar to fill up, and i don't want additional resource type requirements in the production queue if at all possible. Also, i don't see what the problem is with "sudden loss of population on the planet(s).", as long as we don't let it kill a colony. In the case of population boarding a colonyship, sudden loss of population is what you would expect.


Geoff the Medio wrote:
This type of system could be modified later if and when we set up a migration system between planets. Population wanting to migrate off a planet could perhaps contribute to the colony ship population, even if the planet isn't able to produce more population by growth.

Once we do get a auto-migration system in place we'll have some better options to make it fancier, if necessary. But it's not clear to me that fancier is at all neccesary.

_________________
—• Read this First before posting Game Design Ideas!
—• Design Philosophy

—•— My Ideas, Organized —•— Get an Avatar —•— Acronyms —•—


Top
 Profile  
 
PostPosted: Thu Jan 22, 2009 4:01 pm 
Offline
Programming Lead Emeritus
User avatar

Joined: Thu Jun 26, 2003 1:33 pm
Posts: 1092
KISS. Create an "available population" value (not a meter) that is always <= to the current pop. When you enqueue a colony ship, the available pop goes down by 1. If you have <= 1 available pop, you can't enqueue that colony ship. Once complete, the colony ship takes the 1 pop all at once, reducing the pop meter by 1. It regenerates normally. If something happens to your pop, like an enemy attack, and available pop dips below 0 at the beginning of a turn when one or more colony ships are in the queue or just completed, the ship(s) just go(es) away.


Top
 Profile  
 
PostPosted: Thu Jan 22, 2009 4:47 pm 
Offline
Design & Graphics Lead Emeritus
User avatar

Joined: Sat Sep 23, 2006 7:09 pm
Posts: 3858
Location: USA — midwest
tzlaine wrote:
KISS. Create an "available population" value (not a meter) that is always <= to the current pop.
"Current pop" of what: the shipyard planet, the system, the whole empire?

_________________
—• Read this First before posting Game Design Ideas!
—• Design Philosophy

—•— My Ideas, Organized —•— Get an Avatar —•— Acronyms —•—


Top
 Profile  
 
PostPosted: Thu Jan 22, 2009 5:40 pm 
Offline
Creative Contributor
User avatar

Joined: Sat Sep 13, 2003 6:52 pm
Posts: 1396
Well if a source is needed, then there are a few options

1. Building planet
Pros... simplest
Cons... impact on shipyard planets, problem with Species selection

2. Empire (entire non blockaded)
pros..minimal impact on any planet can select any species in your empire
cons.. may be complicated... colony ship production may have to stop when a source species planet is blockaded

3. magically
pros... absolute simplest
cons.. exploitable (colonize, evacuate planet, repeat)... or if pop can be put down


I'd probably tend towards the Empire source and continuous consumption (pop+PP are simultaneously invested)

so if you have a total of 30 Traygadora pop in your empire, assume a fraction (say 1/10) is a vailable for putting in a colony ship
so 3 Tpop. available
you are building a colony ship that costs a total of 100 PP and 1 Tpop.
so for every PP you consume you also consume 0.01 Tpop... (so all your T planet's decrease in population by 0.01/30* their actual population)

If the population is not available, (ie you are sumultaneously building 100 colony ships and are trying to invest 10 PP into each) then the PP cannot be spent (each will consume 10 PP and 0.1 Tpop, so after the first 30 colony ships, the PP cannot be spent on those and so it rolls over to the next thing... until it reaches something that is not building simultaneously with Tpop)

This way you can enqueue a Colony ship but if you only have a Planet with a pop of 0.1 but a massive industry, almost none of that industry will be applied to the enqueued colony ship (there will be a slow trickle of PP as the population slowly decreases, changing by Growthrate-10% each turn) [you probably Shouldn't enqueue a colony ship in those conditions, but usually your production would be the limiting factor until late game]

the 1/10 available means that construction of colony ships can only drop your population by 10% each turn (which is definitely recoverable as growth rates are looking at close to that value), especially when the first colony ships you build get landed.
[you could also make the "available pop" 10% of population -1, to ensure there is always a good source... if there was 0 available, colony ships could be enqueued but none of the PP could be spent]

If multiple T colony ships are being built they consume population the same way, as their PP are being invested.


Now the main issues with this

Colony ships then become a way to force move population, from your empire as a whole To a certain spot.
I think this is OK depending on where colony ships can be landed.

If there is some limitation (no landing if pop>x% max pop) then it fits with the idea of colony ships... they only help to jumpstart/create a colony. and are 'sourced' from your empire (both in PP and pop).

By providing for Empire wide stocking,you eliminate the micromanagment of where it is produced from. (in a population sense)

So they are never ways to move population OFF a certain planet. for that you need the 'evacuation'


Top
 Profile  
 
PostPosted: Thu Jan 22, 2009 5:47 pm 
Offline
Space Kraken
User avatar

Joined: Mon Nov 10, 2008 5:55 pm
Posts: 163
Semi-related; would it be possible at some point to have a shipsize large enough to qualify as its own colony? Not just for seeding a world but rather as a "floating city/moon" etc (obviously an extremely limited max population). These would have to be situated on/near a planet/asteroid belt/etc. to produce new things, but aside from that would be... entertaining. Possibly a bit game-imbalancing, but they would necessarily be later-game objects so they couldn't be //that// bad. Unless, of course, such a colony was discoverable as an artifact. But those are random enough early-on and non-reproducible enough that it also kinda balances.

That being said: Another approach; allow the disbanding of colonies through the production of colony ships. IF you build a colony ship on a world with lower-than-1 population, the ship gets built and the colony gets disbanded. One of the things I hated about the later CIV games was that you couldn't disband a city that was built in a poor zone.

This would give you the option, at rather high cost, of leapfrogging early-on in game in order to expand the range of your vessels/transportation/etc -- at the expense of production & research.

Also -- please refresh my memory; are outpost ships going to be used at any point?

Finally: if the idea of disbanding colonies doesn't work for the programmers, as another option the 0-population colonies works rather well; especially if you could somehow decide how immigration were to be received. (If for no other reason than to have some form of control over how different races are distributed across your empire.)

_________________
Function. Verify. Cultivate. Invent.
Image


Top
 Profile  
 
PostPosted: Thu Jan 22, 2009 6:00 pm 
Offline
Design & Graphics Lead Emeritus
User avatar

Joined: Sat Sep 23, 2006 7:09 pm
Posts: 3858
Location: USA — midwest
IConrad wrote:
Semi-related; would it be possible at some point to have a shipsize large enough to qualify as its own colony?

This is an official design thread (i.e. not brainstorming), so please keep focused on what is relevant to the original question.

The ability to disband colonies is an interesting idea, but again i don't see how it is really relevant.

IConrad wrote:
Also -- please refresh my memory; are outpost ships going to be used at any point?

I don't know what you mean by "outpost ships".

_________________
—• Read this First before posting Game Design Ideas!
—• Design Philosophy

—•— My Ideas, Organized —•— Get an Avatar —•— Acronyms —•—


Top
 Profile  
 
PostPosted: Thu Jan 22, 2009 6:56 pm 
Offline
Space Kraken
User avatar

Joined: Mon Nov 10, 2008 5:55 pm
Posts: 163
An outpost would be something that affects distribution grids, galaxy-map sensors, and supply lines in exactly the same way as a colony would but is not itself a colony; it does not produce and has 0 population at all times. An outpost ship would then be a vessel that establishes such outposts.

_________________
Function. Verify. Cultivate. Invent.
Image


Top
 Profile  
 
PostPosted: Thu Jan 22, 2009 7:16 pm 
Offline
Design & Graphics Lead Emeritus
User avatar

Joined: Sat Sep 23, 2006 7:09 pm
Posts: 3858
Location: USA — midwest
IConrad wrote:
An outpost would be something that affects distribution grids, galaxy-map sensors, and supply lines in exactly the same way as a colony would but is not itself a colony; it does not produce and has 0 population at all times. An outpost ship would then be a vessel that establishes such outposts.

Oh, you confused me by referring to outpost ships. That's an idea that i happen to like, but which hasn't gone beyond brainstorming.

_________________
—• Read this First before posting Game Design Ideas!
—• Design Philosophy

—•— My Ideas, Organized —•— Get an Avatar —•— Acronyms —•—


Top
 Profile  
 
PostPosted: Thu Jan 22, 2009 8:46 pm 
Offline
Space Floater
User avatar

Joined: Sat Dec 27, 2008 5:25 am
Posts: 38
Location: United Kingdom
In order to permit colony ships to be populated from any part of the player's empire (and thus use any constituent member species) I favour empire-wide recruitment.

I propose that this could be achieved from the production screen. A colony ship population is listed as a 'buildable' project and the player selects the colony from which the population is to be sourced as if selecting where to build a project. To build a colony ship requires a colony ship project to be matched with a 'recruit colonists project' and perhaps the number of colonists recruited could be selected here. It would involve a change in the gui of course.

The trouble with disallowing unloading of colonists is that it punishes the player for building colonists that they then later decide not to use. it may be a small issue if the 'population' aboard the colony ship is very small, but may seem arbitrary and frustrating to the player. I concede however, that allowing it will still permit the micro of forced migrations, which I don't like the sound of.


Top
 Profile  
 
PostPosted: Thu Jan 22, 2009 9:03 pm 
Offline
Design & Graphics Lead Emeritus
User avatar

Joined: Sat Sep 23, 2006 7:09 pm
Posts: 3858
Location: USA — midwest
Sui Generis wrote:
I propose that this could be achieved from the production screen. A colony ship population is listed as a 'buildable' project and the player selects the colony from which the population is to be sourced as if selecting where to build a project. To build a colony ship requires a colony ship project to be matched with a 'recruit colonists project' and perhaps the number of colonists recruited could be selected here. It would involve a change in the gui of course.

This seems rather micro-intensive, and not congruent with the level of complexity we have chosen for other ship "supplies". Fuel, fighters, and Ammo are automatically generated and added to ships when the conditions are right. I think we can come up with something simpler that doesn't require so many additions to the standard production model.

Sui Generis wrote:
The trouble with disallowing unloading of colonists is that it punishes the player for building colonists that they then later decide not to use. it may be a small issue if the 'population' aboard the colony ship is very small, but may seem arbitrary and frustrating to the player. I concede however, that allowing it will still permit the micro of forced migrations, which I don't like the sound of.

We'll probably be able to "scrap" unwanted ships to get a certain percentage of the resources back. Beyond that i don't see much need to protect the player from the consequences of building stuff he doesn't need.

_________________
—• Read this First before posting Game Design Ideas!
—• Design Philosophy

—•— My Ideas, Organized —•— Get an Avatar —•— Acronyms —•—


Top
 Profile  
 
PostPosted: Thu Jan 22, 2009 10:06 pm 
Offline
Space Kraken
User avatar

Joined: Mon Nov 10, 2008 5:55 pm
Posts: 163
Quote:
This seems rather micro-intensive, and not congruent with the level of complexity we have chosen for other ship "supplies". Fuel, fighters, and Ammo are automatically generated and added to ships when the conditions are right. I think we can come up with something simpler that doesn't require so many additions to the standard production model.
By Jove I think he's got it.

Colony ships are built at any location with a shipyard. Immigrants, however, are "built" on any world. Any world "building" immigrants (well, emigrants but let's not get linguistically complicated here) has its population growth halted. This then creates a resource pool of "colonists" whom will populate new worlds. When you create a colony, you choose from a drop-down what kind of population you want for that world out of your available populations. (Disregard this dropdown for empires with only one species in its population pool.) Alternatively, you could do a mouse-over drag-and-drop for quicker distribution. Or you could click a button to make it automatic and just receive an even distribution of population proportionate to the races in the pool -- for those who just don't care.

This also allows players to select worlds as "open to immigration" by pulling from population pools elsewhere.

All very macro.

_________________
Function. Verify. Cultivate. Invent.
Image


Top
 Profile  
 
PostPosted: Fri Jan 23, 2009 1:54 am 
Offline
Creative Contributor
User avatar

Joined: Sat Sep 13, 2003 6:52 pm
Posts: 1396
Actually for the most macro solution

Movement of population is 100% automatic
Colony ships contain 0 pop

a certain % of the population of all worlds becomes Migrants of the respective race
then that population is distributed automatically to the worlds of the proper races (each world having a cap on the # of Migrants it can take in a turn)

"Colony ships" would then be just like a type of outpost ships.. When you land them on a planet, that planet can accept x (say 0.1) immigrants per turn.
You would also designate Which race in your empire would be allowed to migrate to that world.

Say
1% of each world's population becomes migrants and
each world can accept up to
say 0.1+1% of current population as migrants (or up to its pop cap which ever is less)

so Migrants are generated and then evenly divided among all the worlds, any unaccepted migrants are carried over to next turn

so
Planet 1 = pop 10, m= 0.1, new pop = 9.9
Planet 2 = pop 0, m=0, new pop = 0
Planet 3 = pop 5, m=0.05, new pop = 4.95
Migrants=0.15
3 worlds so 0.05 per planet
so
Planet 1 = pop 9.95
Planet 2 = pop 0.05
Planet 3 = pop 5

(assuming no natural growth) and assuming all worlds are connected (no blockades)

the 1% population generation/cap and 0.1 caps could be changed, but seem like good examples.

For Now, it might be easiest with "initial colony population is magically created", but I think this concept works better. (you choose the race of the colony ship either when enqueuing it, or when landing it.. requiring that that race is present in your empire.)


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 79 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group