SphereCommunity
(Solved!) How do you guys handle mul updating on a live server? - Printable Version

+- SphereCommunity (https://forum.spherecommunity.net)
+-- Forum: Sphere 0.56d (/Forum-Sphere-0-56d)
+--- Forum: General Help (/Forum-General-Help)
+--- Thread: (Solved!) How do you guys handle mul updating on a live server? (/Thread-Solved-How-do-you-guys-handle-mul-updating-on-a-live-server)

Pages: 1 2


(Solved!) How do you guys handle mul updating on a live server? - Rayvolution - 08-20-2012 01:07 AM

Currently, my server is under heavily development. So it's not a big deal that my files are being updated daily, I just distro them to my staff members as needed and we press on.

But when my server goes live, I plan to do monthly updates, once a month, everyone will download the latest .mul updates and keep playing.

So, how do you guys handle updates on a live server? Do you just ask everyone to update or is there someway I can detect that their mul files are out of date and popup a gump asking them to go visit the site and update?

Here's what I *want* to happen, and I'm not sure if I can:
1. They login,
2. An "if" statement checks to see if they're running the latest muls.
3. If they aren't, a gump pops up that's unmovable, in the middle of the screen so they can't ignore it asking them to update.
4. They go to update, and all is well.

I've been trying to come up with methods to check the client's muls vs the servers and I can't think of any methods.

One idea I had was a client swap, and use 2 or 3 almost-identical versions of the client and have the server check what client version they are running, if it's the wrong one it tells them to update. Then, the update has a copy of the "alternate" client version for that month's update. The following month, it swaps back to the other client and a new check is preformed. On the players end, this will be completely transparent.

Another method would be to Hex edit the client.exe to actually change the version number and have sphere bounce off that. But, I'm unsure how that will effect sphere for the clients, since sphere sends packets to the client based on what actual-version of the client the player is using. If I makeup my own "version system" within the client it might confuse sphere. But, it's something to test.


RE: How do you guys handle mul updating on a live server? - Mordaunt - 08-20-2012 03:14 AM

Never had to... but..

Personally I'd run with the forced gump informing the players that there is a new set of files they needed to install...

I don't think there is a way to check what files they are actually running, I vaguely recall some years back someone working on a patch program for emu servers but I don't know if anything came of it.

If you intend on being world building still when the server opens (which isn't a bad thing, it keeps content fresh) I'd make sure that rather than making a change to an existing area, which could cause problems with people not applying your files, I'd make sure that each update released opened access to new, completed areas that would be locked off without the files. Essentially making each update an expansion rather than a modification.

Just my 2 cents...
I'm sure someone else will have more input


RE: How do you guys handle mul updating on a live server? - Rayvolution - 08-20-2012 03:52 AM

We're planning that most changes to existing areas will usually just be tweaks/fixes. But we're going to do monthly events where certain things happen in our world, and based on how the players react, bases what happens the month after.

For example, lets say there's a small village outside in the forest. Right now, it's a small, populated village. It's not a primary city or anything direly important. But it's there, none the less. With maybe 5-6 villagers.

For the monthly event, that village could get overran with orcs. A script will be written that keeps track of how many orcs are killed in that area in that month, or maybe the "orc leader" is extremely strong, and the players just need to figure out how to get to him and kill him. If the players meet the goal, we "free" the town the following month returning it to normal, or close-to what it was. If they do poorly, the village may be completely overran with orcs and become a new "bad guy location" forever. Or, until we do another event down the road to "Take back the village".

This idea could be expanded into many other aspects, like a "lets build a new town" event where players bring resources like Iron and Wood, and depending on how much they bring will reflect how big the new village is. The first month (start of the event) will be decorated with all sorts of building materials and basic layouts for a few base buildings. The following month the staff will complete the city.. or, if the players did exceptionally poorly, the project may become "abandoned", with most of the building materials just laying scattered about, but for some random reason ratmen moved into the area and live in the cave nearby, randomly wandering around in the build sight that's now torn to shreds.

But in order for this all to work out and the players have continuity I have to figure out how to "force" them to go update monthly or the lazier players will just never update, and end up completely out of sync with the world after 4-5 months of playing.

I think the client version detection may work, I just need to find 2-3 almost identical versions of the same client and rotate through them. Sphere will just detect what client version they are running and that will be the "update trigger".


RE: How do you guys handle mul updating on a live server? - Mordaunt - 08-20-2012 04:11 AM

(08-20-2012 03:52 AM)Rayvolution Wrote:  This idea could be expanded into many other aspects, like a "lets build a new town" event where players bring resources like Iron and Wood, and depending on how much they bring will reflect how big the new village is. The first month (start of the event) will be decorated with all sorts of building materials and basic layouts for a few base buildings. The following month the staff will complete the city.. or, if the players did exceptionally poorly, the project may become "abandoned", with most of the building materials just laying scattered about, but for some random reason ratmen moved into the area and live in the cave nearby, randomly wandering around in the build sight that's now torn to shreds.

I saw a server that did this about a month or 2 back forgot which it was though... they were linked in a post on the forums here somewhere if i recall correctly


RE: How do you guys handle mul updating on a live server? - Extreme - 08-20-2012 04:57 AM

I have an idea:
go into gumpart.mul and create a random image in any empty slot.
when the player login, call that image, if he have the image opened he will close using a button
when pressing the button, he have old files, than automatically will open the file link to download
if the player is already have the current patch, it will appear transparent, because you will change every patch the picture to another slots.
So, set picture in a slot. patch and change the picture slot. send the old slot number to player.
make a patcher that download everything before gumpart.mul and gumpart.idx
then you will know that he downloaded the lastest file before gumpart.mul =D


RE: How do you guys handle mul updating on a live server? - Gil Amarth - 08-20-2012 06:15 AM

I use this program.

http://scriptsharing.dv-team.de/dle/comment.php?dlid=618

It´s a launcher who the players must always launch to enter the game. It looks for actualizations in .mul files, and send a differential patch only with the changes you made, so they are small patchs (less 1 megabyte). If there is no actualization avaliable, automatically launch the game normally.

With this I can do changes in a live shard and send my changes to all players, mostly to make new cities, bridges, dungeons, and so on. Smile


RE: How do you guys handle mul updating on a live server? - Rayvolution - 08-20-2012 06:48 AM

Shock

That sounds amazing, I will try to see if I can adapt it to my server plans. I don't see why I couldn't. Wink


RE: How do you guys handle mul updating on a live server? - Mordaunt - 08-20-2012 08:00 AM

Knew someone had worked on a patch utility Wink


RE: How do you guys handle mul updating on a live server? - Rayvolution - 08-20-2012 03:19 PM

The patch utility works like a champ. I got it all setup pretty easily.

I love how it can take the patch files from anywhere easily (Including off a web folder), I have it setup to pull them off my web server. So down the road when my server is populated, "Patch day" won't cause any lag on my game server what so ever because all the bandwidth being consumed will be pulled from my web server that's completely independent. Smile

Took me a while to get all the german stuff out and make it look like my own official patcher, but it's working wonders!

Thanks!


RE: (Solved!) How do you guys handle mul updating on a live server? - Extreme - 08-20-2012 03:54 PM

I'm waiting the apha 1!