About two months ago the game was entering a phase of development where I needed to update builds reguarlly and push them out to testers. Unforunately, how this was achieved was by manually zipping up the build folder of the game, uploading that zip, and having the testers download the zip, extract, and there was nothing in place to let them know they were using an old version of the game.
Here enters: The Launcher.
The Launcher not only addresses the concern of pushing builds to the testers, but it also handles updating the game's assets and game data. Its basically an entire patching platform. Another requirement for the Launcher was that I wanted it to be cross-platform. I wanted it to target Windows and MacOS desktops, but also Android.
Guess what guys? This Launcher is complete! And is functioning on all 3 platforms. In the rest of this post I will go into a bit more details about how the Launcher works.
The Launcher works as a "install once" and just open to play, type of application. This means that the Launcher it self will manage patching the game's build, game assets and game data. And it will do so seemlessly, with very little user interaction.
The game's assets, or graphical/audio resources, are scanned each time you open the launcher. This scan looks for if any files are missing, or if the patch is out of date. And will download the latest patch and update these files.
The game's build, or what you may better think of as the source code, is the last thing that the Launcher updates. It does this by downloading the latest game build if there is a newer one available. And then it launches it.
Security was considered for these processes. All of the data updated is encrypted and verified with checksums. This is to ensure that the files arrive at the player's end unmodified, and not corrupted. Additionally the files stored on the player's harddisk remain encrypted to help limit unwanted modification.
This entire patching process took about a month. It took a while to develop the patching spec, create a patching utility and to get the Launcher to update and open the encrypted data. Over all I am pleased with the patching system, I just wish it didn't take as long as it did.
Getting the Launcher to work on Windows, MacOS and Android was actually not that time consuming. It took about one day to port the Launcher to each platform.
The Windows version, for now, is a zipped folder with the files neccessary to open the launcher included. This requires the user to extract the zipped folder to their desktop (for example), and then run the game. Note: when opening the game for the first time Windows will give a nasty warning that appears that you won't be able to open it. But if you hit "more info" the open option becomes available.
I also researched quick alternatives to zips on Windows: such as a self-extracting exe (SFX) and while tests of this were promising, I only want to deal with one download per platform. So I elected to have the zipped folder be the option available for now. Utlimately, I would like to have the Windows version be an installer, but I did not want to deal with that during this early development phase. We will use the installer once open testing begins.
The MacOS version uses a DMG file. Which is basically a portable disk drive that includes the game and a shortcut to your Applications directory. It is common practice on MacOS to design the DMG this way, and the process of installing the game is to drag the icon into the Applications directory shortcut. Once you do so you have to go into the Applications directory and right click on the game and click open. This is neccessary to avoid the security issue of not publishing the app through the App Store. But thankfully once you do this extra step once you won't have to do it again.
The Android version uses a APK file. Which is the Android installer file. On Android you will have to allow the game through as a security exception of running a game from a 3rd party. This is neccessary until we get the game on the Play Store.
Over all, everything is working fine. Beyond the security exceptions and warnings. But it is something we have to deal with until we pay for Application Signing Security Certifcates.
Now that the game can be easily patched on tester's devices, its time to rapidly develop features and get them tested! But before this can happen its time to revisit the drawing board and review all the features we would like to add to the game and make sure we focus our efforts on the features that are needed for a playable and fun game. It doesn't hurt to think of features we would love to add if we had time, a wish list you could say. But I will be focusing on the core features first.
And now that all this Launcher stuff is complete I can resume streaming development of the game. Expect dev streams every day from (9am EST to 5pm EST), starting next week, as we begin working on the core features of the game.
And feel free to comment below with your ideas of features you would like to see added to RpgLegend!