You can create a launcher, much like the Project Manager, then execute the template with the data path of the game you want to play.
Look at OS functions,
OS.get_executable_path ( ), also the command line arguments to use the templates to run games, I think that is only the executable + package path.
For sources I do not recommend to mix projects because it will be a mess for your students, but if you still want to do it, just drop the files on a single project, if these do not overlap, the scenes should be possible to be instance anywhere.
For the students it probably doesn’t have to be a mess per se, from what I can tell BHS_Game_Design is looking to compile it for students to play the games, not read the code. However, it can get messy trying to mix and match these different projects nonetheless, if singletons are used in the projects and overlapping names are used, there is a problem. Input settings, pose a problem. Etcetera. Different project settings all in all will be a nightmare to deal with. Simply instancing the scenes may very likely produce non-desirable results.
So I would definitely aim for creating a launcher as suggested by eons as well.
Fornix | 2019-01-03 11:20
Thanks for your help. I’m finally able to start testing this idea but I’m running into issues with
OS.get_executable_path ( ) or
I have a simple start screen with a button for each game. When the player clicks the button, the selected game should open.
Here are the two lines I’ve tried:
I’m sure that I’m missing something here, and I’ve tried to make sense of the documentation, but I’m having trouble there as well. Of those two lines,
OS.shell_open() has worked, but not in the way I expected. Instead of opening “MouseMovementTest” Godot opens the current start screen file in a new window.
Do you have any thoughts? Or should I post this issue as a new question?
BHS_Game_Design | 2019-02-28 14:45
The main issue is setting the working directory, by default it takes the executable path and every godot template will open the currently running project.
An easy way to solve this could be setting up windows shortcuts (lnk or bat/cmd files) with the correct paths, these may be able to use relative paths too, and open it with shell_open.
Another is to use the method mentioned on the documentation which should be like
OS.execute('cmd', ['/C', 'cd project_dir && chdir && executable'], true, output)