• 1 Post
  • 4 Comments
Joined 2 years ago
cake
Cake day: July 23rd, 2023

help-circle
  • I have an add-on that will help with game state like locked doors and stuff. You an find it in the Godot asset library as Game State Saver Plugin. If installed directly from the Godot editor, you’ll get a watered down demo with the add-on. But a more extensive example can be obtained by downloading the entire repository. That full demo has a locked door, switches that affect things in other level scenes and remember their state, and more.

    As for a more flexible, extensible system for inventory I would look into custom resources. You can add things to the custom resource like an inventory texture, display name, and other info about an inventory item. Then you can use an exported property array and add the items as needed. You can even save the individual resources as resource files for easy reuse and updating later.

    Now how to connect a custom resource to the save system is something I have not gotten around to doing, so I can’t say exactly how that would work right now.

    Hope this helps!



  • I checked it out but haven’t completed the goal yet. It’s pretty good. The simple tutorial in the beginning is enough to get started and after a few restarts, I figured out what to watch out for. It does a good job building tension having to check and sometimes recheck things as you go.

    I think the camera needs some smoothing or something. It’s not too bad, but doesn’t seem smooth to me.

    The biggest issue is the download size. 1 GB and so far I’ve seen the same hall with mostly identical robots. (I got to level 7, btw. So, maybe that’s the reason.) I see a lot more in the project files, so maybe this game is meant to be much larger. But even so, why is it so big? The pck file once the download is unzipped is 2 GB!


  • I’ve thought about this problem creating a system to save game state. The issue with assigning a UUID works until you have dynamic scenes added to the game at runtime. The nodes in those scenes will all have the same UUID. In the end I ended up just using the paths and saving the fact that the scene that data is being saved for is dynamic. Then the system sees this and re-instances the scene and adds it back to the tree. (A slight adjustment to the path must be made as Godot will create nodes with the at (@) symbol in them, but you can’t do that yourself.)

    You can see this in action at my demo repo on github.