Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

autoplay #70

Open
doniks opened this issue Jan 3, 2024 · 8 comments
Open

autoplay #70

doniks opened this issue Jan 3, 2024 · 8 comments
Labels
enhancement New feature or request

Comments

@doniks
Copy link

doniks commented Jan 3, 2024

It would be nice to have an auto-play feature. I have the algorithm place all my soldiers and invest my money. That way I could speed up tedious "obvious" moves.

Let me give some background: I really like the game and I'm quite addicted to it and play it a lot. But now I'm getting into the habit of not actually playing until the win anymore, because at some point I am completely certain that I will win, but it is still going to be multiple rounds. At this stage I expect that I don't need to be smarter than the algorithm anymore, I just need to dig through.

Of course, in a way it doesn't really matter whether i play until the end or exit prematurely, since there is no high score or anything like that. But still it would feel more satisfactory to reach the winning moment, but in some situation it's just too boring.

I would envision that there is a new button, maybe stuck in the menu to "autoplay". That makes all the moves for me, like it does for the enemies. If I like that move, I can press the button to end the turn. If I don't like the moves, I could undo the whole autoplay at once and then play manually. Or maybe I just make a few manual moves that I find important and then I let the algorithm fill in the rest.

@doniks
Copy link
Author

doniks commented Jan 6, 2024

Screenshot_20240106-122312

An example. I just killed the yellow barron. I don't think there's a chance to lose this anymore, but it will take a couple of rounds to finish

@Sesu8642
Copy link
Owner

Sesu8642 commented Jan 6, 2024

It's an interesting idea. The solution i originally intended for this problem is that the enemy gives up at some point. Tweaking this threshold could be an easier solution. The dialog appearing is what you consider a win, right?

@Sesu8642 Sesu8642 added the enhancement New feature or request label Jan 6, 2024
@doniks
Copy link
Author

doniks commented Jan 6, 2024

Hehe. Good question. Yeah, I guess the dialog is what's winning.

Even though sometimes I find it also somehow gratifying to completely wipe out all enemies. Or even play until everything is blue.

@Sesu8642
Copy link
Owner

Sesu8642 commented Jan 7, 2024

The condition for the dialog to appear is that the player has 80% of all tiles in a single kingdom, excluding the ones that aren't in any kingdom at all. I could tweak this to maybe 75%. I hesitate to increase it much more because there are situations where one player has most tiles but their kingdom can be cut in 2 or more, allowing the other player/bot to still win.

Another thing I remember seeing somewhere is that when the surrender of the bots is accepted, the map is shown as one big kingdom, as if the player had played until the very end. This might be more satisfying but possibly annoying if it adds any "forced" delay only for the player to see the map again. Need to think more about this one.

@doniks
Copy link
Author

doniks commented Jan 7, 2024

Your comments made me think more about the question of "What do I consider a win?". I'm realizing more and more how subjective and emotional that is. Allow me to elaborate

The bots giving up is certainly one trigger that induces this feeling in me. But sometimes I do play a few extra rounds after that. I guess in these situations I am looking for a stronger prove. And then there are yet other situations where I am kinda longing for a very obvious outcome. I will then play until there are just tiny enemy kingdoms left. Sometimes I play even longer than that until I really wiped all enemy kingdoms, and sometimes I go to the last mile and play to make every single tile blue. I feel like I'm sharing an embarrassing fact, because I objectively acknowledge that it's "pointless" to do that. When I do it, I wonder myself why I am doing it. What am I proving? And to whom? But, well, what can I say, I'm sharing with you that it happens. I sometimes do that 😆 🙈

I came to think of this autoplay feature for feudal tactics because I saw something similar in a solitaire game. Once all cards have been uncovered the game will play the rest of the moves in a quick animation and then show some celebratory animation at the end. I find this very gratifying to watch. In fact I like it so much that I more often play in that solitaire app, even though it's some commercial app with a lot of very annoying ads inside. And I have another solitaire app that's FOSS and no ads, but you know what, it doesn't have the autofinish. And that makes it so much more boring and less emotionally engaging that I just don't use it. It's all emotional

So. All that being said. I think just reducing the threshold for the bots to give up, wouldn't really satisfy this emotional urge I'm describing. And I would share your hesitation to change that threshold too much. I think it's imperative that the bots don't give up prematurely.

For the idea to go just "switch" to one blue kingdom, I think it wouldn't give me great gratification. In fact, I think I prefer the dialog and then seeing the map as it is, rather than just "jumping" to blue. It's true that I'm basically asking for a way to get to all blue. But I think in terms of emotional experience it makes all the difference in the world whether I see the moves, or whether I just see the end result. The moves are everything. The end result is nothing.

So, there you go that's my rambling. Sorry it was so long, but I had to really sort my thoughts and realize for myself that I'm not looking for logic or math or objectivity, but for entertainment :)

Thanks for making this very entertaining game! Here I am starting another round ;)

@Sesu8642
Copy link
Owner

I get that. There is a reason why I kept the option to continue playing after the enemies give up.

I think autoplay could be an additional option in that dialog. Only tricky thing might be to ensure that the autoplay will actually win the game :D

@Sesu8642
Copy link
Owner

It could be done by converting the human player to a bot. The rest of the game would be like watching an enemy turn, with the same buttons available. Using the "skip" button would skip to the end of the game.

@doniks
Copy link
Author

doniks commented Jan 10, 2024

Ah or what I was thinking was the autoplay action could be only one turn at a time. Like this:

  1. I press the autoplay button
  2. The computer moves all my pieces, but does not automatically end my turn
  3. I review the result of the moves and, let's say I like it, so I press "end turn"
  4. After the enemies finish their turns, I press the autoplay button again
  5. the bot moves for me
  6. Again I review it, but this time I don't like the result.
  7. I press undo
  8. All the bot movements are undone and I am back to the start of my turn.
  9. I make some manualoves to properly defend the critical bottleneck in my kingdom
  10. Then I press the autoplay button again
  11. The bot moves my remaining pieces and maybe invests more money, whatever a bot does
  12. I review it again and this time I approve
  13. For the rest of the game I only press autoplay and end turn repeatedly, since from now on I'm always happy with the result
  14. Eventually all the enemies give up, or die, or everything turns blue

That would take care of the risk of the bot maybe losing, since It's still my responsibility. And it makes autoplay just a trick in my toolbox that I can flexibly use anytime I'm too lazy to do all the clicking myself

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants