Auto patching module?
Displaying 1-14 of 14 total.
1
Please enter a numerical value for the importance of this sticky.
Enter 0 to unsticky.
Feyr

If I wrote an autopatch module, would anyone bother to use it?

I'm thinking something like this:
1. Developer writes a cool game, but knows he might have to modify some of the scripts or other resources in the future, so he sticks my autopatch module in his code.
2. Each time the game is run, it generates an MD5 digest of the files the developer wants to allow automatic updating with, and writes the filenames and digests to an update file.
3. When the game is released, the developer switches the autopatcher from 'update file generation' to 'update file checking' mode and puts the message digest file online somewhere.
4. When the game is run, it (optionally - I'd be very annoyed if my game checked for updates every time I played -_-) checks the known location of the update file using the netcode and gets the list of filenames and digests.
5. The module compares the digests for the online files and the current files. If they are different, it downloads the online files into a temporary folder.
6. When the downloads are complete, the message digests are checked again. If any of the files were incompletely downloaded, or not the version the game expected to download, then the whole update is abandoned.
7. Otherwise, a backup is made of the affected files and the new files are copied over the old.

So, basically what the patchers for recent games do. I could write this (at least, once I go look up the MD5 digest algorithm) because I think it's nifty, but if there's no real demand for it, or someone else is already doing it, then I'll concentrate on something more useful.

Security considerations are also a problem. I could code a prohibition against downloading new copies of the Verge3 executable to keep people from spreading virii like that, but it wouldn't take much to work around it, since they'll have the source code. Perhaps rather than a central update file, have a single config file on the user's computer like:
art.pak http://www.awesomegame.com/update/art.md5
code.pak http://www.awesomegame.com/update/code.md5
// ...etc

and allow the user to delete any that aren't acceptable to him from the config file? I'm thinking that all of this could be handled in the code with a single function call at startup and a configuration file for the development side of things...I could write a standard interface for the updating stuff (and the user interface), and all the developer would have to do is write a configuration file showing which files need to have digests generated and find some webspace to put the digests and stuff on.

I'd better get back to work on my term project, but thoughts, concerns and suggestions are welcome.

Posted on 2004-10-03 18:01:58 (last edited on 2004-10-03 18:08:06)

gannon

iffy.
If I am not connected and at full screen verge waits forever for me to connect. I can't even alt-x out.
I prefer offline patches because I sometimes play on a purely offline computer.
What happens if you try to connect to a server in verge that doesn't exist?

Posted on 2004-10-03 19:52:28

resident

Rather than distribute the full source, maybe you could dstribute it, or at least the sensitive components as a non-overrideable VPK?

Secondly, rather than providing the full system, perhaps just make it a series of functions that the coder can call? So they can make it a menu option, or make the auto-updating off by default.

Finally, it really ought to download the digests to the folder, then apply it from there - then you could make it check to see if there's a digest in the folder first, and apply it - that way, those who are offline can autoupdate by getting a hold of the digest.

Posted on 2004-10-03 22:21:58

Feyr


What happens if you try to connect to a server in verge that doesn't exist?

If the server doesn't exist or isn't reachable, Connect() and GetUrlImage() return 0, and GetUrlText() returns 'couldn't open url'. After looking back over the netcode functions I see that the file-getting function is only available by using a socket, which would mean setting up a Verge-based (or at least, Verge-compatible) file server to download the files and stuff. So unless something like GetUrlFile() is added it wouldn't be feasible without also writing some VC code to generate a diff file between the previous version and the current version, and merge the diffs into existing files in the proper order, without repeats. Which would mean keeping track of all of the diffs for every revision of the game.

So, even aside from the problems with trying to connect while offline, it's not worth the trouble it would take to maintain. Oh well, I'll go back to working on my Perl script to generate DMA-based pseudo classes with inheritance. ;P

Posted on 2004-10-03 23:07:09

gannon

that would be cool :)
all I would want is structs within structs and that not hard with the lists but strings are a stumbling block :P

Posted on 2004-10-04 00:09:35

Zip

