Achivement discussion
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Forge version 1.5.26
by drdev » 10 Sep 2014, 00:16
I've started working on another feature off my Forge bucket list: Achievements!
I've set things up so we can easily define any number of achievements in a new Achievements enum, where each Achievement can have up to 3 tiers: Bronze, Silver, and Gold.
At this time, I have 5 achievements defined, though I have ideas for more. Here's the code to give you an idea of how easy it is to define them:
I've set it up so you'll get a popup whenever you earn a trophy for an achievement you haven't previously earned.
Eventually, I plan to add a new achievements screen acts as a trophy case for all achievements you've earned, which will also show a "Best" score for applicable achievements like "Win Streak" and "Total Wins".
Let me know if you have any ideas for achievements or thoughts about this feature in general.
Thanks.
-Dan
I've set things up so we can easily define any number of achievements in a new Achievements enum, where each Achievement can have up to 3 tiers: Bronze, Silver, and Gold.
At this time, I have 5 achievements defined, though I have ideas for more. Here's the code to give you an idea of how easy it is to define them:
- Enum Definitions | Open
- Code: Select all
public enum Achievement {
WinStreak("Win Streak", true,
"Win 10 games in a row.", 10,
"Win 25 games in a row.", 25,
"Win 50 games in a row.", 50,
new Evaluator() {
@Override
public int evaluate(Player player, Game game, int current) {
if (player.getOutcome().hasWon()) {
return current + 1;
}
return 0; //reset if player didn't win
}
}),
TotalWins("Total Wins", true,
"Win 100 games.", 100,
"Win 250 games.", 250,
"Win 500 games.", 500,
new Evaluator() {
@Override
public int evaluate(Player player, Game game, int current) {
if (player.getOutcome().hasWon()) {
return current + 1;
}
return current;
}
}),
Overkill("Overkill", true,
"Win game with opponent at -25 life or less.", 25,
"Win game with opponent at -50 life or less.", 50,
"Win game with opponent at -100 life or less.", 100,
new Evaluator() {
@Override
public int evaluate(Player player, Game game, int current) {
if (player.getOutcome().hasWon()) {
Player opponent = getSingleOpponent(player);
if (opponent != null && opponent.getLife() < 0) {
return -opponent.getLife();
}
}
return 0;
}
}),
LifeToSpare("Life to Spare", true,
"Win game with 20 life more than you started with.", 20,
"Win game with 40 life more than you started with.", 40,
"Win game with 80 life more than you started with.", 80,
new Evaluator() {
@Override
public int evaluate(Player player, Game game, int current) {
if (player.getOutcome().hasWon()) {
int gainedLife = player.getLife() - player.getStartingLife();
if (gainedLife > 0) {
return gainedLife;
}
}
return 0;
}
}),
Hellbent("Hellbent", false,
"Win game with no cards in hand.", 1,
"Win game with no cards in hand or library.", 2,
"Win game with no cards in hand, library, or graveyard.", 3,
new Evaluator() {
@Override
public int evaluate(Player player, Game game, int current) {
if (player.getOutcome().hasWon()) {
if (player.getZone(ZoneType.Hand).size() == 0) {
if (player.getZone(ZoneType.Library).size() == 0) {
if (player.getZone(ZoneType.Graveyard).size() == 0) {
return 3;
}
return 2;
}
return 1;
}
}
return 0;
}
});
I've set it up so you'll get a popup whenever you earn a trophy for an achievement you haven't previously earned.
Eventually, I plan to add a new achievements screen acts as a trophy case for all achievements you've earned, which will also show a "Best" score for applicable achievements like "Win Streak" and "Total Wins".
Let me know if you have any ideas for achievements or thoughts about this feature in general.
Thanks.
-Dan
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Forge version 1.5.26
by Xitax » 10 Sep 2014, 03:55
Just don't let any of them be lame. You know, those first few Steam "achievements" you barely have to play the game to get.
None of the achievements should be for constructed mode. That would be too easy.
Some ideas:
-Win a draft 8-0
-Complete a set in Quest mode. (regular set, not special set)
-Collect the power 9 in Quest mode.
-Win a game on turn 3 in quest mode. (bronze)
-Win a game on turn 2 in quest mode. (silver)
-Win a game on turn 1 in quest mode. (gold)
-Do an insane amount of damage with one spell.
-Kill yourself and your opponent at the same time.
-Win by unusual means. Opponent life & library >0.
I'm sure more will come to mind.
None of the achievements should be for constructed mode. That would be too easy.
Some ideas:
-Win a draft 8-0
-Complete a set in Quest mode. (regular set, not special set)
-Collect the power 9 in Quest mode.
-Win a game on turn 3 in quest mode. (bronze)
-Win a game on turn 2 in quest mode. (silver)
-Win a game on turn 1 in quest mode. (gold)
-Do an insane amount of damage with one spell.
-Kill yourself and your opponent at the same time.
-Win by unusual means. Opponent life & library >0.
I'm sure more will come to mind.
by drdev » 10 Sep 2014, 13:25
I actually did want these new achievements to apply to Constructed, and I don't think that makes them too easy. If anything it encourages people to build creative decks in order to achieve them.
That said, maybe I can make achievements for each game mode. Maybe one set for Constructed, one for Booster Drafts, one for Sealed, and one for Quest mode. That way games played in Quest mode don't affect your Constructed achievements or vice versa, plus it would allow different types of achievements for Quest mode like collecting the power 9, which wouldn't work for Constructed.
How's that sound?
That said, maybe I can make achievements for each game mode. Maybe one set for Constructed, one for Booster Drafts, one for Sealed, and one for Quest mode. That way games played in Quest mode don't affect your Constructed achievements or vice versa, plus it would allow different types of achievements for Quest mode like collecting the power 9, which wouldn't work for Constructed.
How's that sound?
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Re: Forge version 1.5.26
by friarsol » 10 Sep 2014, 14:12
I don't see a problem with having a few that aren't that hard to achieve. Sure you may not be particularly "achieving" anything, but it does inform the players that there are things to be hunted by doing this type of thing.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re:
by Agetian » 10 Sep 2014, 14:16
This sounds really awesome, Dan! I like this idea!drdev wrote:I actually did want these new achievements to apply to Constructed, and I don't think that makes them too easy. If anything it encourages people to build creative decks in order to achieve them.
That said, maybe I can make achievements for each game mode. Maybe one set for Constructed, one for Booster Drafts, one for Sealed, and one for Quest mode. That way games played in Quest mode don't affect your Constructed achievements or vice versa, plus it would allow different types of achievements for Quest mode like collecting the power 9, which wouldn't work for Constructed.
How's that sound?
- Agetian
- Agetian
- Programmer
- Posts: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Re: Forge version 1.5.26
by Fizanko » 10 Sep 2014, 15:33
"Brainpower" - manage to click on a button for the 1st time
"Dexterous" - manage to click on a card for the 1st time
"Booh !" - exit Forge for the 1st time
"Chaotic Evil" - have Forge generating a crash/error for the 1st time
"Roadways to hell" - start your first Quest
"Alex, is that you?" - start a quest while having more starting gold than allowed by the game
![Very Happy :D](./images/smilies/icon_biggrin.gif)
"Dexterous" - manage to click on a card for the 1st time
"Booh !" - exit Forge for the 1st time
"Chaotic Evil" - have Forge generating a crash/error for the 1st time
"Roadways to hell" - start your first Quest
"Alex, is that you?" - start a quest while having more starting gold than allowed by the game
![Very Happy :D](./images/smilies/icon_biggrin.gif)
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Forge version 1.5.26
by Fizanko » 10 Sep 2014, 16:06
?
probably outdated by now so you should avoid : Innistrad world for Forge (updated 17/11/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Duel Decks for Forge - Forge custom decks (updated 25/10/2014)
Re: Re:
by KrazyTheFox » 10 Sep 2014, 18:46
Seconding this! I'd even ask for a step further and possibly allow for achievements to be collected on a per-quest basis. There's some cool things we could tie into the quest mode with that.Agetian wrote:This sounds really awesome, Dan! I like this idea!drdev wrote:I actually did want these new achievements to apply to Constructed, and I don't think that makes them too easy. If anything it encourages people to build creative decks in order to achieve them.
That said, maybe I can make achievements for each game mode. Maybe one set for Constructed, one for Booster Drafts, one for Sealed, and one for Quest mode. That way games played in Quest mode don't affect your Constructed achievements or vice versa, plus it would allow different types of achievements for Quest mode like collecting the power 9, which wouldn't work for Constructed.
How's that sound?
- Agetian
For example, collecting the power nine could unlock, say, an "impossible" difficulty level.
-
KrazyTheFox - Programmer
- Posts: 725
- Joined: 18 Mar 2014, 23:51
- Has thanked: 66 times
- Been thanked: 226 times
Re: Re:
by Agetian » 10 Sep 2014, 19:38
Yes, agreed as well!KrazyTheFox wrote:Seconding this! I'd even ask for a step further and possibly allow for achievements to be collected on a per-quest basis. There's some cool things we could tie into the quest mode with that.
For example, collecting the power nine could unlock, say, an "impossible" difficulty level.
![Smile :)](./images/smilies/icon_smile.gif)
- Agetian
- Agetian
- Programmer
- Posts: 3472
- Joined: 14 Mar 2011, 05:58
- Has thanked: 677 times
- Been thanked: 561 times
Re:
by Xitax » 11 Sep 2014, 00:50
Respectfully, I have to disagree. With all of gos' decks on hand achieving any of these would be a triviality by going and finding the right deck. No brewing required.drdev wrote:I actually did want these new achievements to apply to Constructed, and I don't think that makes them too easy. If anything it encourages people to build creative decks in order to achieve them.
EDIT: Also, this would be an excellent time to implement some form of being able to get specific cards in quest mode rather than having to wait for the RNG to provide something. I was thinking that we could create a bazaar item that would allow you to trade some kind of mana gems, earned by winning games, for any card you wish for. This is somewhat similar to how you could get cards in Shandalar by collecting amulets. There are simply so many Magic cards that waiting for something to turn up in the shop or in a bonus booster is frustrating.
Bazaar item: Wandering White Enchanter, offers any white enchantment for white mana gems. Different vendors show up at random, but offer different classes of cards. High power cards cost more gems, could be tied to the price index since price generally follows power, but no card should cost more than 5 or so. White mana gems awarded by winning a match with a white opponent. Multicolored opponents could offer one of their colors each time.
Sorry, I know ideas alone are cheap, but I can't program for squat.
Re: Forge version 1.5.26
by serrasmurf » 11 Sep 2014, 11:12
Hi Dan,
Great that you keep adding so much cool stuff to Forge!
I'd prefer that achievements are both won/logged at every single quest and for all quests together (which is then the sum of its parts)
The reason is that achievements is a way to keep a quest interesting, it becomes a new goal just when you're quest is getting lame.
Some achievements will however be so daunting that they become interesting goals on overall quest level.
Ideas:
- conquering a world: by winning all challenges in a world (you become Shah of Jamuraa, Supreme ruler of Ravnica, etc.)
- draft master: winning 10 different quest draft formats, draft god: win every possible quest draft format
- all possible alternative win conditions
- collect every card with attribute X
did you consider giving "quest points" to all the achievements?
Great that you keep adding so much cool stuff to Forge!
I'd prefer that achievements are both won/logged at every single quest and for all quests together (which is then the sum of its parts)
The reason is that achievements is a way to keep a quest interesting, it becomes a new goal just when you're quest is getting lame.
Some achievements will however be so daunting that they become interesting goals on overall quest level.
Ideas:
- conquering a world: by winning all challenges in a world (you become Shah of Jamuraa, Supreme ruler of Ravnica, etc.)
- draft master: winning 10 different quest draft formats, draft god: win every possible quest draft format
- all possible alternative win conditions
- collect every card with attribute X
did you consider giving "quest points" to all the achievements?
- serrasmurf
- Posts: 316
- Joined: 30 Jan 2010, 14:09
- Location: The Netherlands
- Has thanked: 3 times
- Been thanked: 18 times
Re: Re:
by friarsol » 11 Sep 2014, 12:19
Well.. you could do that, just like you could just lookup a YouTube video how to get an achievement on Xbox, but I think that ruins the fun and hunt of the user. If one of the achievements is say, get 25 Storm count in a single turn, and you've never played storm before, you still have to go find (or build) a Storm deck and try it out. If you normally wouldn't play those types decks, and achievements would allow you to, how is that a bad thing? Plus like everything else in Forge, you can feel free to ignore Achievements if they don't do anything for you in Constructed mode. It's not like there's cash rewards we'll be handing out for them or anything.Xitax wrote:Respectfully, I have to disagree. With all of gos' decks on hand achieving any of these would be a triviality by going and finding the right deck. No brewing required.drdev wrote:I actually did want these new achievements to apply to Constructed, and I don't think that makes them too easy. If anything it encourages people to build creative decks in order to achieve them.
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Forge version 1.5.26
by drdev » 11 Sep 2014, 15:13
Can we move Achievements discussion to a separate stickied topic? I think there's enough to discuss both now and going forward to warrant its own topic.
- drdev
- Programmer
- Posts: 1958
- Joined: 27 Jul 2013, 02:07
- Has thanked: 189 times
- Been thanked: 565 times
Achivement discussion
by timmermac » 11 Sep 2014, 21:25
Moved posts from 1.5.26 topic to here at drdev's request.
"I just woke up, haven't had coffee, let alone a pee in 7 days, and I find out you stole my ass and made a ...mini-me! Carter, I should be irked currently, yes?" - Jack O'Neill
Who is online
Users browsing this forum: No registered users and 96 guests