Organic hull evolution/mutation
Moderator: Oberlus
Organic hull evolution/mutation
Someone before (can't find it now, sorry) suggested hull upgrades for already built ships. IIRC, I raised objections about the unfeasability of managing already built ships that suddenly have more available slots.
Regarding monsters (tamed or wild) someone else suggested random mutations to make them grow additional weapons and whatnot.
This suggestion is inspired by the above and by the zerg units in StarCraft:
Research hull refinement techs to enable the mutation of living organic hulls into a more powerful version after they reach their maximum growth by age.
The evolved version will have the same slots and mounted ship parts, but with improved hull base stats (usually, starting max structure will be bigger than grown-up structure of the original hull). Getting an stealth and structure upgrade to your old grown-up symbiotic bombers would be great.
Optionally, the mutation could come with the upgrade of current mounted parts, something like "Tentacle parts gets substituted by Big Tentacle parts". This does make sense in my mind only for organic ship parts, because the evolution/mutation of a living ship into something bigger should not make a mounted laser become more powerful, the same that child clothes do not grow with them and need to buy new ones if they want them bigger. So this suggestions makes more sense for my proposal of organic hulls with organic parts in the themed tiered tech tree).
Regarding monsters (tamed or wild) someone else suggested random mutations to make them grow additional weapons and whatnot.
This suggestion is inspired by the above and by the zerg units in StarCraft:
Research hull refinement techs to enable the mutation of living organic hulls into a more powerful version after they reach their maximum growth by age.
The evolved version will have the same slots and mounted ship parts, but with improved hull base stats (usually, starting max structure will be bigger than grown-up structure of the original hull). Getting an stealth and structure upgrade to your old grown-up symbiotic bombers would be great.
Optionally, the mutation could come with the upgrade of current mounted parts, something like "Tentacle parts gets substituted by Big Tentacle parts". This does make sense in my mind only for organic ship parts, because the evolution/mutation of a living ship into something bigger should not make a mounted laser become more powerful, the same that child clothes do not grow with them and need to buy new ones if they want them bigger. So this suggestions makes more sense for my proposal of organic hulls with organic parts in the themed tiered tech tree).
Re: Organic hull evolution/mutation
Meter changes are feasable, also for e.g. weapon parts. I would not go for further structure upgrades for organics because we already have the growth mechanic.Oberlus wrote: ↑Fri Oct 23, 2020 11:32 am The evolved version will have the same slots and mounted ship parts, but with improved hull base stats (usually, starting max structure will be bigger than grown-up structure of the original hull). Getting an stealth and structure upgrade to your old grown-up symbiotic bombers would be great.
I like the idea of growing of extra tentacles or a stronger jaw.
Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.
Look, ma... four combat bouts!
Look, ma... four combat bouts!
- Krikkitone
- Creative Contributor
- Posts: 1559
- Joined: Sat Sep 13, 2003 6:52 pm
Re: Organic hull evolution/mutation
I like the idea of
Fully grown Hull -> Bigger hull with extra slots filled with biological "parts" (whether or not you had those parts originally)
Fully grown Hull -> Bigger hull with extra slots filled with biological "parts" (whether or not you had those parts originally)
Re: Organic hull evolution/mutation
Does not work the way freeorion works / much backend work involved for the gain.Krikkitone wrote: ↑Fri Oct 23, 2020 2:06 pm I like the idea of
Fully grown Hull -> Bigger hull with extra slots filled with biological "parts" (whether or not you had those parts originally)
Oberlus suggestions are possible without backend changes.
Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.
Look, ma... four combat bouts!
Look, ma... four combat bouts!
Re: Organic hull evolution/mutation
We already have in the game weapons that grow (become stronger) with time, some of the monsters use it. Having organic weapons that grow along with the hull makes sense and brings in differentiation and twist to regular strategies. It's in he agenda.
My idea for mutation of ships includes using different hull arts for the mutated hull, the same you can metamorphose a zergling into a baneling in Starcraft, implemented via destroying the original ships and creating a new one (copying the effect from current monsters' maturing mechanics). As long as there is no trouble (I don't know) automatically creating new ship designs based on existing ones, I think there should be no problem mutating ships into other designs that include extra weapons. E.g. a symbiotic hull with 1 armor part, 1 launch bay, 1 bomber bay and fuel tank could evolve into a hull with one extra internal part automatically filled with a special shield part (or stealth, or whatever, but always the same regardless of the specific ship design from which this mutated hull comes).
My idea for mutation of ships includes using different hull arts for the mutated hull, the same you can metamorphose a zergling into a baneling in Starcraft, implemented via destroying the original ships and creating a new one (copying the effect from current monsters' maturing mechanics). As long as there is no trouble (I don't know) automatically creating new ship designs based on existing ones, I think there should be no problem mutating ships into other designs that include extra weapons. E.g. a symbiotic hull with 1 armor part, 1 launch bay, 1 bomber bay and fuel tank could evolve into a hull with one extra internal part automatically filled with a special shield part (or stealth, or whatever, but always the same regardless of the specific ship design from which this mutated hull comes).
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13603
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Organic hull evolution/mutation
The main problem is that ships don't have a hull and parts, but rather ships have a design, and the design has a hull and parts. So, there can't be a SetHull effect or an AddPart effect that acts on a ship, because changing either would require making a new ship design for every variation.
A possible workaround would be to have some effects that set various part meters to zeros when a ship is immature, and progressively relax those effects so new parts become active over time. The parts would always be in the design, but would just be inactive until the ship matures enough...
A possible workaround would be to have some effects that set various part meters to zeros when a ship is immature, and progressively relax those effects so new parts become active over time. The parts would always be in the design, but would just be inactive until the ship matures enough...
Re: Organic hull evolution/mutation
I'd like to implement this via destroying the mutating ship and creating a new one with a ship design automatically generated "on the fly" based on the mutating ship design (i.e. copying the present ship parts, optionally adding new scripted parts to new slots). Could that be done?Geoff the Medio wrote: ↑Fri Oct 23, 2020 4:04 pm The main problem is that ships don't have a hull and parts, but rather ships have a design
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13603
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Organic hull evolution/mutation
It's obviously a problem but I'm not sure that it's unsolvable.
The only possibility would be a predefined mutation, of course - like having the ship built in its "larva form" as we do now, but tied to a "mature form" that would have more slots, which the player would fill too. So the ship produced by the shipyard would be the "larva form", and after maturing would become its "mature form".
I don't think it's doable in FOCS only, but I guess that the code to tie a "young form" to a "mature form" is not that hard to produce (I don't know FreeOrion code base so I'm not volunteering).
It's even possible to tie multiple "mature forms" to a "young form" and have some random factor choose between them.
Even by having various values for randomness depending on which part is supposed to sprout at maturity.
Another possibility for organic ship parts would be for them to sprout parts as the ship sprout slots : if a ship with three tentacles sprout another slot, it will also sprout a fourth tentacle to fill this slot.
We can even have more interesting and more biologically-inspired rules : the way IRL spines are modified leaves, we could have rules like that for backbones that would transform into spines or spines that would become ejectable at maturity.
And for that I'm supposed to have the knowledge to design a set of coherent and interesting rules.
Any place in your themed tiered tech tree for plant-inspired ships alongside the animal-inspired ships (Zerg-like like you said) ? We would be gardening them then... I'd certainly like that.
Is there a problem with making hangars bigger (i.e., with more fighters in each of them) when the organic ships grow ?
Do you plan for organic figters too (that would regrow even out of supply) ?
Anyway immersion-wise all this would certainly be great !
Re: Organic hull evolution/mutation
Hmmm... The AI creates its own ship designs. How does it do it? Couldn't that code be reused somehow?Geoff the Medio wrote: ↑Fri Oct 23, 2020 9:11 pmNot presently possible. Ship designs currently must be player-created or pre-scripted. Making it possible would be non-trivial.
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13603
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Organic hull evolution/mutation
AIs are players.Oberlus wrote: ↑Sat Oct 24, 2020 12:27 amThe AI creates its own ship designs. How does it do it?Geoff the Medio wrote: ↑Fri Oct 23, 2020 9:11 pmShip designs currently must be player-created or pre-scripted.
Re: Organic hull evolution/mutation
I had a look at the AI python code for ship design and it is above my python skills for now. I can't find where it finally "registers" a ship design somewhere to be accessed from FOCS... are those ship design ever accessible from FOCS?Geoff the Medio wrote: ↑Sat Oct 24, 2020 12:48 amAIs are players.Oberlus wrote: ↑Sat Oct 24, 2020 12:27 amThe AI creates its own ship designs. How does it do it?Geoff the Medio wrote: ↑Fri Oct 23, 2020 9:11 pmShip designs currently must be player-created or pre-scripted.
Alternatively, the player could design the him/herself the evolved ship design for each non-evolved ship design. But I don't think there is any mechanic to associate one ship design to another to make the FOCS calls to substitute one by the other upon evolution.
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13603
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Organic hull evolution/mutation
It does the same thing as a human player: issuing a create ship design order: https://github.com/freeorion/freeorion/ ... I.py#L2029
Depends what you mean by "accessed from FOCS". If you've selected a ship with a condition, eg. Source or Target or similar, then you can get its design ID as a property, like in https://github.com/freeorion/freeorion/ ... cs.txt#L58...to be accessed from FOCS... are those ship design ever accessible from FOCS?
Re: Organic hull evolution/mutation
Ideally, I would have a FOCS command
But since that is non-trivial and the suggestion that requires it (the opening post) is not important, I'll go with this:
Code: Select all
CreateShipDesign
name = <string>
uuid = <string> // automatically generated by default
description = <string>
hull = <string> // Issue error if not found
parts = [ <strings> ] // Issue error if anything invalid
model = <string>
Geoff the Medio wrote: ↑Fri Oct 23, 2020 4:04 pm A possible workaround would be to have some effects that set various part meters to zeros when a ship is immature, and progressively relax those effects so new parts become active over time. The parts would always be in the design, but would just be inactive until the ship matures enough...
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13603
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Organic hull evolution/mutation
You'd need to elaborate on what you mean, as arguably this functionality already exists as predefined ship designs like in https://github.com/freeorion/freeorion/ ... ip_designsOberlus wrote: ↑Sun Oct 25, 2020 11:42 am Ideally, I would have a FOCS command
Code: Select all
CreateShipDesign name = <string> uuid = <string> // automatically generated by default description = <string> hull = <string> // Issue error if not found parts = [ <strings> ] // Issue error if anything invalid model = <string>