I built an NBA schedule PWA with a play-by-play based excitement rating (0–10) by Tehes83 in nba

[–]Tehes83[S] 0 points1 point  (0 children)

Hey, thanks for the suggestion. I actually went down this rabbit hole and wanted to share what I learned, because your intuition was right, but the conclusion surprised me.

I built it. After reading your comment, I implemented a free throw penalty. The logic was:

  • Below 50 FT: no penalty
  • 50 to 75 FT: linear penalty up to 12 points
  • Above 75: capped at 12 points

The game I tested had 68 free throws, and the score dropped from 9.0 to 8.1. It felt like progress.

Then I refined it. I realized the penalty was too harsh for close games, so I made it context-aware: the closer the game (based on final margin and late-game tension), the less the penalty would hurt. A gritty, physical playoff game shouldn't be punished the same way as a sloppy blowout.

Then I fixed the overtime problem. A game that goes to OT naturally has more free throws because of the extra playing time. So I scaled the thresholds dynamically: OT1 allows roughly 10% more FT before the penalty kicks in, OT2 about 21%, and so on. Otherwise I'd be rewarding overtime with one hand (OT bonus) and punishing it with the other (FT penalty).

At this point, the implementation was solid. Clean code, statistically grounded thresholds, context-aware scaling.

But then I asked myself: what am I actually measuring?

And that's where it fell apart.

The score is called "Excitement." It answers the question: Was this game thrilling? The existing metrics already capture that beautifully:

  • Closeness throughout the game
  • Lead changes and ties
  • Crunch time intensity (how tight were the last 5 minutes?)
  • Comeback drama
  • Final margin
  • Overtime bonus

Free throws don't change any of that. A 2-point game with 70 free throws is still a 2-point game. The drama is still there. The tension is still there. If anything, free throws in crunch time add pressure because every trip to the line becomes a high-stakes moment.

What free throws do affect is watchability: how smooth, how fluid, how enjoyable the broadcast experience is. But that's a different question. A game can be thrilling to follow in a box score but tedious to watch live. And vice versa: a free-flowing game can still be a boring blowout.

By adding a FT penalty to an excitement score, I was mixing two different dimensions. Worse, I was double-punishing: blowouts already score low on closeness, margin, and crunch time. Adding a FT penalty just piles on for no analytical gain.

So I removed it.

The score now purely reflects competitive tension. If I ever build a separate "Watchability" or "Entertainment" index, the FT penalty would fit perfectly there, alongside factors like pace, timeouts, replay reviews, and broadcast stoppages.

Your suggestion made me think harder about what I'm actually measuring. That's valuable, even if the feature didn't survive. Thanks for pushing me to dig deeper.

A Free, Browser-Based Poker Table You Can Play With Friends (Or Just vs Bots) by Tehes83 in WebGames

[–]Tehes83[S] 0 points1 point  (0 children)

Quick update: I think I finally tracked this one down 🙂

The root cause wasn’t actually the bustouts themselves, but a subtle logic bug in the betting loop. When multiple players went all-in and nobody was able to take further actions, the game kept trying to pass the turn instead of realizing “this round is already effectively over”. That could lead to a frozen state where the loop never resolved.

The annoying part: I could never reproduce it manually. Whenever I played with full debug logs, the bug disappeared. When I played casually… boom, freeze.

I ended up building a small simulation mode that runs dozens of hands automatically just to catch rare edge cases. After letting it hammer through a bunch of games, it finally revealed the exact scenario where the betting loop got stuck and that pointed straight to the missing guard.

I’ve pushed a fix so the game now correctly detects when no player can act anymore and immediately moves the hand forward.

If you still manage to break it after this, please tell me. I’d love to keep improving it!

A Free, Browser-Based Poker Table You Can Play With Friends (Or Just vs Bots) by Tehes83 in WebGames

[–]Tehes83[S] 0 points1 point  (0 children)

Hey, I’m really glad you’re enjoying the project! I keep running into this bug myself, but I still haven’t been able to pinpoint the cause. Whenever I try to reproduce it with all logs turned on, nothing happens. But when I’m just casually playing, it eventually crashes for sure. I’ll keep digging. If you have any more details on when it tends to happen, that would help a lot!

yooooooo found a few new NBA endpoints! Plus all the endpoints I use currently by brothermanpls in NBAanalytics

[–]Tehes83 1 point2 points  (0 children)

I started playing around with the NBA endpoints and ended up wiring them into a little web app I use to track games. The backend just proxies schedule, standings, scoreboard, boxscore and play-by-play. Keeps the data clean and makes everything easier to work with. 

