Dealing Joker without opening pairs
I did not want Joker to begin by discarding ready-made pairs before meaningful play started. Every opening hand should be pair-free while distribution remains balanced.

Our journey, behind the scenes, from idea to release.
Ideas, experiences and stories from the studio.
GameplayI did not want Joker to begin by discarding ready-made pairs before meaningful play started. Every opening hand should be pair-free while distribution remains balanced.
GameplayFor Joker, a deck filename was insufficient. Actual composition matters because each rank’s multiplicity directly affects pairing and the terminal state.
AnalyticsEvents cannot be compared reliably if numbers and field names change with device language. I separated field construction from sending and JSON encoding.
AnalyticsA match does not gain five minutes of play when a player spends five minutes outside the app. I separated active duration from wall-clock duration in match reporting.
AnalyticsThe resolver derives button names from scene context, but naming is not delivery. Client policy and PHP report definitions need to be read together.
AnalyticsThe tracker calculates screen entry and duration, while the current compact policy filters interface events. I followed that distinction through PHP reporting.
AnalyticsA player name serves personalization, while an analytics ID connects events. I did not want changing a display name to turn installation history into a new user.
AnalyticsAfter economy and visuals, I wanted to observe actual player behavior.
No articles found.