So Code: Terraform now runs on Electron, the same Chromium engine that powers Google Chrome, on Linux and on Windows. Linux players who have tried it are already telling me how much smoother it runs. It should also run smoother on Windows as well.
How much smoother
I measured the old engine and the new one on the same Linux laptop (Intel UHD 620 and an NVIDIA MX150, a 3000x2000 screen at 175% scaling), with the same late game colony:
- The Planet Map with a storm crossing it, on NVIDIA: 9.6 frames a second before, 60 now.
- A busy late game colony with the editor and a camera feed open, on Intel: 31 frames a second before, 55 now, and the simulation keeps its full speed instead of running about a quarter slower.
- Typing in the editor, on Intel: a key took about three quarters of a second to show up before, about 9 ms now. With NVIDIA graphics on Wayland it could fall more than ten seconds behind; now it keeps up.
Also new on Linux
- Typing Chinese, Japanese or Korean through IBus or Fcitx works in every text field, separate windows included.
- The Linux settings for graphics acceleration, frame pacing and audio device wake-up, and the launch options behind them, are gone: the new engine does not have those problems.
Windows
Windows moves to the same engine. There the game already ran on a Chromium based engine, so it plays as before, with shorter pauses when a large colony autosaves. The Windows settings for graphics acceleration and the picture after Alt+Tab are gone too.
Your saves
Saves, settings, window layouts, your scripts folder, Steam Cloud and achievements carry over. One thing does not: unsaved script edits that an earlier version was still holding for recovery.
Tell me how it runs
If something looks wrong, runs slower than before or does not start, please tell me in the Steam discussions or on the Discord. Your distribution, desktop and graphics card help me find it quickly.
Also in this update
- Storms on the horizon, light breaking through after a storm and distant dust storms in the camera feed take a fraction of the computer's effort they used to, and the thunderstorm on the horizon has a new, more natural look.
- The play, pause and stop buttons and the window buttons are drawn icons, the same size on every system.
- A print inside an operator method such as __add__ no longer makes the other side of the operation run twice, or forever.
- A class defined inside a function keeps all of its attributes when the script pauses inside the class.
- itertools.starmap works with rows that are generators, even when a row prints or runs for a while.
- When a Library fails while it is being imported, traceback.format_exc() and print_exc() show the Library's own lines.
- from __builtins__ import Counter (and deque, defaultdict, OrderedDict) gives the real collections classes, so isinstance works with them.
- Ctrl+click on a name from a built-in module such as math opens its DOCS page.
Thank you for playing, and for every report that helped get here.