Your comments

Hello Lee, Cian,

Thanks for keeping an eye on this :) I just checked the 2.0.5 build from GOG and this issue is still present.

From what I gather, the file is supposed to be saved when you quit the game. If this is true, one work-around would be to save the file every time an achievement is achieved.

Secondly it seems the game kills itself somehow, rather than exiting nicely. the last few lines of the full strace output are as follows:

kill(15984, SIG_0)                      = 0
wait4(15984, 0x7fff540e01bc, WNOHANG, NULL) = -1 ECHILD (No child processes)
kill(15984, SIGKILL)                    = ?

The exit code I'm getting - 137 - seems to indeed correlate with a kill -9 (SIGKILL) according to a quick search on the internet.

If you need further details please let me know, I'll be happy to help.

I checked a little further. Some things I noticed:

- The exit code of the game is 137, which I guess indicates an unclean exit. Possibly it crashes just before it wants to write out the file. I haven't managed to get a backtrace or anything, unfortunately

- I tried running the game from Ubuntu 18.04.1 on the same hardware (using a 'live' system from USB, but that shouldn't matter much compared to a fully installed version I reckon), and got exactly the same behavior. Saves would show up, load/save etc, but achievements didn't persist


FYI, some hardware details:

- AMD Ryzen 2600 CPU

- AMD Radeon RX 580 graphics card

- 2 screens (one connected to the DisplayPort, one on HDMI) using an extended desktop side by side (both screens are 1920x1080, so full desktop is 3840x1080).

- I'm using open source AMDGPU drivers (not the proprietary ones) on Arch; not sure what Ubuntu's live system uses, but I think it's the same

- I have a Steam controller, but unplugging that didn't help


Full start.sh terminal output:

$ ./start.sh                                                                                                                                                                       [17:47]
Running War for the Overworld
Set current directory to /mnt/linux-games/war_for_the_overworld/game
Found path: /mnt/linux-games/war_for_the_overworld/game/WFTOGame.x86_64
Mono path[0] = '/mnt/linux-games/war_for_the_overworld/game/WFTOGame_Data/Managed'
Mono path[1] = '/mnt/linux-games/war_for_the_overworld/game/WFTOGame_Data/Mono'
Mono config path = '/mnt/linux-games/war_for_the_overworld/game/WFTOGame_Data/Mono/etc'
displaymanager : xrandr version warning. 1.5
client has 6 screens
displaymanager screen (0)(HDMI-A-1): 1920 x 1080
displaymanager screen (1)(DisplayPort-1): 1920 x 1080
Using libudev for joystick management
Importing game controller configs
./start.sh: line 16:  4530 Killed                  ./"WFTOGame.x86_64"

Thanks for your reply. I've tried the other user's patch, but it didn't solve my problem (in fact, I think it may have broken some of the DLC menus. I do agree with them that writing save game data to the correct directory is a good idea).


I've tried playing the first level of the Under Games, and it seems that in that case progress is partially saved. After restarting the game I can continue with the next level, but none of the achievements (including the basic "Completed level" one) are marked as completed. I assume those achievements are saved in stat.txt whereas the actual progress is stored elsewhere.


Using strace to monitor all file access by the game (as logged above), I still see no attempt to locate or open the stat.txt file, apart from reading it once at startup.

Digging a little further with strace uncovers that stat.txt, while being read, is never written to:

strace ./WFTOGame.x86_64 2>&1 | grep stat.txt                                                                                                                               [22:28]
stat("/mnt/linux-games/war_for_the_overworld/game/WFTOGame_Data/GameData/stat.txt", {st_mode=S_IFREG|0644, st_size=1022, ...}) = 0
lstat("/mnt/linux-games/war_for_the_overworld/game/WFTOGame_Data/GameData/stat.txt", {st_mode=S_IFREG|0644, st_size=1022, ...}) = 0
stat("/mnt/linux-games/war_for_the_overworld/game/WFTOGame_Data/GameData/stat.txt", {st_mode=S_IFREG|0644, st_size=1022, ...}) = 0
lstat("/mnt/linux-games/war_for_the_overworld/game/WFTOGame_Data/GameData/stat.txt", {st_mode=S_IFREG|0644, st_size=1022, ...}) = 0
stat("/mnt/linux-games/war_for_the_overworld/game/WFTOGame_Data/GameData/stat.txt", {st_mode=S_IFREG|0644, st_size=1022, ...}) = 0
lstat("/mnt/linux-games/war_for_the_overworld/game/WFTOGame_Data/GameData/stat.txt", {st_mode=S_IFREG|0644, st_size=1022, ...}) = 0
stat("/mnt/linux-games/war_for_the_overworld/game/WFTOGame_Data/GameData/stat.txt", {st_mode=S_IFREG|0644, st_size=1022, ...}) = 0
lstat("/mnt/linux-games/war_for_the_overworld/game/WFTOGame_Data/GameData/stat.txt", {st_mode=S_IFREG|0644, st_size=1022, ...}) = 0
openat(AT_FDCWD, "/mnt/linux-games/war_for_the_overworld/game/WFTOGame_Data/GameData/stat.txt", O_RDONLY) = 30
[1]    29786 killed     strace ./WFTOGame.x86_64 2>&1 | 
       29787 done       grep --color=auto --exclude-dir={.bzr,CVS,.git,.hg,.svn} stat.txt

This happens both with a 0-byte stat.txt file (which was originally there in my installation) and a version I found on the GOG forums (this issue), where I reset all C??_Complete=0. With this custom version, it did show the manipulated campaign progress, but still would not save my own progress.


Resetting the campaign progress (also for any of the DLC campaigns) does not write the stat.txt file.


It seems to me to be a fairly safe bet to say the problem lies with writing the stat.txt file, which for some reason never happens (or isn't even attempted).

I see I made a typo in the original post: the screenshot shows level 2 (Rhoad); but the same problem occurs in level 3 too, for me anyway.

I've not switched to the main campaign at any time between saving and loading, the Heart of Gold campaign has been the only active one. The same thing happens both when loading directly from the main menu, or from the campaign menu.