explaingit

gritsenko/buhanka

Analysis updated 2026-05-18

0C++Audience · developerComplexity · 4/5Setup · moderate

TLDR

A text-based survival game about traveling across Russia, built with a shared JSON data model so the same content can run in a browser or on an ESP32 microcontroller.

Mindmap

mindmap
  root((Road to the East))
    What it does
      Text based survival game
      Shared JSON content model
      Browser plus ESP32 targets
    Tech stack
      C++
      JavaScript
      PlatformIO
    Use cases
      Play browser prototype
      Port to ESP32 hardware
      Study data driven design
    Audience
      Game developers
      Embedded hobbyists

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Play a browser-based prototype of a Russia-spanning survival narrative game.

USE CASE 2

Study how to share game content between a web prototype and embedded hardware.

USE CASE 3

Build a portable narrative game on an ESP32 microcontroller with a small screen.

What is it built with?

C++JavaScriptHTMLPlatformIOESP32

How does it compare?

gritsenko/buhankadaviddrysdale/pkcs11testdeftruth/mnn
Stars0
LanguageC++C++C++
Last pushed2023-01-182023-04-29
MaintenanceDormantDormant
Setup difficultymoderatemoderatemoderate
Complexity4/54/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Browser demo just opens in a browser, the ESP32 hardware port needs PlatformIO and a LilyGO T-Display board.

In plain English

Road to the East (Doroga na vostok) is a text based survival game where the player leads a small group on a journey across Russia, making choices at each event while managing food, health, morale, and transport. The project is a prototype with two forms: a browser version that serves as the playable demo and design reference, and a planned hardware version meant to run on an ESP32 LilyGO T-Display, a tiny microcontroller with a small screen and two physical buttons. The architecture is built so both versions can share the same data model. Game content, such as story events, choices, scene descriptions, and sprite definitions, lives in JSON files that can be updated independently from the game engine code. The browser version renders pixel art scenes on an HTML canvas, simulates the hardware's two button input, and is sized to match the target screen resolution. A firmware folder contains a PlatformIO project, a tool for embedded software development, for the hardware client. This data driven approach means that updating the story, adding scenes, or tweaking game balance does not require changing any code, only the JSON content files. Sprites are stored as pixel art assets meant to be converted later into formats suitable for the constrained memory of the microcontroller, such as RGB565 or an indexed palette with compression. The README lays out a step by step plan for building the hardware client, starting with a fully offline version that ships all story content baked into the firmware, then adding Wi-Fi content updates without reflashing, and finally saving progress to flash memory so a session can resume after a restart. It also calls for keeping memory use low by loading only the scenes currently needed rather than holding everything decoded at once. You would reach for this project if you are interested in building a narrative game that runs on inexpensive embedded hardware, or if you want to study how a browser based prototype can share its content layer with a future hardware port. The primary language is C++ for the firmware, with the browser prototype built in plain HTML, CSS, and JavaScript.

Copy-paste prompts

Prompt 1
Explain how this project shares its JSON content model between the browser and ESP32 versions.
Prompt 2
Walk me through the firmware plan for porting this browser game to an ESP32 T-Display.
Prompt 3
Help me understand how sprite assets get converted for the microcontroller's limited memory.
Prompt 4
Show me how to add a new story event to this game's JSON data files.

Frequently asked questions

What is buhanka?

A text-based survival game about traveling across Russia, built with a shared JSON data model so the same content can run in a browser or on an ESP32 microcontroller.

What language is buhanka written in?

Mainly C++. The stack also includes C++, JavaScript, HTML.

How hard is buhanka to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is buhanka for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.