About Store Forum Documentation Contact
Donations:
225$/mo



Post Reply 
Client / Server mob system
Author Message
aceio76 Offline
Silver Supporter

Post: #1
Client / Server mob system
Does EE have any semblance of an existing mob system that is tailored for a client / server set up yet? Has anyone gotten to this point yet?

www.thinkplaystudios.com
11-08-2011 04:49 PM
Visit this user's website Find all posts by this user Quote this message in a reply
kulesz Offline
Member

Post: #2
RE: Client / Server mob system
I'm also thinking about implementation of such system in near future.
It interests me a lot, how to implement correct moving on a ground and pathfinding without the world mesh (I don't store the world on server at all, only the EE::Heightmap and vectors of objects).
11-08-2011 06:21 PM
Find all posts by this user Quote this message in a reply
aceio76 Offline
Silver Supporter

Post: #3
RE: Client / Server mob system
Hi Esenthel,

Do you have plans on implementing a NPC/Mob system based on the server down the road? I can see it to be a system that should be basic to any network game engine/platform, so I thought I'd ask.

I've been looking into it, and there are a number of challenges. I want to take advantage of the existing pathfinding call (actionMoveTo(pos)) on the Chr object, but that seems to be very tied to the Game::world.update(pos), and if I have multiple game worlds to load and manage, it becomes impossible to do since I can only load one world at a time. I've thought of a number of workarounds, but nonetheless, they require large effort to do.

My point is if it's in the future that you would do the core code for this, then I can focus on other things. Frankly, I prefer to focus on specific game mechanics and core gameplay than to build a system that is generic enough that almost any client/server dev here can benefit from.

Thanks,

www.thinkplaystudios.com
11-14-2011 05:48 AM
Visit this user's website Find all posts by this user Quote this message in a reply
kulesz Offline
Member

Post: #4
RE: Client / Server mob system
That true... I'd add one more thing - ability to control mobs without loading the world on the server (AFAIK Ineisis does it that way).
11-14-2011 07:04 AM
Find all posts by this user Quote this message in a reply
Esenthel Offline
Administrator

Post: #5
RE: Client / Server mob system
Server side pathfinding is on the roadmap
Some ai system/tutorial will probably come along too but all takes time smile
11-14-2011 11:11 AM
Find all posts by this user Quote this message in a reply
aceio76 Offline
Silver Supporter

Post: #6
RE: Client / Server mob system
(11-14-2011 11:11 AM)Esenthel Wrote:  Server side pathfinding is on the roadmap
Some ai system/tutorial will probably come along too but all takes time smile

Thank you very much for the reply and insight, Esenthel.

If the server-side pathfinding is using the current system, I can do that now, albeit it is more resource intensive on the server loading the world and jumping from one npc to the next. I can't, however, manage mobs running in a different world (I can only manage mobs one world at a time).

Overall, I don't like this design.

Just thought I'd share some high-level requirements I had:
-Manage NPCs residing in multiple world files (instances)
-Manage NPC perception (sensing of players in meters) on each world
-Send NPC actions (for starters, animation & movement) to players if within player's perception (in meters)
-Manage basic NPC movement on each world
---If pathfinding is enabled, allow for inclusion of dynamic objects to change pathing

Any more than that I think would be subject to the gameplay requirements of each dev. A full blown AI I think should be at the discretion of each dev. For me, as an example, what I've done before was create what I called "spawners", which basically is the AI system for a single NPC or group of NPCs. It was responsible for coordinating their actions (pack/group movement, coordinated attacks, call for help, etc) and also responsible for initial NPC placement within an area, and their respawning if any of the NPCs were defeated. I took this approach because it was more cost-effective than having an AI for each NPC.

Hopefully this helps us out a bit in the future with the NPC system.

www.thinkplaystudios.com
(This post was last modified: 11-14-2011 03:23 PM by aceio76.)
11-14-2011 03:21 PM
Visit this user's website Find all posts by this user Quote this message in a reply
rndbit Offline
Member

Post: #7
RE: Client / Server mob system
for the sake of discussion - dont you think that client-side pathfinding would be better? i see no difference in path calculated by server and by client, but there is huge difference in each client calculating path for itself, and server calculating paths for say 1k players at a time.
11-14-2011 04:50 PM
Find all posts by this user Quote this message in a reply
ronalmb Offline
Member

Post: #8
RE: Client / Server mob system
I would like to add on a bit as to why it is useful/important to be able to manage NPCs residing in multiple world files, as I think it is a necessary function for any dedicated MMO engine to provide.

Instanced worlds, whether immense like the fiery planes of Ragnaros (WoW) and the Twisting Nether (Minecraft), or small locations like instanced houses (EQ2, LOTRO, CoH) and shops (CoH, LOTRO) require the ability to manage mobs and their activity from the same central server.

This is important for a number of reasons. The two I consider most important are:
- If a client handles the spawning and actions of the mob, other clients cannot see or interact with the spawned mob. the team/party/cooperative mechanics are greatly diminished.
- If a game allows a player to establish owned housing/shops, they will not be able to employ shopkeeper npc mobs, guards, pets, and etc that require interaction with other clients and the server.

I know that I have been quiet in the boards the last few months -- but am still avidly using the EE Engine for development and still believe this is a phenomenal engine that deserves to be up there with the "big boys". Great job, and i Look forward to using EE for this and several more projects in the future!
11-14-2011 04:56 PM
Find all posts by this user Quote this message in a reply
aceio76 Offline
Silver Supporter

Post: #9
RE: Client / Server mob system
(11-14-2011 04:50 PM)rndbit Wrote:  for the sake of discussion - dont you think that client-side pathfinding would be better? i see no difference in path calculated by server and by client, but there is huge difference in each client calculating path for itself, and server calculating paths for say 1k players at a time.

This is for Non-player characters though, not players. If you want a point-n-click movement for players, then yes, that makes sense to let the client do the pathing calcs and send the movement data to others (which is how it is done now).

www.thinkplaystudios.com
11-14-2011 05:01 PM
Visit this user's website Find all posts by this user Quote this message in a reply
kulesz Offline
Member

Post: #10
RE: Client / Server mob system
(11-14-2011 04:50 PM)rndbit Wrote:  for the sake of discussion - dont you think that client-side pathfinding would be better? i see no difference in path calculated by server and by client

Generally - it would work only for player, not NPC.
Modern MMO's are just like very-fancy-graphics-terminal, the more is done on the server side - the better. It comes from the security reasons mostly.

On the topic: from an MMO engine I would expect only the simple, low level A.I. features to be built in. Handling complex NPC's behaviours (call for help, get cover, attack from behind etc.) depends a lot on the game type/style and a dozen of attributes. They are mostly high-level scripts, driven by a lot of low level functions.
These low level functions are what I would expect to see in the engine - operations on server like: find closest object / object of type, get objects in range, move to, check LOS etc. And the less information they would require (for example, without loading world), the better.

In my game I have only simple heightmap (EE::Heightmap) and containers of objects matrices. And I know that this will be enough to make a decent pathfinding and A.I. control - I'd just like to have as much support from engine, as it is possible :-)
11-14-2011 05:24 PM
Find all posts by this user Quote this message in a reply
rndbit Offline
Member

Post: #11
RE: Client / Server mob system
oh, thats right rofl. i wonder why i didnt think of npcs. sorry guys /dumbmode off smile

EDIT:
i even managed to misspell it! :\
(This post was last modified: 11-15-2011 10:41 AM by rndbit.)
11-14-2011 06:28 PM
Find all posts by this user Quote this message in a reply
aceio76 Offline
Silver Supporter

Post: #12
RE: Client / Server mob system
(11-14-2011 06:28 PM)rndbit Wrote:  /dumbmone off smile

Too funny! Nice one rndbit.

So Esenthel, does this qualify to get in as one of the higher items in your roadmap? pfft

www.thinkplaystudios.com
(This post was last modified: 11-15-2011 04:39 AM by aceio76.)
11-15-2011 04:30 AM
Visit this user's website Find all posts by this user Quote this message in a reply
aceio76 Offline
Silver Supporter

Post: #13
RE: Client / Server mob system
So Esenthel, do you have plans on building a server-side NPC/mob system in the future?

www.thinkplaystudios.com
11-19-2011 02:00 AM
Visit this user's website Find all posts by this user Quote this message in a reply
Esenthel Offline
Administrator

Post: #14
RE: Client / Server mob system
http://www.esenthel.com/community/showth...4#pid29064

http://www.esenthel.com/community/showth...p?tid=3332

If you need any "feature on demand" please lookup Ultimate License.
11-19-2011 02:05 AM
Find all posts by this user Quote this message in a reply
aceio76 Offline
Silver Supporter

Post: #15
RE: Client / Server mob system
I wasn't aware that server-side pathfinding is equivalent to a NPC/mob system. I guess that terminology is only used by other platforms and isn't industry standard.

Pardon my ignorance in game platform terminologies and for asking, and thanks for your great support.

www.thinkplaystudios.com
11-19-2011 03:49 AM
Visit this user's website Find all posts by this user Quote this message in a reply
Post Reply