BlendSling 0.21b - Launcher for BGE Games - Windows, OS X, and Linux Builds Available


Hey. So, I made a launcher for BGE games, something like Unity’s launcher. It basically is a standalone executable that will ‘encrypt’ a blend file named bsgame.blend that’s in the same directory as the launcher, leaving a ‘bsgame.data’ file. It will then decrypt the encrypted ‘bgdata’ file and run it with the command-line arguments that you specify (no mipmaps, specific resolution, fullscreen, etc). When you alter a setting and play the game with those settings, they’re saved to a configuration file.

The file has the layout:

autorun
0
showconsole
0
1…

The first argument, autorun, forces the launcher to run the game file as soon as it opens. This is useful if you configured the launcher the way you want, and then just want to load up the configuration and play. The arguments that follow all follow the format of the argument’s name (i.e. showconsole), then the state of the argument (either on, or off), and the availability of the option in the launcher. If an option has a 0 for the availability section under the option’s name, then it will be removed from the launcher (though the option still influences the way the game launches).

You can change the numbers in the config file to change which options appear when you run the launcher. Or, you can alter the blend file and change or add new options. I basically just added the options that are available for command-line arguments. It works pretty well. I believe it may not work for Multitexture games, but I’m not 100% sure about that.

While this should mean that you won’t have to, for example, have a Mac to make a Mac version of your game, since a Mac version of the BlendSling can load your game, it should still be tested.

NOTE: I’ve updated the readme file to tell you a little bit about some of the basics of distribution on Mac that I’ve found.

I kept the textures for the GUI separated, so that you can edit them and customize your launchers, without having to rebuild them for any specific OS.

The current version of BlendSling is in line with Blender 2.66a. If you want newer features than 2.66a will afford you, then you would have to build a new BlendSling standalone executable with the version of Blender (or greater) that has the feature you want. BlendSling is licensed under Creative Commons Attribution-ShareAlike 3.0 Unported License. You may use it, even for commercial works, as long as you attribute me for the program. Simple text is fine.

Download it and test it out! Thanks!

As a side-note, if anyone wants to build BlendSling for other OS’s, that would be appreciated. :slight_smile:


BlendSling v0.21b Blender Version 2.66a

Windows Builds Available - 32-bit
Linux Builds Available - 64-bit, 32-bit
Mac OS X Build Available - 64-bit

The latest version is available at the top of the page here.

11/7/12 UPDATE: Linux version posted.

11/19/12 UPDATE: Name changed. Launcher updated with new features (very basic encryption (I guess you can call it that), texture mode switching, and a font color option in the config file). Packaged a readme file with both the build and the blend file.
EDIT: There was a problem with autorunning - fixed it and updated the link.

3/22/13 UPDATE: Updated the builds to run Blender 2.66a’s BlenderPlayer. Also updated the demo file - press left and right to make the cube spin left or right (just to test input). Also added a Mac 64-bit build.

4/7/13 UPDATE: Updated the Windows 32-bit build to be actually Windows 32-bit (it was 64-bit, by mistake). :1

Looks nice, but why doesn’t it have 1600 x 900 support? :C

This is great! iv’e been looking for something like this for a while now!

Question: is there a way to make the no mipmaps off by default and not display the check box at all? for like games that require it to be off all the time?

thanks

Thanks, guys.

I just took some of the more common resolutions and put them in a list. You can add a resolution to the list in the Launcher.py file (it’s near the top). You should probably remove another of the resolutions if you want, though, maybe one of the smaller ones like 640x480 or 1024x600. Of course, you can just use the custom resolution mode section to set a 1600 x 900 resolution. It will save each time you play, so you’ll only have to do it once. A better solution would be to implement a scrollable list for the resolution, so that I could have more options than just those 10.

Yes, there is. I mentioned in my first post about the config file that

The arguments that follow all follow the format of the argument’s name (i.e. showconsole), then the state of the argument (either on, or off), and the availability of the option in the launcher. If an option has a 0 for the availability section under the option’s name, then it will be removed from the launcher (though the option still influences the way the game launches).

So, just set the second number under ‘nomipmaps’ in the config file to 0, and the option will be removed. If you set the first number under it to 1, then it will turn off mipmaps, but have no option to turn them on. The config file would look something like:



