This prototype was made to test out various mechanics and features that were proposed so far, as well as to find any pitfalls, flaws, or good aspects in those mechanics, in hopes of speeding up the macroscopic development when it eventually starts. This prototype’s mechanics can serve as a reference point for the future development, as well as a sort of playground for future feature discussions before the macroscopic development starts.
Note that the code isn’t supposed to be (nor can it be because of the engine differences) reused in the actual game. It’s too messy to be reused anyway.
Cell type mechanics. I believe there was no prior discussion regarding how cell types will be incorporated into the editor. The prototype mostly doesn’t take cell types into account (they are used purely for coloring, in fact). My idea though is that cell types can be assigned to different functional elements (e.g. brain tissue that needs axons to be present in its cell type, muscle tissue that depends on, I think, myofibrils, etc.)
Visual effects and various QOL things. Of course, given that not even the foundational features are fully agreed on, there wasn’t any discussion on this (I think). I took the liberty to implement what I saw as good visual/QOL stuff in an effort to show what can be done. Metaball hierarchy lines, positioning and scaling tools, etc.
Takeaways
Situational tradeoffs will be great to have. What I mean is that depending on the player’s playstyle, patch climate, other creatures, etc., different skin types, skeleton types, and parts will need to be used. Different constraints will need be prioritized by the player as well. It is especially interesting if this prioritization can be done through modifying the creature’s body structure.
IK are a must for the animation system. Using IK, only the tip of a leg/arm needs to be positioned; IK will find good positions for the rest of the limb’s bone positions.
Constraints would need a lot of balancing to prevent exploits and to make the more balanced. The problem with balancing arises mostly because of the wild scaling (the scale difference between the smallest and the biggest scale is 100x in this prototype) that the editor allows and the fact that this scaling uses a cubic exponentation, which results in a very fast growth. The exact formulas for calcuating constraints (and attributes) might need to be changed entirely.
Some editing mechanics (such as adding limbs) are complex and probably deserve an in-game explanation of some sort. Here’s a limb-creation flow chart for example:
SCALIS vs other convolution formulas. The formula used in the prototype is a simpler one compared to SCALIS. Based on my benchmarks, SCALIS is 5-10 times slower. SCALIS provides scale-independance, which kind of justifies the performace loss, but is this something we truly need? This is probably a question for later, when we can actually compare the two in the game, but still.
Blend shapes can be great for part customization (I mean both purely visual and gameplay-affecting customization). Here’s an example of what this customization might look like.
A few random ideas
Mutation points could accumulate over gameplay segments, but the amount granted would be lower, e.g. 25. This would encourage smaller changes, adapting what the player already has, while also not fully forbidding more serious changes (the player just need to save up enough MPs).
Parameter window should probably be auto-generated to make adding new parts quicker. Of course, these would still require unique sub-windows for part-dependent options, e.g. turning feet into arms, customizing teeth configurations, etc.
We probably need to decide on the visual and art style of the multicellular stage before creating, well, visuals, art, part models, etc.
Hair/fur? This might work if GPU instancing is used (still a high-end visual feature though)
Briefly responded in Discord, but will say again that this is wonderful work. Extremely useful as well, and I’m sure it’s awesome for the community to see! Some thoughts:
This is something I personally didn’t discuss much as well just because I have larger questions on the role of editing a cell in the macroscopic stage. I don’t want to make that the focus of this thread as it’s a larger topic to discuss, but a summary can be seen below:
Questions About Microbe Editor in Macroscopic Editor
Would we be able to represent all the unique parts and structures of different highly specialized cells? Others have said yes, so this is something that I’ll concede.
If we make the macroscopic editor something that has a lot of finetuned controls, abilities, sculpting, etc., could it not be very overwhelming to task the player with both editing individual cell types and determining how that cell type is present on their body?
Realistically, how frequently would the player need to visit this cell editor? If it’s just one time or so to place down a cell type, is it necessary? If it’s multiple times, would that be too complicated for the player to manage two editors continuously at once?
If we handwave this all away by making the cell editor system in the macroscopic stage really simple - would it really be a worthwhile thing to implement?
What is represented through editing a cell, and what is represented through just the macroscopic editor? Do you need to place a hair follicle on a cell type to unlock fur?
How realistic will this ultimately be? Using your example of a neuron, I would think it is a gigantic simplification, that is a bit out of character for the detail we show in Thrive, if we just represent that as placing down an axon.
With how much detail would be needed through the parameter system and editor as a whole, I think it is a great idea to focus on visualization aids for different parameters. I especially loved the proxy for center of mass. I wonder if we can create different “lens” in the future: for example, parts that are more massive are a darker shade of red, indicating areas on your organism that will gain more mass if you scale.
100%, and that’s something I definitely had in mind when going with a constraint system. As you mention, different features can make different attributes more or less important. For example - having gelatinous skin, such as that of Dickinsonia, can boost digestion/respiration efficiency based on your surface area stat, naturally incentivizing organisms with said skin type to focus on surface area. If this organism then switched to a furry skin with keratin in it, surface area is much less influential since said skin is less porous; so the organism won’t care as much about surface area.
It’s kind of why I mention KSP a lot as a good reference. Making a rocket that needs to be sent to space requires something completely different from an aircraft that needs to be maneuverable in atmosphere. Aerodynamics, mass, center of gravity, etc. mean completely different things to those ships in the game.
That was definitely something that I thought about with this editor concept, and I focus on it in Section IV.II on the Macroscopic Editor Master Concept (it feels really pretentious to refer to my own concept by the section number lol). You mention the square cube law, and it definitely posed a design question; if we base energy needs on mass, then energy needs would skyrocket as your organism grows in size, meaning a lot of balancing quirks.
Atleast with energy, that’s where circulatory system concepts will become important. If your circulatory system is efficient enough, your energy generation will also scale with your mass within a certain scale (so respiratory system A will take care of everything relatively smoothly from 10 grams to a kilogram, respiratory system B will take care of everything from 1 kilo to 5 kilo well, etc.)
There are definitely other balancing questions to ask when it comes to scale. For the above, the input of nutrients would also have to dramatically scale up, which can lead to some nasty numbers. I think we’ll probably ultimately need to introduce absolute limits on certain effects (for example, surface-area related effects) since the number can really swing dramatically as smaller organisms scale up.
But I do think it is solvable, and I do think you are absolutely correct in pointing that out as a big area of focus.
I think some of this will be aided by the fact that these different anatomical traits would be separated naturally via progression (by the time you get to legs, you aren’t thinking as much about limbs for example). And also we can probably limit the selection of extremities based on the nature of the appendage - for example, if you place a joint, we know that the player intends to use it as a motile part, so we only show those relevant extremities.
But we absolutely will need to make sure that mechanics are properly introduced to the player instead of them being thrown to the wolves. Nice chart.
If this is addressing the tendency of organisms to specialize existing structures rather than add completely new segments, I initially went with:
Pricing being different for different structures - an animal with an exoskeleton needs 50 MP to designate a new joint, while an animal with an endoskeleton needs 80 MP.
Constraints naturally limiting some incentive to add a ridiculous number of limbs - if your streamline is dramatically reduced after you have two pairs of limbs, could that be enough to naturally reduce incentive to just keep adding?
If players have to start creating limbs and structures from scratch, then there’s a multi-generation sink into creating a new structure - placing an appendage, adding a joint, making it weight bearing, adding a wrist taking a rather long time with a lot of MP points.
But if this is insufficient, other means should definitely be considered. A big point of the constraint system is to emphasize tweaks and re-purposing of form into different functions, so having too much freedom with MP would be an issue.
Briefly focusing on this, I absolutely agree.
I think it might be a good idea to go with a certain level of styling for multiple reasons:
I’m sure 3D shapes created by the editor will have some level of detail that is inherently difficult to represent, so a focus on extreme realism might look a bit odd.
Extremely realistic graphics are expensive and probably difficult to make.
These are alien creatures, so who’s to say what extremely realistic appearances would look like?
This isn’t to say that organisms should be cartoony, but creating a cohesive art style would probably be really helpful in understanding how we want things created from the editor to look.
I think some of @Mr42 's artwork can be really good references (though they are rendered with extreme detail). Other concept art could also be nice to use as reference.
Exactly, it is not worth it to make a separate system, thus we have to use the existing microbe editor to save on massive amounts of development time. The only alternative would be to have a dropdown list of possible tissue types for the player to select, but then we would have the problem of needing to pre-design all tissue types and either somehow filter the list or give the player like a list of 20+ items immediately at the start. I think that (dumping a list of 20+ very scientific tissue type names immediately on the player) would be even more confusing and hard to learn than using the familiar microbe editor.