Online Updates

Started by Blizzard, August 30, 2011, 04:34:29 am

Previous topic - Next topic

Blizzard

Many programs these days support checks for updates while being online. I think this would be a good feature for a later version of ARC. Since we're going to have a special repository for ARC, online updates shouldn't be much of a problem. I have already bought www.arc-engine.com a while ago, I could easily open up another hosting account at CP's host and we can put all ARC related stuff and downloads there. We should just decide whether 1 GB of disk space is enough for ARC or if we should go with the 10 GB package just in case.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

G_G

If needed DM can supply hosting as well as arc-engine. Our package is good until December 2012 and I'm sure by then we'll get another year.

Blizzard

Sure, it's always good as an alternative mirror.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

ForeverZer0

I think 1 GB should be plenty, even with RTP graphics and audio.  If you want to split costs or take turns paying the bill, just let me know.
I am done scripting for RMXP. I will likely not offer support for even my own scripts anymore, but feel free to ask on the forum, there are plenty of other talented scripters that can help you.

Blizzard

The bill is paid once per year and it's $72 (that's $6 per month). It's not a big deal, but I don't mind taking yearly turns. xD
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Ryex

I had actually considered this too. I might be a great feature considering that we plan on actively developing the program.

If we want to do this then a few consideration have to be made in regards to the program's structure.

the existing structure of the program makes this much easier to implement. compiling only the plug-in core management system and the updater into the exe as well as some basic start up code would allow us to keep all the components of the system outside of the exe and be updated individually.

this way only changes made to the plugin system and the update code would require a re download of the exe. a small update program could be made that when activated would fetch the latest version of the exe and then restart the main program which would then update the rest of the system.
I no longer keep up with posts in the forum very well. If you have a question or comment, about my work, or in general I welcome PM's. if you make a post in one of my threads and I don't reply with in a day or two feel free to PM me and point it out to me.<br /><br />DropBox, the best free file syncing service there is.<br />

Blizzard

Exactly my thoughts. You can leave that out for the very first version, but I think we should definitely include it in 1.1 or something like that.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Blizzard

November 21, 2011, 07:58:06 am #7 Last Edit: November 21, 2011, 08:00:14 am by Blizzard
I've been thinking about this and we can actually make this work very easily. There's 3 things that need to be done.

1. Connect internally to http://www.arc-engine.com/version.php?edition=EDITION (where EDITION can be "Legacy" or left out for the normal version) which will basically return the version string of the newest ARC version of the given edition.
2. After getting the version string of the current version, it will be compared with the current ARC version and if the new version is higher than the current one, a dialog will pop up informing the user that the new version X.Y.Z is available. There will be 2 buttons: "Update now" and "Close".
2. If the user clicks on the "Update now" button, just run this in Python:
try:
   os.system("start http://www.arc-engine.com/update.php")
except:
   pass

This will open the default browser and take the user to the ARC download page where he can download the newest version.

Additionally it would be good if there was an option in ARC "Check for updates on every start up" and a menu option "Check for new version" in the "Help" sub-menu so people can turn it off if it's annoying them.

Sure, this may not be the nicest solution, but why complicate things? Tons of programs do it this way, including highly regarded and commercially used programs such as Tortoise SVN.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Ryex

November 21, 2011, 10:36:24 am #8 Last Edit: November 21, 2011, 10:41:11 am by Ryex
sounds simple enough to me. if we do it this way there needs to be two setup files for every version. one that includes the RTP (for a full install) and one that doesn't (for the updates).
I no longer keep up with posts in the forum very well. If you have a question or comment, about my work, or in general I welcome PM's. if you make a post in one of my threads and I don't reply with in a day or two feel free to PM me and point it out to me.<br /><br />DropBox, the best free file syncing service there is.<br />

ForeverZer0

This is pretty much what I did with Gemini. I made a simple console app that was started by the main app, passing its file location and version as the argument. The console app simply reads a file online that contains the available version for download and compares the two versions. If higher, it downloads and replaces the main executable, then restarts the main app using the argument that was passed to it for the file location. Very simple and effective. We could include a secondary function to only download file that were actually updated, so it only has to do what is necessary.
I am done scripting for RMXP. I will likely not offer support for even my own scripts anymore, but feel free to ask on the forum, there are plenty of other talented scripters that can help you.

Blizzard

Again, my idea isn't an actual updater, it's just a way to notify the user that a new version is up. When they install the new version, it uninstalls the previous version first.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.