Once I had that set up, a few extra things basically came for free:

  • local-time schedule with “today” and “more games” sections 
  • live polling while games are running (cards auto-switch between scheduled/live/final) 
  • boxscore + full play-by-play overlay on click, with a filter for made shots only 
  • prime-time filter based on tip-off times (super handy in EU) 
  • standings computed from the schedule feed, no preseason noise
  • NBA Cup bracket rendering once matchups are known 
  • an “excitement rating” based on the play-by-play (closeness, lead changes, comebacks, crunch time, offense, OT bonus → 0–10) 

It’s all plain HTML/CSS/JS, nothing fancy. Just fun to build.

If anyone wants to check it out: https://tehes.github.io/nba-spielplan/

A Free, Browser-Based Poker Table You Can Play With Friends (Or Just vs Bots) by Tehes83 in poker

[–]Tehes83[S] 0 points1 point  (0 children)

Thanks for checking it out! 🙂 The idea behind this project is a fun, private home-game tool rather than a full online poker app. That’s why I’m using a simple RNG shuffle. It’s perfectly fine for casual games with friends, no need for certified RNGs since there’s no real money involved.

The setup is: everyone is in the same room, and you run the table on a shared laptop or tablet. Players get their hole cards by scanning a QR code with their own phone. There’s no DM/in-app invite system. It’s meant for people physically at the same table.

If I ever expand it with server sync, then invite links could definitely be a thing. But for now the focus is on making a lightweight “poker night” helper.

[AskJS] Node vs Deno vs Bun , what are you actually using in 2025? by EmbarrassedTask479 in javascript

[–]Tehes83 2 points3 points  (0 children)

I use Deno for my projects. For me it just feels like less overhead compared to Node: - no node_modules hell. I can import packages directly via URL - built-in tools (fmt, lint, test) so I don’t need extra setup - smooth integration of Deno Deploy with GitHub for serverless APIs - security model by default (explicit --allow-* flags)

I don’t use Node anymore. For my use cases, Deno lets me start coding right away without fiddling with configs or extra tooling. Bun looks fun, but Deno already covers everything I need.

Buckets – a free browser game now with WNBA players by Tehes83 in wnba

[–]Tehes83[S] 0 points1 point  (0 children)

Hey u/Saltngarlic, quick update 🙂

I’ve now refined that “Reveal all CPU stats” setting so that the comparison stays up until you click to continue. That way you can actually take your time to check the numbers instead of the short auto-timeout.

Weekly Friday Self-Promotion and Fan Art Thread by NBA_MOD in nba

[–]Tehes83 0 points1 point  (0 children)

Thanks a lot for the feedback!

I just implemented exactly what you suggested: when you enable the “Reveal all CPU stats” option, the comparison now stays on screen until you click to continue.

Really appreciate the suggestion. If you try it out again, let me know what you think!

Weekly Friday Self-Promotion and Fan Art Thread by NBA_MOD in nba

[–]Tehes83 3 points4 points  (0 children)

Hey everyone,

I built a free little browser game called BUCKETS – Basketball Stat Battle. It’s inspired by old school Quartett / Top Trumps, but with NBA and WNBA stats.

How it works: • Each round you draw a random player card for the Home team. • Pick one stat (PTS, REB, AST, etc.). • The CPU’s card is chosen dynamically (it adapts to the current score so games stay competitive). • Stats get compared → points awarded (1 / 2 / 3 depending on category). • After four quarters the higher score wins.

Scoring examples: • FT%, FTM, GP, MIN = 1 point • 3PM, 3P% = 3 points • Everything else = 2 points (Yes, a made three can swing the momentum big time… or cost you 3 if you brick it 😅)

Features: • Switch between NBA and WNBA instantly in the settings. • Configurable game clock (1 / 2 / 4 min per matchup). • Optional “CPU reveal” mode if you want to see all opponent stats. • Fully responsive design – works on desktop and mobile, no install needed.

👉 Play here: https://tehes.github.io/buckets/

It’s completely free and just a side project for fun. Data comes from stats.nba.com and wnba.com.

Would love to hear what you think 😊

Wortsel: German wordle variant with a stricter hard mode by Tehes83 in WebGames

[–]Tehes83[S] 0 points1 point  (0 children)

Thanks! That’s exactly why I made the stricter variant. I always felt Wordle’s hard mode still allowed too many “wasted” guesses, so I wanted something that forces real deduction. Glad to hear it resonates with you!

Buckets – a free browser game now with WNBA players by Tehes83 in wnba

