30k concurrent players on a (private) MMO server...is this possible ?
That Ragnarok Online looks like similar to what's in my mind ( isometric , sprites ) , then maybe I can handle more than 16-32 players per "room" unlike I planned?
mostates by moson?e | Embrace your burden
Just the camera is rather restrictively fixed and you can only be rotated around your character, zoom a bit and change its angle slightly (that is one of the many things I heared some cheaters have hex-edited away). This is to hide that the server only sends data for characters and skill effects inside a square for about 14 tiles distance from your character (which can be seen when tilting the camera and looking downhill or having a widescreen monitor).
Monster, NPC, Characters and their accessories are 2D sprites though.
I've seen fights of 2-3 allys of 2-4 guilds per ally of 30-56 people each guild, all squeezed into 2 or 3 screens of space. Problems start when all are spamming skills up to 4 times a second (they made the mistake of including a 2 minute area spell reducing cast times and skill delays for everyone inside), which are often area spells that get send per tile. Then the server is struggling, its discarding skill effects revealing holes, discarding skill commands, queuing move clicks for too long and ultimately disconnecting everyone lagged more than a minute, sometimes silently making the client hang, all while the monsters whack away at the player characters.
Additionally, rumours are going around the server is not optimized well.
Therefore more than 16-32 people per map should certainly be possible for your game if done carefully enough.
In Ragnarök Online ground, walls, houses, trees and such are actually made of 3D. There are many hills (which are a good reason to prefer 3D), its relatively low-poly and you can sometimes find cracks revealing it.
Just the camera is rather restrictively fixed and you can only be rotated around your character, zoom a bit and change its angle slightly (that is one of the many things I heared some cheaters have hex-edited away). This is to hide that the server only sends data for characters and skill effects inside a square for about 14 tiles distance from your character (which can be seen when tilting the camera and looking downhill or having a widescreen monitor).
Monster, NPC, Characters and their accessories are 2D sprites though.
I've seen fights of 2-3 allys of 2-4 guilds per ally of 30-56 people each guild, all squeezed into 2 or 3 screens of space. Problems start when all are spamming skills up to 4 times a second (they made the mistake of including a 2 minute area spell reducing cast times and skill delays for everyone inside), which are often area spells that get send per tile. Then the server is struggling, its discarding skill effects revealing holes, discarding skill commands, queuing move clicks for too long and ultimately disconnecting everyone lagged more than a minute, sometimes silently making the client hang, all while the monsters whack away at the player characters.
Additionally, rumours are going around the server is not optimized well.
Therefore more than 16-32 people per map should certainly be possible for your game if done carefully enough.
First, thanks for reply.
And well , had chance to take closer look at RO and it is partly similar, its not isometric and have 3D elements as you mentioned. What's in my mind is something between
and , therefore an isometric TPS
My initial plan was to use a smallish ( 50X50 ? ) maps for each 16-32 people or so, but wondering if I can manage a unified map (500x500 ? 1000x1000?) with a good implementation.
PS : As will be web based , have to use TCP and JSON which is not bandwidth friendly.
mostates by moson?e | Embrace your burden
In Ragnarök Online ground, walls, houses, trees and such are actually made of 3D. There are many hills (which are a good reason to prefer 3D), its relatively low-poly and you can sometimes find cracks revealing it.That is, however, secondary as long as the game is tile-based. The world may be rendered in 3D, but the game is still only 2D from the server's point of view (both for logic/physics and network updates that it needs to send).
Hit and collision checks are of a "is inside same cell" nature, not of a "does ray in 3D intersect" nature or such.
If the amount of data needed per tile is average of 32 bytes, then a 1000x1000 map would only take 32 MB.
The size of the map almost doesn't matter (as long as you can reasonably fit it in RAM for clients and servers.)
If the amount of data needed per tile is average of 32 bytes, then a 1000x1000 map would only take 32 MB.
Sorry for late reply,
Assuming your reply was directed at me, seems I didn't explain situation clearly. In addition to making map size from 50X50 to 1000X1000 , will also increase number of players. So what I wonder is if 100-200 (maybe 500) players are manageable in a 1000x1000 room? (considering prehistoricish graphics)
Btw, just wondered why IMVU doesn't increase cap for a room if you don't mind? Historical reasons or based on experience?
mostates by moson?e | Embrace your burden
My initial plan was to use a smallish ( 50X50 ? ) maps for each 16-32 people or so, but wondering if I can manage a unified map (500x500 ? 1000x1000?) with a good implementation.
I used to be part of a hobbyist team for a small ORPG where we had >10 people on a map at a time (maps being 21x21), all spamming text as fast as possible as part of minigames. I wasn't the programmer, but I'd guess the code wasn't very optimized as we had more pressing priorities. And the server was at times even running off of a weak laptop over WiFi on a home internet connection. ('course we lagged like crazy when the lead developer and host of the game would be streaming live football games at the same time as hosting the server )
This was 9 years ago. With better and more modern hardware, and intentional and calculated optimizations, I wouldn't be surprised if you could get 50+ players in a single screen without lag.
increase the number of players
As long as the server bucketizes the players so they only see approximately the closest X players, you will scale roughly linearly in the number of players. The limitation to your scale then becomes how expensive/complicated your server-side simulation is. If all players want to be in the same town square, you will end up with n-squared in the number of players -- this is the worst case for any online game.
why IMVU doesn't increase cap for a room if you don't mind?
There is no "hard" limit, only a "soft" limit -- when you search for a chat room, rooms with 10+ users are shown as "full."
However, if someone invites you to the room, and you accept, you can still join.
The reason we consider rooms "full" at 10 is two-fold:
1) When chatting, more than 10 users is very hard to keep track of! (There are use cases, like virtual theater plays, where this is not a problem)
2) The typical end-user machine can't reasonably show more than 10 user-generated avatars with good frame rate
Thus, this is a client-driven limitation, not a server-driven limitation, and one of the problems is that our avatars are made of user-generated content, and our users are not trained 3D artists who spend days squeezing every last pixel out of a texture sheet or every last vertex out of a morphed mesh, like you'd typically see for high-end games production.
Intel Integrated -- the world's most popular graphics chip -- is not going away. In fact, ALL the MacBooks (except for the very biggest and highest-end model) now ship with Intel Integrated, rather than a discrete graphics chip.