Trading and deck management in a multiplayer card game

Started by
3 comments, last by Protheus99 9 years, 5 months ago

I am currently creating an multi-player browser version of the Triple Triad card game from Final Fantasy 8.

The matches work in a similar way to most modern mobile games in that they are not 100% live. It is possible for a player to be playing multiple matches at any one time. The player is free to log out and come back at a later date to take their turn in any number of matches.

Players are able to build up a collection of cards to play with. When a player joins a new match they allocate 5 cards from their deck to play in that match (this is so that the player can't play the same card in more than one match simultaneously)

The problem is I can't settle on the best way of allowing players to acquire new cards.

My first thought was to just go with the original trading mechanism from FF8. If a player wins a match they can steal a number of cards from their opponents hand to add to their own deck. I like this method because it adds a real element of competition between players but there seems to be a number of draw backs...

  1. If a players deck size drops below 5 (the number of cards required to play a match) then how do they ever recover? (Maybe they can choose to abandon their deck and start again?)
  2. How do I introduce rare cards if players can only ever gain cards from other players

My second idea was to allow players to earn credits from playing matches. They could then purchase new cards from a store. Again, I've found problems with this method...

  1. There's nothing to stop players buying large numbers of the better, rarer cards from the store. This leads to an arms race where eventually it will be impossible to win a game without having the very best cards.
  2. This method effectively removes risk from games because there's nothing to lose

Does anyone have any suggestions that could get me past this road block? The project is actually coming along quite nicely apart from my inability to settle on these points.

Advertisement

Here's a few ideas together that you might want to adopt wholesale or piecemeal:

A player might "own" a few hundred cards (no limit). But they form "decks" of possible playstyles - a deck is 30 cards. A player enters a battle choosing which of their decks they want to use. Then the game randomly uses some cards from that deck to form the player's actual "hand", so a player doesn't get to choose his exact cards. (owned cards, deck cards, cards in the hand)

Players can trade cards to using a webpage where they list cards they have for sale, and list cards they are interested in, and players can offer "trades" that can then be accepted/rejected.

Players can sell cards to back to the game for 'card points'. They points can be used to purchase "booster packs" of 5 random cards from the store. It costs alot of points for boost packs. Selling cards only get a few points back, depending on the strength of the card. Better to trade than to sell.

Players can purchase "booster packs" of 5 random cards from a store using real money (microtransactions). This can give you your revenue stream.

Players can take (1) card from a player they defeated, but also have to give up (1) of their own cards back to the defeated player (usually their weakest). Players can also, outside of battle, lock (3) of their cards to never let them be stolen. (a forced trade)

Players can enter battles with computer players - you can play with your own decks or with a randomly generated deck (incase you don't have any good cards and are trying to work your way back up). If you lose, you don't lose any cards, and if you win, you don't take any cards. (you only take and lose cards from human players you are versing).

A win against a computer player gives you points. Let's say, 10 points. Then you play 'double or nothing' for each subsequent challenged AI in a row, with you either stopping, and keeping your earnings, or else if you choose to keep going and lose against the AI, you lose 75% of your potential earnings. Each subsequent AI victory in a row is first 2x and then 1.5x up to 10 battles in a row (before it ends). Points: [10, 25, 50, 75, 125, 200, 300, 450, 750, 1000]

You can battle 'easy', 'medium', and 'hard' AI intelligences.

You might want to get some inspiration from Elements the online card game - I've never played it myself, but I heard good things about it from two friends.

I think you can introduce some randomness for acquiring cards. I had a personal tcg project before where I introduced a "tavern" in which some random cards appear in intervals. I.e. in 15 minutes a new set of cards appear that are random. You can easily manipulate the drop rates of rare and common cards that way. You can even add premium feature like refreshing the tavern prematurely.

I had seen this mechanic in many browser rpg games for items and stuff. The thing is, some people will regularly check "tavern" to see if a rare drop is there. Tavern may not be the best term here as it is not very relevant.

But, some really eager and patient players may end up with a lot of rare cards this way even without spending money as there will be people that farm the tavern. So, you need to really think about those biased randomness values. But yeah...

Hmm, maybe look at what the other Triple Triad fan projects have done... have they run into problems like this, or is it a theoretical concern? I think it's definitely a concern in theory, though.

(1) To step back slightly, you could consider ways of making it so that cards aren't as unambiguously "better" than each other. Like have "aces" that lose to everything except the highest, or a few cards that have special values that exclusively target higher values. (Like, maybe they're green, and a green number beats a *higher* number but loses to a lower one.)

(2) You could have a constraint by which cards have a cost, and the total cost of the "deck" you can use in a game is calculated according to the weaker player. Say that each player chooses ten of their cards that can be in their deck, and player A's ten best cards are worth $50 all together and player B's ten best cards are worth $100 all together. Put the game cap somewhere near $50. Player B can play some cards that are individually better than player A's, but they can't stack it so that *every* card they play is better than player A's. (Player B still has advantages -- they probably have a more diverse deck that would let a good player build a better $50 deck than player A's $50 deck. It's just that they don't have an immediate power advantage such that a bad Player B could still easily beat a good Player A.)

(3) You could also make it so that no balancing is attempted, but the rewards for a win depend on the relative strength of the decks. So that a stronger player attacking a weaker player can only take a weaker card if they win, whereas a weaker player attacking a stronger player can take a stronger card. Consider what would happen if the most valuable card you could take depended on the ratio of the loser's deck value to the winner's deck value. It would mean that weaker decks, upon beating stronger decks, would be able to take a much better card than a stronger deck beating a weaker deck. So say your deck is worth $100 and mine is worth $50, and the max reward value is loser/winner*10. If you win, you can take up to a $5 card from me, but if I win, I can take up to a $20 card from you.

This would set up some interesting incentives, because playing a more powerful hand than your opponent sets you up for greater risk, whereas the weaker player risks little. That incentivizes the behavior in (2) without requiring it. (In fact, if you wanted to steal the best cards from another player, you'd have to play weak decks against powerful decks on purpose.)

Hi I am new to this forum but I have designed collectible card games in the past and I have a comment


The matches work in a similar way to most modern mobile games in that they are not 100% live. It is possible for a player to be playing multiple matches at any one time. The player is free to log out and come back at a later date to take their turn in any number of matches.

this mechanic is very difficult to manage correctly. I worked on webslingers.ws and we had a similar mechanism where players were in and out and matches would go on forever because moves were done but the counter move too forever. Players also commented often that they just forgot about what their plan for the match was and they had to reevaluate the match itself to see where they were going.

We ended up ditching the concept and moved towards a timer where players had x seconds to play a move or they would lose the options to play.

If you can find a way to keep players engaged and prop them to make their moves this can work, if not I would reconsider this option.

This topic is closed to new replies.

Advertisement