The scales on the fish make a world of difference! I have no idea how the code for all of this (or any code ) would work - but as you mentioned with the eyes - but if you can assign a "skin" (both visual and code based value) to each part of the animal, when they are crossed, the result could then use percentages of the mixed "skins" in rendering the final product? Would that work for helping the engine detect how many "eyes" a creature would have?

I do music, not code. So sorry if that makes no sense and is unpossible. I can't imagine I'm going to come up with anything you haven't already thought of or tried - but I like the idea and want it to work for you!

The scales on the fish make a world of difference! I have no idea how the code for all of this (or any code ) would work - but as you mentioned with the eyes - but if you can assign a "skin" (both visual and code based value) to each part of the animal, when they are crossed, the result could then use percentages of the mixed "skins" in rendering the final product? Would that work for helping the engine detect how many "eyes" a creature would have?

I do music, not code. So sorry if that makes no sense and is unpossible. I can't imagine I'm going to come up with anything you haven't already thought of or tried - but I like the idea and want it to work for you!

Hehe, you could do that, sort of. What I meant was that something could come up through cross-breeding which looks like an eye to the player, but is not inherited from any eyes at all. And then I would want the game to allow this to be an eye, which is hard to do consistently well, since user impressions of what is on the screen can vary.

We will see about the "management mode". It might well become reality. But right now I'd better focus on the core animal creation functionality.

I might talk more about my format for the animals later. It will be obvious to many people how I have done most things but the devil is in the details, which can get a bit complex, and in fitting everything into the memory of a mobile phone (my initial target).

Starting work on decoration patterns. I tested out some of my planned system in a previous prototype, with results like these:

But that prototype didn't draw things like the above in a very memory-efficient way -- it was just a test of what the result would look like. The trick is to be able to draw patterns like these, using a fixed number of bitmaps of limited size, despite the recursive nature of the decoration patterns (stripes can have stripes that can have stripes...). I think I have figured out a really clever way to do that now -- but the details are still to be implemented.

Also, the algorithm I will use has to do some clipping, which tends to produce hard edges that are not anti-aliased. To somewhat remedy that, I plan to draw everything that will be clipped in 2x scale first, and then draw it over to another bitmap in final smaller scale (but still with a limited bitmap size, so I might have to draw several times to one bitmap and copy the results over to the final bitmap inbetween), and also I will draw a single color anti-aliased line along the sharp edge whenever applicable/possible (i.e. whenever the pattern has just a single color along the edge).

It sounds complex, but I'm pretty sure that it is possible to do on a general level.

I'm still rewriting the Splitter decoration pattern so as to not clip directly on the final canvas (because of hard edges), but to draw at 2x scale first on a smaller bitmap, and then copy the results over at diminished scale. I couldn't use the Canvas 2D clipping for this, since it doesn't seem to handle negative coordinates and also intersection of clips was not supported at my targeted API level. So I had to solve the linear equations, sort of, for the different vertical and horizontal possible intersections. It is still a bit buggy, as you see in the picture... (It should only be the "curved" path and squares...) Maybe I'm overthinking this instead of doing some kind of simplified solution...

Not really something to show, but it took a ridiculous amount of code to get to the picture below, for silly reasons. I still have the vertical case left to do. I think the other decoration patterns will be easier, though.

Just wanna say I'm enjoying watching your pattern progress as I work on my own. I especially like how those scales are looking so far, the way they overlay really makes the underlying patterns look nice.

Just wanna say I'm enjoying watching your pattern progress as I work on my own. I especially like how those scales are looking so far, the way they overlay really makes the underlying patterns look nice.

I'm glad that you find something enjoyable here!

I understand that you have chosen a solution that is combining ready-made texture fragments, which are then drawn in combination directly by the 3D game engine. For my project, I'm already drawing the sprites for the body parts of each animal using the Android Canvas 2D functionality. Those sprites are then sent to OpenGL ES, which does the animation and not much more (just a little darkening by the shader of the farthest legs and such). So I chose to let the Canvas 2d methods draw the decoration patterns from scratch too, which I believe will allow for a little more flexibility, but we will see what you come up with.

The drawing of the sprites for each animal takes typically about 100-200 ms on the phone I'm testing on, so I can't really do animal generation en masse like you. But I believe that that small delay is OK for my game as it functions currently. And there are still lots of things I can optimize. But the thing that takes the most time to draw is typically, and understandably, exactly the scale/feather thing, especially when there are many small such, as it has to draw each scale/feather individually in order to inherit the potentially different color of the underlying decoration. So we will have to see how to deal with that.

Also, I chose to simplify some things with the cross-breeding so as not to create animals that are too slow to draw. For example, in particular, it is never possible anymore to get stripes that have stripes on them just by crossing two animals with simple stripes. This is despite that the pattern system allows for such combinations. This was also necessary in order to get identical products when cross-breeding identical or cloned animals (but maybe I could actually add some special code to deal with the identity case?). I will still experiment with allowing recursive decoration patterns to appear when using a radiation level higher than zero -- i.e. when I get to implementing that...

----------

Today, I fixed one bug and created a new one that is still unresolved. So no real progress. But here's a horsuirrel for you.

In order to test the new decoration system fully, I tried to recreate nature's king of decoration patterns, the Mandarinfish (https://en.wikipedia.org/wiki/Mandarinfish). Don't know how that went (see below...). Doing this, I found a problem with stripe contour tiling too, which I fixed.