20,000 Light-Years Into Space
Saved games stay in this browser only.
About the game
It is 1895, and you have been left in charge of the first human city on Vaporia, a planet 20,000 light-years from England and entirely powered by steam from its own core. Your city needs steam to grow, and steam comes from vents scattered over the ground. Your job is to build a network: nodes (put one over a vent and it becomes a steam maker) joined by pipes, with the city at the centre. Upgrade the city enough times and you win; let it run out of steam and you lose.
It sounds calm, and for a few minutes it is. Then the planet starts to push back. Aliens that understand your network appear and attack its weakest links, sandstorms wear pipes down and earthquakes tear lines open. A network with a single route to the city will not survive, so you build second and third routes, put nodes where pipes would be too long, keep some work units free for emergency repairs, and watch the pressure gauge. A full game takes about fifteen minutes.
There is an interactive tutorial, three difficulty levels, a peaceful mode with no attacks if you only want to build, a fast-forward button, and you can save and restore your game. It began as a one-week PyWeek entry in 2006, and was restored for its fifteenth birthday by the same author.
Playing it here
The first time you click Play the page downloads the Python runtime and the pygame library (about 23 MB), which takes a few seconds; after that a "click to start" message appears, and one more click opens the menu. The download is kept by your browser, so the other pygame games on the site open faster. Nothing is loaded from other sites. The settings and your saved games stay in this browser only. The "View Manual", "Check for Updates" and "Exit" lines of the original menu are gone, since they opened the author's website or had nowhere to go.
The game is played with the mouse, and the Menu button or Escape pauses it. The sound starts off, as in the original: turn it on in the menu ("Turn Sound On"), and the browser may wait for your first click before it plays anything.
Controls
| Input | Action |
|---|---|
| Click Build Node, then a place on the map | build a node (over a steam vent: a steam maker) |
| Click Build Pipe, then two nodes | lay a pipe between them |
| Click Upgrade, then a node, pipe or the city | start an upgrade |
| Click Destroy, then something | tear it down (to rebuild it somewhere better) |
| Click an item | see its steam pressure and build progress |
| Escape or Menu | pause and open the menu |
| Hold the fast-forward button | speed the game up |
A few things worth knowing
One steam maker per tech level, at least. As a rule of thumb, but build more than that: some will be destroyed.
Do not upgrade the city too early. Get the steam first, because an upgraded city eats more of it and you can lose quickly if supplies are cut.
Build second routes. Steam follows the path of least resistance, so extra routes both survive attacks and let more steam through. Nodes cost more to build than pipes but are very hard to destroy.
Close to the city is built first. Things connected to the city are built, repaired and upgraded in order of how near they are, so you can plan a build order. Things not connected to the city are not worked on at all.
Frequently asked questions
Does it save my game? Yes, in ten slots, in this browser. Clearing the site data erases them.
Is there a way to play without being attacked? Yes, the Peaceful difficulty.
Does it work on a phone? It is made for a mouse and a window of at least 920 by 690 pixels, so not really.
Is it free? Yes: the code is free software under the GPL version 2.
Credits and licence
20,000 Light-Years Into Space was written by Jack Whitham for the second PyWeek competition in 2006, and updated in 2021 for its fifteenth anniversary. The new graphics of version 1.4 are by Cris Grada, the text font is Bitstream Vera, the picture of the moon is a NASA photograph from Apollo 15 and the menu icon comes from XSane. The code and the rest of the game are released under the GNU GPL version 2. This version is the one Debian packages, with changes to run in a browser and three textures and one sound replaced by ones made for this site, because their origin could not be checked as well as the rest (the complete source, the changes and the licence texts are linked from the Licenses page). The game runs on pygame-ce (LGPL-2.1) and CPython, whose licences and source are linked there too.