Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

209 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SuperMarioPartyDice

This project is for recreating the boards and character dice of Super Mario Party, and running simulations on those boards to learn all kinds of fun statistical things about the game such as:

  • Min, average, and max coins gained during any single game.
  • Min, average, and max distance gone during any single game.
  • Min, average, and max stars gained during any single game.
  • The average place (1st, 2nd, etc) gained at the end of all the games.
  • All of the above per the number of allies gained during that game.
  • How frequently that number of allies was able to be gained.
  • Min, average, and max of which turn each amount of allies was able to be gained.
  • All of the above per character dice.
  • All of the above per game board.

These simulations are run for each of the four game boards since one of the main questions is how each character die ends up impacting which spaces on each board you're more likely to land on, and how that goes on to affect everything else.

Why do this?

Because I'm a giant nerd, lol.

For real though, with the introduction of the unique character dice in SMP, this now means that which character you choose to play has could potentially have very interesting consequences for all of the above pieces of data. This project is, at its core, to determine how significant the different character dice can impact all of this. Maybe even to the point of significantly impacting your odds of winning, and I find this an incredibly fascinating series of questions to try and answer.

Current State

The current version of these simulations is much more limited than the real SMP games due to complexity and setting more incremental, obtainable goals for myself. With this current state (plus any current goals/questions addressed), I believe that's at least a really good pausing place that still yields really good results that a SMP player could still use.

  • The stars work....mostly.
    • The only exception is the bonus star associated with items, since items are not implemented.
  • Character dice only.
    • The agents only ever use the character die that they have from the beginning, though yes, in a real game a player can choose between their own character die, the character dice of any allies they have, and a standard d6. For now, this project is really about answering how effective each character die is on their own, so we can leave adding this choice for a later version of this.
    • Though yes, that could end up changing things, as maybe even the standard d6 compliments some character dice far better than others.
  • All four players
    • While each simulation is centered on testing one main player, all four characters in a typical Mario Party game are running around the board, collecting coins and stars using the same strategies.
    • Who the other three characters are for each game is chosen randomly, so the resulting statistics say how each character does generically against all characters.
  • Minigames...kind of.
    • As you can imagine, somehow re-implementing the entire suite of minigames and also simulating them being played is a nightmarishly tall order. Instead, I've done what I feel like is the important part for this program: This program still creates the minigame teams the same way Super Mario Party does, but then randomly decides which one of the teams won, and gives out the coins accordingly.
    • I actually think this is better than trying to recreate all of the games and program AIs to actually try to beat them, because choosing a random winner removes the individual player skill from the equation, while still getting that regular injection of coins from the minigame rewards into the system.
  • No Items.
    • This would be a lot of work, and be tied into creating an AI that makes smarter decisions. I really don't see currently how the items could be done well in this program without an agent having some sort of decent decision making around when to buy an item, which one, and when to use it. So, for now at least, despite how helpful they can be in a game, I'm hoping the simulations are still really valuable without them.

Current Goals/Questions

  • Fine-tune the Sand Bridge collapsing in Megafruit Paradise. I've heard it can randomly collapse after 3-5 uses, but in the four cases I've witnessed it's been 5. Either that's coincidence, or it's not 3-5, or the randomness isn't uniform. Without more data I don't know which it is for certain.
    • Partially done. I did find video evidence of the bridge collapsing after four crossings, and coded that in. That really messed up Diddy and Wario's ability to gain allies, lol.

Future Goals

These are goals that are a long way off, and would be done as a proper next version rather than any time soon.

  • Implement an AI.
    • With the stars in place, that gives the AI the goal of what they need to gather, and if it'd be great to make a proper learning agent so that it can figure out on its own just how important coins, allies, etc are towards the goal of gathering the most stars.
    • In some games, like Super Smash Bros, this is ends up being a lot of waiting for the agents to train, because each character is different enough that you can't simply train an agent once, and expect it to do well for other characters. I don't believe that's the case here, as the strategies and tools available to you don't really change, only what spaces in front of you you're likely to land on based on your dice.
  • Items
    • Definitely a long ways off, for all the reasons listed in the "No Items" section of "Current State".
  • Extend the AI to choose which dice to use.
    • Phase 1 can be being able to choose between their character dice and the d6.
    • Phase 2 would be also having access to their ally dice they could use.

Current Performance

These are measurements done on my personal PC.

Average Total Time of Simulations by Simulation Count (seconds)

Board Name 5,000 10,000 50,000 100,000 500,000 1,000,000
Whomp's Domino Ruins 1.761 2.944 12.400 24.251 118.655 234.486
Megafruit Paradise 1.634 2.728 11.272 21.434 108.777 216.528
King Bobomb's Powderkeg Mine 1.576 2.590 11.792 21.940 111.787 203.243
Kamek's Tantalizing Tower 1.529 2.509 10.668 19.935 111.505 210.027

Simulations Per Millisecond by Simulation Count

Board Name 5,000 10,000 50,000 100,000 500,000 1,000,000
Whomp's Domino Ruins 2.839 3.397 4.032 4.124 4.214 4.265
Megafruit Paradise 3.060 3.666 4.436 4.665 4.597 4.618
King Bobomb's Powderkeg Mine 3.173 3.861 4.240 4.558 4.473 4.920
Kamek's Tantalizing Tower 3.270 3.986 4.687 5.016 4.484 4.761

About

Running different tests to do a statistical analysis of the character dice in the video game, Super MarioParty.

Resources

Stars

3 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages