zengm-games / zengm

Basketball GM (and other ZenGM games) are single-player sports management simulation games, made entirely in client-side JavaScript.
https://zengm.com
Other
360 stars 132 forks source link

Highlight stats everywhere #149

Open garyking opened 8 years ago

garyking commented 8 years ago

Thoughts on what I've done? Ever consider implementing any of these? I can send a PR for them eventually. I know a bit of React and not as much on Knockout, and so I'd prefer to work on the React version, so I can also take the time to learn more about it. But I guess at the moment, it's about halfway done?

The game is great, but I find that the stats could be more useful. All the information to make an informed decision is there, but it would be nice if it was cleaned up and organized a bit more, to make the game more fun and efficient to play.

The game can be easily gamed if you really wanted to. Just blow up your team whenever you don't even make the playoffs, cheat your way to the #1 pick, the best player in the free agency, etc. But sometimes I want to micromanage things a bit more, to try to make the trade that will give me a few extra wins, to get that extra edge. I normally play the game by zooming through decades at a time, but found that to be pretty boring pretty quickly.

Roster

roster

Player Ratings

player ratings

Free Agents

free agents

dumbmatter commented 8 years ago

Thanks so much for the detailed feedback, and also all your other posts here :)

But I guess at the moment, it's about halfway done?

Less, 7 of 62 pages converted. The pace should pick up, but my free time is variable, and also some of the remaining ones might be complicated. I'm working on the draft now, which is one of the more complicated ones.

The game can be easily gamed if you really wanted to. Just blow up your team whenever you don't even make the playoffs, cheat your way to the #1 pick, the best player in the free agency, etc.

Yeah, needs some adjusting there too... free agents being too easy to sign is a big one, I am probably going to decrease the "refuses to sign" threshold some time soon.

On the roster, I've estimated which skills are missing.

The idea of "Roster Needs" is good, but the current UI you have is too confusing, nobody will no what those numbers mean.

I've highlighted players that have no skills, are too old, or have a low Overall (with exceptions to young players). I've highlighted players with a high Overall and Potential.

I don't think that's necessary, just makes things look busier, and there's also no indication of what the highlighting means. I think I might prefer a bit more minimalism than you in design (which I know is a ridiculous thing to say given how complicated the UI is already).

I added two form inputs, a filter for the max overall to show, since I can rarely afford to trade for 70+ players.

A filter system is a good idea, but should be more general (filter on age, position, ratings, etc). This is something to revisit when the React port is done, I think. The grid will be much more easily customized. And then that filtering could apply to all the grids. Things like customizing the columns shown would also be feasible.

A checkbox for Free Agents only, since I can't find a way to show stats for just FA players.

Valid point, but would be better in the teams dropdown menu.

When I click on a column heading, that column's values are highlighted, including relevant columns, and those values are highlighted accordingly. Old players, players with no skills, and low overall players are highlighted red. Green players have no red items on their row at all, so they are players you should really consider.

Not a fan of these ideas, same reasoning as above.

A row is automatically faded if the player refuses to sign with you, or you can't afford them.

This I like, although I'd probably make it more subtle.

Names with no skills are red. Old players are red. Bad players are red.

Don't like.

garyking commented 8 years ago

Certain features are probably not necessary, that's true. However, for a few, I think something needs to be done.

For instance, when looking for good rebounders, most people won't realize that Height plays such a big role. At first, I would just grab the guy with the highest Rebound rating. I had to look through the source to find that Height played a big role in that. Same goes for a lot of other ratings. It really sucks when you get one of the highest Rebound rated guys in the game, then he barely grabs 0.1 rebounds. And then once I realize that I need to get someone with high Rebound and Height, that definitely changed things. (Speed being important for Steals is another one.)

I played the game a few years ago for a few days then stopped, because I always felt I had the best players on my team yet it still sucked. And sometimes I had the worst players on my team and it did well, so I felt that nothing I did mattered. My strategy at the time was simply to quickly sim through many years and like I said, get the #1 draft pick, get the top free agent, etc. and win by making major team overhauls all the time like that. But it got boring fast because my actions could essentially be automatic and I'd be rewarded with a championship. There was no thought to the game.

Now that I know how the engine works, I can determine exactly what I need to win. (Which is why I also play as Sacramento now, although I still have a tough time winning a championship...)

