# Commandory: modified VanillaConquer and OpenTS browser builds

Modified by the Commandory contributors, 2026-10-16.

This build contains modified VanillaConquer and OpenTS engines; it is not an original or official Electronic Arts release. Original engine copyright notices remain in the source, including Copyright 2020 Electronic Arts Inc. Additional upstream contributor notices remain intact.

Changes include Emscripten/WebAssembly compilation, asynchronous indexed asset reads, browser audio/video scheduling, adaptive integer display scaling, HUD and overlay fixes, browser saves, touch controls, launcher integration, community mission catalogs and offline skirmish selection. The source download includes the actual working files used for the build, including changes not yet committed upstream.

Commandory’s original contributions are licensed under GNU GPL version 3 without additional terms imposed by Commandory; see LICENSE.txt and LICENSING.md. Inherited engine code retains its applicable upstream terms in Vanilla-Conquer/License.txt and OpenTS/LICENSE.md. Third-party components retain their own notices/licenses. You may use, study, modify and redistribute the covered code under those terms, including commercially. Modified redistributed versions must preserve the applicable notices, identify their changes and provide corresponding source as required by the license. No additional restriction on those GPL freedoms is imposed here.

There is no warranty; see LICENSE.txt for the complete disclaimers. No EA trademark or publicity rights are granted. Commandory is independent and is not affiliated with or endorsed by Electronic Arts. Original game assets and community content have separate terms and are not relicensed under the GPL by this project.

The experimental OpenTS integration adds browser portability, WebGL 2/GLES 3 presentation, streamed MIX reads, bounded movie read-ahead, Space/Enter movie skipping, clipped row-copy optimization and adaptive viewport changes. TS saves currently last only for the session; mobile controls and Firestorm campaigns need validation.

Browser defaults for game speed and scroll rate are one slider step faster: Tiberian Dawn uses 3 instead of 4; Red Alert uses 2 instead of 3. Saved settings remain authoritative. The Red Alert browser multiplayer music default is 25%, matching its normal default.

Red Alert browser skirmish retains the normal music volume instead of replacing it with the original multiplayer-only muted default. Music-volume changes made during skirmish are saved to the same normal setting. Native desktop volume behavior is unchanged.

The engine source archive and source-build.json beside the browser binaries identify the snapshot and SHA-256 of the supplied binaries. Build instructions are in README.md, tools/build_web.sh and tools/build_ts_game.sh. Source snapshots exclude proprietary game assets, saves, credentials and build output.

The optional TD multiplayer build adds a room-backed browser packet transport while retaining native IPX connection management, event queues, synchronization and CRCs. A separate GPL Rust relay, lazy browser lobby, original-map readiness index and self-hosted nginx/container examples accompany it. Only TD has a game adapter; independent RA/TS room identities are service infrastructure, not enabled engine multiplayer. Browser input changes add context-menu suppression, middle-click cancellation, right-drag map movement and local same-type selection. High-score and confirmation layouts adapt to the existing viewport presentation. EA guidelines notices and unresolved asset-rights notes are updated separately from the GPL code grant.

- Added the RA browser network transport and native session/house startup, bounded/yielding player waits, clean disconnect unwinding and diagnostic CRC publication. TD network tech cap restored to the standard multiplayer maximum (7), avoiding unintended civilian/hospital production.
- Added direct-range indexing for original RA multiplayer map INIs; separate RA network Wasm/source identities. Room GUI supports TD/RA selection, game-aware QR invites, host settings and automatic verified readiness. Updated native Debian deployment preflight and scripts for both network engines.

- Browser network matches support Enter to open broadcast chat, Enter to send and Escape to cancel, retaining function-key entry. Restored TD’s browser-only native global-message send path (the legacy upstream send block is disabled), including original segmented packet identity/CRC and bounded input. Native rendering publishes last-message diagnostics for integration inspection. Preserved existing A/alliance and S/stop key bindings.
