Jagged Alliance „Stracciatella“

Virenwarnung 1Jagged Alliance „Stracciatella“, abgekürzt JA2S ist die letzte und soweit ich weiß auch noch die einzige aktive Version von Jagged Alliance 2 an der gearbeitet wird. Das Projekt gibt es schon lange (seit 2016), doch sehr lange musste man den Quelltext selbst übersetzen, was die meisten Fans die Nicht-Entwickler sind ausschloss.

Seit 2022 gibt es einen GUI Installer der unter Windows funktioniert. Ebenso Portierungen für Linux und ARM-Systeme wie den Raspberry Pi. Im Folgenden gehe ich nur auf die Windows Version ein.

Den Namen „ Stracciatella“ gaben die Entwickler dem Projekt weil Jagged Alliance 2 schon intern Namen von Eissorten hatte, die letzte Version von Jagged Alliance 2 hatte den Codenamen „Vanilla“.

Der für die meisten Anwender wichtigste Punkt ist, das Jagged Alliance 2 und einige Mods nun nativ unter modernen Windows Versionen funktionieren. Es gab in der Vergangenheit immer mehr Probleme. Sie beruhen letztendlich darauf, das Jagged Alliance für Windows 95-98 entwickelt wurde, das praktisch keine Sicherheitsmechanismen und Benutzerrechte kannte und Windows mit jeder neuen Version mehr und mehr durch Rechteverwaltung das Spielen unmöglich machte. Ich selbst habe seit Jahren aus dem Grund Jagged Alliance nur noch in einer virtuellen Maschine (Oracle VM VirtualBox) gespielt.

Anders als beim Mod 1.13 benötigt man alle Datendateien von Jagged Alliance 2, am besten kopiert man sich die ganze CD auf eine Festplatte, ist heute vom Platz her ja kein Problem mehr. Der Download enthält nur neue EXE-Dateien des Spiels.

Sie finden das Ende 2022 noch aktive Projekt auf seiner Community Seite.

Download und Installation

Nach dem Download des Installers steht schon die erste Hürde an. Microsoft will nur signierte Apps ausführen lassen. Dafür muss man diese an Microsoft senden und natürlich für die Überprüfung zahlen. Das macht es kleinen Softwareentwicklern, dazu gehört auch der Autor, das Leben schwer. Wenn der Installer zum ersten Mal ausgeführt wird erhaltet ihr diese Box:

Klickt auf „Weitere Informationen“ und die Schaltfläche „Trotzdem Ausführen“ erscheint, die ihr anklicken könnt. Es kommt dann noch eine Abfrage von Admin-Rechten, wie von dem einen oder anderen Spiel schon bekannt.

Nach dem Durchlaufen des Installers kommt der neue GUI Launcher. Ihr müsste vor dem ersten Starten angeben wo sich euer Jagged Alliance befindet wie in diesem Fenster gezeigt. Wenn ihr den Pfad austauscht könnte ihr auch andere Versionen von Ja 2 starten

Beim zweiten Starten merkt man das Windows solche „unsignierten“ Apps benachteiligt man kann nicht im Startmenü „Ja“ eintippen und hoffen, dass dann das Programm auftaucht, stattdessen muss man bis Buchstaben „J“ in der Leiste scrollen und von dort aus aufrufen. Ich rate dazu, weil auch vom Installer kein Desktop Icon angelegt wird, dort zuerst „Dateispeicherort öffnen“ zu wählen, den Starter zu wählen, dann rechts klicken und „Verknüpfung erstellen“ wählen. Das wird scheitern, doch schlägt dann Windows vor eine Verknüpfung auf dem Desktop anzulegen und das ist ja genau das was wir wollen.

