Fernweh is a calm, single-player narrative journey across four seasons. There's no combat, no open map, no timer or score on screen — you walk a fixed path from spring to winter, stage by stage, making small choices that trade off what little you're carrying. Every scene, every color, every flake of snow or falling leaf is drawn procedurally with pygame primitives — there are no image assets in this repository.
- The journey. Four seasons — Spring, Summer, Autumn, Winter — five stages each, twenty in total, always in that order. No branching map: your choices shape what happens to you, not where the road goes.
- Resources. You're sustained by two things: Energy and Supplies, both 0–100. Both drain a little each stage on their own, and drain faster as the seasons turn colder or as more companions travel with you. Choices can cost more of one to spare the other, or restore what the road has taken.
- Companions. Along the way you can invite up to four travelers to join you. Company is good for the telling, but more mouths to feed means faster Supplies drain — every invitation is a real tradeoff, not a free bonus.
- Afflictions. Hardship follows as status conditions — Exhausted, Ill, Frostbitten — that speed up drain, grey out reckless choices, and visibly darken and slow the game the more of them are active. Specific rest and recovery choices cure them, usually over a stage or two.
- The ending. If Energy or Supplies ever hits zero, the journey ends early, wherever it happens to be — quietly, not with a "game over" screen. Reaching the twentieth stage or running out early both lead to the same place: a short, procedurally composed closing passage built from how you arrived (rested or exhausted, alone or in company, still recovering or not) and a small list of the keepsakes and companions you gathered. That's the score. It's never shown as a number.
Requires Python 3.11+. Nothing else — no manual virtual environment, no manual
pip install, no activation step.
git clone https://github.com/JustThatRandomCoder/fernweh.git fernweh
cd fernweh/fernweh-game
python3 fernweh.py(The game code lives in the fernweh-game/ subfolder; only the one-click startup files
sit at the top level.)
The first run sets up a local virtual environment and installs dependencies
automatically (with a short status message while it does), then opens the window and
starts with a click-through intro (also reachable later by pressing H). Every run after
that skips straight to launching the game.
To test that first-run experience again as if you'd only just cloned the repo, reset with:
cd fernweh-game
python3 fresh-start.py # asks before removing anything
python3 fresh-start.py --dry-run # just show what it would removeThis removes the local virtual environment (the installed dependencies), all saved games, and generated caches — nothing tracked by git — so the next launch reruns the whole setup from scratch.
cd fernweh-game
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements-dev.txt
pytest tests/ -vSee fernweh-game/TESTING.md for the full setup walkthrough and
what's covered.
Python 3.11+ and pygame-ce for rendering,
with the game's rules (resources, stage progression, afflictions, ending generation) kept as
pure Python with zero pygame imports, so the whole logic layer is unit-tested headlessly.
All visuals are procedural pygame primitives — gradients, particles, and a small hand-rolled
tweening module — no image assets. Narrative content lives in
fernweh-game/content/stages.json, not hardcoded in
engine code. See fernweh-game/DOCUMENTATION.md for the
full technical writeup, including the decisions behind each system.
Don't want to touch a terminal? You don't have to. Once you have the game's folder:
- Open the
fernwehfolder. - Double-click the startup file for your computer:
- On Mac, use
START-GAME-FERNWEH-MAC.command. - On Windows, use
START-GAME-FERNWEH-WINDOWS.bat.
- On Mac, use
- The first time, a window opens and shows it setting things up — this can take a minute while it installs everything the game needs. Just leave it open.
- When it's done, the game opens on its own. Every time after that, it starts right away.
That's it. No commands, no setup.
A couple of things that might come up
- (Mac) "macOS cannot verify the developer" / it won't open. Right-click (or
Control-click) the
START-GAME-FERNWEH-MAC.commandfile, choose Open, then click Open again in the dialog. You only need to do this once. - (Windows) a blue "Windows protected your PC" box. Click More info, then Run anyway. You only need to do this once.
- It says Python isn't installed. The launcher will tell you and link to python.org/downloads. Install Python 3 (on Windows, tick Add Python to PATH during setup), then double-click the startup file again.
- How do I get the folder in the first place? Download it from the project's GitHub page (the green Code button → Download ZIP), then unzip it. The startup files are inside.
The one-click launchers cover macOS and Windows. On Linux, use the terminal steps under Installation & running above.
Copyright © 2026 Julius Grimm. All rights reserved. Fernweh is free to download and play for
personal, non-commercial use. Modifying and redistributing the game, or using its code in
another project, requires prior written permission from the author — see
LICENSE for the full terms, and reach out to me@juliusgrimm.dev to request
permission beyond what's granted there.