Embers of the Forgotten Realm

A branching adventure of courage, consequences and suspicious geese.

  • Active Development
  • Game
  • Interactive Fiction
  • Works offline

A text-and-tap fantasy adventure for Android: forge a hero, explore 62 connected places and live with choices that change the world.

Embers adventure screen for Rowan, a level 1 warrior, on day 1 at dawn in Eldermoor Village: an illustrated village scene with tappable hotspots for the notice board, the well, Beggar Owen and a child, and actions such as rest a while, listen carefully and look around
Eldermoor Village at dawn: tap the scene, or choose an action, each with its time cost.

Screenshots

Captured from the release build running on an Android 14 emulator.

Showing screenshot 1 of 5

  • Eldermoor Village at dawn: tap the scene, or choose an action, each with its time cost.
  • Creating a hero: a name, a class, a background and a portrait that changes with your equipment.
  • The map: 62 connected locations, discovered one road at a time.
  • The character sheet, with reputation and karma alongside the usual numbers.
  • The title screen.

What Embers is

Embers of the Forgotten Realm is a native Android adventure told in text, illustrated scenes and taps. You forge a hero — name, class, background and appearance — and wake in Eldermoor Village on the day bad news is due to arrive. Every scene can be explored by tapping its hotspots or choosing an action, and every action costs time: the world tracks the hour, the weather, your reputation and your karma, and people remember what you did. There are 62 connected locations, 60 characters, 236 items and 344 actions, with quests, deterministic road encounters, equipment that changes your portrait, death and several endings. Progress is kept in an autosave and twelve named save slots, with checkpoints whenever the app is put away. It began as a browser prototype and has been rebuilt natively in Kotlin and Jetpack Compose; testing on a physical phone is still to come.

What it does

  • Hero creation with six classes, backgrounds and a changing portrait
  • 62 connected locations, 60 characters, 236 items and 344 actions
  • Illustrated scenes with tappable hotspots
  • Time, weather, reputation and karma that the world remembers
  • Quests, road encounters, death and several endings
  • An autosave plus twelve named save slots
  • Fully offline, with no permissions

The oldest genre, the simplest input

Interactive fiction ran on mainframes before phones existed. Embers asks what the genre feels like when every verb is a tap — and whether one well-written scene can outweigh a gigabyte of textures.

Getting Embers

Embers of the Forgotten Realm is still in development and is not distributed yet. It is roughly 70% of the way to a first public release.

At a glance

Status
Active Development
Version
1.1
Runs on
Android (Android 7.0+)
Offline use
Works offline
Package
com.embers.forgotten
Last updated

Privacy

Embers plays entirely on your device. Your hero and saves live in local storage, and the game requests no Android permissions.

Full privacy information for Embers →

Permissions

This project requires no special permissions.

Support

Questions, bugs or ideas for Embers?

Embers support →

Technical details

Technical details

Built with

  • Kotlin
  • Jetpack Compose
  • Material 3
  • StateFlow
  • kotlinx.serialization
  • Node.js content tools

How it is put together

  • A single game reducer in a ViewModel drives every screen from one state, exposed as StateFlow to Compose.
  • World content is exported to native JSON by a Node tool and graph-tested, so every location stays reachable and every hotspot has an action.
  • Schema-3 saves with an autosave, twelve named slots, corrupt-slot visibility, legacy migration and lifecycle checkpoints.
  • The original browser prototype is no longer packaged: the Android build runs entirely natively.

Development workflow

Built through Claude Code and Codex.

Timeline

  1. Browser prototype

    Text-and-click engine with character creation, attributes, gold and combat.

  2. Version 1.1

    Rebuilt natively in Kotlin and Compose; Gradle verification passed, device testing pending.

Accessibility in the app

  • Adjustable text size, high contrast and colour-vision palettes
  • A sans-serif reading mode and adjustable typewriter speed
  • Reduced motion and simplified scene presentation
  • Larger touch targets, descriptive labels and optional haptics
  • Turn-based throughout — nothing depends on reaction time
  • Tideline

    A patient, first-person fishing simulation.

    • Game
    • Kotlin
    • Jetpack Compose
    • Hilt
    Active DevelopmentAndroid
  • DuelSync

    Two phones. One referee. Sixty ways to lose gracefully.

    • Game
    • Kotlin
    • Jetpack Compose
    • Hilt
    BetaAndroid