RPGDXThe center of Indie-RPG gaming
Not logged in. [log in] [register]
 
 
Post new topic Reply to topic  
View previous topic - View next topic  
Author Message
Hajo
Demon Hunter


Joined: 30 Sep 2003
Posts: 779
Location: Between chair and keyboard.

PostPosted: Mon Oct 29, 2007 8:33 pm    Post subject: Moving 'through' other players. [quote]

I'm facing a problem in my latest project. It's a multiplayer game and there are narrow passages. If one player decides to go AFK for whatever reason in such a passage, it is effectively blocked for everyone else. I'm looking for solutions and two came to my mind:

1) Design maps in a way that there are no "1 person wide only" passages.

2) Let players move 'through' other players if the next square behind or besides them is free.

The first one seems to still have problems though. Even wide passages can still be blocked by groups of people. And some maps just loose the right feel without narrow passages.

Moving 'through' other players looks better. The narrowest passages still appear to be 1 meter wide, graphically, so it's easy to imagine one can pass by another player with a bit of squeezing and pushing.

What do you think? Is it a good idea to let players pass other players this way?
Back to top  
BadMrBox
Bringer of Apocalypse


Joined: 26 Jun 2002
Posts: 1022
Location: Dark Forest's of Sweden

PostPosted: Mon Oct 29, 2007 10:14 pm    Post subject: [quote]

Moving through the other players is the best way to go I would think.
_________________
Back to top  
RampantCoyote
Demon Hunter


Joined: 16 May 2006
Posts: 546
Location: Salt Lake City, Utah

PostPosted: Mon Oct 29, 2007 10:44 pm    Post subject: [quote]

Absolutely let them go through each other. I remember griefers doing this in EverQuest in Cazic Thule - some Ogre would sit down and block an escape route. Nothing is as frustrating.
_________________
Tales of the Rampant Coyote - Old-School Game Developer talks Indie Games, RPGs, and the Games Biz
Back to top  
Hajo
Demon Hunter


Joined: 30 Sep 2003
Posts: 779
Location: Between chair and keyboard.

PostPosted: Mon Oct 29, 2007 11:11 pm    Post subject: [quote]

Thanks for the feedback :) I'll do it this way then, and let players move 'through' other players.
Back to top  
Adam
Mage


Joined: 30 Dec 2002
Posts: 416
Location: Australia

PostPosted: Tue Oct 30, 2007 10:51 am    Post subject: [quote]

Both of your methods would allow players to be dicks if they wanted to group together to block passageways.
_________________
https://numbatlogic.com
Back to top  
Verious
Mage


Joined: 06 Jan 2004
Posts: 409
Location: Online

PostPosted: Tue Oct 30, 2007 11:46 am    Post subject: Re: Moving 'through' other players. [quote]

Hajo wrote:
2) Let players move 'through' other players if the next square behind or besides them is free.


Most online (2D) games allows players to walk through one another at all times, but not through NPCs or enemies. Some games turn off this ability for players who turn on player-versus-player (PvP) mode to enhance the excitement level and allow for additional strategy.

Keep in mind, just checking the square after a player may not be sufficient, consider the following scenario:

##########
U >> OO
##########

# = Wall
O = Other player
U = Player character
>> = Direction of travel

Two players could effectively block a narrow passage.
Back to top  
Hajo
Demon Hunter


Joined: 30 Sep 2003
Posts: 779
Location: Between chair and keyboard.

PostPosted: Tue Oct 30, 2007 1:35 pm    Post subject: [quote]

I noticed that too. I could recursivly apply the procedure until the chain ends, but I feel uncertain if that is good.

Right now I've decided to ignore this problem and go on with other tasks while now and then thinking about it.
Back to top  
DeveloperX
202192397


Joined: 04 May 2003
Posts: 1626
Location: Decatur, IL, USA

PostPosted: Wed Oct 31, 2007 4:23 pm    Post subject: [quote]

What I would do would be to simply push the other player that is in the way out of the way so that you may pass, and then push the other player back where he was located.

Something like an 'excuse me' command would be cool, that way you could walk up to players to talk, or say excuse me, and they move so that you may pass.

An example (using verious' graph)

# = Wall
A,B = Other player
U = Player character
>> = Direction of travel

The problematic situation:
##########
U >> AB
##########

Solution part 1:
You issue the 'excuse me' command to player A
who then moves behind you
##########
UAB
##########

to

##########
AUB
##########

Solution part 2:
You issue the 'excuse me' command to player B
who then moves behind you

##########
ABU
##########

Solution part 3:
Once you move two spaces away from the players, they will return

##########
AB__U
##########

to

##########
_AB_U
##########

I think that it would be effective.
Goodluck.
_________________
Principal Software Architect
Rambling Indie Games, LLC

See my professional portfolio


Last edited by DeveloperX on Wed Oct 31, 2007 4:30 pm; edited 2 times in total
Back to top  
Hajo
Demon Hunter


Joined: 30 Sep 2003
Posts: 779
Location: Between chair and keyboard.

PostPosted: Wed Oct 31, 2007 4:25 pm    Post subject: [quote]

That'd be cool indeed :)

Server would have to track who was pushed and place them back when their place becomes free again. But this could be handled.
Back to top  
DeveloperX
202192397


Joined: 04 May 2003
Posts: 1626
Location: Decatur, IL, USA

PostPosted: Wed Oct 31, 2007 4:34 pm    Post subject: [quote]

Hajo wrote:
That'd be cool indeed :)

Server would have to track who was pushed and place them back when their place becomes free again. But this could be handled.


You could use a simple state machine to track the push.
While in the pushed state, you would check the space that it was at in the update routine for that player, and if it can move, you remove the pushed state from the state machine.

I'd be happy to help you code it, just let me know if you need anything.
_________________
Principal Software Architect
Rambling Indie Games, LLC

See my professional portfolio
Back to top  
Hajo
Demon Hunter


Joined: 30 Sep 2003
Posts: 779
Location: Between chair and keyboard.

PostPosted: Wed Oct 31, 2007 4:45 pm    Post subject: [quote]

Thank you for your offer DeveloperX :)

A state machine is nice, but doesn't fit too well into Sonnheim. Most of the server code is event driven. The most easy way would be to add a "move" type event for the pushed player with a delay of a few seconds, and a destination back to his original place.

The server checks the event queue regularly and once events are due they get executed. Execution can give a result code to put the event back into the queue with a new delay.

So the server would try to put the player back to his original position every few seconds until it succeeds. One could also set a limit on tries.

In a way the events are like state transitions, so your idea maybe fits better than I first thought, it just come with a bit of a disguise ;)
Back to top  
DeveloperX
202192397


Joined: 04 May 2003
Posts: 1626
Location: Decatur, IL, USA

PostPosted: Wed Oct 31, 2007 4:48 pm    Post subject: [quote]

Ahh. Okay, well goodluck with it. :)
_________________
Principal Software Architect
Rambling Indie Games, LLC

See my professional portfolio
Back to top  
Post new topic Reply to topic Page 1 of 1 All times are GMT
 



Display posts from previous:   
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum