The Jagged Alliance 2 Stracciatella team is proud to present a new release. It includes several new features, plenty of bugfixes compared to previous versions and the original game, clean-ups of the old code base, and most notably much more work in externalizing hardcoded game data.

Through 479 commits at least 30 bugs were fixed, 5 of which are known to affect vanilla.

New Features:

  • Modding improvements
    • Several hardcoded values and assumptions are now externalized to additional json files for easy editing (SAM sites, merchants, game items, M.E.R.C. soldiers, sector info, weapon cache location, strategic AI policy, NPC placement)
    • Initial scripting support via lua scripts
    • Supporting Unfinished Business tilesets
    • Support for ogg and mp3 audio formats
  • Configurable game speed (set ms_per_time_slice in game.json)
  • Self-contained AppImage Linux builds
  • Preliminary Android build (beware: not adapted for touch input)
  • A chance-to-hit F hotkey

We are shipping pre-built packages for Linux, Windows and OS X. This should help users to easily get started with Jagged Alliance 2 Stracciatella. For users willing to take a risk we also provide automatically created nightly builds.

Download: http://ja2-stracciatella.github.io/download/ Make sure to uninstall any previous versions before installing.

Build changes:

  • a C++17 compatible compiler is now required

Warning: SDL2 2.0.6 on Linux has a fatal bug in the audio conversion code. As a workaround, the game automatically disables all sounds if it detects this version during startup. Please downgrade to version 2.0.5 or use version 2.0.7 or later.

Main Changelog:

  • Bugfix (vanilla): Game freezes for about 4 seconds when a fight starts or a round is finished. (#1219)
  • Bugfix (vanilla): Game hanging after an attack (#1318)
  • Bugfix (vanilla): Player can compress time or move the squad while being ambushed by Bloodcats (#412)
  • Bugfix (vanilla): Small bug-fixes from Unfinished Business (#1199
  • Bugfix: Arrows in IMP attribute allocation screen not exact (#683)
  • Bugfix: Correcting unsigned int comparison in NPC.cc (#1208)
  • Bugfix: Fix the Tileset defaulting logic (#1218)
  • Bugfix: Fredo refuses to repair extended ears (#1309)
  • Bugfix: Game hangs when loading a new music track (#1249)
  • Bugfix: Ja2.exe: exited with status code -1073741819 (#1196)
  • Bugfix: Segfault at G1 map inventory (#1234)
  • Bugfix: Fixing game stuck after halting soldier (#1325)
  • Bugfix: Fixing illegal array access flagged by Coverity (#1203)
  • Bugfix: Fixing incorrect item flags checks (#1310)
  • Bugfix: Fix MovementNoise() (#1307)
  • Bugfix: No strategic movements during bloodcat ambush (#1174)
  • Bugfix: Replacing invalid attached objects in preplaced world items (#1313)
  • Bugfix (non-vanilla): Correcting dealers.json data error (#1195)
  • Bugfix (non-vanilla): Fix: Buttons stay disabled after leaving the shop keeper interface (#1312)
  • Bugfix (non-vanilla): Fix punching and throwing rocks (#1194)
  • Bugfix (non-vanilla): Fix warp exit from mine (#1186)
  • Bugfix (non-vanilla): Game crashed after helicopter landed. It deleted my save. (#1216)
  • Bugfix (non-vanilla): Moddable music error - not enough memory (#664)
  • Bugfix (non-vanilla): Rock cannot be thrown as a weapon (#1192)
  • Bugfix (non-vanilla): Screenshots don’t show path APs and sometimes don’t show path either (#376)
  • Bugfix (non-vanilla): Unused items slots should be IC_NONE (#1191)
  • Bugfix (non-vanilla): Fix Dead-is-dead failure on fresh install (#1217)
  • Enhancement: Adding the monster spit effect to weapons.json (#1179)
  • Enhancement: Address #1292 item 1: support Urban Chaos quasi-empty smacker files (#1326)
  • Enhancement: Android build (#228)
  • Enhancement: Auto-switch attached goggles (#1176)
  • Enhancement: Configurable BASETIMESLICE duration (#1173)
  • Enhancement: Create packages for Linux (#138)
  • Enhancement: Dependency inversion with Observable and notify (#1223)
  • Enhancement: Disable quick edit mode when Launcher starts (Windows only) (#1171)
  • Enhancement: Display a message if player choose an inaccessible dropoff sector (#1204)
  • Enhancement: Externalize (arms) dealer info (#1185)
  • Enhancement: Externalize SAM air control table (#1181)
  • Enhancement: Externalize sector Loading Screens (#1182)
  • Enhancement: Externalizing RPC small faces (#1242)
  • Enhancement: Feature: Add chance-to-hit hotkey (#1188)
  • Enhancement: Game speed / walking speed (#148)
  • Enhancement: Generalizing hard-coded dealer logic (#1189)
  • Enhancement: Improve Pixel-Perfect scaling usability (#1175)
  • Enhancement: Ja2.log should go to temp (#1257)
  • Enhancement: Lua scripting engine (#1209)
  • Enhancement: Attached goggles can’t be auto-switched (#649)
  • Enhancement: Notify the player of important NPC in sector (#1200)
  • Enhancement: OGG audio files support (#64)
  • Enhancement: Proposal: Build distro-agnostic packages for Linux releases instead of Debian Package (#1213)
  • Enhancement: Scaling usability improvements (#1169)
  • Enhancement: Screenshot folder (#639)
  • Enhancement: Supplementary data to Merc Profiles (#1247)
  • Enhancement: Support Unfinished Business (“JA 2.5”) tilesets (#1210)
  • Enhancement: Tactical AI patches from Unfinished Business (#1281)
  • Enhancement: Unfinished Business weapons mod (#1128)
  • Enhancement: Use caching on build bots / speed up builds (#1102)
  • Enhancement: Externalization and generalization of M.E.R.C. (#1244)
  • Enhancement: Patches from Unfinished Business (#1198)
  • Enhancement: Android build (#1240)
  • Enhancement: Better lua debugging functionality (#1214)
  • Enhancement: Build AppImage for linux (#1215)
  • Enhancement: Observable listeners from Lua scripts (#1238)
  • Maintenance: 0.18 checklist (#1331)
  • Maintenance: Adding game policy options to customize when M.E.R.C. goes online (#1245)
  • Maintenance: Better error messages on JSON parse errors (#1167)
  • Maintenance: Externalize cache sectors (#1267)
  • Maintenance: Externalize game items (#1295)
  • Maintenance: Externalize sector land types (#1264)
  • Maintenance: Externalize Strategic AI policy (#1306)
  • Maintenance: Externalizing I.M.P. activation code (#1280)
  • Maintenance: Externalizing I.M.P. initial level (#1260)
  • Maintenance: Externalizing initial NPC placements (#1263)
  • Maintenance: Externalizing M.E.R.C. profile bio index (#1251)
  • Maintenance: Externalizing strategic map secrets (#1262)
  • Maintenance: Fixing compiler and coverity warnings (#1190)
  • Maintenance: Print unhandled exception message on Windows (#1168)
  • Maintenance: Rework SoundMan.cc to stream audio if necessary (#1274)
  • Maintenance: TravisCI Mac builds no longer free (#1276)
  • Maintenance: Turn off console Quick Edit mode (Windows only) (#1166)
  • Maintenance: Upgrade AppVeyor builds to VC++ 2019 (#1197)
  • Maintenance: Another try at fixing travis build (#1225)
  • Maintenance: Array-bounds checks and clean up (#1207)
  • Maintenance: Build caching on AppVeyor (#1227)
  • Maintenance: Change signature of GetMapTempFileName() (#1324)
  • Maintenance: Clean up dead code (#1222)
  • Maintenance: Clean up Map Screen code (#1202)
  • Maintenance: Docs/Release-checklist.md: converted to github checklist (#1170)
  • Maintenance: More flexible NPC faces handling (#1239)
  • Maintenance: More TileEngine refactoring (#1236)
  • Maintenance: Proposal: Remove the screenshot and video capture functionality (#1327)
  • Maintenance: Reduce noise in logs (#1180)
  • Maintenance: Refactor SAM sites logic (#1232)
  • Maintenance: Refactor TileEngine (#1211)
  • Maintenance: Remove animation view screen (#1299)
  • Maintenance: Remove reinterpret_casts in LoadSaveData.cc (#1297)
  • Maintenance: Sccache all the things (#1235)
  • Maintenance: SetGroupArrivalTime to be a member of GROUP (#1241)
  • Maintenance: Try to fix Mac build (#1226)
  • Maintenance: Try to fix travis ci build (#1224)
  • Maintenance: Updating cargo deps (#1221)
  • Maintenance: Use fixed Windows SDK version on appveyor (#1212)
  • Maintenance: Upgrading to C++ 17 (#1284)