gitwtfhub

wtf is buhanka?

gritsenko/buhanka — explained in plain English

Analysis updated 2026-05-18

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

TL;DR

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

Why would anyone build with this?

REASON 1

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

REASON 2

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

REASON 3

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

What's in the stack?

C++JavaScriptHTMLPlatformIOESP32

How it stacks up

gritsenko/buhankaalange/llama.cppayushm74/binance-lob-capture
Stars000
LanguageC++C++C++
Setup difficultymoderatemoderatehard
Complexity4/54/54/5
Audiencedeveloperdeveloperdeveloper

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

How do you spin it up?

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.

Wtf does this do

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.

Yoink these 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

wtf 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.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.