A mmo related programming issue , unlock game features

Started by
4 comments, last by Lee_Hillvith 10 years, 5 months ago

Hi, guys

Currently I am having a tactical issue on some server programming stuff, really would like some suggestions

Basically I want to implement a module to unlock specific game features for players, say unlock blacksmith shop for all players who reach Lv 10. I am doing this by reading server config files.

Considering the following situation: A player reached Lv 8 and went offline and some game designers decide to change the config file during a server upgrade (Note: Now blacksmith shop unlock at Lv.5). So when this player come online again, he will discover that he is never going to unlock the blacksmith shop.

Is there any smart solution to this issue?

Of course I can keep the old config info with player data and compare it with the new data when player goes online, but that's definitely a awful idea since making thousand of players keep a portion of same data would be stupid.

Cheers

Ben

Advertisement

If the requirements change you could simply recheck it for all players, whether they still meet the requirements.

o3o

You're approaching this the wrong way. Enforce using the blacksmith at the client level, and check the transactions on the server.

The user's client should say (if he's under leveled) "You aren't high enough level to use the blacksmith". But if he sends the transaction anyway via cheat, the server should say "He shouldn't be able to try using me" and reject it. Log that event so you can debug/ban hackers of course.

Pretty much all your systems will need to work like this is you're making an MMO.

Check if possible on client > send transaction > Check if possible on server >

I agree with conq.


So when this player come online again, he will discover that he is never going to unlock the blacksmith shop.

Notify the user when they log back in "Hey, the blacksmith is now available to you". However you implement that is up to you. With doing that, they will at least now know it has changed and available.

jmillerdev.com

Follow me @jmillerdev

To me it seems much simpler to only compare the character level on the server for a single npc only at the moment a user clicks it, than exchanging large config files for the vast number of all the different npc on the whole world every time something changes and do double/triple checking.

Thank you guys, you guys are inspiring! I have discussed with our client guy, turns out they have already wrote a re-check method for this

player online -> Server send unlock info -> Client Compare it with new client config -> Client Send transaction -> Server check again ->unlock blacksmith

This topic is closed to new replies.

Advertisement