TIP: Fake a loading screen to keep players happy
I'm running into a bit of a barrier with long load times for my game in part due to artwork. I'm working on ways to reduce the load time, but there will always be some load time between scenes.
GD currently has the little spinny wheel, but in testing, no one I gave the game to noticed it, and all wondered why the next scene wasn't loading. Since GS doesn't give us the option to change the spiny wheel, I decided to fake my own loading screens.
My solution is to have a loading actor, simply an image the size of the scene that says loading on it, that will display when a user changes scene.
The method is simple.
1. Create a new attribute and call it is_loading
2. In the button, or rule that tells the game to change scene add a change attribute behaviour to change the is_loading attribute to true before the change scene behaviour. Place the change scene in a timer set to 0.4 to give the actor time to display before the new scene starts loading (credit to @wickedsunny for the timer tip)
3. In an actor that appears on all scenes (I have a round_rules actor where I house all my rules that is present on every scene in the game - you could use a background actor if you have the same background, or create a new actor) add a new change attribute to change the is_loading attribute to false.
4. Now create you loading actor - create an actor with an image that is the same size as your scene. Give it an image that says loading on it. Then add a rule that says:
If is_loading is true, interpolate self opacity to 1, otherwise, interpolate self opacity to 0.
5. Now place that actor on the top layer of every scene, above all other actors.
This means that whenever you change scene the attribute is_load is set to true, which shows the loading image. When the scene has loaded, the rule is turned off hiding the loading actor.
Pretty simple. It doesn't fix loading times, but it does at least tell them the game is doing something!
GD currently has the little spinny wheel, but in testing, no one I gave the game to noticed it, and all wondered why the next scene wasn't loading. Since GS doesn't give us the option to change the spiny wheel, I decided to fake my own loading screens.
My solution is to have a loading actor, simply an image the size of the scene that says loading on it, that will display when a user changes scene.
The method is simple.
1. Create a new attribute and call it is_loading
2. In the button, or rule that tells the game to change scene add a change attribute behaviour to change the is_loading attribute to true before the change scene behaviour. Place the change scene in a timer set to 0.4 to give the actor time to display before the new scene starts loading (credit to @wickedsunny for the timer tip)
3. In an actor that appears on all scenes (I have a round_rules actor where I house all my rules that is present on every scene in the game - you could use a background actor if you have the same background, or create a new actor) add a new change attribute to change the is_loading attribute to false.
4. Now create you loading actor - create an actor with an image that is the same size as your scene. Give it an image that says loading on it. Then add a rule that says:
If is_loading is true, interpolate self opacity to 1, otherwise, interpolate self opacity to 0.
5. Now place that actor on the top layer of every scene, above all other actors.
This means that whenever you change scene the attribute is_load is set to true, which shows the loading image. When the scene has loaded, the rule is turned off hiding the loading actor.
Pretty simple. It doesn't fix loading times, but it does at least tell them the game is doing something!
Comments