Refining Digit Customization
Upon feedback and reflection, the current digit customization concept is very dependent on sculpting. Though this is favorable for customization, it makes the system very difficult for auto-evo to deal with. So I went back to the drawing board.
For convenience and future reference, I will be copy and pasting @GameDungeon’s guidelines on how auto-evo thinks, which will be useful for concepts related to the editor:
The Rules of Auto-Evo
- Auto-Evo is random. It is a controlled randomness, but it can and will generate anything. The system needs to be able to handle any arbitrary set of parameters that Auto-Evo can generate.
- Auto-Evo is an optimizer, but it only works if and only if it has a heuristic to optimize against. Auto-Evo can handle any situation where a sliders value has a direct effect on the overall fitness score.
- As a corollary to rule 2, Auto-Evo cannot handle any situation that does not directly affect fitness. These things will either be random, per rule 1, or programmatic though some other system. This includes anything that does not have a gameplay effect, eg cosmetics. Sculpting without a gameplay effect is cosmetic.
- Even in cases where sculpting and the like has a measurable gameplay effect, they will be done either randomly or programmatically, without artistic talent, in blind pursuit of the heuristic. Unless the fitness score for the sculpting somehow encodes aesthetics, it will be random and optimized to said score.
Going off that, I will set out a new framework for customizing extremities that I think will be much more manageable for auto-evo.
Rework
Somethings Stay the Same
First, I will note that I think my concepts from the prior posts on the differences between ray finned, lobe finned, cartilaginous fins is still valid. I will get into that more in my next post, which focuses more on traditional limb extremities like fins and feet/hands as opposed to the tail. But in general, your skeletal structure type in your limbs - cartilaginous, lobed, or ray-finned - will alter how constraints interact with your limbs, so that dynamic can still result in interesting divergent gameplay, and can provide great control over progression.
Variants and Modifications
Kind of similar to how the integumentary system can be dealt with, I think we can offer variations which can further be manipulated. There are very clear evolutionary patterns and structures across numerous of the more important extremities, especially with wings, graspers, feet, fins, tail fins, etc.
So we can apply those general structures, and give them different functionality and interaction with the constraints we set up. They will have to be broken down more in depth across the various types of extremities, so this will serve more like a catalogue.
I will also start by going into more depth about tails, as I am now more certain that they should be dealt with like appendages/limbs.
Tails & Caudal Fins
Players will be able to determine how much of their body operates as a tail by placing and moving a joint alongside their torso. The closer to their head their tail joint is, the more of their body will undulate; the closer to the rear of their body their tail joint is, the stiffer their body will appear in motion. This will implicitly represent their locomotion strategy, and will affect the underlying animation as they move. Any part of the body which is a tail can have additional appendages on it, but cannot have additional limbs.
Here is a basic description of the various types of fish locomotion. I will sort them by how close to the head the tail joint would be in a Thrivian organism…
- Anguilliform - Similar to eels, certain catfish/lungfish species, and others, almost the entire body undulates in a slithery motion. This is energy efficient, provides solid mobility, and makes more advanced movement, such as digging or sheltering, easier. However, because the body more loose, it is hard to generate enough force to swim quickly.
- Subcarangiform - The body as a whole is relatively flexible, but undulation increases more to the end of the body, with the majority of the work and undulation is done by the rear end of the organism. Compared to anguilliform organisms, it enables more speed at the cost of some maneuverability. This is seen in trout, and might be more frequent in fish which inhabit freshwater or brackish environments.
- Carangiform - More of the body is stiff, enabling a blend between maneuverability and speed. Many Carangidae, fast-moving fish in the open ocean, utilize this locomotion style.
- Thunniform - Seen in some of the fastest marine organisms, such as in tuna and certain species of sharks, thunniform fish have a very stiff body, relegating movement to the tail segment only. These organisms are very quick, but often require a lot of energy to sustain such an active lifestyle.
- Ostraciiform - The body does essentially no undulation, with only the caudal fin itself moving, such as in pufferfish and sunfish. This allows advanced movement strategies, like hovering and proficient swimming backwards, but limits speed. In Thrive, this can be implemented in organisms where the joint is at the absolute last segment of the torso, enabling a different mode of swimming. It can allow much more equal movement speed backwards and forwards and enhanced rotation, but much less speed.
So in general for aquatic locomotion - the closer to the head the tail joint is, the more agile the organism is, the more energy efficient, and the more effective at certain advanced locomotion styles, like digging and burrowing, they are. Closer to the rear, and organisms are less nimble, energy-efficient, and effective in advanced movement styles. However, except for ostraciiform movement - where the joint is at the most posterior segment, enabling a different movement style - organisms are by default faster. We don’t need to explicitly have these be labelled in the editor; they just guide how we apply stats for the position of the tail joint.
This can be made so by having the streamline constraint be more impactful on certain movement types. For example, the streamline constraint can be extremely responsive to speed for organisms with a tail joint close to their rear, but less responsive for maneuverability. The other way around, the streamline constraint is more responsive to maneuverability and in measurement for things like burrowing and other advanced movements we implement, but less so for raw speed. That makes streamline an extremely definitive stat for the player to be aware of, while also enabling it to be dynamic.
Also, undulation is much more noticeable with a joint near the front of the body, and much less noticeable with a joint near the back of a body. That should hopefully make procedural animation much more manageable.
I will note that the effects of the different locomotion styles isn’t universal; tuna, which move thunniformally, are very maneuverable at high speeds. It just gives the base movement, which will be able to be manipulated via additional limbs or modifications to the caudal fin itself. Organisms with a tail joint closer to their rear will generally have greater customization due to the fact that they have more room to place limbs on their organism.
Caudal Fins
Onto caudal (tail) fins themselves. First, if a player has a tail without an extremity attached to it in a marine environment, the fin will be assumed to work like that of an eel or primitive vertebrate, with the entirety of the tail being used as a propellant rather than a fin.
Appendage customization will already be a tool that the player can utilize, primarily…
- Flattening/Fattening - Similar to basic appendage customization tools, players will be able to flatten or fatten the tail segment to affect constraints. Flattening the segment increases streamline and surface area to volume ratio, but decreases mass. Streamline of course is a very important stat, but if the player flattens the appendage too much, they risk their center of mass being pushed away from their tail fin, thus counteracting the benefit of streamline. This visual effect will apply to the entire tail segment.
- Shape Manipulation - Players will be able to lengthen and widen their segments as needed. Stretching the appendage increases surface area and affects streamline, but also affects mass.
They will also be able to alter the orientation of the appendage to make the tail undulate up-down or side-to-side.
The Caudal Fin Variants include…
- Protocercal - Symmetrical tails with unexpanded surface fin area, as is seen in some of the earliest fish, lancelets, and other more basal swimmers; mass of the tail itself is used for propulsion, meaning this type of tail is likely optimized by having a longer tail. Simple and efficient, but not well optimized for thrust and acceleration. This would be equivalent to a tail without an extremity attached to it for marine organisms in Thrive.
- Diphycercal - Seen in many bony and Palaeozoic fish, lungfish, and coelocanths, vertebrate is extended to the tip of the tail and is expanded, creating the appearance of a very extensive protocercal tail. Diphycercal are able to be manipulated to create various lengths and expansion. They also seem to provide greater agility and manueverability, enabling some backwards movement and navigation around tight spaces. However, they aren’t as streamline as terminal fins, and aren’t able to reach as high of a speed.
- Terminal - The more “traditional” tail fin, terminal fins appear as an extension to the end of the tail fin. They tend to be the most optimized for movement in open areas, allowing a combination of solid maneuverability and speed. They also are generally pretty customizable, with very dynamic uses. Overall, probably the most optimized tail fins for open water swimming.
All fin types can be manipulated via sliders in these ways…
- Surface Area - This increases or decreases how “fanned out” the fin appears to be, altering the surface area of the part. This impacts how much drag a fin has. More surface area on a fin appears to reduce maneuverability at high speeds, but increase it at lower speeds. Less surface area appears to increase maneuverability at high speeds, but decrease it at lower speeds. A dynamic movement system is obviously desired with in depth nuance to movement at various speeds. But if that’s too difficult, I think representing this by having different maneuverability for sprinting and base movement can be ideal, with high surface area improving base maneuverability at the cost of sprint speed and maneuverability, and low surface area improving sprint speed and sprint maneuverability at the cost of base movement maneuverability.
- Vertical Slider - This determines whether or not the fin is longer on the top or the bottom. Adaptations in this manner generally seem to help with generating lift or maintaining neutral buoyancy. We probably have to simplify it in a way that isn’t 100% realistic in Thrive since there isn’t a clear “top fin results in this unilaterally, bottom fin results in this unilaterally” dynamic. But in general, we can make a longer top fin make it easier for the player to swim upwards, and a longer bottom fin making it easier for the player to swim downwards. It can be flipped if that seems to look wrong.
Terminal Fin Types
- Rounded - Optimized well for stamina, though not very effective for speed.
- Truncate - Well optimized for acceleration and maneuverability, but not for distance and efficiency.
- Emarginate - Well suited for maneuverability, but not as optimized for speed.
- Forked - Among the most common caudal tails, balancing maneuverability, speed, and efficiency.
- Lunate - Typically seen in the fastest fish, well optimized for speed over distance.
We can probably make these a slider with some customization options as opposed to a pure toggle or switch via these means…
- Horizontal Slider - How indented a fin is. Dragged maximally inwards results in a lunate fin, while pointed outwards results in an extended fin shape. More indented fins are better optimized for speed, while more extended fins are better optimized for agility.
- Fin Shape - Pointed or rounded. Rounded fins are better for stamina, while pointed fins are better for maneuverability.
Conclusion/Reflection
This should probably be a better system for auto-evo to think through, with more clear parametrization and control. If these methods are more valid, then I will apply this new principle to fins.
I will briefly note here to clarify: I think the nature and use of “Streamline” as a constraint is beginning to become more clear and nuanced the more I add onto this concept.
I think ultimately, different types of movement will respond to streamline in different ways. By that, I mean: how streamline an organism is can be very important for numerous movement patterns, such as flying, digging, swimming, and to a lesser extent, walking/running. But obviously, different extremities have different uses: the most streamline fin in the world would be pathetic on land compared to the most ill-suited foot.
So, streamline can be used as a measure of how effective the movement tool is at achieving its purpose. If a limb is used for digging, then the streamline measurement dramatically affects effectiveness at digging, but gives much less of a boost to swimming speed. If a limb is used for flying, then the streamline measure dramatically affects mobility in the air, but not for running. This makes the streamline measure a very effective stat, but gives it nuance.
It could also potentially lead to cool cases of tools being transitioned between various anatomical structures in a more logical and easy way, similar to what @HyperbolicHadron mentioned. If a fin is streamlined and has proper qualities, perhaps it can transition to the fin of a flying fish more easily. Perhaps a wing can be altered in a way to give a boost to swimming as well, as seen in certain seabirds, making the transition to a fin more easy, a la penguins. I don’t want to throw that out there without thinking about it more, but I do wonder about the implications of it all.
Attaching images at the bottom to help better visualize types of fish tails:
Protocercal
Diphycercal


