Hi everyone. So I was thinking about how we can improve our workflow and plan for the future, such as more status updates and hotfixes, and I think that an updater / launcher would be a good idea.
This would be something akin to the Minecraft and Kerbal Space Program launcher applications, apart from the fact the launcher should be able to update it's self too. It would be tied into a new distribution system that will hopefully not cost Shane the Earth to keep going.
Does anyone have any thoughts on me starting something like this? It should be fairly simple at first but will give us a nice platform to build upon. Pasting around links to builds might get a bit tedious. We could even allow a switch between an unstable and stable version, this could all be hooked into something like Jenkins eventually (if we started using it).
Proposition: Construction of a launcher application that can update it's self and it's child application (Trillek) from a manifest file hosted within an S3 bucket. This would include a server side application (probably hosted at builds.trillek.org) that allows the uploading and deploying of builds.
Web developer - hosting Trillek's presence on the Internet and constructing the game's UI.
Well, from the gamer standpoint, desura is a giant pain, its not as good as steam, and if you download a program like desura to play a single game, you are less likely to use that game, its the same trouble origin is having, except origin is backed by EA which is pushing some success on it.
I can't imagine anyone would be against it if you managed to make it work well. As far as I know it would require some serious hosting when big patches come around, if you haven't thought of that already.
adam wrote:An auto updater would be nice. Maybe one that can download the source, compile it, and then cleanup. This way the scm such as github could manage the hosting at no cost to us.
Obviously, there would be problems with this (not all *nix's would be the same compile wise), and it would probably take a while to write (I don't actually know that, just guessing), but if that was an option later on, that would be great.
The historic purpose of a launcher is that it's a lightweight program that doesn't depend on the game engine (which may require a nontrivial amount of initialisation before it's good to go). Some game engines are structured as collections of shared libraries which can't initialise themselves.
My opinion is that an auto updater is probably a bad idea at this stage. If nothing else, it's a potential vector for compromising users' machines, and protecting against this requires a bunch of infrastructure (e.g. crypto signing) that we don't necessarily want to bother with right now. However, detecting updates and encouraging the user to download the latest and greatest seems fine to me.
Having said all that, what this is really all about is packaging. We do not have infrastructure or a process for producing official packages for each of our target platforms. That's what we need first.
If the route is taken to download the source directly, then many windows machines won't be able to use the launcher and must instead rely on others compiling it for them. Most windows boxes aren't able to compile from command line without some serious configuration and installations, and I only know two people my age who know what unix is. Relying on unix or compilers being installed would be alright for Mac/Linux, but it will likely need to be prebuilt for windows if we want a market of more than 10 people who wanted both unix and gaming, so use cygwin/mingw.
To avoid security concerns and to account for windows, I would recommend having a central build system with decentralised checksums/verification so that people who don't already have compilers installed can join in, without the central server being able to send compromised binary unchecked. Binaries should also be less data transferred than full source, and so save money should they be centrally hosted and be quicker regardless of host.
A launcher itself is a nice idea, and works well for small projects like this (Catacomb Snatch had one I helped work on). As long as it isn't prone to feature creep or unresponsiveness (LoL launcher, grrrr) it should be ok.