Content: Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Background: Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Pattern: Blank Waves Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Welcome to TerraFirmaCraft Forums

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

  • Announcements

    • Dries007

      ATTENTION Forum Database Breach   03/04/2019

      There has been a breach of our database. Please make sure you change your password (use a password manager, like Lastpass).
      If you used this password anywhere else, change that too! The passwords themselves are stored hashed, but may old accounts still had old, insecure (by today's standards) hashes from back when they where created. This means they can be "cracked" more easily. Other leaked information includes: email, IP, account name.
      I'm trying my best to find out more and keep everyone up to date. Discord (http://invite.gg/TerraFirmaCraft) is the best option for up to date news and questions. I'm sorry for this, but the damage has been done. All I can do is try to make sure it doesn't happen again.
    • Claycorp

      This forum is now READ ONLY!   01/20/2020

      As of this post and forever into the future this forum has been put into READ ONLY MODE. There will be no new posts! A replacement is coming SoonTM . If you wish to stay up-to-date on whats going on or post your content. Please use the Discord or Sub-Reddit until the new forums are running.

      Any questions or comments can be directed to Claycorp on either platform.
dinoman1996

plant genetics = allsume

132 posts in this topic

Yup, that's what it is! It's just gorguess isn't it? :)

Hand drawn just for you?

1

Share this post


Link to post
Share on other sites

GahhhH!!!

The double posts!

I'M MELTIIIIIIIIIIiiing...

Fresh water for this guy, please...also an ice-cream
0

Share this post


Link to post
Share on other sites

Hand drawn just for you?

No! No, the artist was very skilled and created something quite suited to me, but it wasn't most certainly not just for me.

0

Share this post


Link to post
Share on other sites

No! No, the artist was very skilled and created something quite suited to me, but it wasn't most certainly not just for me.

Ah.

Cuz mine was... >_>

well, sans glasses. I added those

0

Share this post


Link to post
Share on other sites

That's an awesome idea. Adds a whole new challenge area and makes agriculture more interesting than just going through the motions of something necessary to survive. "Check out these glow-in-the dark beans I bred!" "I managed to make a rye that repels zombies and attracts ducks"

Bear with me on the rest of this - it's a bit long, but it's not that complicated - just awesome (I think, and hopefully others too?)

Also doable would be to have non-coded trait results.That is, on the coding side, not actually making it so every stage and combination of the traits has to be "known" ahead of time. The system could figure out how to adapt on the fly, rather than a sort of 2X + 3Y = Z static result; building probability into it, as well as regular environmental effects. Then, just like the Prospector's pick, the player has to contend with a certain base level ambiguity in their attempt to solve each puzzle - with the puzzle itself being whatever goal they have come up with.

For example, colour. Colour itself would be the trait rather than some particular colour, so you wouldn't need to have specific versions of each plant for each colour, you just have this one trait that covers all possible colours. Here's a way to do that, and I'll use rice as a sort of case study.

Each instance of a Rice object (seed or plant) has a probability vector - a direction (a specific colour from a texture gradient map or something) and a magnitude (the probability; like 0.65 for 65%). This vector then provides a profile of likely colours to appear when the seed is planted (along with some sigma - which itself can be variable, it defines a normal distribution about a particular colour).

Now let's say you want to breed red rice, but all the rice around is pretty uniformly whitish-yellow (large probability vector, small sigma). So you pick a couple of plants nearby each other that are slightly browny-red compared to the other plants. When you harvest them, seeds drop - but in that process of creating the seed, a quick check is made to generate a trait for that seed, which will be the next generation. The system knows the vector of the originating plant, and then it randomly selects a nearby-plant's vector to act as the pollination source.

Everything interesting happens in this pollination phase. A new probability profile is temporarily generated by overlapping the two distributions from the supplied vectors. Here think of a graph with two rounded peaks, each of slightly different height and shape. If two plants are near the same colour AND magnitude, their curves nearly overlap. They could be almost the same colour though but with very different shape if one is high-magnitude and the other low-magnitude.

A "roll" is now generated randomly from this new temporary distribution that will point to a new colour (the direction for the new seed's trait vector). The magnitude is then generated by how close the new colour is to the parents'; If the roll is close to one or the other of them, then the new magnitude will be most close to that parent's magnitude. Voila - you now have dominant and recessive traits with hugely variable results without having to create a different block for each intermediate state.

Following the case study, we've got our new seed now but we have no idea who the other parent is or the colour the new plant's rice will be. We plant the rice and grow it. When it comes to harvest, we find out the new colour as it shows up on the plant. Let's say we harvested several of the most brownish-red rice we could find earlier and planted them all, so each went through the same process described. At harvest time, all the colours now appear and we have a slightly less homogenous group of rice plants, with a slightly increased tendency to appear brownish-red (but ever so faintly).

For illustration of the idea, let's say one of those plants shows up a brilliant red. It's very unlikely if the crop was so homogenous, but not outside possibility. Just because you have a bright red rice plant doesn't mean you've won your puzzle though, because it's clearly a bit of a fluke - but a fluke you can work with. Now you're task is to try to get another, and in order to do that, you have to actually harvest it - which means we go back to that pollination phase, and you might just lose your new plant! - In fact, you almost certainly will. But what you did do was cause a subtle flattening of the curve... you've made it more likely for other colours to show up at all, and of the rare plant to show up will be slightly more likely to be reddish. You've pushed the gene line over a tiny bit, and made the spread of the trait more likely - your road to creating new breeds has begun.

Now that was just for colour, but of course you could have several different traits encoded the same way. In fact, if you wanted, you could convert the entirety of plant life in Minecraft over to use this same system. You could convert animals over to it too - you could breed yourself some epically monstrous cows, towering over the terrain (I believe model scaling is possible in a mod...). You could breed dogs that are more likely to protect animals than hunt them.

So... thoughts? I hope that wasn't too complicated. I'm a physicist so I think in vectors and probabilities... but I think the idea of them isn't really that complicated, if not that well known. It's definitely a doable way to implement this whole idea.

3

Share this post


Link to post
Share on other sites

Oh I wanted to add something about other traits. Because I'd mentioned attraction-vs repulsion of ducks and animals, imagine the same colour wheel I talked about for the colour trait, but this time the "colours" represent different animals. Normally this "Mob-attraction Trait" would be a flat curve of no height - a probability vector of very low magnitude, so where it's pointing almost doesn't matter - and thus there is not really any noticeable attraction or repulsion from any mob. In fact, you wouldn't even know if the trait existed at all! - unless the dev team told people so. (Dev team could totally hide traits as little easter eggs for people to discover in their game play.)

It would take some generations to in this case raise that magnitude at some desired point (some mob). Along the way, there's always going to be flukey cases showing up where some "recessive" trait pops up in one plant for one generation. ("Why are there always zombies hanging around that one plant?")

The possibilities are endless here - especially opening this up to animals. You can have a trait of "trait affinity" even, so certain mobs might be attracted to red things.

0

Share this post


Link to post
Share on other sites

The walls of text attack again!

no TL;DR? i want to answer, but i really don't have the time :

1

Share this post


Link to post
Share on other sites

That's awesome, puxa. Could the same thing be done when automatic breeding in the wild is implemented? It could be awesome to see an evolving world.

0

Share this post


Link to post
Share on other sites

The walls of text attack again!

no TL;DR? i want to answer, but i really don't have the time :

Haha, yeah sorry 'bout that but it seemed awesome enough that it was worth sharing with a bit of detail of the mechanics. I didn't really think I had time to write it either (busy correcting stuff) but once I started writing and thinking about it, it just seemed to get more interesting. I mean... you'd never ever have the same world twice, even with the same seed. Butterfly-flapping and all that stuff, one change of action would send a ripple effect through the ecosystem of the world.

That's awesome, puxa. Could the same thing be done when automatic breeding in the wild is implemented? It could be awesome to see an evolving world.

Thanks. I'm not sure though about the auto breeding... I mean, really to do it properly it would require a conversion of pretty much everything that isn't a rock or dirt to an entity, if I understand the limitations of the core code correctly. But you wouldn't need classes for all the different animals and plants any more, just classes for each trait and the entity class which would expand to cover everything alive in the world. Entities would just have a starting point that would make them look like all the original vanilla things, but after that everything would be evolving on its own according to the environment TFC already creates, and the actions of the player in that world. The specifics of whether a tree is a Birch or a Sequoia would disappear - instead you might say you've got a tree with white bark and dark brown wood that grows really tall with almost no leaves and occasionally drops edible nuts (the "seed" could have a trait of edibility). What's its name? Whatever you want to call it.

0

Share this post


Link to post
Share on other sites

Ok, now that i have it, i took the time to read thourgh all that. It was a bit hard to understand in fact, but after thinking about it myself i think i got it. I think it would be really awesome if that made it into any game... But there is some doubts i have...

1) Normally, what MC does is to note a new block exists, look for and take it's texture in some of the files and apply it to the block, as well as every single other block with the same ID, right?(I know it's probably not right, but it helps me to think :) Something similar happens when a new entity spawns, but with a model along with the texture. But, it is possible for the game to create all by itself? To create and receibe the info about how the model and texture for a new object must be, create it by itself, fill in randomly the data it needs but didn't receibed and then take this newly generated model/texture and apply it to the new object? And if it can be done, it wouldn't kill low end computers?