Personally, I'd far prefer you made a game, that might in future need patching. Seeing as verge sports a grand total of one finished rpg, and that doesn't support netcode, I see more of a demand for kewl stuff like the linked list. Hell, grue can't even keep a version number right, so use for this seems limited.
Mak gamz not utils!

SOmeONeeLsE

Posted on 2004-10-04 01:43:25

gannon

I would make a game in verge if I would have fun doing it, but with the limitations verge programming doesn't seem fun.
Not that I don't think verge has potential and I do know of at least one full rpg that is being made now (I am helping on it) .So everyone doesn't have to make games if they don't want too.

Posted on 2004-10-04 02:09:41 (last edited on 2004-10-04 02:23:24)

Feyr

I wrote a couple functions for converting between VC strings and DMA based null-terminated strings when I was playing around with V2. I expect I'll be needing it again as soon as I get the code for my windowing system started, which will be right after I finish the code generator to do all the tedious work of laying out DMA-based structures and creating the accessor methods for them.

Zip: Eh, games are overrated. Utilities are much more fun to write. Just ask vecna why he's working on a game engine instead of a game. *snicker*

Seriously, though, you're more or less right. I can't resist a nifty piece of code when I see it, but I'd be more productive if I concentrated on writing just the utilities I need rather than the ones that would be fun. And since I'm supposed to be writing a game this time around (unlike the last time I was active in the Verge community, when I was more interested in helping other people with programming problems) I guess I should try to stick to the straight and narrow. *sigh*

Posted on 2004-10-04 02:31:00 (last edited on 2004-10-04 02:32:59)

gannon

in verge 3 strings have unlimited size so you can't assume 255 size max unlike verge 2

Posted on 2004-10-04 04:47:20

mcgrue

Quote:Originally posted by Zip

Personally, I'd far prefer you made a game, that might in future need patching. Seeing as verge sports a grand total of one finished rpg, and that doesn't support netcode, I see more of a demand for kewl stuff like the linked list. Hell, grue can't even keep a version number right, so use for this seems limited.
Mak gamz not utils!

SOmeONeeLsE


1) I would much prefer he keep on write these little libraries of awesomeness. I see much use for the linked list, for one... and it's something that I've been trying to con people into writing for a while. ;)

2) You can go to hell and die about the version number fiasco! :D Hand-merging source is and always will be the stupidest way to combine efforts. STUPID STUPID.

...

(bedtime)

Posted on 2004-10-04 08:01:52

Toen

I've been working on something similar to this that will bomb out if you can't connect or if you get an unexpected response from the server (ie, it isn't a patch server). I haven't been working on it a whole lot though. I am planning on using it for online-only stuff.

Posted on 2004-10-04 08:23:08

Omni

Zip, lay off the util-programmers! :-(

Posted on 2004-10-04 18:29:54

Tatzen

Quote:Originally posted by Zip

Personally, I'd far prefer you made a game, that might in future need patching. Seeing as verge sports a grand total of one finished rpg, and that doesn't support netcode, I see more of a demand for kewl stuff like the linked list. Hell, grue can't even keep a version number right, so use for this seems limited.
Mak gamz not utils!

SOmeONeeLsE



there are people who do not want to make games. they are allowed to make fun things that might reduce the time it takes someone else to make a game. so i'd prefer feyr does what he wants to, and does it well like he tends to.

Posted on 2004-10-04 19:19:51 (last edited on 2004-10-04 19:20:17)

Zip

Impressive, quoted in full twice and still people don't bother reading it. 'I see more of a demand for kewl stuff like the linked list' - utils that help make gamz are great, but current need for a flash patch system is zero. I do wish some of the more able programmers would stop messing around and like, release summat fun though. Correct me as I wrong here, but the only independant 'utility' I've seen in a demo is rage's A*.
Also, for los record, I have so far released 0 games, and seem to spend most of my time programming systems for other people's projects.

Zip

Posted on 2004-10-05 01:31:29


Displaying 1-14 of 14 total.
1
 
Newest messages

Ben McGraw's lovingly crafted this website from scratch for years.
It's a lot prettier this go around because of Jon Wofford.
Verge-rpg.com is a member of the lunarnet irc network, and would like to take this opportunity to remind you that regardless how babies taste, it is wrong to eat them.