News:

SMF - Just Installed!



"Crown" Logic

Previous topic - Next topic

Witherweaver

Quote from: AdamH on 09 January 2017, 06:41:36 PM
Well if it was me, I wouldn't want the UI bothering me, asking me if I wanted to make a suboptimal choice. But this kind of thing could easily be added to the list of exceptions (doubling its size!) if that's what was determined to be correct.

But that's a design decision I don't feel like I'm qualified to speak towards. Unlike the rest of the stuff I've said in this thread, which I feel strongly enough about to stand behind.

I feel like that's backwards.  The choice is simply inherent in the rules of the game: you have to make it.  Not having the game make decisions for you (unless you toggle a configuration to always make certain decisions) makes sense to me as a design principle.

Donald X.

Quote from: AdamH on 09 January 2017, 06:31:33 PMYou are not going to convince me here, either.
Well I am happy to stop trying!

Quote from: AdamH on 09 January 2017, 06:31:33 PMI have spent several years as a computer programmer as well.
I am pretty sure I've lapped you.

Quote from: AdamH on 09 January 2017, 06:31:33 PMI am not suggesting that they break this rule you just made up for every single card where they can.
I do not see a rule I "just made up."

If you are willing to skimp on correct functionality in favor of interface here, you will be willing to do it elsewhere too, and it will add up to bugs. The move is to never do it, even if one case is especially tempting.

Again it's a game of interacting rules on cards, and some of the cards even change what cards do. You are never catching everything by looking at the card list. And if everything has correct functionality, you don't have to.

AdamH

Quote from: Witherweaver on 09 January 2017, 06:44:14 PM
And actually, the more I think about it, the current implementation is natural.

You have an Action in your hand, regardless of whether its art and border look treasurelike or not.  As long as I have the choice to do things in my Action phase, I should explicitly tell the interface to move to my Buy phase somehow. 

By playing Crown and then clicking on a treasure, you're explicitly telling the interface that you want to move to your Buy phase.

Quote from: Witherweaver on 09 January 2017, 06:44:14 PM
Before Peddler, Tokens, Enchantress, etc., if you start a turn with a hand of Throne Room, Copperx4, the same argument would say that the game should assume it's your Buy phase.

I have no idea what argument you're talking about, this seems really strange to me and I don't think it holds.

Is the problem that you want the option to play your Throne Room and nothing else, or to not play the Throne Room? You still get that because Crown is optional for if you play something else. There is currently a passive prompt that says "don't Crown" or whatever that you can click regardless of what phase you're in. You can click Crown and then that button for the exact same effect regardless of what phase you're in.

...hmm, except that you have an Action less which could matter for Diadem. Umm, OK then that gets added to the list of exceptions. Still pretty easy to detect. Nice catch!

Quote from: Witherweaver on 09 January 2017, 06:47:27 PM
I feel like that's backwards.  The choice is simply inherent in the rules of the game: you have to make it.  Not having the game make decisions for you (unless you toggle a configuration to always make certain decisions) makes sense to me as a design principle.

I play a Remake, I have 4 Coppers in hand. The game auto-trashes two Coppers for me. I thought making trivial decisions for the user was a feature of this product?

In any case, I don't have an opinion on this. I care what the interface is like and that it makes sense. In the case of Crown's interface, it's very clear to me what it should look like from the user's perspective. It's also very clear to me that underneath the hood it's possible for that to happen. Therefore, that's the way it should be.

Witherweaver

Playing Remake with 4 Coppers and not causing you to select them is not making any decisions.  There are no decisions to be made: every outcome is equivalent.

I draw Crown, Copper x4.  My opponent played Enchantress.  The following two sitations are different.

1) I play Crown in my Action phase.
2) I play Crown in my Buy phase.

In the former, I can play an Action if I draw it.  In the latter, I cannot.  It is a choice I have to make, and the outcomes are different.  (Even if one is better than the other.)  If you choose the second case, you don't have the option to play your Action, so the interface shouldn't tell you that you do.

Quote...hmm, except that you have an Action less which could matter for Diadem. Umm, OK then that gets added to the list of exceptions. Still pretty easy to detect. Nice catch!

Oh, right, this matters too.

But you see we've already found multiple exceptions that we didn't think of in quite a trivial interaction.  These types of things are going to add up, when you think about all cards that could have such a 'special case' interface choice like this. The more cards that are added to the game, the more potential there is for lots of bugs to come up.

Witherweaver

