[Prototype] Polygenics - Creature breeding / genetics mechanic

edited in Projects
Hello everyone, we’re here with another one of our weekly prototypes. We’ve been playing around with the idea of genetics/breeding as a mechanic in a larger game and made this prototype to see if that mechanic would be fun in its own right.

So without further ado, we present Polygenics. In the prototype you’re tasked with breeding little creatures together towards some predetermined goal. These creatures have a couple of characteristics that mutate in different ways based on the parents you choose to breed together.



As I said, we don’t see this being a game in its own right, but we foresee maybe using it as a core mechanic in some larger game. We’re exclusively breeding visual elements in this prototype, but we don’t foresee that being part of the way this mechanic will eventually tie into a game. We’re more thinking of using this to determine the statistics of creatures you use in combat (str, agi, mag, etc.).

Play online: http://clockworkacorn.com/games/polygenics/flash/

Instructions to Play:

Click on two creatures to breed them together.
Click on a selected creature to deselect it.
Younger generations spawn at the top to the screen.

R – Restarts a new game
C – Continue after beating the game

Focused Feedback Questions:

1. Did you manage to easily breed creatures in the direction you wanted or was it too much of a struggle?

2. Was breeding the creatures fun and interesting in its own right or do you think the game needs more of a goal in order to be interesting?

3. Anything else you specifically want to comment on regarding the mechanic?

Play online: http://clockworkacorn.com/games/polygenics/flash/

Warning: This iteration of the prototype is really unfriendly towards colour-blind people.
Thanked by 1Denzil