And for the roster, sure the UI is ugly, but it'd definitely be useful to have some guide as to what needs to be improved on the team. I usually simulate one month and then check team stats for what I'm missing, but would be nice to also be able to make these decisions before the season even begins.

Also, for "refuse to sign", I always only play as Sacramento (ranked 30th), and players often refuse to sign with me. Is it because of the difficulty level associated with this city?

Recent Reddit post which I think is a pretty common feeling among players, especially new ones.

dumbmatter commented 8 years ago

For instance, when looking for good rebounders, most people won't realize that Height plays such a big role.

You are right, but it is kind of funny to read that sentence :)

I don't know of a better way to convey it. Previously there was some thought of displaying the "composite ratings" as well, so you'd have the raw rating for isolated abilities and the composite ratings for cumulative effects. Never actually went live with it though, partially because of my hesitance to add a bunch of extra stuff to the UI.

Also, for "refuse to sign", I always only play as Sacramento (ranked 30th), and players often refuse to sign with me. Is it because of the difficulty level associated with this city?

Yes, see genBaseMoods in core/player.js for all the factors. But probably it should be even more common.

garyking commented 8 years ago

I updated my most recent post above, not sure if you saw it all. Particularly the link to today's Reddit post, which I think is pretty common.

The amount of information is too much in the tables, which is why I highlighted specific info to make it easier to narrow down. If that were done, then it'd be made clear that Height is important for Rebounding. Right now it is tough to spot these things because there is basically too much information.

The Rebounding was just one example. Perimeter defense requires Height, Strength, Speed, Jump, and Steal, for instance.

Some of this confusion could be alleviated if a player didn't have Rebounding at 100 and Height at 1, though; not sure why that happens.

dumbmatter commented 8 years ago

Some of this confusion could be alleviated if a player didn't have Rebounding at 100 and Height at 1, though; not sure why that happens.

Because the ratings are all isolated attributes. The rebounding rating refers to rebounding talent - like boxing out, reading how the ball bounces off the rim, timing, etc. Somebody in the NBA reasonably close to 100 rebounding at 1 height is Chris Paul, who's 6 feet tall but still gets 5 rpg.

This all may be somewhat unintuitive (I'm actually not sure about that, but it's possible), but it's also kind of cool to see how combinations of ratings produce different types of players. Like if you're a great shooter who can't get his shot off, you're still better than a bad shooter who can't get his shot off, but you're not going to be a dominant scorer. Etc.

Basically your problem would be solved if we revisited the "show the composite ratings" idea, but that's a lot of information, and it also might veer too close to giving away too much about the internals of the game.

garyking commented 8 years ago

When I read advice on the game, people usually say to focus on players with skills, which is good advice only because a player without skills makes it hard to determine what they're actually good at; looking at their ratings doesn't easily tell you if they are good at blocking, since it's a combination of height, jump, and block. Like I said, when I realized that the skills were only just indicating that certain ratings met a certain threshold, then I begun to pick up players that were just barely below the skills threshold and therefore didn't have the skills badge, and that they were good enough.

The same Reddit post linked above has comments like this which says you need a top 10 player (common advice), which is simply not true, as long as you build your team well. And the post also says to tank, and the parent comment says to get players with skills.

This advice is just shortcuts. It's basically because how the game works is really mysterious, so only a few pieces of advice can really be applied in a general fashion, which is to tank all the time, get top picks, get top 10 players, only get players with skills. Yet the game can be much deeper than that if people only knew how it worked, through useful UI hints. The game is basically just thrown at the player and says "here you go", with a ton of numbers. I think that a splash of color highlighting here and there would definitely do wonders in gently guiding the player.

Basically at the moment, the game has a very arcade-y feel to it, where you just try to use tried-and-true strategies to win. It's fun for a short while, but not for the long haul. On the other hand, I'm trying to perhaps "game the system", as you might consider. But I feel like the way that I'm playing BBGM, it's more like playing the Civilization game series, where you basically know how the system works, and you use all that information to your advantage. (And the game is still challenging.) It seems much more fulfilling to play that way.

Tank, get top picks, sign top free agents, win championships, rinse and repeat. Before you know it, you've blown through decades doing the same thing over and over again, rather than trying to improve every season bit by bit by looking for just the right player with an overall rating of 50 to take you to the next level.

battaile commented 8 years ago

Ah composite ratings display, my baby :)

