How I think the dice should work.
I purchased the game 4 days ago.
I played some nice games, but there were also games where the dice went crazy. Like, for example, there was this game in cities and knights where the 80-90% of the dice results was 8 and the guy with 2 cities in a hexagon with an 8, won in few turns.
I'm not exaggerating... it was literally 80-90% of the times.
Since many people still complain about the dice, I have a suggestion.
Why don't you make a 3D animation of the dice??
Like, you put them in a plastic cup, you apply gravity, you give the player the opportunity to shake the cup with the mouse and when he wants he releases the click and the dice fall on the board.
Is that difficult to program??
If not, I don't think people will continue to complain.
It will be like reality.
Please, I need an answer to this.
This would be less random and people could find a way to throw any result they want.
If you use actual gravity, it would be possible to reverse-engineer the results.
This would be less random and people could find a way to throw any result they want.
I dare anyone to do that.
Please, explain with details how in the world would you do that!
The dice are hidden in the cup and shaking every time.
You simply can't see what is going on in there.
And even if you decide not to shake, the computer will automatically do it for at least 3-4 seconds at random directions.
I study programming, I know what I'm talking about.
First, if the 3D logic is all on client side, you could do many things to influence the roll. Easiest would be to just "say to the server what your roll was". Or manipulate the opacity of the cup. I'm not sure how obfuscated the client code is but theoretically both things would be possible. If the 3D logic is on server side and whatever the player does, it does not matter whether there is any way the user can have any input to manipulate what the dice result it. Also, the constant server socket connection just for rolling the dice would overload the servers with useless data. So much lag for little gain.
Not realistic that anyone would do that for sure. But the players do tend to find flaws with this game - so far mostly how to make it so that the turn timer would crash and the other players quit so you would not lose ELO. If they are going to such lengths just for that, I'm sure they would find the best way to use the 3D model to roll the dice they need. Dice in a cup do not really bounce around that much so you can place them in the best position and let them always roll the same way.
https://www.youtube.com/watch?v=eGOVlWY6gWE - lots of csgo examples online. Some are even more complicated. You just have to do it enough.
Also, what to do if one of the dice lands on an angle somehow? There would be so many problems with this idea. Let the developers work on something that is an actual issue.
some stats from me
If you add all these dice rolls together (460 rolls total), you will get a more even distribution. And that is quite normal. It does not prove that any kind of smart manipulation doesn't exist but still, lopsided distribution in a small set of rolls is perfectly normal. This is a dice game and you have to either deal with it or find a game that does not have dice.
some times in a board game in pub we have more crazy dice combinations.
@Stroom , if you're talking about hackers, yeah, even now they can hack the system and do what they want.
If we're talking about normal people, then there is no way they can get the result they want, if a programmer with enough IQ knows how to program it.
You wrote 10 lines of comment just to say "they will find a way", without saying HOW ,after I specifically asked you to tell me the details, and without knowing exactly how it will be programmed.
You mentioned some problems that could easily be solved, if you program it correctly.
Please, tell me again how it will not succeed by knowing 0 information about its design.
Well, first there should be some kind of design to abuse. If you can see what is on the screen and align it properly, you can throw the dice as you want. In a similar way that people create aimbots and other stuff, it could be created for dice in Catan.
https://www.youtube.com/watch?v=hb4n-59qq5Y - someone built a realtime robot to throw bowling balls in Wii Bowling. If this is possible, you can create it with Catan dice.
I am not a hacker so I don't know the specifics of this but I know it is really possible when reading of what you want to propose. The fact that there are some 3D rolling dice does not change someones perception that the dice are rigger, unless their roll really matters. In which case people will find a way to abuse the system.
The main problem is:
Does the players rolling really affect the dice roll? If it does, it is possible to recreate the dice rolls.
If the players actions do not matter, what is the point of all this? Just some eye-candy that does nothing to improve the actual gameplay...
If you can see what is on the screen and align it properly
I have already said that you can't see them.
The dice are hidden, there is a minimum of shaking in randomly selected directions and then X time of shaking by the player.
How random will those directions be??
Instead of the classic random number generator, they could pick a number from the current second of the actual time or the time of game played.
That second would be picked exactly at the end of the previous player's turn, so it will be surely random.
During all this time the dice are always hidden.
The last action of getting the cup upside down is done automatically by the system. The result of the dice is completely decided by the gravitational forces.
Yes... but not knowing what is happening inside the cup means that the result will be as random as in real life gravitational forces.
But what is the point of this then? It does not make anyone more confident that the randomness of the dice is ensured.
It would just waste more computer resources for generating a 3d rolling model of the dice. And the randomness of the initial dice locations. And the random dice shaking movement. And the player sending shaking messages to the server. And then sending the throw message. But it does not matter at all because the cheapest way to solve all these lag issues would be to just use the normal RNG, find its results and then play whatever animation gives you the same dice roll. Because you do not see the dice in the cup, who cares what is inside. You just have to display the rolling result to the player.
Still the dice locations etc starts form the same RNG random numbers that you want to change. Adding random on top of random gives you the same kind of random.
This is just so much more overhead for an issue that could easily be avoided with a normal RNG that outputs you two numbers 1-6. Which we already have. It's just that sometimes people think that the dice seem to favor the AI somehow.
Basically what you are saying is that you want the RNG which has it's own seed for rolling dice... Get an input from the player. The seed changes so the player can affect the dice result. But... changing the seed does not make the RNG statistics any different in the long run.
@Stroom , I just think that giving the opportunity to the player to shake gives a psychological relaxation, like the thought that the specific result came from his action/hand.
And I also think that some bugs will be avoided, because yes, an example like the one I described in the first comment, I'm 99% sure it was a bug in the dice.
Do you only want to see an animation of dice rolling (nothing to do with the actual RNG) or the actual 3D model of dice falling and eventually ending their movement to define the result?
In the first case, it is easy to do and it is pointless and no-one would really think that the animation matters.
In the second case... It solves nothing. People can still think that something is rigged. In your example, you do not see the dice until you throw them. Well, in that case you can always just calculate how the dice will fall and paint the numbers on the dice before you reveal them to the player.
The fact that the server has to run 100x more calculations for a simple dice roll.. just there is no actual benefit of doing this. Also, there could be results where the dice end on a corner so you have to roll them again. This would be frustrating. When people play online, they wan things to just run correctly. Clunky 3d dice rolling is not the way to go. Also, I prefer having no animations in the game as they just slow things down. Now you want to force a slow rolling animation on people that really does not matter.
Really, your suggestion is not solving anything.
@Stroom I think the solution would be solving the immersion of dice rolling. My friends have a dice stadium when we play the physical copy and we love it when the dice starts to spin – it adds suspense to the game.
An idea I think would work:
- Every time you "shake" the cup that hides the dice, an RNG determines a random angle for the dice and plays neat sound effects.
- When let go, the dice moves at a velocity based on the velocity of the cup, plus a random tiny vector.
- The dice lands in a stadium.
Having just an animation of the dice rolling would also work too and can simulate the suspense.
@Alexinho25 I really like your suggestion and I like the idea of "psychological relaxation."