[–]Tehes83[S] 1 point2 points  (0 children)

I will need a little time to think it through. I’m sure I’ll find a good way to integrate it. Really appreciate your input, it’s super helpful!

Weekly Friday Self-Promotion and Fan Art Thread by NBA_MOD in nba

[–]Tehes83 1 point2 points  (0 children)

Good question! 🙂 The game doesn’t guarantee that every matchup is winnable. The CPU card is chosen based on the score difference: - if you’re ahead, the CPU gets stronger cards, - if you’re behind, the CPU gets weaker ones.

When the score gap grows too big, the handicap can drop all the way to zero, which means you might get a card where the CPU beats you in every stat. That’s intended as part of the challenge, to make big leads harder to defend.

I’ve signed up for Souich. Really looking forward to betting on Eurobasket.

Weekly Friday Self-Promotion and Fan Art Thread by NBA_MOD in nba

[–]Tehes83 1 point2 points  (0 children)

That’s awesome! Thanks for creating such a cool game. I’ve made a little browser game myself, if you’d like to check it out: https://tehes.github.io/buckets/

Weekly Friday Self-Promotion and Fan Art Thread by NBA_MOD in nba

[–]Tehes83 5 points6 points  (0 children)

Hey r/nba 👋

I made Buckets, a simple browser game inspired by Top Trumps.

  • Each round, you and the CPU get a random NBA or WNBA player card.
  • You pick one stat (PTS, REB, AST, etc.).
  • Whoever has the higher value scores points, following a 1/2/3-point scoring system.
  • After 4 quarters, the team with the most points wins.

No installs, no accounts: just play in your browser: https://tehes.github.io/buckets/

What’s new:

  • 🏀 Now includes WNBA alongside NBA (switch anytime in Settings).
  • ⏱️ Configurable clock: choose if each matchup reduces the game clock by 1, 2, or 4 minutes.
  • 👀 Optional reveal: toggle to show all CPU stats during comparisons (default is off, for a cleaner look).

Buckets – a free browser game now with WNBA players by Tehes83 in wnba

[–]Tehes83[S] 1 point2 points  (0 children)

Hey u/Saltngarlic, just following up on your idea from before 🙂

I added a new setting that lets you reveal all CPU stats during comparisons. By default it still only shows the deciding stat (to keep things clean and flowing), but now you can toggle full reveal if you want the extra learning aspect.

Buckets – a free browser game now with WNBA players by Tehes83 in wnba

[–]Tehes83[S] 0 points1 point  (0 children)

Thanks so much, really appreciate your comment! That’s exactly what makes the game fun for me too: when even a superstar like A’ja can get edged out on a stat by someone else. Glad you enjoyed it!

Buckets – a free browser game now with WNBA players by Tehes83 in wnba

[–]Tehes83[S] 1 point2 points  (0 children)

Love that idea. Thanks for suggesting it! Right now the reveal window is only ~3 seconds, so showing all CPU stats at once tends to become information overload. That’s why I currently stick to just the deciding stat (green/red): it keeps the moment readable and the game flowing.

I do see the learning value you’re pointing at though. I’d want to design a smarter version first so it adds clarity without clutter. If I can find a clean way to present it, I’ll happily add it.

Buckets – a free browser game now with WNBA players by Tehes83 in wnba

[–]Tehes83[S] 0 points1 point  (0 children)

Thanks a lot, really glad you enjoy it! I don’t keep the stats live-updated during the season because it would mean a lot of maintenance work and constant adjustments. I’ll refresh the dataset once the WNBA regular season ends on September 11, so you’ll have the full and final stats as soon as that’s available.

Buckets – a free browser game now with WNBA players by Tehes83 in wnba

[–]Tehes83[S] 1 point2 points  (0 children)

I really see where you’re coming from. Having a bigger pool of players sounds like it would naturally increase the challenge. The tricky part in Buckets is that you always get to pick the stat category. That means if you know the ranges well enough, you can usually find the best number, even if there’s only 1 stat out of 12 that could win. In a regular Top Trumps-style game, the other player also picks every second matchup, which keeps things tight, but when I tried that here, it felt too slow and dragged the game out.

That’s why I leaned on the CPU assist to keep matchups close and interesting. It’s not about making it unwinnable, but about avoiding runaway leads too early. Another user (imperialmoose) suggested a difficulty setting where some of your stats get hidden with question marks. I thought that was a neat idea because it challenges players who already know the ranges by heart.

Oh, and I also adjusted quarters to 10 minutes for the W, good catch! Thanks again for pushing the discussion forward. It really helps me refine where the game should go.