Polar Games

A little frog, a stream of logic · 1.0.0

Frogdoku

180 campaign puzzles across 6 stretches of a stream (Lily Pad Marsh to Springhead Falls), a daily puzzle calendar, Endless and Relax modes, trophies and an earnable wardrobe for Ribi the frog. The goal is always the same: exactly one frog in every row, column and coloured pond; frogs never touch, even diagonally. Tutorial narration is recorded in English, Brazilian Portuguese and Spanish. All 14 interface languages are translated; the other 11 use the English voice clips.

Version 1.0.0 Edition Standalone buyer edition

This guide works without internet. Images, styles and scripts are already inside this file.

Contents
  1. Overview
  2. Installation
  3. Requirements and sound
  4. How to play
  5. Interface guide
  6. Files and customization
  7. Languages
  8. Local saves
  9. Development
  10. Updating and cache
  11. Licenses
  12. Troubleshooting
  13. Support

1 Overview

180 campaign puzzles across 6 stretches of a stream (Lily Pad Marsh to Springhead Falls), a daily puzzle calendar, Endless and Relax modes, trophies and an earnable wardrobe for Ribi the frog. The goal is always the same: exactly one frog in every row, column and coloured pond; frogs never touch, even diagonally. Tutorial narration is recorded in English, Brazilian Portuguese and Spanish. All 14 interface languages are translated; the other 11 use the English voice clips.

2 Installation

Extract the ZIP. Open DOCUMENTATION.html for this guide. Upload only the contents of game/ to your static HTTP(S) hosting, keeping all folders beside index.html. Open that address in a browser. No database, PHP, account or Node.js runtime is needed to play. Keep source/ and the full ZIP outside your public website.

3 Requirements and sound

Use a current browser with JavaScript, Canvas 2D, Web Audio and local storage enabled. Mouse and touch are supported. The first click, tap or key press unlocks sound; check browser autoplay settings and the in-game sound controls. Files are bundled locally; normal play makes no request to Polar ranking, advertising or payment services. Host the complete folder; opening game HTML through file:// is not the supported installation method.

4 How to play

Tap a cell to cycle its mark (X, frog, maybe), pick a tool in the toolbar if you prefer, or drag across cells to cross them out. Place frogs using the pond colours, rows and columns. Undo and redo are available; Hint (firefly), Dragonfly and Rain are local helpers that unlock as you advance. Campaign rewards and daily play fund the wardrobe. Daily boards work without any online ranking.

5 Interface guide

Menu
Menu

Marks on the screenshot

  1. Play and progression
  2. Wardrobe
Gameplay
Gameplay

Marks on the screenshot

  1. Game board
Wardrobe
Wardrobe

Marks on the screenshot

  1. Wardrobe
Settings
Settings

Marks on the screenshot

  1. Language selector

6 Files and customization

Edit the campaign and generator in src/core/, Ribi and the cosmetic layers in src/bo/ (the class name Bo and the bo.* text keys are internal names kept for compatibility), artwork through src/art/manifest.ts, and text in src/i18n/. Voice files live in public/voice/en, pt and es; captions and clip IDs must agree. Some internal identifiers (for example ghost for a placed frog, candle for the Hint helper, lantern for Dragonfly and broom for Rain) are intentional: renaming them would invalidate saved games. Preserve puzzle and cosmetic IDs when updating saves.

game/                       upload these contents
source/                     editable developer edition
documentation/index.html    offline illustrated guide
DOCUMENTATION.html          guide shortcut
THIRD-PARTY-LICENSES/       complete notices

source/src/core/campaign.ts    180-level campaign
source/src/core/               logic, solver and generation
source/src/bo/                 Ribi the frog and cosmetics
source/src/i18n/               14 interface dictionaries
source/src/art/                game artwork (WebP)
source/public/voice/           three recorded languages
source/test/                   regression tests

7 Languages

The game interface offers 14 languages. This offline buyer guide is in English, Brazilian Portuguese and Spanish; its dropdown detects the browser and remembers the selected guide language. Screenshots stay in English. Interface languages and recorded voice coverage are separate features. Edit the source dictionaries without changing interpolation placeholders.

8 Local saves

Progress belongs to this browser and origin. This buyer edition uses its own storage namespace, separate from the Polar website game. Clearing site data, using another browser or changing the hosting origin does not transfer progress. Private browsing and blocked storage may prevent persistence. There is no account, online ranking or cloud synchronization.

frogdoku.template.save.v1

9 Development

The ready-to-host game needs no Node.js. The editable TypeScript source is optional and uses Vite 6.4.5 with Node.js 22.13 or newer. Follow the beginner steps below, then run the commands in source/. The readable static output is dist-static/. The website ranking SDK and its calls were removed from this edition; no server setup is needed.

New to Node.js? 1) Install the LTS version from nodejs.org (Windows or macOS installer) or with your package manager on Linux; it must be 22.13 or newer. 2) Close and reopen the terminal, then run node -v and npm -v to confirm both print a version. 3) Open the terminal inside the source/ folder (the one containing package.json). 4) Run npm ci to install the exact dependencies from package-lock.json, including the development tools. 5) Run npm test for the 52 regression tests, then npm run build to type-check and write the game to dist-static/. 6) Test locally with npm run dev (http://localhost:5252/) or npm run preview, then upload the contents of dist-static/ like game/. Common errors: node or npm not found (reopen the terminal or fix PATH); on Windows PowerShell, npm.ps1 cannot be loaded (run npm.cmd ci or use Command Prompt); ENOENT package.json (you are not inside source/); EBADENGINE (Node.js is older than 22.13); network or proxy failures during install (check your connection and proxy settings); npm ci complaining about the lock file (do not edit package-lock.json; delete node_modules and retry). npm run dev and npm run build copy the audio from the sibling game/ folder, so keep game/ next to source/.

cd source
npm ci
npm test
npm run build
npm run dev
# http://localhost:5252/

10 Updating and cache

Keep a backup of your edited files before replacing a release. Upload all updated assets together and keep the public URL unchanged to preserve the browser save. Clear hosting or CDN caches when applicable. Test a private window after deployment; adding ?v=2 to the entry URL can help diagnose stale HTML but does not replace updating all assets.

Clearing the cache without losing progress

Progress is stored in this browser, not on the server. Clearing cached images and files, or doing a hard reload, keeps your progress.

Computer: press Ctrl+F5 on Windows and Linux, or Cmd+Shift+R on macOS. Phone: in the browser settings, choose the option to clear cached images and files.

Do not choose cookies and site data, or clear site data, for the game's address. That deletes the local save.

11 Licenses

The game artwork, audio and editable game code are supplied under the purchased item license. Included fonts retain their complete SIL Open Font License notices in game/licenses/ and THIRD-PARTY-LICENSES/. Developer dependencies retain their own upstream licenses. Original production PNG masters and artwork-generation tools are not included.

12 Troubleshooting

If the page is blank, check that every folder was uploaded, the URL is served over HTTP(S), and the browser console and Network panel have no missing files. Module builds need correct JavaScript MIME types. If sound is silent, interact once and inspect browser and game volume. If progress resets, inspect storage permissions and origin changes. The guide itself also opens offline through file://.

13 Support

For support and customization contact willian@polargames.com.br. Include the product version, browser, device, hosting URL, reproduction steps and a screenshot. No backend, native app, ad SDK or real-money purchasing system is included.

Support request

When you write to support, include the browser and device, the game version, the page address, the steps that caused the problem, a screenshot and the first error shown in the browser console. Never send passwords, payment details or secret keys.