[Solved] Why is _ready() being triggered before the splash end? - eviltoast

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 🤷

  • leekleak@lemmy.worldOP
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    1 year ago

    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
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      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.worldOP
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        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