A Launcher

So I’m making a game in Panda3D, and I want to make a launcher for it. I thought about using Python to make it, but it wouldn’t be exactly… graphical (which is what I want). Is there any way I could make a Python launcher with GUI instead of just terminal or what? I’ve seen people make launchers in Visual Studio but I have no idea how to do that. ( I have done a few things in Visual Studio, just not python. If anybody could tell me or link a tutorial on how to make a launcher in Visual Studio that’d be great. )

stackoverflow.com/questions/8222 … n-the-back

This will not be cross platform. You will want ot use a gui toolkit like qt, gtk, or wx.

If you pack your game using packp3d/pdeploy the terminal/command promt will not show up.

But I think what you want is a smaller window with options and maybe a splash screen while the main game is loading. And you can do that by … well opening a small window and then making a new window for the game when the luncher is closed.

I’ve made something like that for my game (pyweek.org/e/wez/ ) it’s 8-bit style but don’t mind that :wink:

I made a launcher that downloads the latest version of my game, kind of like the blizzard launcher.
The problem is that the launcher needs to inherit from showbase to make the launcher gui, and when it imports the pyc that it downloads from github, that pyc has another class that inherits from showbase to make the game. The two showbase instances raise a:
StandardError: Attempt to spawn multiple ShowBase instances!
Also, calling the second run() within a task causes the installer to hang while the game plays which kind of gets in the way, but I can’t find a way to get anything to be called outside of showbase after the first .run is called.
I had gotten a similar thing working a while ago, and it just started two windows.
How would I get that to work?

Not sure without some code, but the first thing that springs to my mind in not to inherit from ShowBase but to pass the already created ShowBase instance.

Or not use ShowBase at all for your launcher; or use a separate process altogether. The advantage of using a separate process is that you can handle the case where the game crashes, so that you can catch it and submit a crash report or something of the sort.

Keep in mind that when you pack your game using packp3d/pdeploy, you will already get a launcher that can handle updating for you. It has limited customisability, though.