this post was submitted on 09 Oct 2023
14 points (100.0% liked)

Godot

5571 readers
84 users here now

Welcome to the programming.dev Godot community!

This is a place where you can discuss about anything relating to the Godot game engine. Feel free to ask questions, post tutorials, show off your godot game, etc.

Make sure to follow the Godot CoC while chatting

We have a matrix room that can be used for chatting with other members of the community here

Links

Other Communities

Rules

We have a four strike system in this community where you get warned the first time you break a rule, then given a week ban, then given a year ban, then a permanent ban. Certain actions may bypass this and go straight to permanent ban if severe enough and done with malicious intent

Wormhole

[email protected]

Credits

founded 1 year ago
MODERATORS
 

Why is there a load() at all?

top 11 comments
sorted by: hot top controversial new old
[–] [email protected] 7 points 10 months ago* (last edited 10 months ago) (1 children)

load() just loads things as soon as it's called, so it can be used if you're making an open-world game and don't want the whole map loaded into ram at once, or if you switch from one level to another maybe you want to load some new assets and unload the previous ones to save memory. If you're not worried about that you can just use preload() yeah.

[–] [email protected] 2 points 10 months ago (1 children)

I personally have a 'game launcher' for all my separate projects which I'll usually only launch one from, so I exclusively use load()

[–] [email protected] 3 points 10 months ago (1 children)

Why did you do that? I've always just used the project manager. Is it that version manager plugin that was posted here a while ago?

[–] [email protected] 1 points 10 months ago (1 children)

Ngl cause all my code is a mess and I have a lot of 'addons' that I don't want to separate out but also haven't been finished independently yet. Its my ADHD workflow but it works for me, its all just one disgustingly large project

[–] [email protected] 2 points 10 months ago (1 children)

So, something that might never see the light of a public release?

[–] [email protected] 2 points 10 months ago

Oh my yes definitely, don't follow my bad practices for release

[–] [email protected] 6 points 10 months ago (1 children)

For a personal project, I'm using load() because I don't know which file I'm supposed to load when the scene starts. Also, said file can change during game runtime.

In my case, I'm changing textures. With the game paused, the player can change some stuff, like the character's hair. I don't need to preload all of them, and maybe a preloaded one might not be the one that should actually be loaded in the end.

[–] [email protected] 2 points 10 months ago

Okay, that makes sense. Thank you

[–] [email protected] 5 points 10 months ago (1 children)

In GDScript, there exists the global preload method. It loads resources as early as possible to front-load the "loading" operations and avoid loading resources while in the middle of performance-sensitive code.

Its counterpart, the load method, loads a resource only when it reaches the load statement. That is, it will load a resource in-place which can cause slowdowns when it occurs in the middle of sensitive processes. The load() function is also an alias for ResourceLoader.load(path) which is accessible to all scripting languages.

From the docs: https://docs.godotengine.org/en/stable/tutorials/best_practices/logic_preferences.html

[–] [email protected] 3 points 10 months ago (1 children)

I somehow overlooked that in the docs, thanks!

[–] [email protected] 3 points 10 months ago

Tbf it took a little digging to find, no worries!