Wingspan
Wingspan
Overview
Wingspan is a card-driven bird-collecting game where players don’t see opponents’ hands or the deck order. Players must reason about probabilities and manage their own engine of bird-powered abilities.
Game Concepts
- Visible Information: Current board state, discard pile, revealed cards
- Hidden Information: Other players’ hands, deck order, face-down cards
- Deterministic Elements: Bird abilities, habitat effects
- Probabilistic Elements: Deck draws, egg distributions
Probabilistic Reasoning
Without perfect information, AI agents use Bayesian inference to estimate:
P(opponent has card X | observed events) =
P(observed | card X) * P(card X) / P(observed)
This allows the AI to:
- Estimate deck composition over time
- Infer opponent strategies from their plays
- Account for uncertainty in decision-making
Hidden State Approximation
Two approaches to handle incomplete information:
Perfect Information Assumption (Weaker)
Assume uniform probability for all unknown cards—simpler but less accurate.
Belief State Tracking (Stronger)
- Maintain probability distribution over possible game states
- Update beliefs when opponents reveal cards
- Use Monte Carlo to sample possible continuations
Deck Management
A critical skill is optimizing your own “engine”:
- Card Synergies: Birds that activate other birds’ powers
- Resource Economy: Managing food, eggs, and card draws
- Timing: When to play high-value birds vs building synergies
Interactive Demo
Play Wingspan against the AI:
Play birds to three habitats (grassland, forest, wetland) and score victory points.
Implementation Strategies
Information Set Reconstruction
After each move, update what we know about:
- Cards that left the deck
- Opponent’s likely hand composition
- Probability distributions over unknown states
Adversarial Reasoning
Model opponents as rational agents to predict their likely moves:
- What would they prioritize given their board state?
- Which cards are they likely to hold?
Utility-Based Selection
Evaluate moves by expected value:
expectedValue(move) =
Σ P(state | observations) * utility(move, state)
for all possible hidden states
Algorithm Comparison
| Aspect | Perfect Info Games | Hidden Info Games |
|---|---|---|
| Minimax | Exact values | Approximations only |
| Info Bound | All states known | States estimated |
| Best Move | Deterministic | Distribution-based |
| Time | Offline optimal play | Online decision-making |
Code on GitHub
See the Wingspan AI implementation with belief state tracking and deck inference.
Next Steps
Learn about multi-objective optimization in Dune Imperium, where multiple scoring paths create complex strategic tradeoffs.