Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(+3)

Another board game fan! :)

Fantastic game! My favourite so far! I only wished it had "continue" button so that I can keep playing next time :) Can totally see it developing in a full game that I would be happy to buy :)

Thank you very much. Dice Forge was a huge inspiration, but we wanted a more "dice placement" mechanic for this. We are very happy you enjoyed this much. If one day this will become a full game we will let you know for sure.

As team we haven't learned how to implement a save and continue system yet and since it is quite a short game we didn't bother, but it's totally something we could have done. I see your game has it, maybe you could indicate us the right tutorial or send us that piece of your code if you don't mind

(+1)

Tbh I'm very new to godot and gamedev (started this fall), so I'm not sure I am the good source for the good practice, but happy to share how I didi :) There are multiple ways to save - the one I use is easier in the "save/load" part but might require some code organization. 

Basically, you need to turn all the data you want to save into a dictionary. The dictionary can have any "classic" types of values - including vectors, arrays and other dictionaries. So you can next dictionaries in dictionaries to help you organize it.  It has a way to save "objects," but it is less safe, if I got it right, and also looks more complex, so I didn't yet look into it.

And then you just do to save:

var file = FileAccess.open("user://save_game.dat", FileAccess.WRITE)
file.store_var(save_data)

And to load:

var file = FileAccess.open("user://save_game.dat", FileAccess.READ)
var save_dict = file.get_var()

Itch allows for access to "users" which is some folder in "localfiles" or something like that. More details on this here: https://docs.godotengine.org/en/stable/classes/class_fileaccess.html#class-filea...

In my case, I just store a dict with 4 things: a dictionary for my tilemap values (which I use for logic anyway), positions of all magic crystals, the progression in the day number, etc, and the chosen difficulty. I also do the same for settings and store them in a separate file. And then the "hard part" is to make your game generate from the dictionary - some values you can just assign (like day number), but for some, you need to write functions - like, in my case, setting tilemap layers from the values in the dictionary. It's not hard if you already have a separation of logic and objects because you do translations between them anyway. I already stored my tilemap in a value grid, so I made a conversion between tilemap layers and dictionaries before I thought I'd add save/load. But it also requires more maintenance - if you change tilemap, you need to make sure you adapt your save/load structures accordingly - I failed a bit here, as after I added "half-healed tiles" I didn't add them to the load, so all half-healed tiles load as fully-corrupt.

(+1)

Cool. Thank you very much. 

It seemed very intuitive, like most things in godot. We would totally give it a try in March (we need a month of break before getting into another jam)