Atavism Game Launcher Build Kit for Windows
This solution is an attempt to provide the Atavism Development Community a working launcher to manage releases of their games. It is not intended to be the end-all say-all of game launchers, there are many other workable solutions out there, but none that are well documented and fewer still that have everything I was looking for in a launcher. Furthermore, many people often ask "How can I share my game with other people?". This is my attempt to provide those things to the community.
I'll start off with the known limitation before getting into features, as I know some of the features will raise questions that the limitations are the answer to.
Known Limitations::
- Windows Only: The launcher is a Windows application - I do not plan to support additional platforms with the launcher at this time.
- Semi-Customizable: While the launcher can be re-themed to match your game, the layout or sizing of various things is not configurable, you must maintain image sizes, etc. while theming the launcher.
- Number of Buttons is Fixed: While you can change the text and target location of the first 4 buttons on the launcher, there is no way to add additional buttons.
- No FTP support: The launcher uses http/https only to patch/install itself as well as the game it is meant to launch. You will need a web server set up with the ability to upload your files to. I do not plan to implement FTP any time soon.
- No store advertisements yet: I plan to add a frame soon that will load a web page up for display. This will allow you to advertise in game items from your cash shop. I have no ETA for this feature at this time.
- No Google Drive hosting support: You must be able to set up a file structure on your web server for this launcher solution to use - Google Drive is unreliable for allowing large numbers of downloads in a month's time frame, so this isn't something I'd recommend using to host your game client files anyway: I do not plan to support Google Drive at all.
Features:
- Launcher-Only Installer: This allows you to give players a single downloadable installer that will install a launcher which will then install the latest published version of your game.
- Patching: The launcher does hash based file validation on the current game and compares it to a master hash file list you host on your web server. If anything is different, the launcher knows it needs to patch the game and forces the user to do so before launching the application
- Forces Players to Launch from the Launcher: The solution includes a unity package that will import a script as well as a customizable scene into your project. With this in place, the game then requires a hash based key that the launcher passes to it in order to launch. If the key is not passed players will be notified they must launch from the launcher, and if the wrong key is passed players will be notified that file validation has failed and they need to update their game from the launcher in order to play. In either case, the game will automatically close. If the correct key is passed, the validation scene will never be seen and quietly load the next scene in your project (which should be your login scene)
- Allows devs to play from the editor: When launched from the editor, the launcher validation checks are skipped, allowing you to jump in and dev or troubleshoot issues as needed
- Semi-Customizable: The launcher loads up the your company name as well as your game name, and all images used at runtime (buttons, border frames, icon, game logo, etc.), which can all be swapped out with your own images (the sizes must match). Text and progress bar color can be configured via a configuration file you host on your server, which is downloaded each time the launcher is run.
- Self-Update: If you publish a new launcher package on your web server, the launcher will detect it at run time and force players to update before launching. The launcher includes an automated update process, so changing your launcher themes and configurations are very easy for you and smooth for your players.
- Patch Notes: The launcher displays patch notes contained in a text file on your web server. I don't plan to change this as everyone has different websites, etc. and I need to keep this universal. You CAN however instead use this text file to display any other text or updates you'd like to your players.
- EULA Display: End-User license agreement hosted in a text file on your web server is displayed at launcher installation as well as when selecting a path to install the game. Players must accept this to install.
- No Coding Skills Required: The Launcher is configured entirely from easy to understand config files, and step-by-step documentation is provided to help you with any all tasks you need to perform with the launcher.
- If there is interest, I will likely publish source code soon: Though you will need a fairly uncommon development environment to use it. I'd also like the opportunity for folks to use this and work out any initial bugs and have a chance to refactor some code prior to release, I created this whole in quite the rush in 2 days due to wanting to provide this quickly
- Extensive logging: Informing your players when there is a problem and informing them of where to find logs to send you for troubleshooting
No one needs to pay anything to use this, I did this to contribute something to the community. That being said, support/bug fixes will be offered as I am able - I do work full-time as well as have other things going on so this is an "as I can" sort of effort. If you would like to buy me a cup of coffee for my efforts it's much appreciated, my venmo is @Bahusafoo - but again, not necessary to send anything at all.