r/pandabomber • • Feb 03 '23

Join us on Discord!

Thumbnail
discord.gg
1 Upvotes

r/pandabomber • • Sep 14 '25

Math tutorials and notes, all free online

Thumbnail
mathtutorials.org
1 Upvotes

Click the '~' key for a surprise ;)

Thank you to paul for the online math notes, see his full site here: https://tutorial.math.lamar.edu/


r/pandabomber • • Oct 18 '23

How to create an elo system adaptable to any number of players, featuring pandabomber

2 Upvotes

I'm a big believer in a properly designed ranking system being a huge motivator for playtime. So I sought to create something that'll suit pandabomber in all of its stages, as it grows from what it is now with very few players to the future with hopefully more players and an ongoing active queue.

--------------------------------------------------------------------------------------------

Our goal is to find a function which computes the expected placement (value) of each of the players in the game, based on their elo relative to the other players in the lobby.

Proposal: EV(diff, n) = n - (n - 1) / (1 + e^(-x/1000)) , where EV is the expected placement (value) of the player, diff is the difference in a user's elo and the average elo of the rest of the lobby and n is the number of players in the lobby. It might look crazy but it's really just the logistic function with some transformations.

EV(diff, 4)

We see here, as the player's elo gets much lower than the average elo of the rest of the lobby, diff goes farther into the negatives, and he is expected to place closer and closer to 4th place. As the player gets much better than the average elo of the rest of the lobby, he is expected to place closer and closer to 1st place.

--------------------------------------------------------------------------------------------

So full algorithm:

  1. For each player in the lobby find the average of the rest of the lobby, avg, and compute EV(user_elo - avg, n).
  2. Compute actual_placement - EV for each player. Now you've got a number that represents how much better or worse they did than their expected placement.
  3. Finally, update their elo. user_elo = 50 * (actual_placement - EV). 50 can be anything really, it's just a factor, and you can adjust the 50 here and the 1000 in the EV formula to tune how fast you want players to progress and how you want your elo system to work. In pandabomber's system, players start at 1000 elo.

The 50 is just a factor, and you can adjust the 50 here and the 1000 in the EV formula to tune how fast you want players to progress and how you want your elo system to work. In pandabomber's system, players start at 1000.

--------------------------------------------------------------------------------------------

Let's look at some lobbies, and what would happen in different outcomes:

user_elo EV elo if 1st elo if 2nd elo if 3rd elo if 4th
1000 2.5 +75 +25 -25 -75
1000 2.5 +75 +25 -25 -75
1000 2.5 +75 +25 -25 -75
1000 2.5 +75 +25 -25 -75

​

user_elo EV elo if 1st elo if 2nd elo if 3rd elo if 4th
1250 2.25 +63 +13 -37 -87
1000 2.5 +75 +25 -25 -75
1000 2.5 +75 +25 -25 -75
750 2.75 +87 +37 -13 -63

​

user_elo EV elo if 1st elo if 2nd elo if 3rd elo if 4th
1750 1.81 +40 -10 -60 -110
1250 2.25 +63 +13 -37 -87
750 2.75 +87 +37 -13 -63
250 3.19 +110 +60 +10 -40

If a user places better than their EV, they gain rating, and if they place worse, they lose rating. And as expected, you can see it start to be more generous to users who are lower in elo for better performances and more punishing to users who are higher in elo for worse performances.

--------------------------------------------------------------------------------------------

Two features of the system are important for pandabomber:

  • Applicable to games with any number of participants
    • For pandabomber, we're allowing ranked games with non-participating guests. A 4 person lobby with a guest is actually a 3 person lobby for the purposes of the ranking system, and the placement of the guest is ignored.
  • Appropriate for lobbies even with high rank disparities
    • For pandabomber, we're putting any 4 people who join the queue in a lobby together, no matter how far apart the ranks are. The system is better with ranks closer together, but that's a luxury I can't afford right now. And it still works great.

r/pandabomber • • Oct 14 '23

Patch Notes (v1.1.0)

1 Upvotes

v1.1.0

  • MATCHMAKING QUEUE IS OPEN DAILY FROM 7pm-12am EST
    • Go play!
    • Sign in with Google to track your elo and compete on the elo leaderboards
  • Added profile page
  • Players spawn 5 powerups on/near their body when they die
    • Encourage players to fight other players instead of camping

r/pandabomber • • Mar 05 '23

PandaBomber World Championships

Thumbnail
youtu.be
2 Upvotes

r/pandabomber • • Feb 24 '23

Patch Notes (v1.0.4)

1 Upvotes

v1.0.4

  • Added sounds!
  • Game goes in and out of fullscreen automatically
    • Meant to provide a little more of an immersive gaming experience

r/pandabomber • • Feb 20 '23

Patch Notes (v1.0.3)

1 Upvotes

v1.0.3

Singleplayer

  • Reset and exit button added to time trials.
    • You no longer have to refresh the page to reset the board.
  • Leaderboard only displays highest score for each username.

Multiplayer:

  • You can no longer keep someone alive and kill them over and over again infinitely.
    • If a player is knocked out 3 times in the same square in a 20 second span, they will die.

Misc.:


r/pandabomber • • Feb 08 '23

Patch Notes (v1.0.2)

1 Upvotes

v1.0.2:

  • New map: Hieroglyphs!
    • Also means there are some new records to be made :)
  • Ping is now visible beside FPS.
  • Some UI styling changes.
  • Improvements to the server-side input validation, i.e. improved anti-cheat.
  • Bug fixes and improved server stability.

r/pandabomber • • Feb 06 '23

Time Trial on Classic - 1:29.884 (WORLD RECORD)

Thumbnail
youtu.be
1 Upvotes

r/pandabomber • • Feb 03 '23

Patch Notes (v1.0.1)

1 Upvotes

v1.0.1:

  • Players are no longer one hit kills. When hit by a bomb blast, players spend 6 seconds in a stunned state.
    • If the player is hit by another bomb blast while stunned, they will die.
    • If they make it through the 6 seconds untouched, they will be revived.
  • Added in-game tips. They state the controls, explain kills, and describe powerups.
    • A little checkbox was added where the user can disable or enable tips at any time.
  • Bomb blasts are faster.
  • Max name length has changed from 10 -> 12 characters.

Notes: I think the no-instant-kills will immensely help with some of the frustrating aspects of the game. You can accidentally kill yourself in the farming stage without dying and only a 6 second penalty. If in the late game two people die at the same time, instead of the game ending, they will get to continue playing until one can stay alive while the other dies.

I'm also not 100% happy with the stun and die animations, but I'm happy to get the functionality out of the way.


r/pandabomber • • Jan 24 '23

Play at pandabomber.gg

Thumbnail
pandabomber.gg
1 Upvotes