BGArmor: A BGE/UPBGE Packager And Launcher

Download the latest release on Github

Introduction

BGArmor is a Blender Game Engine and UPBGE tool that allows you to package your game data files and launch them separated from the blenderplayer executable. It’s available on Windows and Linux.

This project was inspired by BPPlayer, but it aims to be more compatible and portable. It also features a project development structure to aid the game development workflow and ease the release process.

BGArmor also aims to provide a toolchain of tasks to automate the process of game release, including tasks to package the game data files and generate releases, a launcher and blenderplayer icon changer and others.

Take a look at the Quickstart Guide on the manual to learn how to implement BGArmor in your project.

Note About Licensing

BGArmor is under the MIT license and do not bundle any Blender or UPBGE components, however any BGE and UPBGE game should comply with the GPL license. In summary, although a game packaged with BGArmor do not exposes its source code, the source code should be publicly available somewhere else.

Screenshots

5 Likes

Update: BGArmor v0.0.2 Beta

I just released a new version o BGArmor containing lots of improvements. The documentation on wiki was updated to fit the new changes as well.

Next up I will record a video showing the features and the use of BGArmor.

What’s new on this beta release?

  • New obfuscation logic - a lot faster to decompress!
  • New release script to automate the game release process
  • Launcher executable hides console automatically by default (Windows)
  • Launcher executable supports command line arguments (such as -c to show console, -h to show help), and it also will pass arguments to blenderplayer
  • All the helper scripts were severely improved

Visit the wiki to learn how to use BGArmor.

IMPORTANT: Before using this release, copy the engine runtimes to engine/Windows or engine/Linux and update launcher folder contents to fit your game’s needs. Use the new script win-build-release.bat or lin-build-release.sh to easily build your game release.

3 Likes

Added an usage video on the main post (english and portuguese subtitles available).

1 Like

Update: BGArmor v0.0.3 Beta

I just released a new version o BGArmor containing some improvements. The documentation on wiki was updated to fit the new changes as well.

What’s new on this beta release?

  • Added support for Linux and Windows 32 and 64 bits releases
  • Launcher compiled as 32 bits by default
  • Icon changing script updated to fit new 32 and 64 bits runtimes
  • Switched from rcedit to Resource Hacker to set executable icons
  • Minor changes in BGArmor directory structure

IMPORTANT: Visit the wiki or watch this video to learn how to use BGArmor.

2 Likes

Update: BGArmor v0.0.4

What’s new on this release?

  • New data.dat format specification, allowing a much faster compression and decompression. Due to this, now it’s impossible to open data.dat with file managers (such as 7-Zip)
  • Added optional DataChunkSize value to config.json. DataChunkSize specifies that, when building data, files bigger than the size specified (in MB) will be compressed in chunks of this size to avoid loading the entire file in memory. This fixes some Python memory errors reported when building data on low memory computers
  • Example game is not included on BGArmor’s release anymore (but it’s still available on the repository)
  • Some minor improvements on scripts

IMPORTANT: Visit the wiki or watch this video to learn how to use BGArmor.

2 Likes

Update: BGArmor v0.0.5

What’s new on this release?

  • Added feature to ignore files when building data (such as .blend1 and .pyc files). Filename patterns must be set in launcher/config.json. More info here.
  • The launcher executable now accepts alternative flags (-c/--console, -h/--help and -l/--log) and will pass to blenderplayer any other argument.
  • Auto rename launcher executable to game name on release.
  • Game persistent data folder is not hidden anymore, and can be found at AppData/Roaming/GameName (Windows) and ~/.local/share/GameName (Linux).
  • New logic behind temporary directories.

IMPORTANT: Visit the wiki or watch this video to learn how to use BGArmor.

4 Likes

Major Update: BGArmor v0.1.0

What’s new on this release?

  • New BGArmor Panel frontend
  • Replaced all batch and shell scripts by buttons on the panel
  • New launcher fully rewritten
  • New project structure (no more txt files, just a single config.json to keep project info)
  • Option to compile Python scripts and release only the generated .pyc files

Screenshots


3 Likes

Wow, this is so cool. That makes exporting Games so much easier. Thank you for the great work.

2 Likes

I love this work. Will you do it for macOS?

2 Likes

Thanks! Unfortunately I don’t have a macOS to add support for BGArmor, maybe in the future.

2 Likes

Update: BGArmor v0.1.1

What’s new on this release?

  • Show meaningful error messages when running tasks on the panel
  • Save project automatically at each change
  • Add Wine support on Linux for running Windows runtimes and setting icons
  • Fix visible console without the flag -c on Windows
  • Fix launcher without executable permission on Linux
  • Minimal usage improvements
3 Likes

Hello,

I tried BGArmor today and it works perfectly. Thanks for your work. But if I want to distribute or sell my game, then I still have to respect the GPL license, right? So I have to share the textures, sounds etc. ?

Yes. Obfuscation of source code is against the GPL license, so as mentioned in the original post, you still have to make your source code publicly available even using this.

It depends on their license- if you didn’t make them yourself, odds are they have their own unique license that you must follow or face severe consequences

the GPL affects to UPBGE application (upbgeplayer) and python scripts. The blends (models, etc), texture, sounds, etc you can distribute under the license you want (considering that you created them), if they are not created by you, then you should distribute under the license of the models, etc allow.

2 Likes