2) This is a lot simpler to understand and easier to write, luckily :3 That would force us to make every single life form an entity, because blocks IDs would go over the clouds if we don't. That many entities wouldn't kill low end computers as well?

3) There will be traits defining the drops of the plant/animal/whatever it is?

3)a) If so, could we get a small secret where breeding chickens in a special way would give you chickens that instead of chicken meat drop explosive lemons? :P There are some guys here who would like it a lot... me and the lemon scourge, for example.

Out of that, i hope you understand that this, even if it was possible, would probably be hard as hell to make in TFC, or even in MC. But if someone can get it to work, those surely are Bioxx and Dunk :3.

Just as a little side note... We often got suggestions to add primary features from other mods, those which probably took a year or more of coding to make, backed up by "They could do it, why you can't?"; But it would probably be the first time someone could go into another mod's forum and suggest this system because TFC could do it. La venganza se sirve bien fria >: D

0

Share this post


Link to post
Share on other sites

That's an awesome idea. Adds a whole new challenge area and makes agriculture more interesting than just going through the motions of something necessary to survive. "Check out these glow-in-the dark beans I bred!" "I managed to make a rye that repels zombies and attracts ducks"

Bear with me on the rest of this - it's a bit long, but it's not that complicated - just awesome (I think, and hopefully others too?)