I think, also, it would not be hard to create a Card where the choice in the Enchantress, Crown, Copper x4 case matters.  Just an Action/Reaction that triggers on "When you draw this", and does something different in your Action and Buy phases.  Then the choice needs to be made before you play Crown.

Edit: I mean yes, you can detect and except such a case, but I'm definitely seeing how it is not a good design choice, especially from a code maintenance standpoint.  (I'm also a developer, though not nearly as experienced as a lot of others here.)

AdamH

Quote from: Donald X. on 09 January 2017, 06:51:12 PM
Quote from: AdamH on 09 January 2017, 06:31:33 PMI have spent several years as a computer programmer as well.
I am pretty sure I've lapped you.

I don't see why this matters. I think you were kidding anyways so I'm just going to drop this.

Quote from: Donald X. on 09 January 2017, 06:51:12 PM
Quote from: AdamH on 09 January 2017, 06:31:33 PMI am not suggesting that they break this rule you just made up for every single card where they can.
I do not see a rule I "just made up."

I'm referring to this:

Quote from: Donald X. on 09 January 2017, 03:41:28 PM
The idea of starting to resolve a card without knowing what phase it is is Bad.



Quote from: Donald X. on 09 January 2017, 06:51:12 PM
If you are willing to skimp on correct functionality in favor of interface here, you will be willing to do it elsewhere too, and it will add up to bugs. The move is to never do it, even if one case is especially tempting.

I never said I was skimping on correct functionality, and even if I was, I never said I would be willing to do it anywhere else. I agree with you that skimping on correct functionality is normally bad, even when it's tempting. But then sometimes the user tells you to do it anyways and then listening to them can sometimes be right.

But that is not the case here anyways so I don't think it matters.

Quote from: Donald X. on 09 January 2017, 06:51:12 PM
Again it's a game of interacting rules on cards, and some of the cards even change what cards do. You are never catching everything by looking at the card list. And if everything has correct functionality, you don't have to.

That would be really nice, but then we get this interface that's just terrible to actually use so nobody would want to use it. The interface can be improved without even causing issues with functionality by doing what I've suggested, so I feel like that should be done. Maybe fixing lots of other things first is cool but from a user's perspective, this seems important to do.

AdamH

Quote from: Witherweaver on 09 January 2017, 07:01:28 PM
But you see we've already found multiple exceptions that we didn't think of in quite a trivial interaction.  These types of things are going to add up, when you think about all cards that could have such a 'special case' interface choice like this. The more cards that are added to the game, the more potential there is for lots of bugs to come up.

So we test it, find the bugs, then fix them. After all that, there's a better product. We did it!

Witherweaver

Quote from: AdamH on 09 January 2017, 07:07:03 PM
Quote from: Witherweaver on 09 January 2017, 07:01:28 PM
But you see we've already found multiple exceptions that we didn't think of in quite a trivial interaction.  These types of things are going to add up, when you think about all cards that could have such a 'special case' interface choice like this. The more cards that are added to the game, the more potential there is for lots of bugs to come up.

So we test it, find the bugs, then fix them. After all that, there's a better product. We did it!

Or you could not find all the bugs (come on, if you're a developer you know you can't always test every case), and release buggy software, and then have to go fix the bugs instead of developing new features.  Whereas the other choice was to not follow a design principle that introduced bugs when it never needed to.

AdamH

Quote from: Witherweaver on 09 January 2017, 07:09:27 PM
Or you could not find all the bugs (come on, if you're a developer you know you can't always test every case), and release buggy software, and then have to go fix the bugs instead of developing new features.  Whereas the other choice was to not follow a design principle that introduced bugs when it never needed to.

I really wish it actually worked this way. Unfortunately, most of my career has been spent implementing changes the user asked for even though it makes the design less elegant.

It can't possibly be the best interface that when I have a Crown and no Actions in hand, then I click on Crown then a Treasure card, that I've played Crown as an Action and not doubled my Treasure unless I clicked another button that is located all the way on the right side of the screen. This is the most common scenario and the intuitive inputs provide an extremely incorrect answer. I understand the fix isn't super-simple, but if the answer back to the users is "sorry you'll have to deal with it", they will not be happy.

I realize that from a strict technical standpoint, making them click the button is better because it's clearer to the software what's happening, but that is not the best solution to this issue. The issue involves people an intuition which is subjective and awful.

Donald X.

Quote from: AdamH on 09 January 2017, 07:05:42 PM
I'm referring to this:

Quote from: Donald X. on 09 January 2017, 03:41:28 PM
The idea of starting to resolve a card without knowing what phase it is is Bad.
It has always been the case in Dominion that you know what phase it is when resolving a card. That is not some rule I just made up.

