Jump to content
  • Advertisement
Sign in to follow this  

Tile based multi-user RPG possible?

This topic is 2238 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I was thinking about how I could pull off a tile based RPG with multiple players. The key problems are:

1) How do I handle 2 or more players trying to move onto the same tile at once?

2) If each player take up a tile, 20-30 players takes up A LOT of tiles. Assuming they can attack a little further than people on adjacent tiles, they will be very spread out.

3) A gang of players can block a narrow passageway by taking up all the tiles.

Before we have MMORPGs, there were "multi-user dungeons" or "MUD"s that gives each tile its own "room". 50 players could all squeeze/move onto a tile/room. The content of each tile is displayed in a separate area of the client, and players interact only with people in the same tile/room. I think there are severe drawbacks to this method:

1) Since you only interact with people in the same tile/room, there are no ranged attacks that can reach players in other rooms. (simply because there isn't a way to display the content of surrounding rooms easily)

2) Players have no geographical location or facing within a tile/room. They are just generically there.

Are there any other ways to handle a multi-user tile based RPG? Or is this just impossible?

Share this post


Link to post
Share on other sites
Advertisement
1) how about allowing multiple characters on same tile.
2) how about tiles not being your limitation. E.g characters dont move 1 tiles per turn but 0.1 tile per turn,
thus 1 tile could be divided in many fragments.
3) how about saving position in float variable ? for the above reason. instead of integer.

Share this post


Link to post
Share on other sites

I was thinking about how I could pull off a tile based RPG with multiple players. The key problems are:

1) How do I handle 2 or more players trying to move onto the same tile at once?

If they try to do so at about the same time then let them both move onto it, unless there is a very important gameplay reason why they shouldn't.
Alternatively, let them both move onto it, and push the second one back to his original tile.

2) If each player take up a tile, 20-30 players takes up A LOT of tiles. Assuming they can attack a little further than people on adjacent tiles, they will be very spread out.[/quote]
20 or 30 players takes up 20 or 30 tiles. I'm not sure what your question is here.

3) A gang of players can block a narrow passageway by taking up all the tiles.[/quote]
So give players the ability to:
A) Hop over another player.
B) Push/pull other players.
C) Vote kick other players.

And make players that stand still for longer than 2 minutes turn transparent and be walk-through-able.

[Edit:] Another option is having your grid set up so players move along routes inbetween the tiles, and when they stop, they stop on a tile. They can't stop on a tile another player is stopped on, but they can walk between two players, walking between the two tiles. Players in motion between tiles don't collide with other players in motion between tiles. Then no matter how many griefers line up in a wall, players can still walk through as easy as they please.

Share this post


Link to post
Share on other sites

1) how about allowing multiple characters on same tile.
2) how about tiles not being your limitation. E.g characters dont move 1 tiles per turn but 0.1 tile per turn,
thus 1 tile could be divided in many fragments.
3) how about saving position in float variable ? for the above reason. instead of integer.


How would we graphically represent having multiple characters on the same tile, or having multiple characters each sharing 0.1 of the same tile? Would the avatars all stack and overlap each other on the tile? Or will only 1 avatar be shown per tile?

Also, while I can allow players to click on a tile to reveal a list of who is in it, I can't think of an easy way to represent who is at which tile on one screen. This affect things like PvP, when you're trying to shoot down a moving, he will be gone by the time you click through a bunch of tiles to see if his name is in it.

Share this post


Link to post
Share on other sites

If they try to do so at about the same time then let them both move onto it, unless there is a very important gameplay reason why they shouldn't.
Alternatively, let them both move onto it, and push the second one back to his original tile.


See my reply to "n00b0dy" about why I don't know how to pull off multiple characters on the same tile. I don't think pushing players back is a good idea. Might end up causing a lot of frustration.


2) If each player take up a tile, 20-30 players takes up A LOT of tiles. Assuming they can attack a little further than people on adjacent tiles, they will be very spread out.

20 or 30 players takes up 20 or 30 tiles. I'm not sure what your question is here.
[/quote]

Was trying to point out that 25 players standing side by side would take up 25 tiles, if one tile can only have one player. Might be spreading out players too much, and would require a huge tile map to give enough space for everyone.

Share this post


Link to post
Share on other sites

See my reply to "n00b0dy" about why I don't know how to pull off multiple characters on the same tile.

It really is a gameplay specific problem. One solution for one game might not work for another game - and we don't know the details of your game.
If it's turnbased, selecting a player from a menu is no problem. Even if he moves, he should stay "selected" by you.
Or if there are friendlies and enemies, just hit the first enemy in the stack and ignore the enemies.
Or if it's action, don't select, just fire and who it hits is who it hits.