Also doable would be to have non-coded trait results.That is, on the coding side, not actually making it so every stage and combination of the traits has to be "known" ahead of time. The system could figure out how to adapt on the fly, rather than a sort of 2X + 3Y = Z static result; building probability into it, as well as regular environmental effects. Then, just like the Prospector's pick, the player has to contend with a certain base level ambiguity in their attempt to solve each puzzle - with the puzzle itself being whatever goal they have come up with.

For example, colour. Colour itself would be the trait rather than some particular colour, so you wouldn't need to have specific versions of each plant for each colour, you just have this one trait that covers all possible colours. Here's a way to do that, and I'll use rice as a sort of case study.

Each instance of a Rice object (seed or plant) has a probability vector - a direction (a specific colour from a texture gradient map or something) and a magnitude (the probability; like 0.65 for 65%). This vector then provides a profile of likely colours to appear when the seed is planted (along with some sigma - which itself can be variable, it defines a normal distribution about a particular colour).

Now let's say you want to breed red rice, but all the rice around is pretty uniformly whitish-yellow (large probability vector, small sigma). So you pick a couple of plants nearby each other that are slightly browny-red compared to the other plants. When you harvest them, seeds drop - but in that process of creating the seed, a quick check is made to generate a trait for that seed, which will be the next generation. The system knows the vector of the originating plant, and then it randomly selects a nearby-plant's vector to act as the pollination source.

Everything interesting happens in this pollination phase. A new probability profile is temporarily generated by overlapping the two distributions from the supplied vectors. Here think of a graph with two rounded peaks, each of slightly different height and shape. If two plants are near the same colour AND magnitude, their curves nearly overlap. They could be almost the same colour though but with very different shape if one is high-magnitude and the other low-magnitude.