Virenwanrung 2Derzeit funktioniert bei mir unter Stracciatella das originale Jagged Alliance, ebenso Deidranna lives! Nicht dagegen die Mods Jagged Alliance 1.1.3 und Urban Chaos. Auch der Ableger Unfinished Business lies sich nicht starten. Wahrscheinlich dürften alle Mods laufen, die nur Karten austauschen, nicht dagegen Mods, welche die Story umschreiben und Änderungen an der Ja2.exe vornehmen. Jagged Alliance Wildfire kann nach der Projekt-Homepage über einen Mod gestartet werden, aber nicht direkt über den Launcher.

Das ist neu

Jagged Alliance Stracciatella hat das Ziel das Spiel zu verbessern, aber nicht grundsätzliche neue Elemente einzuführen, wie eine neue Story oder neue Waffen und Ausrüstungsgegenstände. Das Spiel hat nun auch eine Unterstützung für Touch-Geräte wie Tabletts.

Die Engine unterstützt nun das Speichern und Laden von beliebig benannten Spielständen und einer beliebigen Anzahl von Spielständen. Der Ladebildschirm wurde mit Spielmodus-, Schwierigkeits- und Mod-Informationen sowie einer Bildlaufleiste erweitert.

Beim BSE Test gibt es Hinweise welche Auswirkung welche Antwort hat, also welche Fähigkeit oder Nachteil erworben wird. Er kann aber nur einmal durchlaufen werden. Bei mir waren trotz gewähnter deutschsprachiger Version die Texte auf englisch-

Es gibt eine Reihe von neuen Tastaturkürzeln:

scroll lock: Maus einfangen im Fenstermodus umschalten
alt-r: gehaltene Waffe nachladen
ctrl-shift-r: Nachladen der Waffen der gesamten Gruppe
ctrl-l: Spiel laden, wenn der Gegner/die Miliz an der Reihe ist
ctrl-n: Umschalten zwischen Tag- und Nachtausrüstung (Brille) für die gesamte Gruppe
ctrl-q: Handgegenstände tauschen
shift-j: durch offenes Fenster klettern
f: Anzeige der prozentualen Trefferchancen für eine bestimmte Kachel

Wenn man das Spiel im Debug Modus startet stehen weitere Tastenkombinationen zur Verfügung:

Taktischer Bildschirm:

F11 für Quest-Debug-Bildschirm
CTRL+f für die FPS-Anzeige
CTRL+z zum Umschalten des Z-Puffers
ALT+m für den Debug-Modus der Level-Knoten
ALT+n zum Abspielen von Zitaten des schwebenden Söldners
q für den Debug-Modus für Soldaten und Land
y für den Struktur-Debug-Modus
Um einen Bildschirm zu verlassen, drücken Sie q. Um durch verschiedene Seiten zu blättern, verwenden Sie pageup und pagedown.
Der Debugmodus wird aktiv wenn man das Spiel mit dem Parameter -Debug startet, dies macht man am besten bei der Programmverknüpfung

Dead is Dead

Dead is Dead ist ein neuer Spielmodus für Spieler, die eine noch größere Herausforderung suchen und denen Iron Man Modus noch nicht ausreicht. Mit dem Modus "Dead is Dead" nimmt das Spiel die Last des Speicherns und der Verwaltung von Spielständen ab, damit Sie sich auf die wichtigen Dinge konzentrieren können.

Sie wählen zu Beginn eines neuen Spiels einen Speicherplatz aus, den das Spiel während des gesamten Durchgangs beibehält. Das Spiel speichert auch, bevor Sie das Spiel verlassen, so dass Sie sicher sein können, dass Sie immer dort weitermachen können, wo Sie aufgehört haben.

Bei Dead is Dead gibt es kein Zurück mehr. Wenn Söldner sterben, gibt es keine Möglichkeit, sie zurückzubringen. Wenn Sie einen Fehler machen, gibt es keine Möglichkeit, ihn rückgängig zu machen. Seien Sie also vorsichtig, gehen Sie auf Nummer sicher und bereiten Sie sich darauf vor, frustriert zu sein.

Bildschirmauflösung

