Skin Deep: Skin Deep BuildPackager


Skin Deep will be released April 30, 2025! In the following weeks, I’ll be writing about the processes and development of Skin Deep.

Wishlist Skin Deep here!

To view all posts in this series, click here.


Skin Deep BuildPackager

Today I’ll be writing about the Skin Deep BuildPackager tool. Here’s what it looks like:

Yes, this is yet again a tool that has one button.

To set expectations: the general concept of the BuildPackager (package up a build ready for players) is widely applicable. But the particular details of this tool apply specifically to Skin Deep, as this tool is only for Skin Deep’s particular file structure and folder setup.

Goals

I wrote this tool to package player-facing builds of Skin Deep. Example: a build of the game that gets uploaded to Steam.

This generally means:

This is all stuff that can be done manually. But, it’s quite a lot of steps and is very tedious, so it made sense to make a tool to automate this.

Why GUI

This uses a GUI interface. The BuildPackager would definitely work well as a command-line tool, and would probably be faster to build with that approach.

I personally like to use GUIs for my tools (instead of command-line). The main reason: I had some command-line processes in the past, and yes, they did work great. The problem was:

Now, crossing my fingers that functionality/support for these GUIs don’t disappear anytime soon… 🤞

How it works

First, I compile a new executable in Visual Studio. I didn’t automate this, because I just never got around to it.

Then I click the giant Start button:

Here’s a step-by-step of what the tool then does:

  1. BuildPackager verifies all the files it needs actually exist, such as the game executable.
  2. BuildPackager rebuilds collision data and pathfinding data all of the game’s maps.
    • This is done by running the game with some specific command-line parameters.
  3. BuildPackager deletes all the files in a “staging area” folder for the build.
  4. BuildPackager copies the game files to this “staging area” folder for the build.
    • During this step, the tool curates which files to copy. It only copies over the files that we want players to have/see.
  5. BuildPackager then calls the Blendo Steam Uploader tool with a command-line parameter, to make it automatically upload the fresh build to Steam.

That’s it. It’s very straightforward stuff!


Nuts and Bolts

Skin Deep BuildPackager was made with Winforms. It was written in C# with Visual Studio 2015.

This tool is extremely specific to Skin Deep, and is also extremely specific to the needs and file structure of this project. So, just to set expectations, this will probably not be immediately useable to anyone, without a lot of changes.

But at any rate, please feel free to adapt it to your own project:


Et al

Older titles from the Blendo games catalog still get updates!

I think it’s worth spending time making a basic build packaging tool and writing some internal documentation on your build processes. Mainly because the person you were a decade ago is probably not the same person you are now, and it’s possible you’re going to wish you had some help from your past self in learning how to re-package a build of your game.

I can uhhhh say this from personal experience 😅

This page is based on the Journal theme by Damien Caselli.