I guess I worded that wrong. I plan on having more than 250 sprites on a server, not all on the screen at once. These sprites aren't going to be users. Some will be user sprites, but others will be other significant sprites such as NPC's enemies, etc. (This is actually one of the things I hated about most 2D ORPG's. They had so many players on the screen that it was impossible to distinguish your own sprite, or even read any chat messages)
I'm starting out with a 32 player connection limit per server. That's the default connection limit for the Skulltag game engine, even Doom. I highly doubt servers are going to reach 32 players before someone attempts to host their own, because even Doom and Skulltag engines begin to lag at around 20 players (Which usually happens in games that allow you to host your own server)
But that's the beauty in allowing users to host their own servers. Instead of having a string of dedicated servers, from the start of developing this game, I knew that this would be impossible for me. I'm hoping that a large group of smaller servers could work much better. Most servers will probably start lagging at around 16-20 players. So having more servers by allowing any player with a port forwarded connection to host and allowing the hosts of those servers to moderate through kicks and bans is probably best. (The only real centralized server I plan on having is a simple MasterServer that shows all other servers that are online)
The clients only receive updates about other clients on the map. If things get worse, I'll look into limiting it to only sprites within certain pixels of other sprites.
Also, it's highly unlikely that you will be able to have hundreds or even dozens of real-time, persistent connections into one server at a time. Even large scale MMOs try to keep the load on any one server down, and unless you have your own rack of dedicated servers with a high-density connection to the Internet backbone, the server would probably lag immensely or perhaps just melt into a sad puddle of silicon and wires on the floor.
Can you go further with this?
EDIT: I'm not quite understanding how the InputBits works. Can I only
get it? Or can I also
set it? I want to serialize an integer casted InputBits and then set it on the client's sprite by having the client cast it back to InputBits.
Then again I can't just explicitly cast an integer to InputBits. Agh please, don't let this be an impasse...EDIT: I asked the previous question wrong. How exactly does the enumeration handle multiple key-presses?
I see that inputs (the enumeration) has a value for each keypress, but what if I'm pressing 2 or more inputs at once? Will explicitly integer casted data for that frame hold both keypresses? If I cast it back with (InputBits)castedData; will it hold both keypresses? And can I
set inputs on a SpriteBase instance? Or is the input enum only used for retrieval?
EDIT: I see how it works, I think. SetInputState and IsInputPressed demonstrate it. It looks like my extremely and unnecessarily complicated way of doing it before can be scrapped now.
I'm anxious to see how far I can get with this.
Oh and hey look what I found: *cough*
http://gamedev.enigmadream.com/index.php?topic=1568.0Guess I should ask questions about things that I won't decide to finish later.