BGArmor: A BGE/UPBGE Tool For Source Code Obfuscation

BGArmor: Presentation And Usage (With English Subtitles):

Download the latest release/demos on Github

Introduction

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

This project was inspired by BPPlayer, but at the same it’s not as reliable as it (due to its simplistic concept behind the curtains), 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.

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

Additional Features

BGArmor also aims to provide a toolchain of scripts to automate the process of game release, including scripts to create the obfuscated data files and generate releases, a launcher and blenderplayer icon changer (on Windows) and others.

Wishlist

Some intended features include:

  • Windows installer automated packaging
  • Linux .desktop files generator and automated .deb packaging
3 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.

3 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


2 Likes

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

1 Like