autostart
0
showconsole
0
1
maxantialiasing
0
1
bitdepth
32
1
showframerate
1
1
capframerate
0
1
fullscreen
0
1
customresolution
0
1
resolution
[640, 480]
1
nomipmaps
1                  < State of option
0                  < Availability of option


When i ran the launcher it came up as a black window for a while, eventually went unresponsive, then eventually it worked, but it took quite a while to load, aswell as the actuall game. I tried it a few times and the same thing happend. In task manager, it was using alot of memory, but idk.

Im running win7 and decent specs.

other then that it works great! I will defiantly be using this.

Really weird. When I run it it takes around 56 MB of RAM and starts up in a couple of seconds. Do you have something else running on your computer? Maybe something hidden, but visible in the task manager?

ok cool, thanks

not that i know of, some chrome tabs look to be taking alot of memory, i also have ‘little alchemy’ just a small flash game running in one tab, i doubt that would make much of a difference, but ill keep looking.

Is it possible to add some functions like:

  • shadows on/off
  • shaders on/off
  • lights on/off

These are some functions, I try to change while the running game-engine, but it doesn’t work until yet.
To change it before starting the GE sounds more effective.

Great work SolarLune! :slight_smile:

so still it takes along time to load, most of the time the game goes into no response.

@iFlowProduction - That would be a nice feature to add, though I haven’t really tried messing around with editing the GLSL features while a game’s running.
@mrn - The launcher takes a long time, or the game itself? What OS do you have?

Added a Linux version.

both the launcher and the game but the game takes alot longer to load, but once its playing its fine, at 60+ fps.

windows 7

Windows 7, what bit depth (64, 32 bit)? Are you doing anything else? If so, try exiting those programs or checking the task manager to ensure your CPU’s not getting eaten by something else.

32 bit

ya i checked but still for some reason its the same.

Hey

This is something i have been looking for long time and it’s working perfectly!
I like the way you can customize the look of launcher by yourself.

Only thing I would need is a way to secure your .blend files. Something similar to BPPlayer.
I Haven’t yet found any way to combine these two.
The biggest problem is you can’t get BgLauncher read .block files which are created by BPPLayer

Edit: Also, as far as I understand this reads separate .blend which isn’t under GPL license?
So this also solves GPL problem?

Yeah. It doesn’t do anything special - just load an external blend file via Python. Just having your blend files separated from the BlenderPlayer fixes the GPL problem, but the lack of security is obvious. I can’t imagine that it would be that difficult to implement something into the BlenderPlayer to convert blend files into non-editable data files that the BlenderPlayer can load, though.

This is awesome SolarLune

One of the things I find is a huge pain in release a game, is making all the builds compatible for mac/linux/windows. An issue especially for something like Ludum Dare when its best to have as many options as possible right from the start, yet having to spend hours setting it all up or finding various computers with the right OS is just a complete waste of time.

Its good to see its so customization as well, Ive messed around with the config and made a version which had all the options I need for a particular game demo, very quick and easy to setup, saves a lot of time for those of us who would otherwise have to code something like this from scratch (albeit probably not as functional anway).
Good to see the GUI elements exposed in a simple way as well. Im guessing however, if you need to make changes to the bgLauncher.blend (ie to add some custom images/styling or change the position of a button etc) youd then need to re-export the runtime using Blender on the appropriate OS? Seems that way.

Either way, very handy!

Thanks. You should be able to customize the images by just changing the GUI image file that’s separate from the blend file, but if you want to add something, then yeah, you’ll have to re-export the blend file.

@iFlowProduction - ^ Thanks to your suggestion, I added that (very, very, poor, but functioning) encryption to BlendSling. What’s more, thanks to a suggestion by Moguri a few months ago (I was really slow to work on it for some reason), it no longer decodes the files to disk. Now it decodes them into memory, loading their scenes (and so everything in them) into the game via LibLoad.

Updated to v0.2. Includes very basic encryption (I guess you can call it that), texture mode switching, and a font color option in the config file. Packaged a readme file explaining how it works.

Updated to another version (v0.2b, using Blender 2.66a). Added Mac build. Merged the separate “BlendSling” download into the executables (so download the one for your OS to get the launcher executable and the BlendSling blend file). Changed the name of the game file from ‘game.blend’ / ‘game.bgdata’ to ‘bsgame.blend’ and ‘bsgame.data’ to fix conflicts with the OSX .app.