An experimental, non-commercial rework of Jagged Alliance 2 built on JA2 Stracciatella.
DEVELOPMENT PAUSED AT v0.1.1: this repository is preserved as a fragile-tested experimental framework, not a finished game. The tagged Windows package has a recorded build, complete automated suite, native core smoke and package manifest. Broad manual coverage is still missing, and campaign-scale gameplay, complete object coverage and several combined legacy-UI states remain unfinished. See the full project status report before testing or continuing development.
Current public playtest checkpoint: v0.1.1. It combines the creator and crate tutorial, target-bound contextual actions, queued approach/revalidation, movable OS//0 workspace, layered cancellation and mouse-facing Normal/Combat control with a hardened single-owner item-transfer and mouse-event pipeline. The final follow-up adds one persistent interaction anchor and explicit DIRECT/CLASSIC movement ownership.
- Open the v0.1.1 release.
- Download
Escape-from-Arulco-Playtest-v0.1.1.zip. - Extract the complete ZIP into a writable folder.
- Run
START_PLAYTEST.cmd. - In the launcher, select your own legally installed JA2 or JA2 Gold directory.
- Select the correct game language and start in windowed mode.
The playtest includes the Windows executable, launcher, runtime DLLs, externalized Stracciatella data, test instructions and crash-log collector. It does not contain the original JA2 game data. Windows x64 and an existing JA2 installation are required.
PUBLISHED CHECKPOINT refers only to the tagged package and its recorded validation.
AUTOMATED CORE means focused state/policy tests exist, not that the complete mouse,
map and engine integration has passed manually. MANUAL VERIFICATION REQUIRED means
the runtime path is wired and available to test, while map coverage and combined states
remain incomplete. See FEATURE_WIRING.md for the audited status
and explicit omissions.
- Direct tactical-sector start without helicopter arrival or starting enemies
- One modal in-world character creator with a validated name, default/free attribute distribution, male/female JA2 tactical body selection and two selectable traits; the generated operator is muted and the obsolete laptop creator is retired
- One guided crate field test covering hover, contextual actions, automatic approach and taking an item; it depends on a suitable container existing in the sector
- One UI runtime and one viewport layout boundary shared by creator, windows and input
- One movable/minimizable OS//0 multitool over a full-height tactical viewport
- Character inventory is optional and opens from the shared character hub or its
CHARACTERcommand-dock entry - Object-first character equipment, pocket and container views anchored in the world
- One compact field-computer icon with movable Base/Map/Team/Report, Inspector and Toolbox windows whose positions persist by stable names
- Character and container inventories with item drag and drop
- Context-sensitive object, weapon, loot and stance actions resolved from one target-bound relation, including explicit move-to-range and blocked reasons
- One shared categorized character hub, opened either with
Fover the owned merc or with the firstCHARACTERdock button. Its root pages areACTIONS,ABILITIES / TALENTS,EQUIPMENT,GROUPandGOD; ability entries are shown only when they invoke a real engine-backed action - Hover-selected context cursors with middle-click cycling through valid actions;
Fand right click open the same object action surface - Player-issued AI command for running to cover and choosing prone/crouched stance
- Extended graphical JA2 long-hold menu for character, inventory and combat actions
- Star-menu God hub with a movable current-sector asset library and the existing 24-symbol JA2 interface atlas
- Live asset cards with the real tile sprite, occurrence count, material, footprint, salvage yield, durability/tool profile and one-click focus/cataloguing
- In-game asset catalog editor with custom names, categories, materials, roles and measured multi-tile footprints
- Movable world structures and early material/physics properties
- In-world carried asset sprites with movement bob and destination marker
- Material-coloured impact chips and weapon damage for catalogued resource assets
- Material-aware doors, furniture, fences, stone, debris and resource objects
- Persistent container seeding with useful loot and recoverable materials
- Dismantling and digging that produce timber, stone, scrap and topsoil
- Material-specific debug tools for debris, fences, trees, metal and earth
- Per-sector stockpiles and buildable shelter, workshop and secure depot upgrades
- Movable live-world editor with active-tileset assets, editor-safe items, NPC/RPC profiles, category filters, placement/removal, terrain brushes and native road macros
- Empty-map and
live-editor.datload/save workflow that keeps the player squad and rolls a failed world replacement back to a temporary map snapshot - Zoomed tactical view
- Explicit NORMAL/COMBAT multitool switch with mouse-facing, direct single-shot LMB fire, realtime WASD/Shift/Q/E movement and AP-safe one-tile control during turns
- One-layer-per-press Escape cancellation for modal UI, held items, manipulation, pending object approaches and cursor/combat state
- Built-in playtest feedback reports
This is a systems prototype, not a balanced or stable campaign. JA2 1.13, multiplayer/co-op, arbitrary blueprint construction, general rigid-body physics and a complete replacement for strategic travel/finance are not implemented.
- F over your merc: bind the merc to the movable
INTERACTION / TARGETanchor; its category pages dispatch through the same gameplay action registry - F over a world object or terrain: resolve the exact target and open its stable movable action anchor; selecting a distant physical action walks into range first
- Alt+F: retain JA2's tracking shortcut
- Escape: cancel exactly one top layer: modal/radial, held item, active object manipulation, pending approach, then cursor/combat mode
- Right click: context menu for the object or terrain under the cursor
- Hold right click: graphical character/movement menu; its star opens the Asset Library/JA2 icon hub and the other symbols control character, gear and combat
- Middle click: cycle the current cursor action
- Double click: open a character, container or world object
- OS//0 computer icon: drag to position; double-click to expand/minimize the Interaction, Salvage, Inspect, Info and God groups. During character creation it can already be moved and reports that command modules unlock after creation.
- MOVE MODE symbol: switch explicitly between
DIRECT(WASD, ordinary ground click reserved) andCLASSIC(native JA2 click paths). The choice is persisted; character selection, object double-click and world drag work in both modes. - TARGET/WALK symbol: switch between
COMBATandNORMAL. With no modal or item transfer owning input, the merc faces the mouse; W/S move forward/backward, A/D strafe, held Shift requests sprint in realtime, and Q/E temporarily own manual turning. In Combat, one valid ordinary single-shot firearm action is dispatched on LMB release. Burst/throw/trajectory attacks retain their native confirmation step. - Strategy/Info tools: open the movable Base, Arulco map/radar, Team and Report views; the full legacy strategic feature set is not yet ported
- GOD / CATALOG ASSET: right-click a world asset and classify it for the shared construction/resource database
- Asset Library: left-click a card to center its real map instance; right-click the card to edit its reusable catalog record
- TERRAIN / Live Editor: choose
TILES,ITEMS,NPCSorSYSTEM, filter a category, selectPLACE/ERASE, then click the tactical world. Terrain and water use adjustable paint/smooth brushes; roads cycle the original 32 JA2 road macros.EMPTY MAPrequires a second confirmation click.SYSTEMcontainsLOAD MAP, while the dedicated command saves%APPDATA%\JA2\OS0\maps\live-editor.dat. - OS0 CONTROL: the black/red command workspace runs natively inside the tactical engine. Its movable windows, radial actions, character/equipment surfaces, sector tools and editor all project the one canonical OS0 tactical session; no browser or second control process is required.
Asset classifications are written to %APPDATA%\JA2\AssetCatalog\os0-assets.tsv.
This file can be shared between testers without distributing original JA2 graphics.
Every saved feedback report embeds a catalog snapshot. Reviewed records are promoted
into the bundled curated database in later builds; a tester's local records override it.
In the computer's REPORT tab, choose a category, describe the problem and press
SAVE REPORT. Reports are saved to %APPDATA%\JA2\Feedback and include relevant
game context, recent OS0 actions and the tail of the engine log.
If the game crashes before a report can be saved, run COLLECT_LAST_CRASH.cmd from
the extracted playtest folder and attach the generated reports folder to a
bug report.
See PLAYTESTING.md for the full test checklist.
The project retains the Stracciatella build system. See COMPILATION.md. The tested Windows build uses MSYS2 UCRT64/MinGW64, CMake and Ninja.
On the configured Windows development machine, double-click
BUILD_AND_START_LOCAL.cmd. It configures C:\tmp\ja2-sandbox-build, compiles
only changed files, refreshes the required MinGW/SDL runtime DLLs and starts the
new executable in windowed mode. Command-line arguments override the default
-window argument. This shortcut is an incremental developer loop with
WITH_UNITTESTS=OFF; it does not replace the separate complete unit-suite, package
inspection or playtest gates required before publishing a build.
Double-click VERIFY_OS0_LOCAL.cmd for the non-interactive local completion gate:
it rebuilds ja2.exe, refreshes the runtime DLLs and runs the native OS0 core smoke
suite. The exact implemented/deferred boundary is recorded in
docs/PROJECT_STATUS.md.
cmake /path/to/escapefromarulco -G Ninja -DWITH_UNITTESTS=OFF
ninja -j2 ja2.exe ja2-launcher.exeThe original Stracciatella README is preserved at docs/STRACCIATELLA_README.md.
- No original Jagged Alliance 2 data files are included.
- A legally owned JA2 installation is required to play.
- This project is non-commercial.
- The source and derivative build are distributed under the included Strategy First source-code license agreement.
- Modified files carry a dated modification notice; the main changes are listed in MODIFICATIONS.md.
- JA2 Stracciatella contributors retain credit for the engine work documented in contributors.txt.
Jagged Alliance 2 and associated original assets belong to their respective owners.