3d dice roller example?

Started by
1 comment, last by Ravyne 10 years, 3 months ago

As anyone seen an example of rolling dice that uses 3d canvas and real physics?.

I'm looking to create a die rolling app that uses polyhedral dice.

I guess I could find a 3d physics example that uses simple objects, but I'm sure it has been done before. I think the trick is how to determine which face value is up.

Advertisement
I worked on a Wii app where we tried something similar, but it was a mistake. I assume you have a motion sensitive controller, perhaps such as a phone with accelerometers.

If you already have a physics engine, you just need a box container and the dice. While they are shaking you apply a force to keep the dice suspended and apply torques and forces based on the shaking of the controller. Then you just let them go and allow the physics engine to run until stable. You can get the object's orientation from the physics system and do a small bit of math to determine which side is 'up'.

Unfortunately many problems abound. The dice don't always land well, sometimes they touch each other or the corners of the box, making it difficult to decide what way is up. In a real world situation you might reroll those dice. Physics engines produce numerically pleasing results, but not visually pleasing results; even after many adjustments to the physics configuration it is difficult to make dice appear as you expect them to look. There is the strong possibility of cheaters, people who will not vigorously shake the dice but very carefully tumble them midair until they hit a good position and then carefully release them. If you have network play, trying to keep the details in sync is a nightmare.

All told it is much easier to have animators put together a few animation sequences. You can use the player's input to help feed the random number generator, but really you are just picking the number and then playing the corresponding animation. You might have animators create multiple animations for some of the numbers if you are afraid of them appearing too common.

We also learned that players really don't want long dice rolling sequences. They want to play a game, not watch movies of dice rolls. Just let them push a button to display a random result.

Physical simulation of dice just seems too impractical to be worthwhile. If I'm using a dice-rolling app, I want it to be easier than real dice -- I want it to give me results instantly at the press of a button. I don't want to have to shake my phone. I want it to do the annoying math for me too, to the extent possible. Don't drain my battery with shiny graphics and bullshit physics simulation that's not going to be entirely physically accurate anyhow.

throw table_exception("(? ???)? ? ???");

This topic is closed to new replies.

Advertisement