-
Notifications
You must be signed in to change notification settings - Fork 105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Save system problem during campaign play #842
Comments
I do not reproduce the issue. I did this:
Did I miss something ? |
Can you please share your savegame so I can try with your file ? |
Hello @BenRQ , thanks for looking at this. It sounds like you tried the quest "The Shadow Rune - Act 1 The Cardinals Plight". This quest was not made by us, and I'm unsure if the problem can be reproduced here, since this seems to be a single quest. Could you please try it again with the Quest "The Shadow Rune"? If needed I can provide you a savegame, but it's pretty easy to reproduce. |
After a quick investigation, it seems that the save system only copies the current quest. I have the explanation but not the fix, and I can't say how complex it will be to fix it. If we can reference the original directory, then it would also fix #809, and you won't have to use the ../ @NPBruce if you have a bit of time to give us your opinion on this? |
The reason for the temp folder lies within the valkyrie packages. They get extracted there, when you load a scenario. The temp directory is deleted every time when the app starts. The scenarios were in folders, before valkyrie packages were introduced. That change may have broken the campaign functionality. Maybe we can modify the valkyrie packages to hold multiple scenarios? Auto download the right scenario? Auto extract the right scenario? Have a message, when a scenario is missing and the user must download it manually? Maybe we could auto generate a GUID and put it in the quest.ini. That way we can check if the scenario is installed locally and then have a message, if it's not. To stay compatible, we could just interpret the last part of the path (like you suggested) and crawl the zip folder structure and the directories (user created senarios are still stored in a folder structure). I have already done the zip crawling in that functionality, which extracts the valkyrie version info on android. See here:
|
OK I see : the app extracts all packages content everytime you open the list of quests by pressing "start quest". That's why it takes a bit of time to load. Savegame packages should definitely hold the full scenario and not only the current quest. And I like the idea of the autodownload. I've started thinking how we could merge the list of quest and the download page already. This is another topic though, for a future release :) |
A reason not to bundle all scenarios in the valkyrie package could be size and complexity. Another reason might be, that the full scenario is still not complete and some quests will be completed by the scenario editor, later. |
I see three 'small' changes in the feature design that would fix this issue, issue #809 and @scrubbless performance issue on his last scenario :
Risk pointed out in the sec2 is not a blocker from my point of view as update is not automatic, and the issue is kind of obvious for me, but please tell me what you think. Improvement on performance during game, and during quest selection would be quite high. |
I like the changes. Android would also benefit from deleting the temp scenario dir after the scenario is no longer in use. Storage space can be sparse, especially internal storage. This is not a huge priority, but could prevent problems in edge cases.
Before an update you could have a warning, that there are save files that may not work or only allow the update if the save is killed. #809 might be due to windows path restictions of 255 characters max. https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file. It would be better not to rely on the file path at all since that path will be different on every platform. This may lead to save files might not be compatible among different platforms. A GUID per package (as mentioned before) would be nice and if there is none, we could interpret the last part of the path to be compatible with quest formats below. Issue 809 might be fixed by not beeing relieant on those |
Thanks for looking into this. Your comments show that this is not an easy bugfix. Would be fantastic if you are able to solve this. 👍 |
- Savegames do not contain the full quest anymore (performance improvement) - When listing quests, just extract necessary files from packages (performance improvement) - When listing quests, search for content in the editor of game type directory and in Download directory - Only when starting quest, extract the full archive - NPBruce#842: loading from a savegame will extract the full archive - NPBruce#809: external quest path are now based on root quest (you should not use ../ anymore) - Do not extract all quests packages available when loading a quest from a quest : a quest can be started from another quest only if they all are in the same quest archive Limitations : - Updating a quest that is saved may break your savegame (todo: add warning) - Deleting a quest that is saved *will* break your savegame (todo: add warning)
I spent some time on this, and I think I now have something working. I did not implement any warning when deleting/updating quest. |
Thanks for your efforts BenRQ. Once we have an official release I will update the quest structure in our campaign. Regards |
- Savegames do not contain the full quest anymore (performance improvement) - When listing quests, just extract necessary files from packages (performance improvement) - When listing quests, search for content in the editor of game type directory and in Download directory - Only when starting quest, extract the full archive - NPBruce#842: loading from a savegame will extract the full archive - NPBruce#809: external quest path are now based on root quest (you should not use ../ anymore) - Do not extract all quests packages available when loading a quest from a quest : a quest can be started from another quest only if they all are in the same quest archive Limitations : - Updating a quest that is saved may break your savegame (todo: add warning) - Deleting a quest that is saved *will* break your savegame (todo: add warning)
Beta test version is now available with implementation of this issue: I suggest you point out the required Valkyrie version in the description of the scenario, when version is officially released. Also please close this issue if you are happy with the fix. |
Hello @BenRQ, I reworked the quests to point to absolute paths, and they work flawlessly with the beta release. Also saving and loading does no longer break the campaign and works as expected. This is such good news. I already prepared a new campaign release and can push it as soon as there is a new official Valkyrie release. Thanks so much for fixing this problem! Regards |
Reopen, because it is fixed in Brynhildr, but not in Valkyrie. I created the label "Brynhildr" to track, what is covered by it. |
Hi @DelphiDie, I think it is better to share the link to the release section, as you don't know what is the system the player will be using (windows, android, mac ...) |
Thanks to both of you. I guess I will post a Link to the Brynhildr Release then. The OS is indeed something I hadn't thought about and a very valid point. |
- Improve pre-loading of savegame list - secure path construction for quest within quest - remove useless information in savefile and quest structure - Do not try to extract when loading a scenario not packaged - Remove old code - fix missing new line in savegame for duration - Fix issue where quest list screen would not appear when no quests have ever been downloaded
…ework - Quest is now saved in save files only when required - Quest is now saved in a separate thread to avoid long end of turn (new class ZipManager) - Improve pre-loading of savegame list, create a preload directory in Temp directory for this - secure path construction for quest within quest - remove useless information in savefile and quest structure - Do not try to extract when loading a scenario not packaged - Remove old code - fix missing new line in savegame for duration - Fix issue where quest list screen would not appear when no quests have ever been downloaded - Fix loading twice quest data
- fix issue with android extraction in subfolder - clean code, remove logs, add interesting logs
* NPBruce#111 - Fix issue with descent end screen not showing up: set a background image for end screen in Descent - use originalPath in the stats: the quest name can change for quests with multiple scenarios so it's better to use the originalPath - remove some logs - scenario should not use default directory name Only scenario with original names will get the rating screen at the end of the game, and can push stats. Current scenario using EditorScenario should be warned to change their scenario name. - only support packages * NPBruce#859 [MoM] Do not display button bar in the editor * NPBruce#893 Do not display autosave slot even when no saves exists yet * NPBruce#891 Fix Tokens being covered by object after save/load or undo The type Dictionary<T1, T2> used to store the list of board items does not retain order. The class OrderedDictionary does not exist unfortunately. So add a 'sister' List of object name, and use this to write the savegame. * Fix NPBruce#841: Issue : I found if you are in the horror phase and open an item to inspect it. When you finish that event it ends the phase Fix : A new test has been added : if in horror phase and monster > 0, then do not end the round. In that case you will need to press next phase button to end the round (as you should). Please note I also have enabled the use of all elements during horror phase except for tokens, otherwise UI element can block the screen : they will be displayed, but you won't be able to remove them. I checked this, and this is the behavior of the official game app : you can use items during that phase. * Fix NPBruce#892 Monster breaks investigator phase Double check the validity of monster events before sending the event. By checking this, we can now directly go to horror phase and not get stuck in monster phase. Fix tested with normal monsters, custom monsters, custominvalid monsters and combination of the three * NPBruce#218 Log is inaccessible during Mythos Phase Access to logs is now authorized * FIX / EVO NPBruce#842 NPBruce#809 New load / save system bugfix and rework - Make sure we don't get stuck in monster phase (this should never happen) - Quest is now saved in save files only when required - Quest is now saved in a separate thread to avoid long end of turn (new class ZipManager) - Improve pre-loading of savegame list, create a preload directory in Temp directory for this - secure path construction for quest within quest - remove useless information in savefile and quest structure - Do not try to extract when loading a scenario not packaged - Remove old code - fix missing new line in savegame for duration - Fix issue where quest list screen would not appear when no quests have ever been downloaded - Fix loading twice quest data - fix issue with android extraction in subfolder - clean code, remove logs, add interesting logs * Cleanup code * Small fix on French translation * Cleanup on Path creation
- Savegames do not contain the full quest anymore (performance improvement) - When listing quests, just extract necessary files from packages (performance improvement) - When listing quests, search for content in the editor of game type directory and in Download directory - Only when starting quest, extract the full archive - #842: loading from a savegame will extract the full archive - #809: external quest path are now based on root quest (you should not use ../ anymore) - Do not extract all quests packages available when loading a quest from a quest : a quest can be started from another quest only if they all are in the same quest archive Limitations : - Updating a quest that is saved may break your savegame (todo: add warning) - Deleting a quest that is saved *will* break your savegame (todo: add warning)
* #111 - Fix issue with descent end screen not showing up: set a background image for end screen in Descent - use originalPath in the stats: the quest name can change for quests with multiple scenarios so it's better to use the originalPath - remove some logs - scenario should not use default directory name Only scenario with original names will get the rating screen at the end of the game, and can push stats. Current scenario using EditorScenario should be warned to change their scenario name. - only support packages * #859 [MoM] Do not display button bar in the editor * #893 Do not display autosave slot even when no saves exists yet * #891 Fix Tokens being covered by object after save/load or undo The type Dictionary<T1, T2> used to store the list of board items does not retain order. The class OrderedDictionary does not exist unfortunately. So add a 'sister' List of object name, and use this to write the savegame. * Fix #841: Issue : I found if you are in the horror phase and open an item to inspect it. When you finish that event it ends the phase Fix : A new test has been added : if in horror phase and monster > 0, then do not end the round. In that case you will need to press next phase button to end the round (as you should). Please note I also have enabled the use of all elements during horror phase except for tokens, otherwise UI element can block the screen : they will be displayed, but you won't be able to remove them. I checked this, and this is the behavior of the official game app : you can use items during that phase. * Fix #892 Monster breaks investigator phase Double check the validity of monster events before sending the event. By checking this, we can now directly go to horror phase and not get stuck in monster phase. Fix tested with normal monsters, custom monsters, custominvalid monsters and combination of the three * #218 Log is inaccessible during Mythos Phase Access to logs is now authorized * FIX / EVO #842 #809 New load / save system bugfix and rework - Make sure we don't get stuck in monster phase (this should never happen) - Quest is now saved in save files only when required - Quest is now saved in a separate thread to avoid long end of turn (new class ZipManager) - Improve pre-loading of savegame list, create a preload directory in Temp directory for this - secure path construction for quest within quest - remove useless information in savefile and quest structure - Do not try to extract when loading a scenario not packaged - Remove old code - fix missing new line in savegame for duration - Fix issue where quest list screen would not appear when no quests have ever been downloaded - Fix loading twice quest data - fix issue with android extraction in subfolder - clean code, remove logs, add interesting logs * Cleanup code * Small fix on French translation * Cleanup on Path creation
- Savegames do not contain the full quest anymore (performance improvement) - When listing quests, just extract necessary files from packages (performance improvement) - When listing quests, search for content in the editor of game type directory and in Download directory - Only when starting quest, extract the full archive - #842: loading from a savegame will extract the full archive - #809: external quest path are now based on root quest (you should not use ../ anymore) - Do not extract all quests packages available when loading a quest from a quest : a quest can be started from another quest only if they all are in the same quest archive Limitations : - Updating a quest that is saved may break your savegame (todo: add warning) - Deleting a quest that is saved *will* break your savegame (todo: add warning)
* #111 - Fix issue with descent end screen not showing up: set a background image for end screen in Descent - use originalPath in the stats: the quest name can change for quests with multiple scenarios so it's better to use the originalPath - remove some logs - scenario should not use default directory name Only scenario with original names will get the rating screen at the end of the game, and can push stats. Current scenario using EditorScenario should be warned to change their scenario name. - only support packages * #859 [MoM] Do not display button bar in the editor * #893 Do not display autosave slot even when no saves exists yet * #891 Fix Tokens being covered by object after save/load or undo The type Dictionary<T1, T2> used to store the list of board items does not retain order. The class OrderedDictionary does not exist unfortunately. So add a 'sister' List of object name, and use this to write the savegame. * Fix #841: Issue : I found if you are in the horror phase and open an item to inspect it. When you finish that event it ends the phase Fix : A new test has been added : if in horror phase and monster > 0, then do not end the round. In that case you will need to press next phase button to end the round (as you should). Please note I also have enabled the use of all elements during horror phase except for tokens, otherwise UI element can block the screen : they will be displayed, but you won't be able to remove them. I checked this, and this is the behavior of the official game app : you can use items during that phase. * Fix #892 Monster breaks investigator phase Double check the validity of monster events before sending the event. By checking this, we can now directly go to horror phase and not get stuck in monster phase. Fix tested with normal monsters, custom monsters, custominvalid monsters and combination of the three * #218 Log is inaccessible during Mythos Phase Access to logs is now authorized * FIX / EVO #842 #809 New load / save system bugfix and rework - Make sure we don't get stuck in monster phase (this should never happen) - Quest is now saved in save files only when required - Quest is now saved in a separate thread to avoid long end of turn (new class ZipManager) - Improve pre-loading of savegame list, create a preload directory in Temp directory for this - secure path construction for quest within quest - remove useless information in savefile and quest structure - Do not try to extract when loading a scenario not packaged - Remove old code - fix missing new line in savegame for duration - Fix issue where quest list screen would not appear when no quests have ever been downloaded - Fix loading twice quest data - fix issue with android extraction in subfolder - clean code, remove logs, add interesting logs * Cleanup code * Small fix on French translation * Cleanup on Path creation
- do not mix autosave, and manual save - do not reload Qst when going through saved quest
Sorry to bother you again with this, but the issue seems to have reappeared in the latest Valkyrie release. After saving the game, quitting Valkyrie, restarting it and the reloading the save, that game can not be continued as intended, because the next quest.ini call after loading does not happen. The following steps can be done to reproduce the issue:
Note: If you just continue the game after step 8 or load the savegame from the main menu after step 9, everything seems to work fine. Closing and restarting Valkyrie however leads to the problem. This is of course a very serious issue, because the save system is pretty much useless in this case. Could you please take a look at the problem? @redwolf2 Could you perhaps reopen this issue until further notice? |
Fixed in 2.4 |
Thanks a bunch @NPBruce. Will test over the weekend. Really looking forward to be able to play the custom campagn |
Thanks for the fix @NPBruce saving and restarting works now perfectly. |
Description of Problem or Question
From the feedback of multiple users and some tests of my own, it seems very likely that there is a problem with the way Valkyrie's saving/loading system works in regards to D2 campaign play.
While the campaign works absolutely fine in Valkyrie during play, a problem occurs after loading a save file. Then the game just stops at the point, where a new quest.ini is supposed to be called.
My guesses would be, that either the save system does not yet take into account that quests can now start other quests, and is thus missing some required information, or that Valkyrie might have a problem getting the correct file path to call the next quest after loading a game.
To reproduce the error simply download "The Shadow Rune" from within Valkyrie, start a game, save the game, load this save and continue the quest. At the point where the next quest is then supposed to start nothing happens.
Due to the gravity of this problem playing a campaign with Valkyrie is currently practically impossible, and it would be great to get this problem solved as soon as possible.
Valkyrie Version
2.0.1
The text was updated successfully, but these errors were encountered: