Before an online Total Annihilation match starts in Nanolathe, each player's engine runs a short practice battle. The clients compare results, and the lobby blocks the start if they disagree. That check, described in the project's online guide, addresses a practical problem for an open-source rebuild: friends can have different builds, but their machines need to calculate the same battle.
Nanolathe is an independent, MIT-licensed reimplementation of the game engine, now available as a public beta. It runs natively on Windows, Mac and Linux, with a browser version for desktop play. Campaign and skirmish support give returning players somewhere to start. For developers, the more interesting part is how the project separates the original game's behavior from changes it deliberately makes.
A practice battle before the real one
The rehearsal does more than compare version labels. Nanolathe's multiplayer design document says it runs a deterministic battle using the room's game content and configuration, then produces a digest of the final state. Its scripted actions exercise commander movement, construction and weapon fire. Sharing resources and declaring alliances are included too. The lobby requires matching digests, but the script doesn't cover every possible encounter.
During play, each client simulates the complete battle. A relay orders player commands and assigns the simulation ticks on which they execute. Clients compare unit checksums every 30 ticks, and disagreement stops the match. The design also states a security limit: these checks can't detect someone reading hidden battlefield information without changing the simulation. All clients hold the whole state. Agreement on calculations alone doesn't prove fair play.
Online play is Nanolathe-to-Nanolathe. The design excludes interoperability with the original executable and TA Forever. When arranging a game, owning the same Total Annihilation content isn't enough if someone uses another engine. Nanolathe brings its native and browser players together in its own sessions.
Your game files stay separate from the engine
You can try three original demo missions without buying or installing the full game. The getting-started page offers that browser route separately from the native beta. Full campaigns, skirmish and online play require an installed Total Annihilation folder containing the original HPI archives. A store installer or CD image isn't the folder the engine expects. The project points owners to copies from GOG, Steam or their original CDs.
The browser guide explains how to drag an installed game folder onto the running game or select it through the toolbar. It says those files remain local browser handles and aren't uploaded. The three-mission demo has no skirmish maps, so its multiplayer button stays disabled until you supply your own folder. Demo support covers desktop Chrome, Edge and Safari. Online browser play has been tested in Chrome and Edge, a narrower claim.
There are differences beyond the browser's controls. Browser saves belong to that browser and website address, and clearing site data can remove them. Desktop save import isn't implemented. The same guide says runtime terrain synthesis is disabled in the browser, memory and larger battles are more constrained, and browser clients can't use mods yet. If your reason to return is a particular mod or a large battle, those limits favor the native route.
Faithfulness has an evidence trail
Nanolathe publishes a clean-room behavioral specification based on isolated static analysis of the retail executable. The reference distinguishes what the engine computes from what game assets happen to contain. A unit file can show how a unit was configured. It cannot, by itself, settle the engine arithmetic that interprets that configuration. That distinction gives contributors a way to investigate a mismatch without treating familiar-looking play as proof of accuracy.
The specification labels claims as Established, Supported inference or Unknown. An inference must identify the unresolved branch or question, while an unknown must identify what would settle it. Each category document retains an open-items list. The evidence guide also warns that failing to find something in the functions examined doesn't establish its absence everywhere. For a developer extending the engine, that makes the unfinished research visible before it becomes an assumed rule in code.
Its documentation hub separates that behavioral reference from 15 guides to the original game's file formats and from implementation design documents. HPI archives, 3DO models and COB unit scripts each have their own format guide. The distinction is useful when reporting a bug: reading a file correctly and reproducing the behavior it triggers are separate obligations. Nanolathe exposes documentation for both, rather than leaving contributors to infer them from one large implementation.
A brighter battlefield can keep the same rules
The architecture document makes Modern gameplay the default and describes Strict 3.1 as disabling intentional Modern departures from retail behavior. It names specific departures, including Hold Fire behavior and yielding around factory exits and construction sites. Those changes have written contracts, rather than being treated as accidental failures to match the original. Retail research remains the baseline against which they are described.
Rendering is a separate choice. Nanolathe's features page offers Modern GPU and Classic CPU paths, switched in a match with F10, and says visual settings operate independently of gameplay rules. The modern camera can pull back to a whole-map view with team-colored tactical icons or move close to units. Switching the battlefield's appearance therefore doesn't select a different simulation policy. That separation lets a player choose modern presentation while evaluating the game's behavior on its own terms.
The native renderer can synthesize 64-by-64 terrain tiles from the installed game's 32-by-32 artwork using patch matching, then cache the result locally. Its published comparisons disclose staged scenes and capture conditions. The water and material viewers on the website are identified as browser studies, with differences from the native renderer. They demonstrate particular visual treatments. They don't establish how a full match performs on your computer, or how closely every mission follows retail behavior.
A beta built around an editable implementation
Creator Daniel Taylor describes Nanolathe as a spare-time project that grew from getting Total Annihilation running on a MacBook Pro. The project account says the research included video captures, decoded TA Demo Recorder recordings and generated test data loaded into the original game. AI tools helped investigate the executable and develop designs, then wrote most of the implementation under Taylor's direction. Those are the creator's descriptions of the development process, rather than an independent measure of the resulting code's accuracy.
Taylor says Go's quick compilation suited that work, with Ebitengine providing the window, graphics and audio foundation. His account also describes allocating during loading and reusing memory through pools to reduce pressure during play. The resulting engine code is available under MIT terms, including for commercial projects. Total Annihilation's assets retain separate terms. Someone building a new game on this code still needs content they have permission to distribute.
Installing the native beta currently means building code. The native setup guide says the installer downloads a private Go compiler, builds the latest main-branch commit and creates a shortcut. You don't need an existing Go or Git installation. The resulting apps are locally built and unsigned. Updates offer a choice to keep the installed version, and a failed update preserves the previous working build. That is a different distribution experience from downloading a fixed release binary.
Save compatibility also remains unfinished. The setup guide allows trying a retail .SAV file in Nanolathe's saves folder, but says to back up Nanolathe saves with their accompanying .nanolathe.json files when present. For a bug report, it asks for the operating system, installed revision and relevant logs, plus a replay for skirmish or Survival. Those details give maintainers a specific battle and build to examine without asking you to upload retail archives.
Online recovery is the next practical limitation to watch. The online guide says an active player's dropped connection ends the match for everyone, and reconnecting isn't possible yet. Until that changes, the rehearsal checks whether a group can start together, but cannot keep it playing after a connection fails. Watch for recovery support and compatibility fixes tied to reproducible battles before committing to a long game with friends.