A "roll" is now generated randomly from this new temporary distribution that will point to a new colour (the direction for the new seed's trait vector). The magnitude is then generated by how close the new colour is to the parents'; If the roll is close to one or the other of them, then the new magnitude will be most close to that parent's magnitude. Voila - you now have dominant and recessive traits with hugely variable results without having to create a different block for each intermediate state.

Following the case study, we've got our new seed now but we have no idea who the other parent is or the colour the new plant's rice will be. We plant the rice and grow it. When it comes to harvest, we find out the new colour as it shows up on the plant. Let's say we harvested several of the most brownish-red rice we could find earlier and planted them all, so each went through the same process described. At harvest time, all the colours now appear and we have a slightly less homogenous group of rice plants, with a slightly increased tendency to appear brownish-red (but ever so faintly).

For illustration of the idea, let's say one of those plants shows up a brilliant red. It's very unlikely if the crop was so homogenous, but not outside possibility. Just because you have a bright red rice plant doesn't mean you've won your puzzle though, because it's clearly a bit of a fluke - but a fluke you can work with. Now you're task is to try to get another, and in order to do that, you have to actually harvest it - which means we go back to that pollination phase, and you might just lose your new plant! - In fact, you almost certainly will. But what you did do was cause a subtle flattening of the curve... you've made it more likely for other colours to show up at all, and of the rare plant to show up will be slightly more likely to be reddish. You've pushed the gene line over a tiny bit, and made the spread of the trait more likely - your road to creating new breeds has begun.

Now that was just for colour, but of course you could have several different traits encoded the same way. In fact, if you wanted, you could convert the entirety of plant life in Minecraft over to use this same system. You could convert animals over to it too - you could breed yourself some epically monstrous cows, towering over the terrain (I believe model scaling is possible in a mod...). You could breed dogs that are more likely to protect animals than hunt them.

So... thoughts? I hope that wasn't too complicated. I'm a physicist so I think in vectors and probabilities... but I think the idea of them isn't really that complicated, if not that well known. It's definitely a doable way to implement this whole idea.

O.O

I am rendered... speechless... I don't... I... http://imgur.com/gallery/jNgFY

1

Share this post


Link to post
Share on other sites

K first, I have to make a correction. I'm seriously sleep deprived right now and made a really fundamental mistake earlier talking about distributions. The magnitude of the probability vector would be the sigma of the distribution itself. This won't really matter to most people, but if any stats-proficient people were to read that, it would be either really confusing or obviously wrong. To quote Rick Perry... "Oops."

Ok, now that i have it, i took the time to read thourgh all that. It was a bit hard to understand in fact, but after thinking about it myself i think i got it. I think it would be really awesome if that made it into any game... But there is some doubts i have...

*snip*

I have doubts too. The more I think about it, the more I think it just sounds like a whole new game. The entire entity and item system would need to be recoded. Items could have the same kinds of 'traits' - now properties, and you could have a kind of alchemy using the same system (with some adjustments). To try to rig all of that up fully on top of the problematic and limited minecraft base would be... kludgy (and probably slow) at best, a monolithic task that would never get done at worst. Honestly, I'm kind of tempted to write the whole thing up and throw up a kickstarter project and see if it flies. I absolutely love the idea of having a game where the modding community can directly muck with heritable traits that can migrate around entire ecosystems on their own, and seamlessly downgrade if the mod is uninstalled or encounters a mod that does something "incompatible".

Anyways... response.

1) Yeah, it actually is possible and with blocks wouldn't even be too hard because forge gives a lot of control to modders. But for entities... I'm not as sure. From what I know, it actually would be possible, but it would have to create the texture on the fly, save it, then refer MC-core to the new file. Since that wouldn't exactly be happening constantly it wouldn't necessarily introduce a lot of lag, but it could potentially in some circumstances. Honestly the code would be a bit nightmarish though. I wouldn't want to write it and wouldn't wish that on someone else either. It would be much much easier to work with code designed for it to begin with.

2) Yeah everything alive - all plants would ideally be MC-entities. I'm not too clear on exactly how MC core codes entities through the rendering stages... that's really the only part that would get too laggy. Even on a slow computer you can have a fair number of entities on your screen at once, and in this case, most of the entities would be static. I'm not the best person to answer that one though.

