Building Shady Guess: a party game designed around hidden information
How Shady Guess turns one different question into an iPhone and iPad party game through private answers, group reveal, voting, and results.

Name update — 1 November 2026: This article uses the current names Shady Guess and Shady Guess + throughout. The dates, figures and development stages in the dated sections remain as documented. For the current presentation and requirements, see Shady Guess and game support.
Secret Subject update — 24 October 2026: Version 1.0 (14) is in internal TestFlight testing; public App Store release is still being prepared. Both devices need the updated build, which uses protocol 10. Free play includes Animals, Food, Money and Objects and transport: 4 categories, 11 themes and 439 identities. The complete collection has 13 categories, 30 themes and 948 identities. Money contains 100 euro amounts. Only the Host needs Secret Subject + for the full collection and saved personal themes.
The first accepted reveal opens both choice lists and starts one shared 30-second window measured by the Host. Each player’s first confirmed answer is final. Correctness stays hidden until both answer or time expires. One correct answer wins one point; two correct answers draw with one point each; neither correct means a draw without points. Missing answers remain “No answer”, and reconnection does not extend the window.
The older Secret Subject figures and prepared-candidate statements below describe earlier checkpoints and are superseded by this update. See the current Secret Subject case study and support guide for the current game and requirements.
Brand update — 17 October 2026: The current games are Bluff Artist, Secret Subject and Shady Guess, with Bluff Artist +, Secret Subject + and Shady Guess + subscription branding. Current Debug Simulator captures replace the renamed apps’ earlier screenshots; App Store availability remains separate.
Language update — 17 October 2026: The prepared Bluff Artist, Secret Subject and Shady Guess candidates include Romanian and English interfaces and the complete game content. The System / Română / English preference is saved locally; player names and authored text stay verbatim. Gameplay data remains in memory. Bluff Artist also keeps the timer duration and custom categories, while Secret Subject keeps custom themes in its protected local file. In multi-device games, the Host freezes content language for the game while each participant keeps their own interface language. This describes the prepared candidate, without establishing TestFlight or public App Store availability; check each app’s website. Romanian-only descriptions in the earlier article reflect the projects’ original checkpoint.
A round of Shady Guess starts with several people in the same room, each holding an iPhone or iPad. Most players receive one question. One player receives a related but different question without being told explicitly that they are the impostor. Everyone answers privately, the group reveals the answers, the conversation moves back into the room, and then each person votes.
That short set of rules creates a much larger development task when several nearby devices have to agree on the round.
We had to define exactly what information each device could receive: who may know which question, at what moment, and what must stay hidden after a device reconnects. That decision shaped the game engine, networking protocol, interface, content model, and tests.
The mechanic became an information contract
Hidden information is the source of the tension. If the app reveals too little, players cannot discuss the answers. If it reveals one detail too early, the round collapses.
We translated the social rules into a precise contract for every phase:
- during answering, regular players receive the group question while the impostor receives the related alternative;
- during reveal, everyone may see the group question and the attributed answers, but not the impostor question or identity;
- during voting, that same boundary remains in place while votes stay private;
- results is the first phase allowed to disclose the impostor, both questions, vote totals, awards, and updated scores.
This is stronger than hiding a label in the interface. Information that a player is not allowed to know should not be present in that player’s state at all. Otherwise a future screen, log statement, reconnect path, or debugging shortcut can expose it by accident.
The Host coordinates play without seeing every secret
One participant creates the session and becomes the Host. The Host controls pacing: starting the game, moving from answers to reveal, opening the vote, showing the result, and advancing the next round. The Host is still a normal player and should not gain privileged access to the secret.
Shady Guess therefore separates the authoritative game from what each participant can see. A deterministic GameEngine owns the rules and validates actions. A GameSession coordinates the Host, players, transport, and lifecycle. Before a snapshot is sent to a device, the full state is projected into a recipient-specific PlayerVisibleState.
That projection runs for the Host too. If the Host is a regular player, it does not receive the impostor’s question. If the Host is the impostor, it does not receive an early explicit identity signal. Reconnection uses the same projection instead of sending a convenient full-state snapshot. The same game rule applies to everyone, including the person coordinating the session.
Nearby play without a gameplay server
Every participant uses their own Apple device on the same local Wi-Fi network. Local discovery and connections let players find a named host and join the game. Typed Codable messages carry actions and snapshots through a versioned protocol.
The game logic does not depend directly on the connection mechanism. It talks through a GameTransport boundary with production and mock implementations. That separation lets the same GameSession run against deterministic simulated peers during development while the normal Create and Join flows use nearby connections.
Gameplay remains local and in memory. There is no gameplay backend, account, database, cloud save, advertising, analytics, or tracking service. Questions ship inside the app. Free gameplay can run without an internet connection; App Store operations such as loading an offer, purchasing, restoring, or managing Shady Guess + can still require connectivity.
Keeping the system local reduces unnecessary data collection and infrastructure, but it does not make networking effortless. Discovery, confirmation, interruption, retry, and resynchronisation still need explicit states. Testing the intended combinations on physical devices is a separate requirement from simulator and automated checks.
Turn a conversation into explicit round states
The social flow became a finite sequence: Lobby, round setup, answering, reveal, voting, and results. The Host advances the round, but every transition is checked by the engine. Reveal cannot begin before all active players have answered. Results cannot appear before the active votes are complete. A player cannot vote for themselves or submit a second answer.
Each device may have only one answer or vote awaiting confirmation. After someone submits, the corresponding control stays pending until a Host snapshot confirms or rejects the action, or until a reconnect or phase change ends the pending state. That prevents rapid taps from becoming conflicting commands and makes uncertainty visible instead of pretending an action has completed.
There are deliberately no gameplay timers. Shady Guess is a face-to-face conversation, and different groups need different amounts of time to read the room. The Host controls the pace while the app protects the order of events.
Make the phone part of the game, not the whole game
The best moment in a round happens when players stop looking at their screens and start defending an answer. The interface therefore has to deliver private information quickly, confirm a short action clearly, and return attention to the group.
The native SwiftUI interface uses familiar controls and a restrained visual hierarchy. iPhone play is portrait-first, while iPad is treated as a full participant in portrait and landscape. Semantic surfaces support Light and Dark appearances; layouts account for Dynamic Type, increased contrast, reduced transparency, and reduced motion. The purple identity and original character artwork make the private states recognisable without turning every transition into decoration.
Accessibility is part of the implementation contract, but implementation and final acceptance are different things. Structural labels and adaptive layouts can be tested automatically and visually. A complete spoken VoiceOver review on physical devices is also needed to assess the experience beyond its labels and layout.
Questions are product infrastructure
A social game can have sound networking and still fail because its prompts produce obvious or uninteresting answers. The Romanian question library is organised by theme. Each pair combines a group question with an impostor question, giving the group a shared subject and a difference to uncover.
Two similar-looking sentences are only a starting point. The questions need enough plausible answers in common for the impostor to blend in, while asking something different enough to give the group a reason to debate. Content is stored as structured, stable resources rather than being embedded across screens. Categories reference production question identifiers for their previews, and the same library supplies gameplay.
The review keeps 334 pairs across 10 topics, with 47 in De toate. One retained pair asks which superpower you would use to stop washing dishes or avoid traffic. Both invite an imagined ability, but each situation gives the player something different to defend. We kept pairs with comparable answers and removed repetition and prompts that depended on niche knowledge. These are editorial judgments; automated checks do not replace playing with a group.
The app is Romanian-first. Its bilingual product website explains the concept in Romanian and English, but that does not imply that the native interface is already localised into both languages.
Test the invisible rules first
Many of the most important failures are not visible in a happy-path screenshot. A reconnect could return too much state. The Host could see information intended only for another player. Random selection could repeat an impostor or question incorrectly. A delayed confirmation could allow a duplicate action.
The engine therefore uses controllable randomness and deterministic identifiers in tests. Recipient-specific projections are checked for regular players, the impostor, a regular Host, and an impostor Host across every phase. Mock transports exercise session coordination without pretending to validate the physical radio. At the pinned tested revision, focused interface tests cover the updated category and question-browser paths, while targeted simulator review covers iPhone and iPad, Light and Dark appearances, larger text, increased contrast, and reduced motion.
These automated checks verify the rules at a recorded source revision. Real group play and different device or network combinations still need their own testing.
Free play and separate Plus subscriptions
Each app keeps a complete free game alongside its separate Plus offering. Bluff Artist includes 3 players and 174 words in Food, Animals and Objects; Bluff Artist + offers up to 9 players, all 12 bundled categories and 631 words, plus up to 10 saved custom categories with 5–50 distinct words each, up to 15 characters per new or updated entry. Custom categories require an explicit selection; the mixed pool uses bundled words. Shady Guess includes 3 total players including the Host, 47 De toate pairs and 1–5 rounds free; Shady Guess + offers up to 9 participants, all 10 topics with 334 pairs and 1–20 rounds, within the session’s technical capacity. Secret Subject includes 339 free identities in 10 themes across Animals, Food and Objects and transport; Secret Subject + offers all 11 bundled categories, 26 themes and 800 included identities, plus Temele mele with up to 10 saved themes containing 5–50 distinct names each, up to 15 characters per new or updated entry. Only the Host keeps the authored library; the approved Guest receives the title and recipient-specific gameplay. It remains exactly two players on two devices.
Each app has its own subscription: 9.99 RON / week or 99.99 RON / year, billed in full annually with identical benefits. Choose a plan or continue free. There is no monthly plan or shared entitlement between apps. Only the Host subscribes in Shady Guess and Secret Subject; a free guest can play the Host’s premium selection. A guest’s subscription does not upgrade a free Host. Bluff Artist is played on one shared device.
Apple displays the actual price and period before confirmation and handles automatic renewal until cancelled. Restore purchases and manage the subscription through the Apple account from the app. The annual plan receives no automatic trial; an existing Shady Guess offer appears only when Apple confirms the offer and eligibility. Each app’s Privacy and website Terms remain separate from Apple’s Standard EULA. Local gameplay, Apple purchases, website visits and support correspondence are distinct processing contexts.
Earlier Secret Subject and Bluff Artist custom-content updates were delivered to internal TestFlight testing. The curated catalogues and revised 5–50-entry / 15-character editors are prepared for the next candidate, preserving older saved lists without truncation. Shady Guess’s annual plan and expanded capacity remain prepared release work. Internal delivery does not establish a real purchase, restore or public App Store approval; each app’s website lists current availability.
The prepared beta puts the game first, with information at the top left and question-mark help at the top right. Rounded capsule buttons keep play and membership actions compact, and the guide explains each step with numbered cream-card illustrations. The optional Plus welcome has a top-right X and Continue free. Both lead Home; active subscribers start there, and returning from the background leaves the offer closed. Membership uses its top X without a duplicate Close button. The larger top-right Plus badge appears on Home and the iOS icon while access is active, preserving the original mark’s size and position; inactive access restores the original. Secret Subject and Shady Guess remove live character counters; input limits remain. In Secret Subject and Bluff Artist, a count badge sits above the entry field. Add with + or Enter and remove with minus. Save theme activates only with a valid title, 5–50 distinct entries and no pending text. Subscriptions remain separate for each app. The gallery shows updated native screens, including the optional Plus presentation.
Keep implementation, testing and availability distinct
Building the product, validating it and making it publicly available are separate parts of the work. A release process needs checks against the code being distributed, complete games on physical devices, group playtesting in Romanian, VoiceOver review and Apple’s distribution requirements. The product website is the place to check current availability and device requirements.
Keeping those distinctions clear helps us describe the work accurately. A successful simulator build cannot establish physical-network reliability, and implementing a purchase flow does not by itself make a subscription commercially available.
Defining what each person may know helped us make the rest of the decisions. The game engine, messages, screens and tests all had to preserve that same rule, including after an interruption.
You can visit the Shady Guess product website or tell us about a digital product you want to build.


