Best way of creating a 'Party' system in an MMORPG

Post here your questions about SFS2X. Here we discuss all server-side matters. For client API questions see the dedicated forums.

Moderators: Lapo, Bax

andrew2110
Posts: 82
Joined: 28 May 2008, 13:36

Best way of creating a 'Party' system in an MMORPG

Postby andrew2110 » 25 Oct 2011, 10:11

Hi All, I hesitate to post this question here as I fear that it maybe is a question regarding more general multiplayer software architecture rather than something smartfox specific. However given the expertise to our chosen server software on this forum I figure it's worth a shot!

Anyways - We're constructing quite a large MMORPG with smartfox 2, The world consists of N number of maps which can be inhabited by between 1 and 100 people at a time. These are created dynamically as rooms and are destroyed when empty. The world also includes 'Dungeons' where you shall only be able to play with / interact with members of your own party. I'm starting to try and design the party system for the game and want to try and achieve the most graceful solution possible.

The party system needs to:

- allow 2 to 4 players to be able to chat to one another wherever they are in the world
- Transmit movement data to one another when players are in a dungeon room.
- Add minimal additional load to the server side.


My current best approach would be to:

- The 'lead' party member would create a new room for the party and invite players to room
- Each user in the party would always exist in two rooms on smartfox (the party room and the world map room they exist in)
- Each user in the party room would have a 'Dungeon' user variable set for what Dungeon they are currently in - Null if not on a dungeon.
- If User A's Dungeon Variable == User B's Dungeon Variable and Dungeon Variables != null - Transmit positional data to user.


Can anybody provide any critique for this approach? Ideas to make it faster with Smartfox? To my mind this should be relatively lightweight on the server side as the only real extra processing the server has to do is in creating / destorying an occasional extra room / user variable. The logic of figuring out what clients need what updates is done client side.
Robbilie
Posts: 190
Joined: 04 Sep 2010, 19:48
Location: Ratingen, Germany
Contact:

Postby Robbilie » 25 Oct 2011, 16:54

i use an array of a selfmade class
This class contains a list of the members (also an array of type user where index = 0 is the leader)

Hope this helps a bit...

Greetings
/Robert ;)
andrew2110
Posts: 82
Joined: 28 May 2008, 13:36

Postby andrew2110 » 27 Oct 2011, 01:04

Thanks Robbilie! Thats an interesting way of doing it that I hadn't thought of doing yet! I'll have a play around with a few things and see what I can come up with :)

Return to “SFS2X Questions”

Who is online

Users browsing this forum: Aldenea, DavinVicy, DerikFent, Google [Bot], JerodSa and 10 guests