Comments

  • edited
    Hey this is a pretty neat concept! I finished my first try in 5 generations. I've also tried to work on a genetics based game before, with some evolution elements with some Lamarckism (parents can carry over traits that they obtained during their lifetime). I didn't get very far, since the way I structured it, it was more of a simulator. The idea was that the player steers his tribe to kill out the other tribes, but the pace was way too slow and boring. Maybe in the future I'll try something similar, but for now I'm keen to see what you guys are going to make with this!

    Oh, to answer your questions:
    1 - Yeah, it was easy enough, though some of the variation seemed a bit excessive. I stuggled through my second run though because I had no idea had to make a particular bright shade of green (maybe with some yellow? not sure). I just couldnt get it. But the mechanic itself is pretty good. (EDIT: ok I figured out the shading, but its still crazy hard)

    2- Well this makes a pretty cool puzzle game that I think you could actually do something with, besides using it in larger game. Just add some visuals and sound perhaps? Though, it probably won't be the next 2048 :) (EDIT: Or maybe it will!)

  • @Denzil: Thanks for trying it. 5 generations is pretty good from my experience :)

    We have some ideas for the larger game (with the breeding mechanic as a smaller part), but we think we can figure that part out later. At the moment the prototype has a few kinks we need to iron out, and potentially some more design space to explore.

    Keen to hear what others think of the prototype too
  • @francoisvn That 5 was pure luck. I couldn't get near 5 ever again :)
  • I really like the idea... But it's so hard @_@

    After I eventually was able to shift the population's colour from blue to dark red (maroon?), I kept not being able to get the middle dots and the exact colour right.

    42 generations later I gave up XD

    Does the game automatically stop when the right one turns up? Or do you have to go select it yourself?

    Control wise - I noticed that often I'd click twice and the the next time I click I've been paired already - so the second click was registering as selecting the third time (so the 1st of the next pair). Not sure why it's happening.
  • @Tuism it auto stops when you have it in your last generation
  • edited
    @Denzil: Missed your question answers (I guess they were an edit). Thanks again!

    @Tuism: Thanks for the feedback. The game should automatically popup a message when any creature is close enough to the goal, so I guess you didn't make it with your game. The goal and initial population is somewhat random, so maybe you just had a difficult start?

    Do you guys think it was hard because it was unintuitive how to get where you wanted to go, or because what you expected to happen didn't, or maybe just because the you think you've solved it, but the game doesn't think you're close enough? The latter issue is obviously the easiest to fix (we can just adjust the thresholds), but I would think that it might indicate a deeper problem. Thoughts?
    Tuism said:
    Control wise - I noticed that often I'd click twice and the the next time I click I've been paired already - so the second click was registering as selecting the third time (so the 1st of the next pair). Not sure why it's happening.
    Yeah, there is a bug in the mouse clicking code. Sorry, we definitely need to work on that!

    BTW, the middle dots are meant to be eyes :)
  • 1. Did I easily manage to breed a creature?
    No. Colours for me were a total non starter (color blind) besides that I would get stuck down local maxima. I'd have the shape and the eyes, but not the colour. Or some other variation.

    2. Was breeding creatures fun. Almost. But I felt like I had too little sense of what the consequences of my choices were. Felt like I was just pulling the handle on a random generator box.

    3. Having worked on (and subsequently failed miserably) on my own evolution game, I can confidently same gamifying these kinds of simulators is really hard, and a nut i pretty much gave up on trying to crack. That said I'm keen to see what you come up with! I think maybe it might be better if you started with less variables, i.e only shape and eyes? or maybe use the concept of alleles to make it interesting. Eg there are less 'traits' you're trying to breed, but every now an then a combination of recessive genes spits out wildly different result. That could perhaps be a way to limit the amount of entropy but still have randomness thrown in. I dunno, just spitballing ideas ;)
  • edited
    @francoisvn I think the only reason it was too hard was because the one "stat" you chose to work with was shades of color. The human eye and brain aren't designed to understand or remember absolute shades of colour. So it's hard to get the shading just right, unless you had the two directly next to each other. It's hard to sometimes tell which colours to combine to get the right shade. It's pretty easy to get the shapes and numbers in the shapes right.

    So I think your system works well, just shading in such a fine detail is too hard


    @TheFuntastic
    I might be wrong, but it seems to me that what you stated in your 3, is pretty much what they did. Though I think there might still be a random component. But recessive genes sometimes gives a result that is seemingly random. You will see that if you keep combining the same types of shapes, that's pretty much all what you are left with in the end.
  • @TheFuntastic: Thanks for trying, we completely forgot to mention that the current prototype is distinctly colour-blind-unfriendly, silly us!

    I think that, unfortunately for now, colour is probably gonna be a critical part of the experience (although that might change), and therefore it's gonna be really difficult to make it colour-blind-friendly. If we decide to make this into a standalone game, we'll revisit that. Having said that, I think we need to adjust the thresholds to make it much easier to match colour.

    At the moment colour is probably the attribute that has the lowest variance (changes the slowest), while shape and eyes change much more easily, so you can more easily see that you're making progress with colour. This might give make it seem more random to you than others, I'm not sure.

    In terms of the randomness, it makes sense to reduce the variability of the shape and eyes, but then it can be difficult to work out if you're making progress because we don't currently show a half eye or so. We'll have to give it some thought if we can somehow represent partial eyes and shape vertices and such...
    I think maybe it might be better if you started with less variables, i.e only shape and eyes? or maybe use the concept of alleles to make it interesting. Eg there are less 'traits' you're trying to breed, but every now an then a combination of recessive genes spits out wildly different result. That could perhaps be a way to limit the amount of entropy but still have randomness thrown in. I dunno, just spitballing ideas ;)
    I'm not sure I agree with less variables, (although we could certainly replace colour with something else). I feel like the search space you explore needs to be big enough for interesting play, but we can definitely experiment a more here.

    We have considered a few ways of making the breeding more nuanced, such as including some form of recessive gene. Looking at real life is definitely a big inspiration here.

    One thing we're not quite sure how to deal with is: say you have a population of creatures with values 0.1, 0.5, 0.6, and you want to breed towards 1.0. Would it be more intuitive if you bred the 0.1 and 0.6, or the 0.5 and 0.6 ? Also, to what degree should the non-visible variables (maybe from ancestors) of a creature influence its children? Should certain monsters that are far enough apart perhaps not be able to breed, or only have very few children? So many questions we can still explore here...
  • edited
    @francoisvn
    One thing we're not quite sure how to deal with is: say you have a population of creatures with values 0.1, 0.5, 0.6, and you want to breed towards 1.0. Would it be more intuitive if you bred the 0.1 and 0.6, or the 0.5 and 0.6 ? Also, to what degree should the non-visible variables (maybe from ancestors) of a creature influence its children? Should certain monsters that are far enough apart perhaps not be able to breed, or only have very few children? So many questions we can still explore here...
    I'll try to separate these issues and make suggestions for them independently (which of course is just random ideas that may be useful to you, or maybe not!)

    Firstly, I feel that in a case where the target is outside of the range the current generation can cover (i.2 you have 0.1 -> 0.6, but want 1), it is more intuitive to breed the higher numbers together. If there is a small random gene mutation, you'd expect it to cause a small change, so perhaps if you bred 0.5 and 0.6, you should be able to get 0.4, 0.5, 0.6, and 0.7. Then carry on that way to 1. Where breeding 0.1 and 0.6, it would be less likely that you would get the 0.7? Something like that anyway.

    Another suggestion I'd have to this particular problem, is to make sure that the target you randomly chose falls within what is capable with the current generation. I guess that could be troublesome though, as the player could essentially throw away an important "gene", that was needed to reach that result.

    For what effect the ancestors should have, if you could keep "recessive genes" that a child gets from his parents it could solve this issue. So say you breed a square and a triangle, it could be more likely that the child would be a square if it was the more dominant gene.

    Take this case, where S = square, and T = triangle. Each individual has two genes for the same characteristic:
    An individual with ST, or TS is a square if square is the dominantly defined gene. SS is a square individual, obviously, and TT is a triangle, obviously. So when you produce a child from parents SS and TT, you take a random gene from each parent and combine them. So the child will necessarily be ST (or TS), which is a square. But when this ST square, breeds with another ST square, there is a 1/4 chance that it will be SS, 2/4 chance that it will be ST once again, and 1/4 chance that it will be TT. So it is then possible for 2 squares to breed a triangle child, since these squares have the recessive triangle gene (either from their parents, or they were initialised this way when the program started).

    If you defined many shapes then, say a circle (C), and a pentagon (P), you could define certain combination rules. Say S can combine with T and C, but not with P, and T can combine with S and P, but not with C, etc... and where the algorithm wants to combine these 2, no child is born. And so the genetic pool can drift away so that two individuals are simply too different to breed!

    Man this sounds interesting! Making me super amped. Not even sure that you will want to use any of this!
  • I gave it a whirl, but I don't have much new to add that hasn't been mentioned already. The consequences of my choices felt unclear and trying to get a specific shade of a colour is tricky.

    Have you considered letting the player murder unsuitable candidates rather than only breeding 2 suitable ones? Choosing how many to keep alive and how many to cull to maintain both population levels and convergence towards desirable traits could potentially be a fun balancing act.
  • Hi all,

    We recently took a second run at this idea. Some of you might have seen the game at AMAZE. We’d love to get some feedback on it from the community.

    As with the previous iteration the game is still trying to explore creature breeding as a mechanic.

    We changed the game to be real time instead of turn-based. You’ve got two breeding pools filled with creatures and you can drag creatures between them. Dragging a creature outside of one of the two pools will destroy it. You can also at any point nuke either of the breeding pools. Creatures will only breed when swimming around in a pool and typically breed with the closest other creature.

    There are four creatures you can try and match at any time to gain credits. Creature contracts vary in terms of complexity and can require you to match any combination of the attributes of the shown creature. The possible attributes are number of eyes, number of tails, body shape and colour.

    Lastly there are a number of creatures available for purchase from the side shop in the top right

    You can try out the new version of the game here: http://clockworkacorn.com/games/polygenics/#play

    The video and description on our website are out of date.

    We’re still unsure where we want to take this in the future. We feel the core mechanic is interesting, but that it could go in a lot of directions. We could up the complexity of the breeding, focus on polishing what we have, or use the breeding mechanics in conjunction with others to make a much larger game. Where do you guys see this going?

    Some things we are aware of and are looking to address in the future:
    1. Improved visuals and sound
    2. Improved UI
    3. Addressing colour-blind compatibility issue

    Some feedback questions for everyone:
    1. Do you feel like you can control the evolution direction for the creatures?
    2. What is your technique for guiding evolution?
    3. Do you have any specific ideas for a metagame direction? Economy based, level based, etc.
    Thanked by 1francoisvn
  • edited
    Let me answer your questions first:

    1. Not really. Also, it is not really necessary... it seems I can fulfill contracts without having to steer much; I just have to wait a bit and select suitable creatures from the random batch. (Although, it seems fulfilling contracts does not quite work the way I though it worked: I cannot really tell when is a creature a good candidate or not).

    2. -

    3. Not sure about a meta game, I think you still need to figure out the toy mechanics a bit more, then the game, then the meta game.

    I find the idea of evolution as a game mechanic very compelling (SimLife had me captivated for hours and hours when I was a kid).



    For me, the single thing that I would like most from a evolution mechanic is surprise. Trying to grow creatures with given features is not very interesting; I would rather have a sandbox type of thing where I can see how far the system can be stretched. Ideally, rather than selecting candidates artificially, I'd like to manipulate the world, and so effect then creatures that will die. (Of course, it is a bit difficult to attach goals to this... evolution by it's nature is a self-correcting system, so any challenge will in principle be solved by the system, rather than the player. Things like creature complexity and biodiversity may be suitable goal metrics though.)

    An idea (for getting more interesting creatures); at the moment it looks like your DNA is vectors which control different properties of the creatures. This means the totality of the creatures are always predictable. If, instead, you use a Turing tape DNA model, you can get much more interesting creatures.

    For example, say you have a 4 state vector: position, direction, blob radius, color

    You can then have build commands like this:

    add blob at position

    State modification commands like this:

    position = position + direction
    inc / dec direction
    inc / dec blobradius
    inc /dec hue / saturation / lightness

    And then for the fun part:

    repeat last 5
    repeat last 5 in reverse
    do next if blob > 1

    Then you can also add some coherence with commands like this:

    direction = someFunction(hue)

    This will give you creatures that can be infinitely complex and reasonably unpredictable.

    Anyways, like I said, just an idea :)

    EDIT:

    OK, it was still open and while waiting for a download I got sucked in. I discovered a good breeding technique (and how the UI works), and now I am having much more fun as the first time round. I can give better answers to you now:

    1. Yes, although it's very fragile. But I can get the type of creature I want with enough patience.

    2. I clear out one of the holders, select the best candidates from my stock (or the "store" (.........) if necessary) and put them there, clear out the other holder, and repeat.

    3. Here is one idea to impose some structure into the game. Not really meta game, but ways to get progression. Let the player start of with just having to evolve one feature. Then add the features one by one as the player succeeds (you could link these progressions to pseudo or real geological periods). If you employ regressive genes as someone suggested above, you could get finer levels of granularity (it is much more difficult breeding creatures with these genes active than creatures with dominant genes active). You could also broaden features over time (for example, initially only 2 tail types, then add more as the game goes one). You can then introduce mechanics such as cosmic radioactivity, alien DNA through meteor storm, etc. and remove the selecting creatures straight from what I see what you call actually call the emporium... I'm not sure what the credits should be. It feels totally artificial, it would be nice to give it a narrative spin too. (Perhaps you don't need a currency here; you could just have items / powers, which are gather through building "contracts"...your designs). In this setup you obviously play as the Intelligent Designer (which means you could have lots of interesting funding opportunities if you are so inclined...). It would be easy to make it less cosmic by just changing what you call things; a bit more lab / Jurassic Park style evolution.
  • Thanks for all the feedback. Very interesting to see your thoughts and how they changed.

    The idea of having more emergent complexity is definitly something we're thinking of exploring. Although it does pose some more problems with communication with the current goals, but we should probably ignore that and explore the mechanic anyway. I definitly agree with you about the value of surprise and that we can improve in that aspect.

    Theme is also an interesting one. We kinda went with the default petri dish in a lab idea, but maybe we should go a bit more out there.
Sign In or Register to comment.