Decktrace: Pokajan · simulator-scoped

Pokajan

Pokajan is a four-player card game about assembling valuable melds while choosing what to reveal. Decktrace built a deterministic simulator, a masked shared-action policy, and an automatic promotion loop to learn it without human games or labels.

Established champion

v2 evaluation results

The v2 policy finished in the top two in 177 of 256 confirmation games. Later experiments did not establish a reliable improvement, so v2 remains the selected policy.

First-place finishes
39.1%
100 of 256 confirmation games
Top-two finishes
69.1%
177 of 256 confirmation games
  • Average finish2.04 of 4
  • Final coin edge+456 vs mean opponent
  • Archive comparisons6 / 6 pass
  • Invalid actions / timeouts0 / 0
  • Live-client parityNot run
Scoring and selection record

Adding a discard-rank observation produced the v2 policy. It was retained after Generations 0 and 1 and five follow-up experiments: tied-rank selection, completion outs, claim liability, one-draw payout, and low-meld deferral.

How to read +1.135Placement-weighted settlement calculation

Each ending turns coins into a score: first place uses 2.5× final coins, second uses 1.5×, and third or fourth uses 1×; the 1,000-coin starting stake is then subtracted and used to normalize the result. The champion averaged +1.135 of those stake-sized utility units over the mean of three incumbents. Its +0.867 lower 95% bound is the conservative floor for that same advantage—not 0.867 coins or places.

Current decisionv2 established · Generation 2 stopped at 7,168 learner steps

Five focused follow-ups failed fresh gates. The one-draw payout controller won a small screen but flattened on disjoint confirmation, while forcing low melds to pass was worse on average. Retain v2 and do not build deeper search without a newly demonstrated policy error.

Claim ceiling: the v2 policy is stronger in the versioned Python simulator. Native control, client parity, and broad live-game strength are not established.

The game itself

Pokajan rules

Four seats

Each player starts with seven hidden cards and 1,000 coins. On a turn, draw to eight, declare any completed melds, then discard back to seven. Any opponent whose meld uses the latest discard may claim it; higher score, then clockwise order, resolves simultaneous claims.

Players
4
Match deck
100 cards
Starting hand
7 cards
Starting coins
1,000
Information
Hidden hands, public groups, Bonus member, revealed melds, discards, coins, and remaining-card counts
Settlement
Melds transfer coins; final placement follows coin totals
Agent objective
Maximize terminal settlement utility: final coins weighted by placement

Rule boundary: the rules are versioned from captured client behavior and published references. Exact live-client fidelity remains unverified.

What was tried

Experiment results

Strength is evaluated using final settlement scores. A positive margin means better placement-weighted coin settlement than the comparison policy; zero means a tie. Diagnostics identify which branch to test or close.

BaselineLearned4,096 PPO steps
First capability check

Comparison with baseline policies

Fresh, balanced four-seat blocks showed a real simulator gain before the project attempted an automated generation.

Vs random
+1.403
utility floor
Vs first legal
+4.852
utility floor
Controlled play
128 games each
0 invalid
Weakness auditFound1,988 decisions · 128 games
Actor-visible diagnosis

Meld and discard errors

The g024 champion missed no greedy meld opportunity, but almost half of comparable discards were strictly worse than the same public-information heuristic.

Meld errors
0 / 412
Worse discards
309 / 701
Largest pattern
209
near-group losses
Discard decision auditShare of comparable decisions strictly worse than the actor-visible greedy choice.
Decision audit across 128 simulator games
DecisionStrictly worseComparedShare
Meld declaration04120.0%
Discard choice30970144.1%
v2 featurePromoteOne new observation
Focused repair

Discard-rank observation feature

A single normalized ordinal rank transferred the diagnostic into full-game strength. In the 256-game confirmation it finished first 100 times, top two 177 times, averaged 2.04 place, and ended 456 coins ahead of the mean table opponent.

Screen utility
+1.182 mean
+0.788 floor
Confirmation utility
+1.135 mean
+0.867 floor
Weakest archive utility
+0.573
floor
Validation and limitations

Follow-up experiments

The signed probe numbers below are differences in the same placement-weighted settlement utility: positive favors the tested policy, negative favors the incumbent, and an interval crossing zero means no reliable game-outcome gain.

Working

Simulator and policy validation

Simulator
2,048 seeded games preserved determinism, legality, cards, hands, coins, and action capacity
Feature
The actor-visible discard rank transferred into fresh full-game strength
Selection
Common deals, four-seat rotations, zero invalid actions, and six archive checks produced an automatic promotion
Not supported yet

Experiments without a confirmed improvement

Keep v2. The follow-up experiments did not meet the evidence required to replace it.

View exact experiment results
Generation 1 finalist
+0.017 mean, -0.725 lower 95% bound — retain
Lower learning rate
+0.108 mean, -0.0007 lower bound — still retain
Drift diagnosis
Measured drift did not justify target-KL control or teacher rehearsal
Tied-rank probe
832 common-hidden-world continuations: -0.171 mean, 95% bounds -0.383 to +0.075 — retain
Completion-outs probe
10 decision roots / 8 blocks / 320 paired continuations: -0.0072 mean, 95% bounds -0.2413 to +0.1833, zero invalid actions and timeouts — retain
Claim-liability audit
26 tied-rank roots / 12 blocks: +0.128 mean, 95% bounds -0.127 to +0.382 — no reliable advantage, so retain without fresh rollouts
One-draw payout controller
Positive 16-block screen: +0.504 mean, 95% bounds +0.092 to +0.910. Disjoint 32-block confirmation: -0.013 mean, 95% bounds -0.298 to +0.276 despite 311 changed discards, with zero invalid actions and timeouts — retain
Low-meld deferral
13 declaration roots / 9 blocks / 208 paired continuations: forced pass -0.179 mean, 95% bounds -0.478 to +0.100, zero invalid actions and timeouts — retain
Current direction
Retain v2. Do not add a payout scalar, widen the meld threshold, build deeper search, or resume Generation 2 without a newly demonstrated policy error

Read the canonical capability record.