I don't think pushing players back is a good idea. Might end up causing a lot of frustration.[/quote]
In a really really small (20 players) 2D ORPG I was working on with some other fellas online several years back, we allowed pushing and pulling. It was actually more a matter of humor than anything (we didn't allow players to 'pull' or 'push' beyond map boundries, so nobody was 'pulled' into a PVP zone. If they already were in a PVP zone and went AFK, well, being pulled is not as bad as being killed).
Pulling/pushing was simply a way to prevent people from blocking areas and going AFK. It worked like this: Player A initiates a 'pull' on PlayerB. PlayerB sees a message saying, "PlayerA is pulling you...", after 15 seconds if PlayerB still hasn't moved, he was pulled one block - so it really only affects AFKers, griefers, or players having fun.

Or you could skip the pulling/pushing, and just let a player "Move past" another player (one shifts to the left 1/3rd a tile, the other to the right), but not allow him to stop on an occupied tile (You can think of this as "jumping" over another player if you like). Basically, the player is just moving through a crowd and the crowd shifts around him and he around the crowd.

Alternatively, you could use hexadecimal tiles, which wouldn't completely solve the issue, but it would make it harder to block routes.

Was trying to point out that 25 players standing side by side would take up 25 tiles, if one tile can only have one player. Might be spreading out players too much, and would require a huge tile map to give enough space for everyone.[/quote]
Well, if you're maps are too crowded they are too crowded - the only solution is to make the maps larger. The same thing happens in any game, such as online FPS games - If you take 30 players and put them in one room, that one room is too crowded... but the levels are large enough that more than 5 or 6 players never end up in the same room at once.

It really depends on your gameplay needs. A crowded area might be a problem for some games, and a nearly empty area might be a problem for others.
One thing you could try is scale the same map area up if too many players happen to congregate in one location.

Example: The maps might be designed as 20 by 20 tiles, but with 10 extra tiles horizontally and vertically that are cleverly placed to expand outward (one by one) only as needed. It'll make your mappers have to do more work, but if that's what your game requires, it's doable. Plus, you can isolate which maps are the 'problem maps' (in a online persistent world, it's usually not that many), and only bother with the extra work for those areas.

You mentioned MUDs in your first post. That was before my time, but I've read up on some history of them. Didn't the early MUDs even have "Overflow" rooms that open up when too many players were online in one area? I think MUD itself (the original MUD-type game) had those.

However, referring to my previous post, does "walking between" tiles not work in your situation?

betweentiles.png

Share this post


Link to post
Share on other sites

Was trying to point out that 25 players standing side by side would take up 25 tiles, if one tile can only have one player. Might be spreading out players too much, and would require a huge tile map to give enough space for everyone.
Players "spread out too much" in what sense?
Nethack, which is a positively ancient game, is capable of simultaneously displaying 1680 tiles. 25 players in Nethack's world would barely fill one small room. You could show just 10% of the amount of tiles Nethack does, and 25 players would still only cover 15% of the available screen space, nowhere near making the screen feel cramped.

Assuming frequent logic ticks, most cases of players trying to enter the same tile can be trivially resolved by allowing the first player to move and blocking the rest. The case where their movement commands occur on exactly the same tick is rare and you can use some form of pseudorandom to handle it.

Servant of the Lord: hex tiles barely make it harder to block than square tiles with 4-way movement, and make it easier to block than on square tiles with 8-way movement.

Share this post


Link to post
Share on other sites
I am making something like Urban Dead: http://www.urbandead.com/screenshot.html. Their system is the same as the Multi-user Dungeon system: the 3x3 tiled map on the top left corner of the screenshot represents the "world map". Each tile is a room that contains players and objects, shown in a separate window on the top right hand area of the screenshot.

I was thinking if it would be possible to do away with the separate window telling players what is in the room, and instead display all that information on the tile "world map". Perhaps by restricting it to 1 player per tile.



If it's turnbased, selecting a player from a menu is no problem. Even if he moves, he should stay "selected" by you.


Brilliant! I will be using this. Thanks!




Or you could skip the pulling/pushing, and just let a player "Move past" another player (one shifts to the left 1/3rd a tile, the other to the right), but not allow him to stop on an occupied tile (You can think of this as "jumping" over another player if you like). Basically, the player is just moving through a crowd and the crowd shifts around him and he around the crowd.

However, referring to my previous post, does "walking between" tiles not work in your situation?



Wow! Thanks for the diagram!

The way my game works now is that when the player press a direction button, say the up arrow, he moves 1 tile in that direction. Walking between the tile or jumping over another player would allow him to move more than 1 tile in the direction with 1 key stroke. Also, since the game is in real time, he/she might unintentionally jumped over players who are just passing through, resulting in frustration if he/she is trying to get to a particular tile.

I don't remember MUDs having dynamically expanding areas ("overflow rooms") to accommodate more players. But I have really only checked out the more popular MUDs.

Share this post


Link to post
Share on other sites

Players "spread out too much" in what sense?

Nethack, which is a positively ancient game, is capable of simultaneously displaying 1680 tiles. 25 players in Nethack's world would barely fill one small room. You could show just 10% of the amount of tiles Nethack does, and 25 players would still only cover 15% of the available screen space, nowhere near making the screen feel cramped.



Are you referring to ASCII tiled maps? If o = empty tile, x = player on tile, we can indeed represent 25 players in a very small space:

ooxoxoxxxoxxox
oxoxoxoxxoxxox
xxxxxxoxxoxooo

But if we're talking about this type of Nethack: http://users.tkk.fi/...creen_big01.jpg , which I played. 25-30 players in that room would make it feel extremely cramped.

Share this post


Link to post
Share on other sites

You could show just 10% of the amount of tiles Nethack does, and 25 players would still only cover 15% of the available screen space, nowhere near making the screen feel cramped.

Although most of the screenspace in 2D rpgs are filled with objects (buildings in towns, tables, signs, walls, etc...).

Here's a screenshot of the old 2D RPG I was working on (but wasn't the lead developer), for example of what I'm talking about:
http://img3.imageshack.us/img3/3471/sewer1.png

Even if you make the passageways wider, all griefers have to do is block the narrowest part. This happens in towns and cities too - a doorway might be camped by a single griefer, not letting players get into a shop.

Servant of the Lord: hex tiles barely make it harder to block than square tiles with 4-way movement, and make it easier to block than on square tiles with 8-way movement.[/quote]
Good point. =)
8-way movement doesn't help with a straight wall/line of players though. If there is a wall, there's a wall - the only way you can keep this from becoming an issue is to let players somehow get past other players: move between tiles, walk through players, double-tap forward to initiate walkthrough but normally collide, push/pull, jump over, teleport to mouse pointer, or something similar.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!