Achivement discussion
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Achivement discussion
by drdev » 18 Sep 2014, 23:50
How about I just disable them if Developer Mode is on. That way there's no cheating. Also, if you want to reset your achievements, you can just delete the folder in AppData.Kapoue wrote:Hey, I'm getting a bunch of acheivements while testing cards. Do you think we could disable achievements somehow when we test things?
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Achivement discussion
by friarsol » 18 Sep 2014, 23:52
Meh.. I always have developer mode on. Who exactly are you cheating by just going through with DevMode to unlock achievements?drdev wrote:How about I just disable them if Developer Mode is on. That way there's no cheating.Kapoue wrote:Hey, I'm getting a bunch of acheivements while testing cards. Do you think we could disable achievements somehow when we test things?
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Achivement discussion
by drdev » 18 Sep 2014, 23:54
Good point. In that case I'll just add a separate setting you can use to disable achievements.
Alternatively I can just make it so you forfeit earning any achievements if you use a Dev Mode function in a game. That way if you play a game fairly with Dev Mode on, you still get achievements.
Alternatively I can just make it so you forfeit earning any achievements if you use a Dev Mode function in a game. That way if you play a game fairly with Dev Mode on, you still get achievements.
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Achivement discussion
by Marek14 » 19 Sep 2014, 04:33
Hmm... Can't see themdrdev wrote:In the desktop game, it's on the home page menu under Preferences.Marek14 wrote:BTW, where in the current version can I actually see the achievements? I earned a few, but can't find them again...

Re: Achivement discussion
by Rooger » 19 Sep 2014, 16:53
And here they are, the Superfriends arrived, all of them 
I've made the alternate art from the duel decks for the ones who have it, feel free to use them how you like if you wish to use them.
Note: I forgot to mention it yesterday, the pic I used for DeckedOut is from Jace Beleren so i'll have to replace that one soon.
Any progress on new achievements?

