It is currently 20 Sep 2019, 05:54
   
Text Size

Revisiting Scry>1

Moderators: melvin, beholder, ubeefx, ShawnieBoy, Lodici, CCGHQ Admins

Revisiting Scry>1

Postby ShawnieBoy » 04 May 2015, 18:39

Currently the reason Scry>1 isn't implemented is due to the card ordering on top of the library.

I've submitted Teferi's Puzzle Box and Mindmoil without really taking into account this issue (and yes it does take a little while to think).

However we do implement discarding your hand, which is essentially the same thing, just to a different location (each card in turn is chosen to be discarded for graveyard order, not in one lump). And also Discard>1. Discarding would involve the same amount of think-time surely?

With most Scry>1 being 2, and having many discard cards being >2 would it be worth re-implementing Scry>1 and other 'look and replace' cards?
User avatar
ShawnieBoy
Programmer
 
Posts: 601
Joined: 02 Apr 2012, 22:42
Location: UK
Has thanked: 80 times
Been thanked: 50 times

Re: Revisiting Scry>1

Postby melvin » 05 May 2015, 12:34

ShawnieBoy wrote:However we do implement discarding your hand, which is essentially the same thing, just to a different location (each card in turn is chosen to be discarded for graveyard order, not in one lump). And also Discard>1. Discarding would involve the same amount of think-time surely?
The difference is that discard is done all at once after you chose all the cards and not choose one card, discard one card. It is easy to see this as it takes the same amount of time for the AI to discard any number of cards. Spending 8 seconds per card seems rather excessive, if I prefer to play on the hardest settings. Moving a hand of seven cards to the bottom of your library will take almost one minute to complete.

Except the two cards mentioned, moving cards to the bottom of the library does not allow the order to be chosen, similar to how triggers are put on the stack in a fixed order. For example, all the cards that use RevealToHand[1], move cards to the bottom in the order from the top. For consistency, we should handle "on the bottom of his or her library in any order" in the same way for all cards.

[1] eg. "Reveal the top three cards of your library. Put all Island cards revealed this way into your hand and the rest on the bottom of your library in any order"
User avatar
melvin
AI Programmer
 
Posts: 1057
Joined: 21 Mar 2010, 12:26
Location: Singapore
Has thanked: 36 times
Been thanked: 456 times

Re: Revisiting Scry>1

Postby muppet » 05 May 2015, 13:04

I still don't think time should be so much of an issue I would still like to see settings for 60 minute thinking time per move for example. Provided the user can change it to what they want it should be fine.

On a more relevant note isn't Brainstorm pretty much the same as Scry 2 or Ponder or Preordain? It doesn't seem to take much time with this.
muppet
Tester
 
Posts: 588
Joined: 03 Aug 2011, 14:37
Has thanked: 33 times
Been thanked: 30 times

Re: Revisiting Scry>1

Postby ShawnieBoy » 05 May 2015, 18:59

melvin wrote:The difference is that discard is done all at once after you chose all the cards and not choose one card, discard one card. It is easy to see this as it takes the same amount of time for the AI to discard any number of cards. Spending 8 seconds per card seems rather excessive, if I prefer to play on the hardest settings. Moving a hand of seven cards to the bottom of your library will take almost one minute to complete.
I wan't aware that putting cards on the bottom of your library in any order wasn't already occuring as-printed. I'd be willing for these to work as Mindmoil etc.

melvin wrote:Except the two cards mentioned, moving cards to the bottom of the library does not allow the order to be chosen, similar to how triggers are put on the stack in a fixed order. For example, all the cards that use RevealToHand[1], move cards to the bottom in the order from the top. For consistency, we should handle "on the bottom of his or her library in any order" in the same way for all cards.
From a players point of view, discarding your hand involves selecting each card in hand to be discarded, I was assuming for discard order into the graveyard. (May have to check that).
If hand discarding is preserving order, then that would be a possible solution for the AI to use that method for moving many cards to another zone.

muppet wrote:On a more relevant note isn't Brainstorm pretty much the same as Scry 2 or Ponder or Preordain? It doesn't seem to take much time with this.
Very similar:
Brainstorm involves the whole hand, not just the revealed cards, and only to the top of the library.
Ponder is very much like Scry 3, but only to the top of the library, with an added optional shuffle plus a draw.
Preordain -is- Scry :D

As the max value of Scry is (I think) 4, and doesn't involve the other cards in hand, this should still be pretty swift.
User avatar
ShawnieBoy
Programmer
 
Posts: 601
Joined: 02 Apr 2012, 22:42
Location: UK
Has thanked: 80 times
Been thanked: 50 times

Re: Revisiting Scry>1

Postby ShawnieBoy » 06 May 2015, 20:21

