Search Unity

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

Discussion in 'Works In Progress - Archive' started by Travis-Bulford, Mar 25, 2015.

  1. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    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.
    launcher.jpg

    Unity settings currently supported
    unitysettings.jpg

    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. *
     
    Last edited: Mar 16, 2020
  2. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    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.
    project.jpg

    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)
    upload.jpg

    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.
    design.jpg

    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.
    package.jpg
     
    Last edited: Mar 26, 2015
    Rick- likes this.
  3. Sykoo

    Sykoo

    Joined:
    Jul 25, 2014
    Posts:
    1,394
    This looks absolutely astonishing! Good job, I'll definitely check it out more later on.
     
    Travis-Bulford likes this.
  4. Leslie-Young

    Leslie-Young

    Joined:
    Dec 24, 2008
    Posts:
    1,148
    This looks very cool and useful.
     
    Travis-Bulford likes this.
  5. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    Thanks guys, please ask questions propose features and so on we want to make it absolutely comprehensive.
     
  6. NicBischoff

    NicBischoff

    Joined:
    Mar 19, 2014
    Posts:
    204
    Awesome work Travis.
     
    Travis-Bulford likes this.
  7. Sykoo

    Sykoo

    Joined:
    Jul 25, 2014
    Posts:
    1,394
    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 :)

    Edit: Not to be a grammar nazi, but it's "installation" (might be useful to correct for people like perfectionists) :)
     
    Travis-Bulford likes this.
  8. Sykoo

    Sykoo

    Joined:
    Jul 25, 2014
    Posts:
    1,394
    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.
     
    Travis-Bulford likes this.
  9. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    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. :) 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.
     
    Last edited: Mar 26, 2015
    Sykoo likes this.
  10. Sykoo

    Sykoo

    Joined:
    Jul 25, 2014
    Posts:
    1,394
    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 :)
     
    Travis-Bulford likes this.
  11. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    Thanks we are going to start the submission process on Monday.
     
  12. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
  13. Zeblote

    Zeblote

    Joined:
    Feb 8, 2013
    Posts:
    1,102
    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?
     
    Travis-Bulford likes this.
  14. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    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.
     
  15. Zubba

    Zubba

    Joined:
    Mar 6, 2010
    Posts:
    67
    Very interesting
     
  16. Zeblote

    Zeblote

    Joined:
    Feb 8, 2013
    Posts:
    1,102
    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?
     
    Last edited: Mar 31, 2015
  17. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    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.
     
  18. Zubba

    Zubba

    Joined:
    Mar 6, 2010
    Posts:
    67
    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.
     
    Last edited: Apr 1, 2015
  19. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    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.
     
    Tea_Man88 and Zubba like this.
  20. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    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.

    menu.png


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

    light.png
    dark.png

    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.
     
    blackice-builds and Zubba like this.
  21. Zubba

    Zubba

    Joined:
    Mar 6, 2010
    Posts:
    67
    When can we expect this on the asset store?
     
    blackice-builds likes this.
  22. Demonith88

    Demonith88

    Joined:
    Jun 30, 2014
    Posts:
    216
    Following this i hope es will work with Unity 5
     
  23. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    We have a beta ready to submit. With external apps we need some assistance from Unity we have emailed them but its a holiday weekend for many so no response yet.

    This works with Unity 4 and 5. The unity plugin in a very small part of the application just synchronizes the settings between the launcher and the game. It also makes the settings from the launcher available to the game.
     
  24. Demonith88

    Demonith88

    Joined:
    Jun 30, 2014
    Posts:
    216
    Where i can download ?
     
  25. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    We still in the process of submitting to Unity. So for now its not available online.

    We will post here with a link when Release Manager is available hopefully soon.
     
    Last edited: Apr 6, 2015
  26. Zubba

    Zubba

    Joined:
    Mar 6, 2010
    Posts:
    67
    May I ask for the early beta price?
     
  27. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    We planning to put the early beta up at $65 as more and more features are completed we will be raising the price.
     
  28. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    The last few days I have been focussed on making the system easier to use. The WYSIWYG designer to operate more naturally in accordance to peoples expectations and some pop up help at your fingertips. A few typos and errors in the text still to be cleaned up but you can see the general idea.

    The Label and Action pop up hints are shown below.

    label.jpg


    action.jpg
     
  29. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    So we have been busy on the Release Manager we release 0.0.7 to our testers today. You can see the list of changes below.

    Additional polishing to make the Release Manager act more naturally in the fashion users would expect.

    General
    [x] Make sure save happens more often
    [x] Start default location to user home
    [x] Make save wait a few seconds after a change before saving in case we doing more changes
    [x] New projects use the folder name as a default for the project name

    Launcher
    [x] Make sure first time installation works with UPDATE functionality

    Designer
    [x] Help on actions
    [x] Help on image
    [x] Help on label
    [x] Help on progress
    [x] Help on html
    [x] Show better text on actions in tree view
    [x] Undo for use template
    [x] Fix white template progress bar (too short)
    [x] Fix templates labels (wrong term for application)
    [x] Allow dragging into display of items not just into tree
    [x] When main view is selected allow arrow keys to move items
    [x] When main view is selected make selecting item lines march
    [x] BUG: Snap lines not always choosing correctly
    [x] Make redo/undo work all the time (move to menu)
    [x] Make any do function draw the template design view to the foreground
    [x] Remove the confirmation on use template since we have undo now.
    [x] Make clicking on the draggable label items create a default item at the end of the tree view.
    [x] Default template for new project (Use light)
    [x] Change path to included resources to something more like the fonts so that changing the URL does not upset the whole system
    [x] Pack the frame on each update so its the size of all items bounds
    [x] Unselect only when clicking off items in view and view was already focused
    [x] Open view size up to anywhere the user drags items
    [x] Make all keyboard movements undo all in one go. Or create only one do undo
    [x] Drag into central view make sure central view is selected
    [x] Fix drag functionality from resource table
    [x] Add general UI background and foreground colors and font to base
    [x] Make size on base uneditable in properties view
    [x] Copy and Paste functions
    [x] Make copy, cut, paste, undo and redo only operate when the tree, view or resource table is selected
     
  30. fieldrequired

    fieldrequired

    Joined:
    Feb 26, 2014
    Posts:
    108
    Are you still going through the Unity Asset Store submission process? Is there a way to purchase the product away from the Asset Store? I don't mind paying an additional premium....
     
  31. fieldrequired

    fieldrequired

    Joined:
    Feb 26, 2014
    Posts:
    108
    Where are you releasing it today?
     
  32. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    We have put 0.0.7 up on our store front. The purchase will include all other platforms when available. Since the tool updates through its own system any purchase from anywhere will always update so from us or Unity its the same experience.

    https://shop.celestial-games.com/index.php?route=common/home

    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.

    We have put the product on 60% discount until the end of May.
     
  33. Zeblote

    Zeblote

    Joined:
    Feb 8, 2013
    Posts:
    1,102
    Your site certificate is expired, chrome shows an error when trying to go to the link.
     
  34. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    :/ I will check we updated the Cert so its hopefully just an issues aligning it to the cart.
     
  35. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    The co
    The correct cert has been loaded, thanks for pointing that out.
     
  36. Parallaxe

    Parallaxe

    Joined:
    Apr 9, 2013
    Posts:
    118
    I tried to register on your site in order to purchase the beta, but got the following error:

     
  37. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    Hi Parallaxe,

    I saw your user and manually activated you. We did a fresh subscription from an alternative email and it worked fine. I have no idea why yours failed to deliver the email. Before you try purchase anything please do a password reset to check the email can send to you.
     
  38. Parallaxe

    Parallaxe

    Joined:
    Apr 9, 2013
    Posts:
    118
    It's typical for this error that it only occurs randomly. You might want to check your security limits (--> ulimit -a) or check the Output Buffering in your php.ini. You could also add ob_start() in your PHP script if you don't have access to php.ini.

    BTW: I requested a new password but did not receive any email yet (checked spam folder as well, of course). I'd assume your sendmail is still glitchy.
     
  39. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    Ok sorry for the inconvenience,

    We have changed the email system to a different account and done a few tests appears to be working here. Please try reset your password again
     
  40. Parallaxe

    Parallaxe

    Joined:
    Apr 9, 2013
    Posts:
    118
    Nope, still nothing. I have requested a new password 10 min ago, but didn't receive an email from your shop yet (spam folder checked as well).
     
  41. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    I sent you an email to the account registered with the word parallaxe in, did you get that email?
     
  42. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    So we considering adding user account login as an option to the Release Manager. This would mean that in order to download and run your game the user needs to be logged in.

    For this we have a few ideas for account management.
    1. Use the WEB user login of the files the system downloads.
    2. Integration into a Wordpress site.
    3. OpenAuth
    4. ... your suggestion here.
    We will be passing through the session handle to the game on launch so you could pick up on it form there and continue with that account session.

    Any feedback on systems you might already be using in your games?
     
    shkar-noori and blackice-builds like this.
  43. Zubba

    Zubba

    Joined:
    Mar 6, 2010
    Posts:
    67
    Hi,

    While using godaddy it seems impossible to connect with ftp using release manager.
     
  44. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    I see now that godaddy by default only support FTP not SFTP. I have started adding support for normal FTP now. In the men time there are a few choices.

    You can configure your godaddy account to support SFTP (I have never done this as I don't use godaddy) here is a link I did find on the subject https://7thursdays.wordpress.com/2009/08/23/secure-ftp-on-godaddy-shared-hosting-accounts/

    Alternatively you can perform the upload yourself with an external file upload tool (filezilla is my preference). The releases folder needs to be uploaded as is to your destination folder.

    If you don't mind waiting a few hours I will have the FTP patch to you. I had hoped I could simply change protocols on my current libraries I use but they support SFTP only.
     
  45. Zubba

    Zubba

    Joined:
    Mar 6, 2010
    Posts:
    67
    Thanks I'll wait. I have to check up with godaddy I Think they removed the sftp option.

    Edit: My bad SSH is already enabled on my account
     
    Last edited: Apr 13, 2015
  46. Dalemeric

    Dalemeric

    Joined:
    Mar 23, 2015
    Posts:
    6
    I'm new to FTP in general. What are each of the lines on the Upload page supposed to look like. Could I get an example with just dummy names in place?
     
  47. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    Does this mean you can do sftp now? I am going to continue with the FTP options either way. I can see there will be people that need it.

    I have started the tutorial page on the Wiki for FTP will complete it with the new patch to handle normal FTP as well as SFTP and link it here when done.
     
  48. Zubba

    Zubba

    Joined:
    Mar 6, 2010
    Posts:
    67
    Trying to solve out the details. But I agree with you, I won't be the last guy with this problem. Even if it's not secure.

    Some questions:

    Is the port hardcoded in release manager or do we need to type myurl.com: port?
    Any other stuff hard coded while connecting?
     
    Last edited: Apr 13, 2015
    Travis-Bulford likes this.
  49. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    Sorry missed your question part earlier was busy making standard FTP work.

    you can specify

    URL : PORT if you need (without the spaces)

    The only thing that was hard coded was how many threads would be started to try upload the files. That's now configurable in 0.0.8 which I release a few min ago.
     
  50. Travis-Bulford

    Travis-Bulford

    Joined:
    Feb 14, 2013
    Posts:
    264
    I have release 0.0.8

    The primary change has been to add normal and passive FTP.

    I have added some information to the project wiki http://info.celestial-games.com/doku.php?id=releasemanager:tut:ftpsettup

    Hopefully that will assist you. I am working on an example using a free hosting site. Will post an update here when that's live.