since you're using godot, a neat trick to make enemies not spawn on screen since i see other people talking about it is to make a path2D that goes around your viewport and is a child of the camera, and a pathfollower2D which goes to a random point on the path2D each frame, then when you spawn an enemy you just set it's global position to the pathfollower's global position
also after a certain point is does become impossible to die, i even tried to die at some points to test it and it took me a bit before i could
for a first game though it was really good! the juice was there, it felt nice to move around and shoot, the game loop was intuitive, and you actually made a game which that alone is something to be really proud of!