Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

DarkBASIC Professional Discussion / How would I create a patch server for my program?

Author
Message
The Lone Programmer
23
Years of Service
User Offline
Joined: 29th Jan 2003
Location: California, USA
Posted: 21st Nov 2003 01:13
Ok say I make an online rpg..

Now in pretty much all MMORPG's they update the game like every week. Well every week you are not required to re-install anything. All you are required to do is download the patches, and even that you dont need to do it manualy.

How do I make like a patch deal. I am guessing I would have a exe take a file from the ftp and read it. Well how do I get an exe to read something if it is not an array or write file. Would I use the include?

Like say I have a special folder in my ftp. It has a full thing of .dba code. The whole game runs off that code.. The exe only has one ability. The ability to read this file. Well If it can only read this file then that means I can edit it.

What commands would give me the ability to read this .dba file.

Think patch server when you answer this. Like if you've played EverQuest, or Dark Age Of Camelot.

Thanks
Nicolas

Ralen
23
Years of Service
User Offline
Joined: 22nd Jul 2003
Location:
Posted: 21st Nov 2003 02:25
I really don't understand what you are trying to ask.

This is how DAoCs patcher works.

It checks the CHECKSUM of a file. If the checksum doesn't match between the files it will replace it with the correct version.

It doesn't open the file and replace and make the changes. It simply copies the entire new file over the old file.

This is why modulerization of your program is important. You need to keep your modules small so you have less download time.

You absolutly do not want to do the bit replacement method over the internet. That would be slower and more prone to error than just replacing the entire file.
Mattman
23
Years of Service
User Offline
Joined: 5th Jun 2003
Location: East Lansing
Posted: 21st Nov 2003 02:58
Most likely what you need to do, is put most of your code in functions, then put those functions in a .dba include. Then send this out weekly with updates and there ya go the downside, easy to hack teh codez

Beauty, eh? RoooooOoooooKoooooKoooooRoooooOoooooKoooooKooooo!
The Lone Programmer
23
Years of Service
User Offline
Joined: 29th Jan 2003
Location: California, USA
Posted: 21st Nov 2003 04:02
How can I make an updating system that updates whenever I want through a server, but uses no functions and can not be hacked?

Ralen
23
Years of Service
User Offline
Joined: 22nd Jul 2003
Location:
Posted: 21st Nov 2003 04:15
What you do is compile the code. Make launcher software. The launcher software compares the current versions checksum/md5 to the one currently on the users computer. If its differant then you replace the entire compiled exe with the correct version.

This adds security to your app as the the launcher software won't launch the game unless the versions match.
Genesis Rage
22
Years of Service
User Offline
Joined: 5th Oct 2003
Location:
Posted: 21st Nov 2003 07:15
like with EQ there are actually TWO patching programs!

1) runs a program to make sure the actual patcher is updated (graphics, options, etc...) - this one is a basic box with a status bar, and it just updates the patcher if needed

2) this patches the actual game (exe, zones, etc...) - having external files (custom file stucture prevents some hacking) would prolly be the best way for this, so if there is only small changes, you dont have to update a 52MB exe file because one door doesnt open

3) then the second patcher opens the actual exe file with some kind of command line to prevent people from loading this file directly (e.g. "game.exe /something wierd here")... an idea for this is whenever there is a patch have it change the access command line, but then you would have to update the patch program (2) with one like (1)

- if you go this approach, might want to have the (1) patcher hidden, so people wouldnt even know it is there, this also would prevent some hacking

Login to post a reply

Server time is: 2026-07-26 17:37:09
Your offset time is: 2026-07-26 17:37:09