Alith-Game-Studio / WhatTheWitness

GNU General Public License v3.0
17 stars 2 forks source link

Nothing saves when running the game through wine #4

Open vicky5124 opened 9 months ago

vicky5124 commented 9 months ago

When running the game on Linux through wine, nothing get saved, and everything gets reset when changing menus.

This video shows what happens:

https://github.com/Alith-Game-Studio/WhatTheWitness/assets/8344197/677c32bb-b658-42bc-87d1-52f1fc02b3a8

This behaviour is present in V1.05918 and V1.05, using wine-staging 8.21

instr3 commented 8 months ago

Should be the problem of the user:// path. If it still maps to the Windows %appdata%\Godot\... then it might not be able to create the save file. There might be some way to change the mapping behavior in wine, but I am not familiar with wine. (For proton it seems to be okay)

vicky5124 commented 8 months ago

Using proton did not fix the issue, it still tried to access a directory that didn't exist. Building and exporting the game from source for Linux natively, and putting the resulting binary in the game folder works well, except tetrominos are bugged.

image

SCRIPT ERROR: Invalid call. Nonexistent function 'Clear' in base 'Nil'.
          at: judge_csp (res://script/judgers/tetris_judger.gdc:111)

Note that this is not an issue when running the game through the Godot 3 IDE, only when exported. I was not able to figure out how to fix this in the exported binary.

instr3 commented 8 months ago

Using proton did not fix the issue, it still tried to access a directory that didn't exist. Building and exporting the game from source for Linux natively, and putting the resulting binary in the game folder works well, except tetrominos are bugged.

image

SCRIPT ERROR: Invalid call. Nonexistent function 'Clear' in base 'Nil'.
          at: judge_csp (res://script/judgers/tetris_judger.gdc:111)

Note that this is not an issue when running the game through the Godot 3 IDE, only when exported. I was not able to figure out how to fix this in the exported binary.

You need to use Godot with C# support to build the project to judge tetris correctly. Godot native script is way too slower than C# so I rewrote it with C#.