Page 1 of 2

Game Distribution & Updating

Posted: Sun Feb 08, 2009 7:20 pm
by bartbes
I have this great vision:
You see a great game in development, an alpha release, you download it. A few days later you start it again and you discover the creator has finished the game in the mean time, because you see you've just started the final version! How did this all happen? An updater.

If you want me to create this updater vote yes (well, it would be weird if you had to vote no). If you don't want it... well I won't help you :P

EDIT: I should add, the goal is NO code changes
EDIT2: For people too lazy to read my second post: The updater is part of the game, not a seperate program (and thus will be entirely implemented in LÖVE).
EDIT3: I'll explain some more:

The goal is the updater is going to be a main.lua file and the developer has to add a conf file. The conf file states where to find updates (and in the future features may be added). The updater + config is distributed as a LÖVE file. On every run (this might be changed by a conf option, possibly) it checks if there is an update, if there is it downloads it and restarts. If there's no update (or if it just updated, which means there are no updates any more) it continues parsing the game.conf and running the game.

Re: Game Distribution & Updating

Posted: Sun Feb 08, 2009 9:12 pm
by Skofo
A Steam-like platform for LOVE games? Interesting.

Make it download updates directly from github and I'm sold.

Re: Game Distribution & Updating

Posted: Sun Feb 08, 2009 10:26 pm
by farvardin
should it work on every plateform supported by Löve?

Re: Game Distribution & Updating

Posted: Sun Feb 08, 2009 11:18 pm
by Skofo
farvardin wrote:should it work on every plateform supported by Löve?
Of course it should.

I'd use wxWidgets or Qt to make it.

Re: Game Distribution & Updating

Posted: Mon Feb 09, 2009 2:43 am
by qubodup
Skofo wrote:I'd use wxWidgets or Qt to make it.
aah aah aah no no no more crappy looking package managers waaah! :cry:

I think the aim is that it happens hidden, automatic, without any action by the use (except starting the game again). - At least that's how I understand the original post :)

And it's impossible! Unless the initial release contains a finished client and following development happens server-side..

OR IS IT?! :ultrashocked::

Re: Game Distribution & Updating

Posted: Mon Feb 09, 2009 3:08 am
by Skofo
Mmm, it's not impossible, but it'd require a background process to be running all the time and checking if there are any LOVE game updates and downloading the new versions and updating the files when there are. I wouldn't be comfortable at all using something like that, though.

Re: Game Distribution & Updating

Posted: Mon Feb 09, 2009 6:16 am
by Kaze
What if the source is downloaded with LuaSocket then loadstring'd?

Re: Game Distribution & Updating

Posted: Mon Feb 09, 2009 6:36 am
by qubodup
bartbes wrote:EDIT: I should add, the goal is NO code changes
Do I understand correctly that any new version would not include new code?

Re: Game Distribution & Updating

Posted: Mon Feb 09, 2009 6:40 am
by bartbes
I'll clarify (I've enabled re-votes :P ):
The original distribution is the updater + a conf for it. The conf says where it can find it on the web, the updater downloads it (giving a nice animation) and runs it. After every following start of the game it will see if there's an update for the game, if there is, the downloading animation, and when done a restart. It then checks again (because the code is reset), finds no updates and continues by loading the game.

@Skofo: No GUI, it's all in LÖVE and thus requires no background process as the updater is part of the game distribution itself.
@Kaza: That is about the way to go, it is downloaded and saved in the save dir, next it is run from there (yes that IS possible).
@qubodup: So it IS possible.

Anyone still not understanding the goal please post.
And anyone now convinced re-vote!

@qubodup2 (while posting): I mean that if you add the updater the game itself doesn't have to be changed

Re: Game Distribution & Updating

Posted: Mon Feb 09, 2009 3:27 pm
by JoeOsborn
There's a podcast-like RSS protocol called AppCasting that's used widely to update Mac OS apps thanks to the library Sparkle -- a Sparkle-like functionality built into Löve (which used info in the game.conf) would be top-notch.