Im GUI Starter kann man verschiedene Auflösungen auswählen. Dabei sollte man aber wissen, das sich an der Grafikengine von Jagged Alliance nichts geändert hat. Sprich: eine Figur, ein Gebäude oder ein Item haben eine feste Größe in Pixeln. Ändert man die Auflösung, so werden diese dinge automatisch kleiner, da Jagged Alliance nach wie vor als Vollfenster-Anwendueng (also ohne Menüleiste) startet.

Jagged Alliance 1.05 stammt von 1999. Das Betriebssystem damals war Windows 98, Bildschirme hatten eine Diagonale von 15 bis 17 Zoll, aber auch kleinere waren noch üblich. So beschränkte man die Auflösung damals auf 640 x 480 Punkte. Jagged Alliance 1.13 hat zwei weitere Optionen nämlich 800 x 600 und 1024 x 768 und zusätzlich ob die Anwendung wie damals als Vollbildanwendung startet oder in einem Fenster. Stracciatella geht hoch bis Full-HD Auflösung, also 1.920 x 1.080.

Die Elemente aus denen das Spiel besteht also die Spielfiguren, Schaltflächen Porträts, aber auch die Landschaftselemente werden nicht vergrößert. Ebenso wenig der Einführungsbildschirm, der Bildschirm mit Computer und Karte. Sie alle bleiben fest in einer Auflösung von 640 x 480. Das einzige was größer wird, ist die Landschaft im Taktikbildschirm, schon die Porträts der Söldner darunter bleiben auf der alten Größe. Der Screenshot zeigt in etwa was das bewirkt. Hier betrug die Auflösung 1.600 x 900 Pixel. Der schwarze Rand füllt bis zur physikalischen Auflösung (hier 1.920 x 1.080 Pixel) auf. Nur bei der Originalauflösung (640 x 480) füllt das Spiel die ganze Höhe (die Breite meistens nicht weil heute Bildschirme mit einem Seitenverhältnis von 16 zu 9 oder 10 üblich sind, damals aber 4 zu 3).

Aufgrund der Tatsache macht eigentlich nur die Standardauflösung 640 x 480 und die physikalische Auflösung ihres Monitors Sinn. Höhere Auflösungen sollten daher im Fenstermodus starten. Das erlaubt auch ein einfacheres Wechseln zwischen dem Spiel und anderen Anwendungen.

Auflösung 1600 x 900

MODS

