In general I suggest to start the game with the current scene. A dependency to a specific scene will make development much harder as you always need to go through this opening scene. Switching right at the beginning increases load time.
Logic handler
For easier handling I suggest to create a group with one object that performs the switch. This way you can easily create one instance at each single scene without creating it again and again.
Another option is to link an object between the scenes.
Concept
At game start you want to switch to the opening scene when:
- the opening scene was not visited before
You need a sort of store/restore method.
Storage
As you switch scenes, I suggest to store such information in a Python module. It will survive any scene switch (in difference to object properties). The storage will survive as long as the game session runs.
Code
The code is pretty simple. Please keep in mind it should run in module mode (script mode will not work this way).
caller.py
alreadyCalled = False
def isFirstCall(controller):
global alreadyCalled
if alreadyCalled:
return
alreadyCalled = True
for actuator in controller.actuators:
controller.activate(actuator)
Setup
Always Sensor -> Python Controller Module: caller.isFirstCall -> Scene Actuator: to opening scene
Remarks
This will work with the first call "caller.py". Any subsequent execution of "isFirstCall" will not activate the actuators even when executed within the same frame.