[WIP] Release Manager. (Installer, Patcher, Launcher)

Release Manager (WIP)

A Launcher, Updater and Release Manager for Unity Games. Design your Launcher, Manager patches and update your customers with ease.

We started release manager for the distribution and management of our game Battle Arena Drones.

Download Beta Free
We are moving Release Manager to open source. We want to focus on Game development and as we are still using the project ourselves we will be maintaining it and of course happy to get any assistance from other users (even testing is a huge assistance)

High level feature list

Launcher

  • WYSIWYG Designer
  • HTML panels (supports html 3.2)
  • Unity settings (before executing to replace the unity launcher dialog).
  • Patching (as small as possible).
  • Ability to shutdown the game when we in maintenance.
  • The updater does not require administrator rights to update the application.
  • Native launcher that does not require additional software to work.
  • Promo image that can be changed online.
  • Small installer (that will download the full latest version)
  • A way to update the launcher layout and design online and not require a re-installation of the software.
  • On start up checks all files to see if there was tampering or corruption, downloads a fix if a file is corrupted.

Manager

  • A graphical interface showing the current release and available versions.

  • A diff compiler that creates as small as possible updates. (our updates dropped from an average of 60mb to 1mb)

  • An installation compiler that creates the initial installation for each platform.

  • A convenient and safe way to upload the release and take them live.

Unity

  • A small prefab that synchronizes the in game unity settings with the launchers settings.
  • Fixes the issue of fullscreen/windowed mode command line interface not working.

This is the launcher in action downloading the current full version of our game.

Unity settings currently supported

Really small patches
To show how small patches can be here is a comparison for Battle Arena Drones using a standard file diff and the advanced diff that is part of Release Manager

Standard File Diff:
These are the file sizes from a straight file compare kb per kb replacing all that have changed.
0.0.6 55,445 kb
0.0.7 55,359 kb
0.0.9 64,612 kb
0.0.9a 1,205 kb

Advanced File Diff (using Release Manager):
These are from the Release Manager using a more sophisticated file compare function.
0.0.6 922 kb
0.0.7 276 kb
0.0.9 2,774 kb
0.0.9a 7 kb

More Information
Project Wiki.
Git page
Discord
Roadmap Trello

Please keep in mind this is beta there are still changes been worked on so questions and issues are welcomed in order to assist us making the product better.

Full list of Video Tutorials for Release Manager

We look forward to hearing from you.

*EDITS: This post has been edited a few times to keep it up to date. *

6 Likes

Screen Shots

Manager
This is where new releases are added, compiled and made live. Also from here you can upload the release to your online hosting.


Uploader
Here you configure your FTP and the corresponding URL that the launcher will use to download details. There is a test feature that enables you to quickly test the configuration and lets you know what step is not working. (credentials have been obscured for obvious reasons)

Designer
This is where you design the launcher, the launcher is online but cached on the clients machine. New version can be uploaded and the client will get the new details.

Packager
This is where you create installations for your game. It uses WIX on windows and you will need to download WIX and install it for the packager to work. There is also the option of creating a raw package and doing your own installation.

1 Like

This looks absolutely astonishing! Good job, I’ll definitely check it out more later on.

1 Like

This looks very cool and useful.

1 Like

Thanks guys, please ask questions propose features and so on we want to make it absolutely comprehensive.

Awesome work Travis.

1 Like

Just by curiosity:
Is it possible to add one single image, which will then be automatically resized to fit as an icon and bigger / bigger and then as an icon? I saw the last image you posted with all the pictures that can be uploaded, so I was wondering if uploading one single picture is enough :slight_smile:

Edit: Not to be a grammar nazi, but it’s “installation” (might be useful to correct for people like perfectionists) :slight_smile:

1 Like

Another question:
The news tab, while designing the launcher. Do we, the users, have to code a specific app just for it, or can it be a part of our website that can be used? Like can we just use the ‘news bar’ from our website coded in HTML, and add it there? Or does it have to be specifically made for the launcher in order to make it fit etc.

1 Like

Those images in the Packager are used to create the various OS’ icons. So for now the windows .ico file. If you leave any out you will get a windows icon that tries to resize the ones you have. That having been said you can drag the large image from the file into each of the smaller and it will resize. It does not do as good a job as Photoshop would but its not too bad.

Please by all means, I have no super powers but I am sure my super weakness would be spelling.

You specify the URL you want, its not really a NEWS tab its actually an HTML panel. The frame then downloads the HTML from the URL supplied and renders it. So basic layout using tables it fine, div’s give strange results since the panel is only HTML 3.2 complaint. You could any number of HTML panels in the launcher each with there own URL. Obviously Javascript is not supported. :slight_smile: CSS is fine.

You can also place buttons that link to the web, the launcher will open them. The support button you see on in the launcher opens our forums.

Thanks for the feedback and questions.

1 Like

Sounds amazing! It really does look at least as amazing as it sounds too, and I’m very hyped about this. Wish you the best of luck with this project, I’ll definitely keep an eye out :slight_smile:

1 Like

Thanks we are going to start the submission process on Monday.

We have launched our Wiki for the Release Manager

http://info.celestial-games.com/doku.php?id=releasemanager

