Dear mobile game devs. When I play games like that, I always wonder if it’s the physics engine that’s actually random and produces the result?
Or is the result calculated before the animation happens, and dictates the animation?
I’ve always wondered. I have some notion of programming, but from far back, and I’ve been scratching my head long enough about this.
Thanks in advance.
And with how cheap 2d simulations are (even cheaper on a gpu) they could pretty easily run a a couple hundred then pick their favorite odds, save the path trace as a bezier, ship those weights with the game and no one could tell the difference
This 200-pixel-tall plunger could have every possible input scored, and it’d take approximately no time and no space. If it somehow has a full 16-bit range then the score table would only weigh 256 KB. (Assuming you can’t score five billion on one ball.)
It would be nearly trivial to then nudge inputs onto lower- or higher-scoring values, nearby, at whatever rate maximizes player spending. Because that is the only metric these vampires care about.
This assumes they don’t just rely on the placement of the pegs to work like they do in real life. You know. Like actual pachinko games. High-scoring targets are marked that way because fewer balls go there.
But here’s what I think they actually do:
There might only be 30-odd real positions for the plunger. You can pull it as precisely as you like. It’ll animate like that matters. But you’re just picking a bucket, and in each bucket there’s a range of launch speeds. The game’s been trying random speeds behind-the-scenes. It knows how much each speed will score, when it picks it from that bucket.
That way they can place the pegs and bumpers wherever they damn well please, and the game can still hand you good scores and bad scores at its sole discretion.
That’s it in a nutshell.
I had to implement the system in a special way, but that’s due to the nature of the lottery industry, auditability, security, etc being critical.
There was really two systems at play. One was a “entry code” that the player would acquire either by scratch ticket or other means which they would enter into the system. That would tie their entry to an outcome. The winning decision could have been predetermined at the time the codes/entries were generated, or there could be an instant probability-based determination on the server end.
At any rate, what would be presented to the user then is the ability to drop 10 little pucks anywhere they want, and watch them fall and bounce around, but regardless of where they dropped them, they were going to in the same bins either way. Then the prize would be revealed.
At the time there was no easy physics systems, so I had to code my own but it wasn’t that hard. I just brute forced it to drop a million pucks overnight, going left to right in tiny sub pixel increments. Built a table of animation strings which provided a convincing animation for the puck to go into any bin, regardless of where the player dragged it in the interactive portion of the play.
In the end, even though it was an incredibly innovative lottery product at the time, the first of its kind actually, we could not deploy because every state/intl lotteries thought it was far too convincing that the player had influence on the outcome, even though it was fully disclosed no action that their actions had no bearing on the outcome.