Monika-After-Story / MonikaModDev

DDLC fan mod to extend Monika
http://www.monikaafterstory.com/
Other
1.19k stars 685 forks source link

Chess features: 1, highlight last move, 2. save game log 3. skill level-dependent responses #810

Closed MarkusRamikin closed 6 years ago

MarkusRamikin commented 6 years ago

I love the chess. She seems to get better as you beat her, and worse as you lose, which is great, I actually mostly play this mod for the chess now.

Suggestion 1: make it more visually obvious somehow what Monika's last move was.

Ideally, include a box showing a notation past moves. But more simply, the color highlight that exists is easy to miss.

Suggestion 2: finished games should be saved to a text file in chess notation. (I just had an awesome game which I barely won - it would have been a treat to review it!)

ThePotatoGuy commented 6 years ago

Regarding suggestion 2, is PGN the appropriate notation for chess games?

MarkusRamikin commented 6 years ago

Sure!

Just BTW, I looked up the script. The dialog line "You really are an amazing player!" is only available if you beat her at Stockfish level 20? So basically, Magnus Carlssen could get it, but no human actually likely to play this game is ever going to see that line? grin Come on, give us a chance!

ThePotatoGuy commented 6 years ago

Yeah we could look into lowering that value. What level are you at? If you don't know, upload your persistent file here and I can check it.

MarkusRamikin commented 6 years ago

Oh, I'm terrible. I don't expect to ever see that message myself. But it had occurred to me that maybe no human has or ever would see it the way it's coded now, not without cheating.

Although maybe that's the point, that a computer/AI playing at its best is unbeatable without cheating, and Monika is meant to be pointing this out?

Then how about instead adding new responses every few tiers? That would impact more players instead of the top few and/or the ones cheating, and let people see their strength without having to somehow unpack the persistent, or lower immersion by putting the actual number in the game. Something like:

        if persistent.chess_strength<2:
            m "I have to admit, I put less pressure on you there than I could have..."
            m "I hope you don't mind! I'll be challenging you more as you get better, I promise!"
        elif persistent.chess_strength<3:
            m "I'll get you next time for sure!"
        elif persistent.chess_strength<4:
            m "You really didn't play badly there!"
        elif persistent.chess_strength<5:
            m "This was an interesting game!"
        elif persistent.chess_strength<6:
            m "This game was quite stimulating!"
        elif persistent.chess_strength<7:
            m "Excellently played, [player]!"
        elif persistent.chess_strength<8:
            m "You're quite a strong player!"
        elif persistent.chess_strength<9:
            m "You're a skilled player indeed, [player]!"
        elif persistent.chess_strength<12:
            m You're a very challenging opponent, [player]!"
        elif persistent.chess_strength<20:
            m Are you a professional chess player, [player]?"
        else:
            m "You really are an amazing player!"
            m "Are you sure you're not cheating?"
        if persistent.chess_strength<20:
            $persistent.chess_strength += 1

Just some ideas. Of course I don't know at what level exactly Stockfish becomes an opponent for professionals, 12 is just my random guess.

ThePotatoGuy commented 6 years ago

Updates: (#1010)

Okay this is going to be in a 2 phase release unless chess-pgn is merged soon. Phase 1: (0.7.1)

Phase 2: (0.7.3)

ThePotatoGuy commented 6 years ago

This is ready for 0.7.4.