Basic Terms in The Card and Board Games iOS and tvOS Starter Kit
In the Card and Board Games iOS and tvOS Starter Kit
Before you dive too deep into the kit, it’s a good idea to get on the same page with what we’re calling certain things and what they mean in terms of the kit.
Events – each round of the game has three sets of events. Events before the player’s take their turns, events for each player’s turn, and events after all players have had a turn. When all three lists of events have run, a complete round is over.
Turn (or TurnOrder specifically) – the events that occur for EACH player during their turn. These events are identical for each player. Typical events for a player would be drawing new cards, studying their hand, etc.
Round – a round is completed when all events before, during and after the players have each had a turn are completed. So for example in a 3 player game, a complete round would occur like this: “before round” events are run, the main “turn order” events have all run (where each player gets their turn), then finally any after-round events are run. Before round events would typically be things like, announcing a new round was starting, and after round events might be things like showing everyone’s score and checking for a winner.
Score – the score is mostly intended for internal, or unseen, scoring of cards. For example, in a Poker game you might define a straight as having a score of 5000 points, whereas a pair of two’s has a score of 200 points. This is the under-the-hood scoring you determine for either cards or combinations of cards. You could though show the player’s these scores. For example, in a Black Jack game, it makes more sense to add up and display the exact amounts of card values. Rounds or entire games can be won by checking the score. In most games you’ll probably want to determine a game winner by the amount of Currency they have (which we will discuss next), as the Scoring is something that might be reset to zero at the beginning of a round, or after a certain number of rounds. Throughout this documentation if we refer to “points” we are referring to the score.
Currency – Currency should be considered the player’s main pot or stash of whatever they are working toward to win the game. You could call it “dollars” in the game, or you could call it “wagon wheels”. It is simply a variable that can be prefixed or postfixed by whatever you want.
Cards – You can define as many decks of cards as you want in the property list. Each deck can contain an unlimited number of cards, and each card dictionary in a deck defines the properties for that card. As deck data would probably be shared among different games, Card data is defined outside of any specific game. For example, you would only need to define the property of a 52 card deck once in the property list.
Card Amounts – Cards can have simple amount values, for example, an “Ace” might be 11. A “Broken Wagon” card might be negative 10.
Combinations – You can define your own combinations of cards to score in ways that have no relation to the individual card amount. For example, you might decide that holding three Ace cards is worth 10,000 points. Or holding onto Two “Broken Finger” cards are negative 500 points. Combinations can award currency as well.
Winning – winning could refer to winning a round or series of rounds but not the entire game. Throughout the documentation we’ll make it clear which properties would affect winning a round vs. the entire game.
Game – The property list can define more than one game. So the same app might include multiple versions of a game, or completely different games. Games specify which card decks they will use (up to 5 decks per game).
Rules – these are properties that define the basic rules of the game. Each game can have a different set of rules.
Settings – these are properties that define the game settings (for example, CurrencyPostfix = “Dollars”). Most often these are properties that relate to how the game’s elements appear to the user and in many cases are used to slightly change the appearance for different iOS devices. For example, CardMaxInRowTV = 5.
Now that you have read the basic terms in the kit, take a look at the BoardData.plist and you’ll get an idea of how this data is structured….