https://raw.githubusercontent.com/battaile/basketball-gm/modded/modded%20player%20card.png

Objectively speaking, this made the game 1000x better and you're a horrible monster for not merging.

battaile commented 8 years ago

it also might veer too close to giving away too much about the internals of the game.

Because you are armed with slightly better info, it exacerbates what garyking refers to above when he's talking about ease of winning, but I think that is a separate issue.

My feeling when playing wasn't that viewing the composites gave too much away about internals, but really the opposite. Viewing the composite ratings actually made it easier to get into the kind of immersive mindset he references here when playing:

But I feel like the way that I'm playing BBGM, it's more like playing the Civilization game series, where you basically know how the system works, and you use all that information to your advantage.

but it's also kind of cool to see how combinations of ratings produce different types of players.

This is such a delicate balance to strive for, its real easy for it just to turn into a math problem. There are a couple of things with the sub-attribute naming that I think make this even harder on the users mental-mapping:

  1. height rating - maybe less confusing to say 'length', as its effectively how tall you play
  2. skills named same as stats - rebounding, steals, etc sound like they're telling you how good the player is at those things (maybe rebounding rating being called 'positioning' and steals rating being called 'hands' or something) I know these are explained at various places, but its still just a lot to dump on your brain when its already trying to figure out how this players dozen ratings interplaying with the dozen ratings from the other 9 guys on the floor are producing these results.
garyking commented 8 years ago

The composite ratings look great. That's essentially how NBA 2k does ratings, if I recall; you can show the full numerical breakdown, or the composite ratings, such as Rebounding rating when combining Rebounding and Height.

A player with Rebounding at 100 and Height at 0 would have a composite Rebounding rating of perhaps C-, say? While Rebounding at 80 and Height at 90 would have A, perhaps.

And yeah, the fact that there's a Rebounding rating and Rebounding skill is confusing, because I've always thought that they were a one-to-one mapping, when they are definitely not. Same with other skills.

And then there's the ones like Dp where only 3 players in an entire league typically have this skill, or even A where like five have it, and all five are superstars. The threshold should probably be lowered for those.

It might make more sense to hide the ratings and instead only show the composites, if there are too many numbers (which I think there are).

It just sucks to play the game, and you feel like there's always a fog over how the game works. If we empower players with this extra info, we could increase the game's difficulty if necessary to compensate.

Anyway, I personally make the game harder on myself by never dumping all my players at once, otherwise it's just way too easy, even now. And unfun, because I can play the game on autopilot if I really wanted to do it that way. Watching people play the game on YouTube really helped me further understand how others play the game, and I used to play it like that a few years ago too, and it got boring really fast.

dumbmatter commented 8 years ago

Let's revisit this after the React rewrite, but I probably can be convinced of this. Although it raises more questions, like all the other screens showing ratings, do they need more stuff on them too now?

garyking commented 8 years ago

Which screens do these include? Would we include both composite ratings AND actual ratings, or just the new composite ones?

Ideally there's a switch in the corner of every ratings page. Ratings would appear as the composites probably, since they're most useful at a glance, and the switch would convert the table you're looking at to the actual ratings.

Regarding the React rewrite, which pages have been converted so far? Is there a list of which pages you plan on working on next? So that I can jump in to pages that have been converted, to add a few things here and there, some changes which I may possibly submit, others which don't make sense for BBGM but are useful to myself. I could work on mockups perhaps too, for the composites. Probably have @battaile apply his changes again first.

dumbmatter commented 8 years ago

Which screens do these include? Would we include both composite ratings AND actual ratings, or just the new composite ones?

I guess just player and player ratings pages.

Regarding the React rewrite, which pages have been converted so far? Is there a list of which pages you plan on working on next?

These ones have been converted or are in progress: https://github.com/dumbmatter/basketball-gm/tree/react2/src/js/views/views

Might take me some time to get through it all... there's a lot of pages...

dumbmatter commented 8 years ago

But really, I should be encouraging contributions, so feel free to send a PR to any page in the react2 branch, whether it's React or Knockout. If I need to port it over, I'll port it over.

battaile commented 8 years ago

I can definitely see where it make sense to do it after the React port (for one thing since it could then be a React component). It'd be easy to port it over afterwards but that's kind of a lot of extra effort to add to what you've already got on your plate. If you've down to the point of just converting views over I'll definitely get my dev environment set up again and see if I can help you get through them.