🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

MMORPGs & AI - spreading it on clients

Started by
25 comments, last by Ysaneya 23 years, 11 months ago
i''ve 2 other idea about that security thing here.

have 2 or more clients control the same npc''s - the server just have to compare the results and can easily kill of spikes - if there are coming spikes from one client - you can verify him for some time by a internal npc-client and if he keeps on do some weird calcs - you have your hacker. (thats some kind of security they do at setiathome i think)

the second thing would be more complicated (and just interesting in company with the first) - the code for the npc-calculation isn''t stored in the client - it rather gets transfered in some bytecode form (java ?) to the client if needed - and what is needed depends on what part of the npc ai is executed by that client (there comes the idea of not taking one whole npc to one client but rather some part of some npc''s)

there is one great advantage about the thing of doing the same code by more than one client : if one hangs you have another one doing exactly the same - you just have to get a new second (or third)
the main disadvantage is you just have half (or less) of the clients for doing the ai
the advantage about the bytecode is - a hacker can look at the way that bytecode is ewxecuted in offline - but to get the code actually doing the ai he has to intercept that information at online - and he will get quite a varity of code (if the function-design is done right) - that would be a hell of hacking - for he never knows, what he is looking at (and first he has to get the interpreter cracked ...)

just my 2 cents late at night
Advertisement
Thanks Anon. Poster. I like the first idea.. making the calculations twice. I don''t see how could someone cheat that way; the server could affect a NPC to 2 random clients, and if the results are different, make the same calculation by a server (to know who was right and who was wrong). And then, maybe, flag the wrong client as a hacker. Effective way to prevent AND detect And yes, it decreases by half the potential, but it would still be better than 10 AI servers dedicated to AI, i believe.
I''ll try to make a few tests using this technic.

I don''t really like the bytecode idea; because as you said, it could be hacked. Even if it''s difficult, it''s only a matter of time..

Y.
Verifying results by having multiple clients run the calculations is how distributed projects like SETI@home work. It''s only inefficient in a linear fashion, and pricewise, it''s still $0.
Some ideas:

- Seems like you''d want to pass the NPC''s around to different clients. You''d store state data on the server, but let the client do the processing. When someone logs off, you update the NPC state on the server, then hand the NPC off to the next available client. Not only would this ensure continuity, but if you hacked an NPC, you almost certainly wouldn''t have access to it again, unless you left your game connection up 24/7. Which could of course be managed sever-end as well. Kick everyone off for five minutes, from 3 am - 3:05, or whatever.

- Let the server control important NPC''s, NPC''s with power or secrets, the ones central to quests, etc. Let the clients manage the NPC''s who make up the bulk of the population - just normal folks going about their lives. This reduces the advantages of hacking.

- If someone does hack an NPC (could you somehow flag if code had been resaved, or if the file length changes?), _keep_ the code. Look at it. Learn from it. Then you have open source AI evolution, with free coders. :-)

- gollumgollum
> Not only would this ensure continuity, but if you hacked an NPC, you almost certainly wouldn''t have access to it again, unless you left your game connection up 24/7.

Since the server gots the last word, it could maybe change what NPCs your computer is handling every 10 minutes. That way, even if you stay connected 24/7, and hack a NPC, it will be removed from your computer in max. 10 minutes. No need to boot everybody from the game for 5 mins every day (it''s a lot for a MMORPG)

> Let the server control important NPC''s, NPC''s with power or secrets, the ones central to quests, etc.

Nice idea.. let the servers handle the 5% most important NPCs.. and the other 95% by the clients. Wouldn''t be very usefull to hack a NPC dog, or a peasant

> _keep_ the code. Look at it. Learn from it.

I''d rather ban the hacker And if the NPC code is managed on the client, the source code would need to be sent to the server to look at it

Y.
quote: Original post by Ysaneya


Nice idea.. let the servers handle the 5% most important NPCs.. and the other 95% by the clients. Wouldn''t be very usefull to hack a NPC dog, or a peasant

> _keep_ the code. Look at it. Learn from it.

I''d rather ban the hacker And if the NPC code is managed on the client, the source code would need to be sent to the server to look at it



If it''s not an important character, what possible harm could hacking a character for 10 minutes do? It doesn''t have any special items, or any wonderful skills... it can only get more interesting, and more closely bonded to a certain player.


Give me one more medicated peaceful moment.
~ (V)^|) |<é!t|-| ~
ERROR: Your beta-version of Life1.0 has expired. Please upgrade to the full version. All important social functions will be disabled from now on.
It's only funny 'till someone gets hurt.And then it's just hilarious.Unless it's you.
quote: Original post by MadKeithV

No replies to my 3AM idea? *sniff* I''m disappointed



Well, I like you idea. I am surprised there is no feedback on that one. So here is my two pennies to the discussion :

I totally agree with your idea. I came up with the same because in France we have a thing called "Grandeur Nature" RPG (I think in english it''s Live-Action RPG). And the really interesting thing about it is that some people play the hero group (just like in a Pen&Pencil game), and some other, a lot in fact, will play NPC of various importance to the plot.
Usually, the organisators will end up playing important roles (essentially NPC who give quests, make the plot progress, etc), and the less the person is involved in the organisation of the game, the less important the role.

No you will ask, why the heck would someone play an ork ? They know they are going to die, hacked by players.
I will answer that there are people out there who love games like Populous, Dungeon Master, etc. THEY would love to play the NPC.
I read something about how in UO you have to start with nothing, you have to try sell stuff, then you can finally start your life of "hero".
Why on earth would everybody be a hero ?
Why not try something where people can start as ONE interesting character (a merchant who owns a shop, filled with goods), OR several less important NPC (a band of wandering orks, a little village of peasants).

I see two big problems with this :
-interface; would the interface for dealing with all your NPCs be the same than the one to deal with your shopkeeper. An interface is usually very rigid, so that it can be designed better for specific purposes. If a game allows its players to be a group of NPCs (actually, NPC become erroneous word here...) it would have to be a bit like in a God game, or an RTS. while for the shopkeeper, it would have to be practical to manage your goods, for an important NPC, you would have some "plot-manager" something that would allow you to create a plot and "register" it with the servers so it becomes part of the game...

-bandwidth; how the heck do you make "believable" characters, a bunch of them, then send ove all the data about them. What data do you send, how do you do that.
I would be very interested in knowing how games like Starcraft deal with the units'' data when playing online.


With this idea of delegating NPCs to players you get incredible stuff happening, plus the hacking becomes effectively useless ... of course some stupid people would abuse the system, but jsut like everything in Nature, a Balance would naturally appear, and if not, you would in the end have a Divine Intervention (a sysadmin intervention, if you prefer).
Imagine things like :
"-Foutredieu, the orks are becoming very active those days, they have attacked all the caravan going to the main town. How long before they become brave enough to attack the town?
-Indeed, we should send a messenger to bring back some troops.
-And put up a sign for adventurers : £10 a head.
"

Now, the orks becoming very active. how the heck do you simulate this with current systems. With the ideas above, you would simply count on your players to become power/blood hungry and use the NPC given to them. If the player is clever enough to actually take a town, then let it be ! you will develop an incredible and dramatic plot without writing a line of code.
And tere goes the problems of Player killers ... give THEM the control of monsters.

Anyway, it''s not 3 am here, but I wonder if you think there is anything valuable in this post.
Any comments ?

AHW =)

This topic is closed to new replies.

Advertisement