What platforms are supported by the launcher? (win/mac/linux)

How much will it cost?

Does it come with source code so slight changes or bug fixes can be made quickly should you stop supporting it in the future?

1 Like

For now we are building the Win32 support then Win64 and the Mac (we expect to only build Mac64 support) Finally in the last leg we will be building the Linux version. Each version requires that we rebuild the launcher, launcher updater and packager per platform so we wanted to get all the bits right before we repeated everything 5 times. Also there is a direct cost for us on each platform so we are hoping to cover that costs through early access sales.

Right now we have not decided a final price. We will try keep it under $100 we will run a beta access special for early adopters too.

The unity source the the Unity plugin will be supplied (its not a lot of code though). Source for the release manager, launcher updater and launcher will not be supplied for now. However if we should stop supporting the solution in the future we will make the code available either as public domain.

Very interesting

Sounds great! Some more detailed questions:

Can the launcher run without admin privileges normally, but request them should the user want to install the game in C:/Program Files or any other protected directory?

In the OP the native settings window looks kind of blah in front of the fancy launcher, will it be possible to use the designer and style it just like the launcher itself?

Can the launcher pass through command line arguments to the game? For example, starting the launcher with “-startimmediate -level 1163” would validate and update the game, then instantly launch it with the last settings and add “-level 1163” to the args.
I’m not 100% sure how this is actually useful, maybe for using gamename://blah links on the website. Just randomly thought of it.

Does it allow users to ignore the update and invalid files and play anyways? For example in single players games where having the latest version isn’t too important.
Ideally this would be a setting when uploading the new patch whether an update is required (for example “fixed potential backdoor in xxx”) and the launcher will download the update, or not and the user can simply skip it and play instantly.

Can the launcher work fully stand alone? As in it does not download the ui from a server on start-up, but has it included

How can the game validate that it was started by the launcher?

Are downloaded files and patches compressed with something like maximum lzma2 to save server space and bandwidth? Whether it takes a few minutes longer to generate a patch isn’t really important.

Can multiple patches be generated? For example not only v0.1 to v0.2 and v0.2 to v0.3, but also v0.1 to v0.3 directly. After a few levels it might be more efficient to just download the whole new release instead of updating an old outdated game with a patch over 3 versions, but that depends on the file size.

What happens if the user is offline? Can he still play?

Thanks for the questions, really helps us direct our efforts and consider different things.

The MSI installation requires administrator privileges and will request them as the MSI tool does. Once installed the application will not require administrator privileges. We work within the boundaries of the Windows directory privileges requirements.

Short term win there will be to allow the configuration of the colors at least so they match the rest of the launcher. will look at that soon. We are also considering you might have other configurations you want to manage, so some kind of UI design that lets you build configuration parameters specific to your game. We have not yet done a full design for how that would work though. We will probably only tackle that one all the platforms are supported though.

Right now you can add those to the command line part of the setting screen manually (meaning your user would have to add them, not idea). However what we would recommend instead is we are adding a bunch of properties to the Launch button (You can have more then one launch button) your start scene gets access to those properties so you direct the game from there. This could be useful if you want to launcher a server separately for your game or a design tool for costume stuff.

This is a setting in the design of the Launcher so you can change it later. If you have an update button on your launcher then it will not automatically update. Assuming you have said the play button can be executed without been up to date then your player can choose when to update.

Not right now, right now you can only build the small installation that requires the patch not a complete version. Building a complete installation version is something we still want to do. However once installed it would still download newer UI should there be a newer set of UI online if the end user is online.

Right now that is not part of the logic, I suspect we can achieve this to a small degree, but not in a completely uncrackable fashion. You can pass through parameters from the launcher and test these to see that it was launched from the launcher. These are passed through the environment so an end user could hack it if they determined.

Good question, we currently just using a pretty standard compression. A quick search I found this set of tools and libraries http://tukaani.org/xz/ appears they using lzma2. Will do some tests and see if they pan out.

Each patch is between a version and the next. So if you 3 versions behind you need to download the three patches. But I do like this idea. We already have a system where you can tag a full release. This means all the files are uploaded for new installations to start from instead of picking the very first version and downloading all the patches.

I think the way I might handle this is to allow the end user to choose how many versions back they want to build patches for specifically.

Yes provided you have allowed offline play, that is in the hands of the developer.

I am truly hoping this launcher will be stable and fully working. My experience so far is not good with some of the other choices.

Will it be compatible with the latest version 4 of Unity?

I have Projects that wont run in Unity 5.

That how we started the project. We tried a few patching and launcher solutions and in the end started our own. We are actively using Release Manager here. Hopefully you will find it a useful as we are.

It works perfectly with Unity 4 and 5. There is only a small Unity plugin the rest is built outside of Unity technology. It also has support for standard executable not just Unity ones.

Thanks for the feedback.

2 Likes

Feature Update:

We have added template to the design tool for your Launcher. You can save a design as a template and load a template into your project.

2050594--133337--menu.png

Also we have included two VERY basic templates to help get people started.


We needed the templates so we could reuse a design between the Beta testers and Live streams and not have to rebuild it each time.

2 Likes