Skip to content

About

🎲 "Guess Who?" party game with Dota 2 heroes β€” share a seed, get the same board, find your friend's hidden hero first. Unity 2022.3 Β· Windows / Android / WebGL

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

Β 

History

47 Commits

Folders and files

Repository files navigation

Hidden Pool β€” Guess Who? with Dota 2 heroes

A "Guess Who?" party game built around Dota 2 heroes. Share a seed with a friend, get the same board, hide your hero β€” and find theirs first.

Unity C# Version Platforms Languages License: GPL v3

Hidden Pool game board

About

Hidden Pool is a two-player deduction game in the spirit of the classic Guess Who? board game, using the hero pool of Dota 2 (126 portraits, up to Kez, Muerta and Ringmaster).

There is no server and no matchmaking: both players generate an identical board from a shared seed and play over voice chat (Discord, a stream, a call). Each player secretly holds one hero, and you take turns asking yes/no questions β€” "Is your hero melee?", "Does it have a beard?", "Is it an Intelligence hero?" β€” crossing out cards until someone names the opponent's hero.

How to play

  1. Both players press Create Game.
  2. One player shares the seed and cards count shown at the top of the board; the other enters the same values and presses Generate. Both boards are now identical.
  3. Your secret hero is shown in the top slot. Reroll it with ↻, lock it with πŸ”’, or pick one yourself with a right click.
  4. Take turns asking yes/no questions and mark the cards that no longer fit.
  5. The first player to correctly name the opponent's hero wins. Press Clear for a rematch on the same board or Generate for a new one.

Controls

Input Action
Left click Cycle the card mark: ❌ crossed out β†’ ❓ maybe β†’ none
Middle click Clear the card mark
Right click Make this card your secret hero (unless locked)
Esc Pause

Screenshots

Main menu Mid game
Main menu Narrowing it down
Late game Maybe marks
Endgame β€” a few suspects left Crossed out and "maybe" marks

Features

  • 🎲 Seed-based boards β€” the same seed and card count always produce the same set of heroes, so no networking is needed.
  • 🦸 126 Dota 2 heroes with configurable board size (up to the full pool).
  • ✍️ Three-state marking β€” crossed out, "maybe", or clear β€” with snappy DOTween feedback.
  • πŸ”’ Secret hero lock so a stray right click never swaps your pick.
  • 🌐 English and Russian localization.
  • πŸ”Š Sound and music volume, fullscreen/windowed toggle, saved between sessions.
  • πŸ“± Safe-area aware UI for phones with notches.

Tech stack

Area Used
Engine Unity 2022.3.62f3 (LTS), uGUI + TextMeshPro
Reactive / async UniRx, UniTask
Animation DOTween
Editor tooling Asset Usage Detector, Build Report Tool
Localization Simple Localization (CSV, EN/RU)
Analytics GameAnalytics SDK
UI art GUI PRO Kit – Fantasy RPG

Project structure

Assets/
β”œβ”€β”€ Data/                 # ScriptableObject instances: AppData, MatchData, PacksData, UserData
β”œβ”€β”€ Scenes/Main.unity     # The only scene
β”œβ”€β”€ Scripts/
β”‚   β”œβ”€β”€ Components/       # CardBase β€” a single card and its marks
β”‚   β”œβ”€β”€ Data/             # ScriptableObject definitions (MatchData holds a reactive game state)
β”‚   β”œβ”€β”€ Systems/          # CardsGenerateSystem, SaveData, Settings, SoundDesigner, hotkeys
β”‚   β”œβ”€β”€ UI/Menues/        # InterfaceManager + BaseMenu-derived screens
β”‚   └── Localization/     # Localization bootstrap
β”œβ”€β”€ Resources/Localization/  # CSV string tables
β”œβ”€β”€ Sprites/HeroesPortraits/  # Hero portraits used for cards
└── WebGLTemplates/Responsive/

The game flow is driven by a ReactiveProperty<MatchData.State> (MainMenu β†’ InitializeGame β†’ Game β†’ EndGame); systems and menus subscribe to it instead of calling each other directly. Screens derive from BaseMenu and are switched through InterfaceManager.

Getting started

  1. Install Unity 2022.3.62f3 via Unity Hub (add Android / WebGL modules if you need those builds).
  2. Clone the repository:
    git clone https://github.com/BasteArima/HiddenPool.git
  3. Open the folder in Unity Hub and load Assets/Scenes/Main.unity.
  4. Press Play.

Android release builds are signed with a keystore that is not part of the repository. Put your own keystore at Keys/HiddenPool.keystore (the Keys/ folder is git-ignored) or pick another one in Player Settings β†’ Publishing Settings.

Platforms

Platform Notes
Windows Standalone build, fullscreen/windowed toggle
Android Package com.KatharsisGames.HiddenPools
WebGL Uses the bundled responsive WebGL template

License

The source code of Hidden Pool is licensed under the GNU General Public License v3.0.

Third-party content keeps its own license and is not covered by the GPL: Dota 2 hero portraits (Valve Corporation), GUI PRO Kit – Fantasy RPG, Simple Localization and other Asset Store packages, UniRx / UniTask (MIT), DOTween, the Comfortaa font (SIL OFL) and the music track.

Credits

Hidden Pool is a fan-made project and is not affiliated with or endorsed by Valve Corporation. Dota 2 and all hero names and portraits are trademarks and property of Valve Corporation.

About

🎲 "Guess Who?" party game with Dota 2 heroes β€” share a seed, get the same board, find your friend's hidden hero first. Unity 2022.3 Β· Windows / Android / WebGL

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages