Try / OpenGothic

Reimplementation of Gothic 2 Notr
MIT License
1.17k stars 85 forks source link

Load the save games made with the original G2 #410

Open Nindaleth opened 1 year ago

Nindaleth commented 1 year ago

I noticed https://github.com/lmichaelis/phoenix/issues/16 which implies that OpenGothic could load saves of the original G2, allowing to migrate from G2 to OG mid-playthrough. As far as G2 format goes, limiting to load only is assumed, saving would be done only in OG-native format.

Is this something that would be desirable in the future?

Try commented 1 year ago

Hi, @Nindaleth !

I haven't thought much about supporting original saves. It nice to have it, if we can keep it simple in terms of code and workflow.

On side of workflow: G2 original saves are folders with multiple files. Any suggestions how user side can look-like?

lmichaelis commented 1 year ago

Quick context:

Support for save-games in phoenix is currently limited, though a lot of things do already work. The sky controller, for example, is parsed from the file but not actually stored anywhere (admittedly that is a small fix).

I did experiment a bit with loading them into OpenGothic but I ran into some quite annoying quirks, like G2 world save files not including the world mesh. This would mean having to load the world twice, once from the VDF, keeping the mesh and once from the save, keeping the Vob-tree.

I am not sure about the Vob-tree either. It might not actually contain all Vobs so some merging might be required.

Nindaleth commented 1 year ago

Any suggestions how user side can look-like?

I was thinking similar to how OG saves work, since we already have to provide G2 installation folder and the structure is saves/<slot>/*.

To the existing -save something like -gsave parameter could be added to allow loading. If changing the main menu items is possible, there could also be "Load Gothic2 Game" in GUI. If main menu is set in stone, well... an additional CLI parameter that switches Load Game location between OG and G2?

PoetaKodu commented 1 year ago

I think a better way would be to create a separate program that would convert the saves.