Stracciatella walks a fine line between preserving the original gameplay, adding ease-of-life improvements and providing new inobtrusive optional features.

On the internal side, good code as-a-feature has been a major focus of the project, easily illustrated by comparing the amount of code in related engines (as of March 2021):

Engine Lines of code Difference Languages
Original JA2 1,222,384 - C
Stracciatella 851,152 -30,4 % C++, Rust, (LUA)
JA2 1.13 2,184,310 +78,7 % C++, (LUA)

GUI Launcher

Note: added in 0.16.0.

A GUI Launcher is included to facilitate changing settings and tweaking the game. JA2 Stracciatella launcher tab 1 JA2 Stracciatella launcher tab 2 JA2 Stracciatella launcher tab 3

High Resolution Support

Added support for high video resolutions. For example, game can be started in 1680x1050 mode like this: ja2.exe -res 1680x1050.

JA2 Stracciatella in 1680x1050 resolution

Extra Hotkeys

Besides the hotkeys present in the original game, JA2S adds the following for greater ease of use:

  • scroll lock: toggle mouse grab in windowed mode
  • alt-r: reload held weapon
  • ctrl-shift-r: reload weapons of the whole group
  • ctrl-l: load game during enemy/militia turn
  • ctrl-n: switch between day and night head gear (goggles) for the whole squad
  • ctrl-q: swap hand items
  • shift-j: climb through open window
  • f: display chance to hit percentages for given tile

These require you toggle a game.json switch:

  • d: switch to turnbased mode from realtime

Additionally you can use the middle mouse button to make a merc look into the direction of the cursor.

Touch Controls

Note: added in 0.20.0.

Added support for touch devices.

  • Left click with a short touch
  • Right click with a long touch
  • Scroll with two fingers on the tactical screen
  • Confirm and adapt orders with separate touch controls on the tactical screen

Dead is Dead mode

Note: added in 0.16.0.

Dead is Dead is a new game mode for players looking for a new challenge, and who think Iron Man doesn’t cut it just yet. With the Dead is Dead mode the game takes the burden of saving and savegame management from your shoulders so you can concentrate on the important bits.

You select one savegame slot at the beginning of a new game, and the game will stick to that slot throughout your playthrough. The game will also make sure to save before you leave, so you can rest assured you will always be able to pick up at where you left.

With Dead is Dead there is no going back. If mercs die, there is no way of bringing them back. If you make a mistake, there is no way of reverting it. So be careful, play it safe, and prepare to be frustrated.

Infinite save games

Note: added in 0.19.0.

The engine now supports saving and loading of arbitrarily named saved games, and an arbitrary number of them. The load screen is enhanced with game mode, difficuly and mod info plus a scrollbar.

JA2 Stracciatella's enhanced load screen

Better modding support

Mods are easier to make and users are empowered to tweak the game themselves. See our dedicated page on modding and available mods.

To use one of the mods, enable them in the launcher or pass the -mod flag on the command line.

Wildfire support

Note: added in 0.17.0.

Basic Wildfire support is present, with most of the data differences externalized. You need to have JA2, Wildfire and this conversion installed to start a Wildfire game. It is implemented as other mods, so you can still play vanilla games too.

Read the included README for detailed instructions and caveats.

Integrated Editor

The map editor is now integrated into the game. Start it through the launcher or like this: ja2.exe -editor.

JA2 Stracciatella Editor

Debug screens

Note: added in 0.15.0.

Some debug screens are accessible when using the -debug parameter.

Tactical Screen:

  • F11 for Quest Debug Screen
  • CTRL+f for FPS Display
  • CTRL+z to toggle z-buffer
  • ALT+m for level node debug mode
  • ALT+n to play quotes of hovered merc
  • q for soldier and land debug mode
  • y for struct debug mode

To exit any screen press q. To cycle through different pages use pageup and pagedown.

Examples:

Debug soldier Debug land Debug z-buffer