3) Ideally, there could be traits for everything and anything you want. As I said above, to really implement it ideally, the more I look at it you're basically talking an entirely different game altogether - one where traits (of living things) and properties (of non-living items) were the dynamic and interesting part of the game.

3a) Wtf lmao... but yeah, again, sky's the limit.

The rest) Yeah... TFC is truly amazing. I have nothing but respect for Bioxx and Dunk. And yeah, I think this might all be a bit much for ol' minecraft to handle. If by some miraculous turn of fate I managed to get the money and time to pursue that the way I envision it in my head, I would definitely ask if they wanted to join the dev team.

I want to add, especially because of your last sentence [partly because I'm not actually sure what you meant by it exactly - I don't really understand other people very well; the subtexts used or implied-unsaid meanings], that it wasn't my intent when I started my reply. I just thought the original post idea was kind of a neat thought. Then... well, my brain does what it does and just kind of went on an interesting adventure and by the time I was done writing there was just this great big pile of idea there in front of me. And a wall of text.

1

Share this post


Link to post
Share on other sites

Seriously?!

I can't melt twice puxa.

1

Share this post


Link to post
Share on other sites

-snip-

Thank you for answering, and that last part was just some sort of reflection i had while reading your post that sort of scaped and writed itself in my response... It happens sometimes :_.

0

Share this post


Link to post
Share on other sites

Seriously?!

I can't melt twice puxa.

I think he thought you re-froze. Yeah, it's called freezing, no matter what the material.

0

Share this post


Link to post
Share on other sites

Re: the melting and freezing

Umm... see that's one of those kinda things I was just referring to - subtexts and implied meanings. I'm not very good with that kind of thing. My brain does not process that type of thought correctly so I'm a bit limited to more direct language. Sorry.

0

Share this post


Link to post
Share on other sites

ok then...

don't double post.

Can I be more direct?

0

Share this post


Link to post
Share on other sites

huh... when did I become a Blacksmith?

0

Share this post


Link to post
Share on other sites

Freezing can be called 'solidifying'

0

Share this post


Link to post
Share on other sites

ok then...

don't double post.

Can I be more direct?

Erm. Okay. I don't see any double posts.

0

Share this post


Link to post
Share on other sites

huh... when did I become a Blacksmith?

I'm not sure... i haven't looked at your title in a while ._.

And Puxa, i think Achartran refers to the double post you made while explaining that idea you had, in the 6th page. The "oh i wanted to add...". You can edit posts if you wrote them or are a moderator, the button appears in the lower part of your post, just between "report" and "Multiquote". In order to avoid further double posting, you should use it instead when you forgot to add something.

1

Share this post


Link to post
Share on other sites

Seriously though pux, that is the most EPIC idea I have ever heard here. I mean, that revolutionary theoretical game design...

0

Share this post


Link to post
Share on other sites

*snip*And Puxa, i think Achartran refers to the double post you made while explaining that idea you had, in the 6th page. The "oh i wanted to add...". *snip*

Ahh, I see. Thank you for clarifying that. Yeah I thought about editing, but I raised it in a few places so it seemed rather a lot less complicated to a very tired mind to just write a quick note. That would also allow anyone who had already read the lengthy first note to be aware of the changes, since they would otherwise not know, considering the size of it.

Seriously though pux, that is the most EPIC idea I have ever heard here. I mean, that revolutionary theoretical game design...

Thanks, Treyflix. In retrospect it probably should've been it's own topic. It is pretty cool... I continued writing and thinking about it last night on another forum I'm on and the idea sort of took more of a shape of a distinct game from Minecraft so I cast it that way. [http://winesoakedrevelations.org/node/123] I think it may be easier to read, though it discusses the mechanism a bit less, favouring some of the additional ideas I had.

A simplified version of it might still be not too bad to implement in minecraft, but it would still be a lot of coding. If Bioxx and Dunk wanted to adapt it, that would be awesome but I totally understand if it's out of scope from what they had in mind.

1

Share this post


Link to post
Share on other sites

Seriously?!

I can't melt twice puxa.

but you definitely can explode twice
2

Share this post


Link to post
Share on other sites