Maybe look at it this way - even if we go to Scry 2 (which is the most common), the AI only has to deal with the following:

Both on top (A then B)
Both on top (B then A)
Both on bottom (A then B)
Both on bottom (B then A)
One on top (A) other on bottom (B)
One on top (B) other on bottom (A)

Surely that's not difficult?
User avatar
ShawnieBoy
Programmer
 
Posts: 601
Joined: 02 Apr 2012, 22:42
Location: UK
Has thanked: 80 times
Been thanked: 50 times

Re: Revisiting Scry>1

Postby melvin » 07 May 2015, 12:14

Ref: viewtopic.php?f=82&t=17136&p=178248#p178248

Consider the following effect:
you may draw a card eg. Solemn Simulacrum

Options:
1. draw a card
2. don't draw a card

The AI doesn't seem to be doing too well for these...
User avatar
melvin
AI Programmer
 
Posts: 1057
Joined: 21 Mar 2010, 12:26
Location: Singapore
Has thanked: 36 times
Been thanked: 456 times

Re: Revisiting Scry>1

Postby muppet » 07 May 2015, 12:24

The problem is for any choice that makes almost no difference the final game outcome isn't very dependant on what you do but if you have a load of them in a game they add up. In the case of Solemn Simulacrum you can solve it by making the default always draw a card unless the game outcome is very bad but for scry 2 there is no easy default action.

On another sort of related note how hard would it be to make the AI remember what cards the opponent has in his hand, this might make quite a difference with some cards especially discard if they are going to be implemented soonish.
muppet
Tester
 
Posts: 588
Joined: 03 Aug 2011, 14:37
Has thanked: 33 times
Been thanked: 30 times

Re: Revisiting Scry>1

Postby ShawnieBoy » 07 May 2015, 15:29

melvin wrote:Ref: viewtopic.php?f=82&t=17136&p=178248#p178248

Consider the following effect:
you may draw a card eg. Solemn Simulacrum

Options:
1. draw a card
2. don't draw a card

The AI doesn't seem to be doing too well for these...
I see that as a different issue, that's more of a `perform an action`, `don't perform an action` and rating scores for both.

Scry would be using a kind of discardTargetPicker and any over a particular score (worse score) would be on the bottom, the others would be on the top. Of the ones on the top or bottom, go in ascending or descending score.

Don't really know how the AI is doing it, but that would be how I see it.
User avatar
ShawnieBoy
Programmer
 
Posts: 601
Joined: 02 Apr 2012, 22:42
Location: UK
Has thanked: 80 times
Been thanked: 50 times

Re: Revisiting Scry>1

Postby melvin » 09 May 2015, 00:45

ShawnieBoy wrote:Scry would be using a kind of discardTargetPicker and any over a particular score (worse score) would be on the bottom, the others would be on the top. Of the ones on the top or bottom, go in ascending or descending score.
It looks like you are over estimating the use of target pickers. Let me try to explain, for MMAB, target pickers are used not for the current decision but only for subsequent ones. Example:

1) current decision, choose to activate ability or play a card. AI considers all possible options, then for the future decision in the AI's simulated game it uses the target picker to make the choice immediately without considering all choices.

2) current decision, choose how to move cards for scry 2. AI considers all 6 options and tries each of them by simulating the next few decisions. The subsequent target choice will use the target picker.

The purpose of target picker is to reduce the width of the search tree below the first decision. It does not affect the current decision itself which always evaluates all the possible choices allowed by the hint.

The use of target picker is potentially problematic because their heuristics do not consider the current context. The AI may never consider activating an ability if the target picker selects a bad target as the future choice in the AI's simulation. My plan is to remove target pickers and always consider all possible "reasonable" (based on hints) targets.
User avatar
melvin
AI Programmer
 
Posts: 1057
Joined: 21 Mar 2010, 12:26
Location: Singapore
Has thanked: 36 times
Been thanked: 456 times

Re: Revisiting Scry>1

Postby ShawnieBoy » 09 May 2015, 01:52

Ahh, I see. That does make things clearer. I've been completely misunderstanding how targetpickers are being used. They're for streamlining the future decisions, but never really, 'actually' used for a real decision.
User avatar
ShawnieBoy
Programmer
 
Posts: 601
Joined: 02 Apr 2012, 22:42
Location: UK
Has thanked: 80 times
Been thanked: 50 times


Return to Development

Who is online

Users browsing this forum: No registered users and 1 guest


Who is online

In total there is 1 user online :: 0 registered, 0 hidden and 1 guest (based on users active over the past 10 minutes)
Most users ever online was 287 on 31 Mar 2019, 04:11

Users browsing this forum: No registered users and 1 guest

Login Form