Islands of Insight

Islands of Insight

Rushin Jul 9 @ 2:39pm
9
3
Offline mode warning: potential SSD killer
It appears that the game writes your offline save file EVERY SECOND.

Your entire progress is saved in it, including the information about each completed puzzle. I've been playing for a long time and for me that's a 13 MB file. Writing this to disk causes legitimately unplayable stuttering but worse yet - it's likely going to kill my SSD pretty fast.

It's probably less noticeable (if at all) for you if you have less overall progress in the game or just started recently. For me however it's like this:

https://www.youtube.com/watch?v=O6_iYJdzdwc

Note: nothing like this happens in the online mode for me, before or after the patch. This is exclusively an offline mode problem.

UPD: the game also stores no backups. Any unfortunate crash or a power outage mid-save can corrupt the file and cause permanent loss of offline progress. And it gets rewritten every second...

UPD2: in an extremely rare event of actual community interaction, the developers have confirmed they're looking into this.

UPD3: the game also DOES NOT use steam cloud. It thinks it does, you can toggle the setting on steam even, but no data is ever uploaded. All your progress is only locally stored on your device.
Last edited by Rushin; 9 hours ago
< >
Showing 1-15 of 31 comments
Nico Jul 9 @ 11:27pm 
That sounds a bit overkill, is it every second when you change player position? Or every time you complete a puzzle?
it seems to be literally every second regardless of action. This is a major programming oversight that will need to be fixed before offline mode is viable for anyone using an SSD.
Nico Jul 10 @ 12:17am 
Hopefully they care, it should be as easy as adding a setting to force a different save interval
garbo Jul 10 @ 11:58am 
How do we know for sure that's what it's doing?
Rushin Jul 10 @ 12:14pm 
Originally posted by garbo:
How do we know for sure that's what it's doing?
Your save file is located at %LOCALAPPDATA%\IslandsofInsight\Saved\SaveGames\OfflineSavegame.sav

You can simply right-click and select Properties in a rapid fashion to see that the "last modified" stat is changed every second - coinciding with the horrible stutter in game (one that does not occur in online mode).

It is also a standard UE4 save file (you can even edit it with some publicly available tools). Given the rigid structure of its format there's no chance it gets appended or modified, the whole file gets rewritten, no way around it.
Last edited by Rushin; Jul 10 @ 12:14pm
The A.W.G. Jul 10 @ 12:32pm 
Lmao, this game just can't stop being a disaster
quat Jul 10 @ 9:59pm 
Other weird things i noticed w/ procmon

- it also writes to
%LOCALAPPDATA%/IslandsOfInsight/Saved/Logs/IslandsOfInsight.log
multiple times a second, and calls FlushBuffersFile for good measure, just to really make sure those writes hit the hard disk

- it reads
steamapps/common/Islands of Insight/IslandsOfInsight/Content/ASophia/BuildId/version.txt
like 100 times a second for some reason lol
Last edited by quat; Jul 10 @ 9:59pm
Nihixul Jul 11 @ 12:48pm 
People can correct me here, but I believe such text file writes/reads involve far less data than the save game file, and are going to be much less of an issue. My Everquest text log file gets written to in a similar fashion. (Now maybe that shouldn't be on my SSD either, but just thought I would bring that up.)
myndzi Jul 12 @ 12:59pm 
I set up a ramdisk with ImDisk and there's still the stuttering like clockwork on the 1s mark. Unplayable :(
Wow that's really inefficient. All I'll say is that modern SSDs don't have quite the same issues earlier ones did.
Bubbles Jul 12 @ 5:45pm 
A 'solution' to the massive rewriting of the savefile is you can just make the file read-only, and then remove the read-only attribute tag to save.. this can be done automatically with a Windows .bat script, creating a 90-second autosave feature of sorts.

@ECHO OFF set savefile="full\path\to\OfflineSavegame.sav" :loop echo Set Read-only ATTRIB +r %savefile% timeout /T 90 echo Remove Read-only ATTRIB -r %savefile% timeout /T 3 goto loop

its admittedly a bit of an insane solution, but it 'works' (You do have to make sure it cycles before quitting the game).
Last edited by Bubbles; Jul 12 @ 5:48pm
Rushin Jul 12 @ 6:07pm 
The issue is... Even if I just set the file permanently as read-only my game does not stutter any less.

Seems like it's not writing to disk that causes it (not that it's any consolation for my SSD health), it's the formation of the save data itself that runs incredibly slow.

So slow in fact, that I legitimately cannot even imagine how you can screw up collecting just 13 MB worth of data on a (more or less) modern computer. For a game that hogs ~14 GB of RAM and most of my GPU, making a bunch of structures in memory (even every second) should be a drop in the ocean.

Whatever they do to dump the save data, they implemented it not just with blatant negligence of optimization but more like with a level of programming experience you'd see in an intern at best. Or simply put they legitimately had no clue what they're doing.

AND THEY RUN IT EVERY SECOND.
Teemo Jul 14 @ 7:23am 
https://steamcommunity.com/app/2071500/discussions/1/4406292251592323635/

I include a script you can run that will prevent it from destroying your SSD, just place it anywhere and run the .bat you created with the code I gave.
exe Jul 14 @ 9:54am 
You have to stop this .bat or .cmd manually when the game has stopped. To close this .bat or .cmd file automatically when the game has stopped running, I have included tasklist
the tasklist line includes the title of the game so make sure the whole title is on the same line as tasklist (this is one line)
save everything between both ------- lines but not including these ------- lines:
------------------------------------------------------------------------------------------------
@echo off
setlocal

REM Specify the file you want to protect
set savefile="%LOCALAPPDATA%\IslandsofInsight\Saved\SaveGames\OfflineSavegame.sav"

REM Loop indefinitely as long as game runs
:loop
REM Make the file read-only
attrib +r "%savefile%"
echo File is now read-only

REM Wait for 60 seconds (change this value as needed)
timeout /t 60 /nobreak >nul

REM Make the file writable
attrib -r "%savefile%"
echo File is now writable

REM Wait for 5 seconds (change this value as needed)
timeout /t 5 /nobreak >nul

REM Go back to the start of the loop while the game is running
tasklist /V /FI "imagename eq IslandsofInsight-Win64-Shipping.exe" | find /I "Islands of Insight"
if "%ERRORLEVEL%" EQU "0" goto loop

REM Make the file writable
attrib -r "%savefile%"
echo File is now writable

endlocal
exit 0
------------------------------------------------------------------------------------------------
exe Jul 14 @ 3:35pm 
I see that the set savefile= command already includes a pair " so the attrib command should not include "%savefile%" because that will be expanded to a pair "" that makes 4 "
(meaning 2 " before the filename of savefile and 2 " after the filename),
so that should be
attrib +r %savefile%
attrib -r %avefile%
Last edited by exe; Jul 14 @ 3:37pm
< >
Showing 1-15 of 31 comments
Per page: 1530 50