I've got the idea to test the physical unit count limit of the engine. Assuming it is not yet optimized at all, I've lowered test target from neutrino's 1000000 units to a slightly increased SupCom's total unit limit - 10000. Good news: now built 2000 and got no crash: Bad thing is that even with that count it already lags like crazy. Moreover, pathfinding glitched in every way possible, including wrong paths to the close location across the whole planet, unit teleportation into unpredictable locations, and even units going straight into space: Test continues, since it is probably provides the most general case of unit stuck/glitch issues in current version. UPDATE: 3000 units now. From further observation it's possible to conclude that rendering is not the most affected part. With 3000 units I have 10 fps, and that is still bearable for a really massive game. However, when I try to select units, fps drops below measurable with fraps (somewhere around 0.2 fps), and that raises UI speed question. In both cases, unit movement is not smooth - they teleport (change location) each 2 seconds instead of actually moving. It is hard to say how much server-side simulation is affected by slowdown, but assuming that server sends each simulation frame, coordinate synchronization now looks like a real bottleneck, since it is slower than both rendering and simulation, causing most unit positions to be dropped and inducing unit "teleportation" effect. UPDATE2: decided to test some fighting. Unfortunately, after first 2-3 shots units and their projectiles desynced, and I wasn't able to see battle itself, only shots in the dark and units standing in place before AI base: When main event ended, engine started to regain sync, and my units appered at almost completely annihilated base. Looks like engine decreases rate of coordinate sync when battle is on to be able to push some projectile coordinates through channel. UPDATE3: hit 7000. Teleported bots are all across the planet, but the most weird bug is the direct stream of floating-out scampers right through the core of the planet: Meanwhile, fps with units unselected dropped to 3. Framerate with selected units is dangerously close to zero, someone can even consider it hang (though it's not).
That is really cool. Good job with your test. I tried something similar but not nearly so organized. Yeah can't wait to have tons of units!
UPDATE4: hit 8000, terminating test with 105 minutes of ingame time and 11 hours real time, average slowdown 628%. At the time of termination, game is completely unplayable, one scamper builds 20 minutes. So there is a long way ahead towards 1000000 units ingame On my system, game is rock solid, 11 hours without crash is epic, I wish I could play SupCom at least a 1/4 of this time and not get 0xc0000005. However, real test still ahead, to begin when AI and local server start to kick in.
Awesome test, it's looks like Big Robot Party: http://images3.wikia.nocookie.net/__cb2 ... tParty.png
Now that really is a good way to actively destroy the game! What are your system specs btw? How was your ping as well? I'm guessing allot of info was being sent back and forth...
PC specs are here. Nothing beyond one of the CPU cores got overloaded. Ping wasn't high, not sure on exact value since there's no counter I know of. However, I've got the impression that server has limited bandwidth per player, and drop sync cycles when it exceeds the limit - I've noticed that data transfer rate was always around 1 mbit/s (1% of my max bandwidth). For such a duration it's around 5 Gb though, so maybe it was done to prevent sending someone with limited download connection through the roof.
It's cool to see you trying to push the limits of whats there. Frankly I'm a bit surprised you got it as far as you did. There are still a few known places in the code with O N^2 type behavior. In addition we have the servers locked to running a single thread (for the most part). In a million unit game I would expect them to be spread over a fairly largish number of planetary bodies.
I so cant wait for this to change. Filling up half a planet is already a lot of fun, but without those server lags it will be even more epic