I've made the alternate art from the duel decks for the ones who have it, feel free to use them how you like if you wish to use them.
Note: I forgot to mention it yesterday, the pic I used for DeckedOut is from Jace Beleren so i'll have to replace that one soon.
Any progress on new achievements?
- Attachments
-
planeswalkers.rar
- (3.24 MiB) Downloaded 310 times
Re: Achivement discussion
by KrazyTheFox » 19 Sep 2014, 17:08
I like this option the most. I frequently play with dev mode on since I forget to turn it off, but almost never use any dev mode features. I'm trying to think of how something could warn you if you, say, accidentally click on your deck while playing or forget you already played a land and drop a second one...drdev wrote:Alternatively I can just make it so you forfeit earning any achievements if you use a Dev Mode function in a game. That way if you play a game fairly with Dev Mode on, you still get achievements.
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Achivement discussion
by drdev » 19 Sep 2014, 17:27
I think that would be annoying to get prompted when you're trying to test stuff. Let's just call it the risk of using Dev mode then. You can always turn off the ability to play multiple lands per turn, and frankly I've been meaning to make the ability to see cards that should be hidden another toggle option for the Dev menu that you need to opt into. That way, if you just have those two options toggled off, you'd have to actually click something in the Dev menu to run into a problem.KrazyTheFox wrote:I like this option the most. I frequently play with dev mode on since I forget to turn it off, but almost never use any dev mode features. I'm trying to think of how something could warn you if you, say, accidentally click on your deck while playing or forget you already played a land and drop a second one...drdev wrote:Alternatively I can just make it so you forfeit earning any achievements if you use a Dev Mode function in a game. That way if you play a game fairly with Dev Mode on, you still get achievements.
I will probably add an override to enable using the Dev Mode options to make testing achievements themselves easier, but that will off by default and only intended for testing achievements specifically.
How's that sound?
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Achivement discussion
by Agetian » 19 Sep 2014, 17:52
I like this idea, Dan! And I think it's optimal to have a dev mode toggle like for the lands, potentially off by default (to preserve authenticity of what is visualized by default) but easily toggleable in case of necessity.
- Agetian
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Achivement discussion
by drdev » 19 Sep 2014, 19:53
I just finished making the same improvement to the mobile game's "Achievement Earned" dialog.
Next up will be adding logic to prevent earning achievements when doing testing using Dev Mode features, then I'll start working on the next wave of achievements using the trophy images Rooger has provided.
Next up will be adding logic to prevent earning achievements when doing testing using Dev Mode features, then I'll start working on the next wave of achievements using the trophy images Rooger has provided.
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Achivement discussion
by KrazyTheFox » 19 Sep 2014, 21:36
Hence me trying to figure out a better way to create a warning. I specifically don't want an actual prompt because I do use multiple lands per turn frequently for testing.drdev wrote:I think that would be annoying to get prompted when you're trying to test stuff.
However, on my way home I think I've got it. While playing multiple lands is enabled, what if hovering over lands in your hand turned them red after you've already played your lands for the turn (in the event of "you may play extra lands")?
Sounds good to me!drdev wrote:I will probably add an override to enable using the Dev Mode options to make testing achievements themselves easier, but that will off by default and only intended for testing achievements specifically.
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Achivement discussion
by drdev » 19 Sep 2014, 22:04
I just finished committing some refactoring changes to Dev mode to support detecting cheating for the sake of updating achievements at the end of the game.
The first thing I did was prevent "DEV_MODE_UNLIMITED_LANDS" being saved between games and sessions. This way, you'll never start a game with that functionality auto-enabled, and therefore the only way to cheat is to actually click something in the Dev Mode pane or menu, as opposed to misclicking a second land. This way, there's no need for a prompt. While I was at it, I also changed the "Play Unlimited Lands" button to work more like other toggle buttons, appearing the same as other buttons when off and only appearing dark when toggled on.
Next, I changed the static DevModeUtils class into a DevModeCheats subclass of PlayerControllerHuman. The only way to access any of its functions now is to call a special cheat() method on either the controller or the game view, which initializes an instance of that class if needed and returns it. This implementation allows a hasCheated() method to exist in PlayerControllerHuman, which simply returns cheats != null. We can then use this method to quit out early from the achievement updating code that fires at the end of the game. Plus, since the controller instance is unique to each game, we don't have to worry about the user being flagged as cheating in future games unless they cheat again.
In the future, we can also potentially leverage this flag for Network play to prevent use of the Dev Mode tools unless a testing session is actually in progress. I'm thinking something like having it alert other users that another player has cheated, and giving them the option to allow it or boot the player. The nice thing about allowing players to permit cheating this way is 1) it makes our testing of network play easier and 2) it gives players the option to give another player a handicap or allow them to stay in the game if they just want to keep playing. Or maybe they just want to fool around with Dev Mode power together.
Let me know if you have any questions or concerns about my implementation. I apologize if anyone misses having "Play Unlimited Lands: On" be remembered between games, but ultimately I feel you should have to opt in to Dev Mode functionality every game to avoid cheating by accident.
Also, I should note that viewing your library or other players' hands no longer seems to work on Dev Mode, so I didn't change anything there. If you'd still like me to add another Dev Mode option to allow viewing these hidden areas, let me know and I can always add one.
The first thing I did was prevent "DEV_MODE_UNLIMITED_LANDS" being saved between games and sessions. This way, you'll never start a game with that functionality auto-enabled, and therefore the only way to cheat is to actually click something in the Dev Mode pane or menu, as opposed to misclicking a second land. This way, there's no need for a prompt. While I was at it, I also changed the "Play Unlimited Lands" button to work more like other toggle buttons, appearing the same as other buttons when off and only appearing dark when toggled on.
Next, I changed the static DevModeUtils class into a DevModeCheats subclass of PlayerControllerHuman. The only way to access any of its functions now is to call a special cheat() method on either the controller or the game view, which initializes an instance of that class if needed and returns it. This implementation allows a hasCheated() method to exist in PlayerControllerHuman, which simply returns cheats != null. We can then use this method to quit out early from the achievement updating code that fires at the end of the game. Plus, since the controller instance is unique to each game, we don't have to worry about the user being flagged as cheating in future games unless they cheat again.
In the future, we can also potentially leverage this flag for Network play to prevent use of the Dev Mode tools unless a testing session is actually in progress. I'm thinking something like having it alert other users that another player has cheated, and giving them the option to allow it or boot the player. The nice thing about allowing players to permit cheating this way is 1) it makes our testing of network play easier and 2) it gives players the option to give another player a handicap or allow them to stay in the game if they just want to keep playing. Or maybe they just want to fool around with Dev Mode power together.
Let me know if you have any questions or concerns about my implementation. I apologize if anyone misses having "Play Unlimited Lands: On" be remembered between games, but ultimately I feel you should have to opt in to Dev Mode functionality every game to avoid cheating by accident.
Also, I should note that viewing your library or other players' hands no longer seems to work on Dev Mode, so I didn't change anything there. If you'd still like me to add another Dev Mode option to allow viewing these hidden areas, let me know and I can always add one.
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Achivement discussion
by Agetian » 20 Sep 2014, 04:53
Good calls here, I agree with this change.
- Agetian
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Achivement discussion
by Agetian » 20 Sep 2014, 14:29
A few sideboard-related achievement ideas:
Deck Transformation - sideboard at least 1 card in (common) up to fully transform a deck by sideboarding 15 out and 15 in or something like that?... Presupposes winning a game with the transformed deck.
A Card Up My Sleeve - bring a card into the game directly from one's sideboard (using cards such as e.g. Death Wish, Burning Wish). Might also need actually winning the game where this happened?..
- Agetian
Deck Transformation - sideboard at least 1 card in (common) up to fully transform a deck by sideboarding 15 out and 15 in or something like that?... Presupposes winning a game with the transformed deck.
A Card Up My Sleeve - bring a card into the game directly from one's sideboard (using cards such as e.g. Death Wish, Burning Wish). Might also need actually winning the game where this happened?..
- Agetian
- Agetian
- Programmer
- Posts: 3489
- Joined: 14 Mar 2011, 05:58
- Has thanked: 684 times
- Been thanked: 572 times
Re: Achivement discussion
by drdev » 21 Sep 2014, 15:27
Finally, yes. Here's the start of the new "Alternate Win Conditions" with the first 16 such achievements shown.Rooger wrote:Any progress on new achievements?
As you can see, I kept the names and flavor text Marek14 went to such awesome lengths to include for each achievement, as well as built in a way to see how many wins you get off of each alternate win condition. I made them 1 tier nonetheless, as I felt these kind of special trophies make more sense without tiers, but at least by tracking wins there's still a reason to play multiple games with a single alternate win condition.
I should have the next set of alternate win achievements ready soon, then it's on to Planeswalker ultimates.
EDIT: I just noticed "The Library of Congress" is too long a name. I'm going to change it "The Huge Library" unless anyone has any other ideas.
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Who is online
Users browsing this forum: No registered users and 19 guests