this post was submitted on 25 Sep 2023
17 points (100.0% liked)

Godot

5686 readers
2 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

!roguelikedev@programming.dev

Credits

founded 1 year ago
MODERATORS
 

I am trying out Godot and I've noticed that when I export the game to linux, the result has a much longer boot time

I'm talking about an 80mb executable for a 3d game and the difference between windows and linux is 0.x seconds vs 10 seconds (the windows computer is more powerful but not by that much...)

I wouldn't care much about that, but during that load time the scene's ready() is triggered and music is played. This causes the cutscene to be desynced with the music and is quite jarring.

Does anyone know why this is happening? Version is 4.1.1 btw

EDIT: after some trial and error I've finallly found the issue. Surprisingly the cause of it was the world environment, more specifically the sky settings, which I had set to high. Bumping them down pretty much fixed the issue.

It's probably a bug, but hey, it works now ๐Ÿคท

you are viewing a single comment's thread
view the rest of the comments
[โ€“] Rodeo@lemmy.ca 2 points 1 year ago (1 children)

There is a specific order that _enter_tree and _ready get called in. When the nodes enter the tree, _enter_tree is called in descending order, when all the nodes have called that, _ready calls begin in ascending order.

Thus, a child's _ready callback is called before its parent's. But the parent has _enter_tree called first.

But I don't think this is the issue here.

[โ€“] leekleak@lemmy.world 1 points 1 year ago* (last edited 1 year ago) (1 children)

Yeah, the music and animation stuff all is triggered on the highest level parent scene, so it should be loaded at the very end.

It's also curious that the music starts during the splash screen while the animation loads properly after everythin's been loaded even if the music is called by the animation.

[โ€“] magikmw@lemm.ee 1 points 1 year ago (1 children)

You can wait untill everything is ready to start music in sync with animations. You'd probably put it in _process and wait for a signal or poll tree until it says it's ready.

[โ€“] leekleak@lemmy.world 1 points 1 year ago (1 children)

Well I have something like:

func _ready():
	$AnimationPlayer.queue("1-1-1")
	$AnimationPlayer.queue("1-1-2")

func _on_animation_player_animation_started(anim_name):
	if (anim_name == "1-1-1"):
		$Audio/ReadySetGo.play()
	pass

I don't know what else could be done

[โ€“] jlothamer@programming.dev 1 points 1 year ago (1 children)

You don't have Autoplay checked for the AudioStreamPlayer[2D|3D] node, do you? (Sorry for the obvious question, but we out here on the net never know.)

[โ€“] leekleak@lemmy.world 1 points 1 year ago* (last edited 1 year ago)

No, autoplay is off