by Spike » Fri Apr 11, 2014 5:11 pm
both q3bsp and bsp2 use 32bit data types for everything.
there are still limits, but they're generally not the file format itself.
its definitely not infinite, you'd still be expected to vis it, etc.
10000 monsters all checking to see if they can see the player 10 times a second can be quite a lot of tracelines and thus quite expensive.
Processing time does not always scale well. Many things (like monster thinks) scale linearly. Other things scale exponentially (ie: find() calls are more likely with more entities trying to search for other entities in a bigger list).
These things can often be mitigated with sensible/nonstandard gamecode logic, but this typically means more work not only for the coders but also for the mappers (setting up triggers).
both fte and rmqe support a hub system which can be used for an effectively truely massive playing area, but the catch is that it requires all players to move between maps together, and effectively pauses the other parts of the game. if backtracking in single player is your only aim, then it can work just fine.
not that long ago, I started working on a 'mapcluster' command in fte dedicated servers. essentually the server forks itself as required to host multiple maps simultaneously, and transfers players from one map to another. You still get loading screens, but the various parts of the 'map' are all running simultaneously with players in any part they want. The downside is that currently the players can't actually talk cross-map, and gamecode can't easily do so either (and needs to be modified to do some player transfer logic instead of normal map changes). Basically, it still needs lots of polish. The upside is that the player limit becomes per-map, server ticks can be throttled on individual maps that have no players or shut down(reset) completely, and gamecode could transfer a group of players to a private/instanced map (if you like grindy stuff).
.