Quote from: AdamH on 09 January 2017, 07:05:42 PMThat would be really nice, but then we get this interface that's just terrible to actually use so nobody would want to use it.
For sure Crown forcing you to deal with its quirks is not going to bring the rest of the game's interface down with it. If you can't stand it, un-familiar it and you'll see it less often.

AdamH

Quote from: Donald X. on 09 January 2017, 08:48:34 PM
Quote from: AdamH on 09 January 2017, 07:05:42 PM
I'm referring to this:

Quote from: Donald X. on 09 January 2017, 03:41:28 PM
The idea of starting to resolve a card without knowing what phase it is is Bad.
It has always been the case in Dominion that you know what phase it is when resolving a card. That is not some rule I just made up.

So I think our disagreement here is in the definition of "resolving a card" -- and that there is no disagreement other than that.

When I click on Crown the first time, before I've decided which card I'm going to Crown, I have not started resolving the card yet (unless there's a +1 Card token on Crown). It doesn't start resolving until the second card the user clicks on.

I'm pretty sure we agree on everything else.

Witherweaver

Quote from: AdamH on 09 January 2017, 07:20:22 PM
Quote from: Witherweaver on 09 January 2017, 07:09:27 PM
Or you could not find all the bugs (come on, if you're a developer you know you can't always test every case), and release buggy software, and then have to go fix the bugs instead of developing new features.  Whereas the other choice was to not follow a design principle that introduced bugs when it never needed to.

I really wish it actually worked this way. Unfortunately, most of my career has been spent implementing changes the user asked for even though it makes the design less elegant.

It can't possibly be the best interface that when I have a Crown and no Actions in hand, then I click on Crown then a Treasure card, that I've played Crown as an Action and not doubled my Treasure unless I clicked another button that is located all the way on the right side of the screen. This is the most common scenario and the intuitive inputs provide an extremely incorrect answer. I understand the fix isn't super-simple, but if the answer back to the users is "sorry you'll have to deal with it", they will not be happy.

I realize that from a strict technical standpoint, making them click the button is better because it's clearer to the software what's happening, but that is not the best solution to this issue. The issue involves people an intuition which is subjective and awful.

I see your point, but as I've thought more about it I'm settling more and more on disagreeing.  I think it's the proper interface to explicitly make the user move to Buy Phase as long as there are choices to be made in the Action  Phase.

And really, not doing so would likely contribute to longer-term misunderstanding of the of the game rules and how a card like Crown functions (i.e., by not making it clear which phase your in).

However, I'm sure there can be improvements here.  Maybe making the 'End Actions' (actually I would prefer 'Move to Buy Phase') button more noticeable or placed in a more convenient location.

Donald X.

Quote from: AdamH on 09 January 2017, 09:06:38 PM
So I think our disagreement here is in the definition of "resolving a card" -- and that there is no disagreement other than that.

When I click on Crown the first time, before I've decided which card I'm going to Crown, I have not started resolving the card yet (unless there's a +1 Card token on Crown). It doesn't start resolving until the second card the user clicks on.
It is the resolution of Crown that causes you to pick a card to play twice with it. So you do not pick that card until you start resolving Crown. I get to pick that definition and I mean that's all behind us.

This is unlike in Magic, where you pick targets on announcement.

dscarpac

Another solution here is to have some extremely explicit text (a button or something) on the screen at all times that tells you what phase you are in ("Action Phase", etc.), and you can manually click on this button or drag it or click an arrow to explicitly tell the program when you want to go to the next phase. It can roll to the next phase automatically if you run out of Actions (and no Royal Carriage, COTR, etc), but you would need to click this to manually move on, like in our Crown examples (this would eliminate the potentially confusing End Actions button).

Maybe even change the color of the background or something else that is in your face at all times to make it so, so obvious which phase you are in. I mean, if the whole background is Yellow during the Buy Phase when it is White in the Action phase, users will absolutely know which phase they are in, and certainly make fewer Crown mistakes, and the integrity of the game is not jeapardized.

AdamH

People actually seem to think that the current interface is the best?

The voice of people who are new to the game and new to the online client is the one that should be listened to. And whatever they say they want, there should be a good reason why not if they can't have it. "The code is harder to maintain and harder to write" is not a good enough reason.

Anyways, it's definitely possible to write it the way I've suggested, though it's a pretty low priority. The discussion here has gone in all sorts of directions so I'm not going to continue it anymore.