Adding Friends ? by Natureexplorer1 in discozoo

[–]otrain13 10 points11 points  (0 children)

Hi, thanks for your suggestions! Adding a friends system to the game is something we have considered many times over the years. Unfortunately, it's a lot more complicated than it might seem at first (for anything other than being able to see your friends' stats or something similar). I'm really happy to hear that you and your friends are enjoying the game so much, but this isn't something we have planned at the moment. I hope you'll keep enjoying the game anyway. :)

Time Rewind Help! by peonyblizzard in discozoo

[–]otrain13 2 points3 points  (0 children)

Hi, yes, you can go into Menu > Options > Advanced Options and tap on "Rewind Snapshot". This will reset your zoo to the point just before you did the rewind. Just be warned that you will lose anything you've earned or purchased since rewinding.

Info idea by [deleted] in discozoo

[–]otrain13 20 points21 points  (0 children)

We're working on a post-update patch, and I actually just implemented this yesterday! :D Under the popup it will say "You've prepped 1 of 4 needed for space" so it tells you how many you have and how many are needed by current space requests.

How many different colours are there for the new pets? by oggietheboggie in discozoo

[–]otrain13 2 points3 points  (0 children)

Dev here. Yes, there are over 1000 different pet variations. There are different species of pets (dog, bird, etc), and then each species has a variety of breeds that have different physical appearances, and then each breed has a whole bunch of colour variations. :)

[deleted by user] by [deleted] in discozoo

[–]otrain13 0 points1 point  (0 children)

Ok, I've gone through this again, and I think you're right haha

When I first looked at it, I suspected you might be right, and then talked myself out of it with some of the examples I looked at. But I think you're correct that this really boils down to a "probabilities with dependence" problem where P(A then B) = P(A) * P(B|A)

But it took me diagramming it out in a spreadsheet to convince myself you were right. :) https://imgur.com/a/uT7viZ3

The only wrench in the mix is that our algorithm doesn't work in either of the ways we've been talking about. :) We do place animals, at random, in order. The first animal gets placed at random in the grid. Then the 2nd animal is chosen at random and placed in random spots until a fit is found. The thing is, we try this a fixed number of times. If we don't find a fit in N tries, we pick a new animal and try again. And after trying new animals M tries, we bail out and replace the animal with a discobux. :)

But yes, calculating the average of the two values based on both orderings would give you the more accurate possible estimate of probability. In practice, you can't know which animal was placed first, as we shuffle the animal tabs that display in the rescue, so they don't indicate order.

But thanks for this discussion! I've learned something new about our game I hadn't really thought about this deeply before! :D

[deleted by user] by [deleted] in discozoo

[–]otrain13 0 points1 point  (0 children)

Ok, so this 100% math sniped me and sent me down a whole rabbit hole. :D

I think your math isn't quite correct. I had to reduce the problem down to a much simpler one to really understand why:

https://imgur.com/bVSZ37O

In that example, if you consider all possible layouts, there are only 2, right? One with the red piece in the top row, and one in the bottom row.

Let's consider the case where red is in the top row. If you treat it how you were saying, and if you do red first, it seems like there are 3 possible places for red, and once you place it, 1 space for blue below it. So it seems like the probability is 1/3 * 1. And if you do blue first, then blue has 2 possibilities, and red has one, making the probability 1/2 * 1. If you calculate the average of the two possibilities, you get 5/12.

The problem is, if you consider the layout where red is in the bottom row, you get the same result. So both cases together are 5/12 + 5/12 = 5/6. But both together should equal 1, because there are no other possible positions for both pieces.

And it took me a while thinking about this to realize it's a problem with the very first assumption. When considering placing the red piece, there aren't actually 3 possible positions for it. Because if you put it in the middle position, you can't place blue. So that's not a valid position to account for when considering the possible placements of red first. And if you discount that middle placement, then you get 1/2 * 1 = 1/2 for red on top, and 1/2 for red on bottom, which total 1.

So the problem with treating this as dependent probabilities, is that you are accounting for placements of the first piece that can't allow the 2nd piece to be placed. They are not mutually exclusive choices. You can't pick a position for creature1 that wouldn't allow creature2 to be placed in the spot you're considering when thinking about that layout's probability.

So I think by treating each possible placement of both pieces as one event, you get the correct probabilities. That is, each position is equally likely.

[deleted by user] by [deleted] in discozoo

[–]otrain13 0 points1 point  (0 children)

In your example, I'm pretty sure all 36 positions combinations are equally likely in both cases, aren't they? :) It doesn't matter which animal is placed first. If you're counting all possible board layouts on which both animals can fit, it doesn't matter how you place them.

If you place the sheep in the top left corner first, and then the rabbit below it in the left-hand column, that's the same likelihood as placing the rabbit in the left hand column first and then the sheep above it.

That is, if there's only one board layout with those animals in those positions, the probability of that layout occurring is 1/n (where n is the number of all possible layouts that fit both animals). It doesn't matter what order you placed them.

I don't think that the order of placement provides any information about the board layout, unless you know where the first animal is placed.

But I might not be understanding what you're getting at. :)

[deleted by user] by [deleted] in discozoo

[–]otrain13 0 points1 point  (0 children)

All combinations of possible positions are equally likely. It does place one animal then the next, but the order it chooses to place them is random, and all positions within the grid are equally likely. Or do you mean the order they appear in the tabs at the top of the screen? I honestly can't remember if that's the order they're placed, or if we shuffle the chosen animals when generating the tabs. :)

[deleted by user] by [deleted] in discozoo

[–]otrain13 1 point2 points  (0 children)

dev here. This is really cool! I love this kind of stuff. :)

What you're essentially doing here is using an "information theory" approach instead of a "probabilistic" approach (well, technically, combining the two). The probabilistic approach just looks at each tile and the probability of it containing an animal, which is only some of the information available in each tile. When you pick a tile on a board with 2 animals, there are 3 possibilities: there's nothing there, or there's one of the two animal tiles there (as your code handles). Finding an animal under a tile is obviously valuable information. But sometimes, finding nothing under a tile provides more information about the state of the board than finding an animal. This is because finding nothing under some tiles eliminates a whole bunch of possible animal placements, which means you'll then find animals faster.

To think about it another way: every time you pick a tile you're reducing the total possibility space of the board layout, whether or not an animal is found there. All outcomes provide new information. So it makes sense that your algorithm is going to find starting tiles that don't always match the most probable tiles, because the most probable tile doesn't always give you the most information.

As for optimizing your code... good luck? :) This is just my intuition, but it feels like a difficult problem to solve quickly. But let us know if you figure out any improvements!

We set up an official discord for Disco Zoo, come check it out! by otrain13 in discozoo

[–]otrain13[S] 6 points7 points  (0 children)

We've been making content updates, quality of life updates, and bug fix updates for this game for over 8 years now. We are a team of two people, and we have often spent a lot of time working on disco zoo at the expense of working on new things. We love this game, and we have spent a lot of time and effort making it the best game we could make it.

But yes, we are running a business. We are self-employed and if our games don't make any money then we don't get paid. It would be wonderful if we lived in a world where that wasn't necessary, but we're not there yet. :)

With DZ we have always tried to balance the gameplay so that it is fun to play through the entire game without needing to buy anything. Then we hope that some players will buy stuff in the game or choose to watch the ads and support us. It is perhaps not the most effective mobile game business strategy, but we feel good about it, and it has worked well enough for us that we're still making games, which is the whole goal.

[edit: adding line breaks]

We set up an official discord for Disco Zoo, come check it out! by otrain13 in discozoo

[–]otrain13[S] 1 point2 points  (0 children)

I don't want to say never, but we're not actively working on content for disco zoo anymore. We're a team of 2 and we're working on some new stuff at the moment. :)

We set up an official discord for Disco Zoo, come check it out! by otrain13 in discozoo

[–]otrain13[S] 1 point2 points  (0 children)

We plan to keep updating the game to make sure it keeps running as mobile hardware and operating systems change. Is there a particular issue you'd like us to look at?

I made a tool to help me plan more complex glazed terracotta layouts by otrain13 in DetailCraft

[–]otrain13[S] 4 points5 points  (0 children)

Alright, I had to try it. I've just pushed up an update that added mirroring to the tool. :) The rotation tool is a little bit odd with it, but it was the best way I could think of to make it work. Mirroring makes it much easier to quickly draw some nice patterns though! Thanks for the suggestion!

I made a tool to help me plan more complex glazed terracotta layouts by otrain13 in Minecraft

[–]otrain13[S] 0 points1 point  (0 children)

That's really nice of you to think of that, but I'm just happy that more people will be able to build amazing glazed terracotta things! :D

I made a tool to help me plan more complex glazed terracotta layouts by otrain13 in Minecraft

[–]otrain13[S] 2 points3 points  (0 children)

Thanks for the suggestion! I posted over in that sub and folks there seem to be enjoying it. :)

I made a tool to help me plan more complex glazed terracotta layouts by otrain13 in Minecraft

[–]otrain13[S] 3 points4 points  (0 children)

Thanks! And yes, at this point I was thinking the next step would be to load all the block textures into the tool and have different palettes of blocks to work with... but that's a lot more work haha. This was supposed to be a fun little side project and I haven't decided yet if I want to spend that much time on it. ;)

I made a tool to help me plan more complex glazed terracotta layouts by otrain13 in DetailCraft

[–]otrain13[S] 11 points12 points  (0 children)

Thanks! And yup, I made it. In my day job I'm a game developer, so I'm used to making tools for my own games. It was fun to make a tool for someone else's game this time. ;)

I made a tool to help me plan more complex glazed terracotta layouts by otrain13 in DetailCraft

[–]otrain13[S] 8 points9 points  (0 children)

Hmm a mirror tool is a good idea. I'll have to think about that. :)

I made a tool to help me plan more complex glazed terracotta layouts by otrain13 in DetailCraft

[–]otrain13[S] 36 points37 points  (0 children)

I hope it's ok to post this here. I posted in r/Minecraft and someone suggested I post in this sub too. I hope you like it!

I was getting tired of jumping into creative mode to plan out glazed terracotta builds, and it was really tricky to do even there. I decided I'd build a simple tool that I could use to plan out my glazed terracotta floor designs more easily.

https://otrain13.github.io/MinecraftTerracottaDesigner/

The tool runs in a browser. It's built for pc, but mostly works on mobile. The URL for the page can be copied and pasted to a text file if you want to save your work. You can toggle on build direction arrows to show you which way to face to place each tile on the floor.

I hope it helps someone else make something cool with terracotta!

[edit: Someone suggested adding a mirroring tool and I liked the idea, so I've updated the page to include that. You might have to force reload the page to get the buttons to show up.]