Anstatt Savegames direkt zu verändern hat man nun den neuen Weg gefunden, dies über Konfigurationsdateien zu machen. Einige Mods sind schon mit dabei und können vor dem Start aktiviert werden, andere findet man im Github Projekt. Verwendet werden JSON Dateien die man in einem Texteditor bearbeiten kann. Die JavaScript Object Notation (JSON ist ein kompaktes Datenformat in einer einfach lesbaren Textform für den Datenaustausch zwischen Anwendungen. JSON ist von Programmiersprachen unabhängig. Die für das Spiel in jedem Falle benötigte JA2.JSON sieht z.B. bei mir so aus:

{

"game_dir": "E:\\ja2\\Ja 2 1.05",

"save_game_dir": "C:\\Users\\Admin\\Documents\\JA2\\SavedGames",

"mods": ["imp-quiz-honest-answers","from-russia-with-love","generous-rebels"],

"res": "640x480",

"brightness": -1.0,

"resversion": "GERMAN",

"fullscreen": false,

"scaling": "PERFECT",

"debug": false,

"nosound": false

}

Die zweite wichtige Datei ist Game.json, die standardmäßig im Programmverzeichnis steckt und daher vom Anwender nicht veränderbar ist. Man sollte die Datei mit einem Editor öffnen dann aber in den Pfad der Ja2.json (Reiter Play) abspeichern. In ihr kann man vieles verändern. Die Textdatei ist sehr gut dokumentiert.

Hier das Listung der game.json ohne Veränderungen:

{

// game.json

// The settings in this file have an influence on the game in general.



// --------------------------------------------------

// New hotkeys and input

// vanilla setting for all hotkeys: false

// --------------------------------------------------



// Press 'ctrl+i' to show sector inventory of selected sector in strategic view.

// Press 'j' to jump over fences, climb on rooftops etc.

// Press 'ctrl+n' to swap the squad's head gear from night mode (NV or UV Goggles) to day mode (sun goggles) and back.

// Press 'alt+r' to reload

// Press 'ctrl+q' to swap hand items

// Press 'shift+j' to climb through open window

"extra_hotkeys": true,



// Press d in realtime mode to manually start turn based mode.

// vanilla setting: false

"can_enter_turnbased": false,



// Enables middle mouse button to trigger a look into cursor direction

// vanilla setting: false

"middle_mouse_look": true,



// --------------------------------------------------

// System settings

// --------------------------------------------------



// Automatically draw a shadow for all items in a merc's inventory.

// vanilla setting: true

"draw_item_shadow": true,



// Number of milliseconds for one game cycle.

// 25 ms gives approx. 40 cycles per second (and 40 frames per second, since the screen is updated on every cycle).

// Decreasing this value will increase the speed of the game (enemy movement, bullets speed, etc).

// Stracciatella standard value: 25

"ms_per_game_cycle": 25,



// Number of milliseconds for one game time slice.

// Decreasing this value will speed up UI transitions and soldier animations.

// Stracciatella standard value: 10

"ms_per_time_slice": 10,



// --------------------------------------------------

// Gameplay settings

// --------------------------------------------------



// Amount of money the player starts the game with on each difficulty.

// vanilla values: 45000/35000/30000 (easy/medium/hard)

"starting_cash_easy": 45000,

"starting_cash_medium": 35000,

"starting_cash_hard": 30000,



// Will enemies drop ALL of their equipment when they die?

// vanilla setting: false

"drop_everything": false,



// Will dropped items always be visible to the player, regardless of distance?

// vanilla setting: false

"all_drops_visible": false,



// Everyone will be able to interrupt multiple times in the same turn. Vanilla behaviour is that if you skipped reacting to the first interrupt

// (say your buddies took care of it), you'd still get skipped for any further interrupts. Annoying in ambushes or when sneaking.

// vanilla setting: false

"multiple_interrupts": false,



// Minimal status in % for each gun in the hand of enemy soldiers. Note that this value has no influence on enemy behaviour (CtH, jams).

// vanilla value: 0

"enemy_weapon_minimal_status": 0,



// Maxiumum number of soldiers in one squad.

// Larger squad sizes requires the wider screen to display all members. For a squad size of n, the screen must be at

// least (640 + (n-6)*83) pixels wide. For example, squad size of 8 requires the screen to be at least 806px wide.

// vanilla value: 6

"squad_size": 6,



// Enable improvements over vanilla game's tactical AI

"ai": {

// Make the AI a bit smarter and let it target heads and legs sometimes.

// Aiming: will choose other body parts when appropriate and random choice was selected.

// Prone: when already facing its focus, lay down if nothing else.

// vanilla values: false, false, 0 ,0

"better_aiming_choice": false,

"go_prone_more_often": false,

"threshold_cth_head": 67,

"threshold_cth_legs": 67,



// AI is capable of knowing and avoid of an ambush on seeing corpses of friendlies, but

// it was not enabled in the original game due to a bug

// vanilla value: false

"avoid_ambushes": false,



// Enemy guards on rooftop are disallowed to climb down

// vanilla value: false

"stay_on_rooftop": false

},



// How much variation should there be in elite soldier xp level?

// vanilla_setting: 6, 10

"enemy_elite_minimum_level": 6,

"enemy_elite_maximum_level": 10,



// Enables extra GUI features. Currently includes:

// Progress Bars for the Mercs stats in tactical Mode.

// vanilla_setting: false

"gui_extras": true,



// Skips the "cannot sleep" popup when driving or when the merc is already rested.

// vanilla setting: false

"skip_sleep_explanation": false,



// Enables extra attachments: boosters and break lights on leggings, goggles on helmets.

// vanilla setting: false

"extra_attachments": false,



// Packages at Drassen airport never get stolen, no need to bribe Pablo.

// vanilla_setting: false

"pablo_wont_steal": false,



// Min/max chance to hit and headshot damage multiplier.

// vanilla_setting: 1, 99, 1.5, 0.5

"chance_to_hit_minimum": 1,

"chance_to_hit_maximum": 99,

"tactical_head_damage_multiplier": 1.5,

"tactical_legs_damage_multiplier": 0.5,



// Aim bonus per spent AP and for using scopes

// vanilla setting (%): 10, 20, 20

"aim_bonus_per_std_ap": 10,

"aim_bonus_sniperscope": 20,

"aim_bonus_laserscope": 20,



// Range bonuses and penalties. 10 per 1 tile.

// vanilla setting: 0, 100

"range_penalty_silencer": 0,

"range_bonus_barrel_extender": 100,



// Always show mouse cursor during tactical view (if false, no mourse cursor is shown when moving in real-time mode, selecting a merc, etc)

// vanilla setting: false

"always_show_cursor_in_tactical": false,



// Show chance-to-hit next to mouse cursor when preparing an attack

// vanilla setting: false

"show_hit_chance": false,



// Scales the loading time of websites on the laptop. Lower value means faster loading. Setting this to 0.0 removes the loading entirely.

// vanilla setting: 1.0

"website_loading_time_scale": 1.0,



// IMP creation tweaks

"imp": {

// IMP attribute point defaults:

// Warning: Setting min attribute points to a value less than 15 allows

// the creation of a character with less than 15 health. This

// is a dying character!

// Zero attribute point bonus is what you receive for setting a skill to 0.

// Bonus attribute points is your initial pool of points to distribute.

// vanilla setting: 85, 35, 15, 40

"max_attribute_points": 85,

"min_attribute_points": 35,

"zero_attribute_points_bonus": 15,

"bonus_attribute_points": 40,



// Replace the IMP personality quiz with a form to select skills directly

// NOTE: does not set any personality

// vanilla setting: false

"pick_skills_directly": false,



// Load an IMP merc from a previous save game by typing in same nickname on IMP form.

// Make sure to put in only the nickname and use the same capitalization!

// This setting must be already enabled during saving to enable a later load.

// vanilla setting: false, false

"load_saved_merc_by_nickname": false,

"load_keep_inventory": false

},



// When a new game starts, it picks randomly in the range of min and max (both inclusive)

// on which day M.E.R.C. goes online and Speck sends the player an email. If 0 is picked,

// then M.E.R.C. will be available right from the start.

// vanilla setting: 1, 2

"merc_online_min_days": 1,

"merc_online_max_days": 2,



"progress": {

// Progress weight of parameter on campaign progress

// vanilla settings: kills 25, control 25, income 50

"weight_kills": 25,

"weight_control": 25,

"weight_income": 50,



// Progress point progression

// vanilla settings: 0_easy 7, 1_medium 10, 2_hard 15

"kills_per_point_easy": 7,

"kills_per_point_medium": 10,

"kills_per_point_hard": 15,



// Minimum first time progress to trigger event

// vanilla settings: madlab: 35, mike: 50, iggy: 70

"event_madlab_min": 35,

"event_mike_min": 50,

"event_iggy_min": 70

},



// Allowed unhired merc deaths at given difficulty level

// vanilla settings: 1, 2, 3

"unhired_merc_deaths_easy": 1,

"unhired_merc_deaths_medium": 2,

"unhired_merc_deaths_hard": 3,



// Settings for newly started campaigns.

// Most probably you do not need to change these unless you are running a full conversion mod.

"campaign": {

// The sector where your team lands at the start.

// vanilla settings: A9

"start_sector": "A9",



// Is the start sector revealed at game start?

// vanilla settings: true

"start_sector_revealed": true

}

}