400
« on: February 19, 2007, 01:04:45 AM »
Actually, it's kinda my fault retail slipped, lovexing the fps also introduced a few bugs. Like collision not working, or raycasts taking 100x the CPU they normally do. So we fixed those, but it took a little time. :)
Brick self-shadowing... could work... if you had a mega-beefy computer (probably 3+ghz CPU and uber vid cards)... and we had a month to burn implementing it... but really, I think Badspot would rather spend time making the game more fun than adding tons of rendering overhead. :)
Also - every graphical effect we don't add means a couple thou extra bricks you can have on-screen before your framerate plummets. ;)
For comparison - the stress test before we did this last rendering optimization pass was loading a city, complete with sky scraper, the beta testers built (you've probably seen screenshots of this). This would then dog at like 15 fps on a fast computer, and let us figure out where our speed was going. I think this was around 7k bricks.
After the new system went in, we made a new stress test called "Everything", which was every saved build that we had on file, loaded all (literally) on top of each other. This came to over 60k bricks, and included a complete mansion with about 10 rooms + attic + stairwell, the Titanic, the beta city, the pyramid, a monopoly board, three castles, and some other goodies. This now dogs along at about 15fps, on the same fast computer.
Now, I don't know about you, but if I'm playing a building game, I'd hate to be penalized for building a ton of stuff. Ever play SimCity 4? I always hated how when I finally got a big, healthy city going, the framerate would drop until it was unplayable on my system, even with minimal detail settings. And that was without me even really trying to build a ton of stuff...
So personally I'm in favor of building games where you have to really go out of your way to make the FPS dog (like by filling the entire room with bricks). Actually, filling it solid with bricks wouldn't hurt as much as our stress test does, since the system culls stuff you can never see. (Like bricks entirely surrounded by other bricks.)
The bricks in Retail are a fully custom system at this point; custom brick file format, custom Torque objects for rendering, custom collision code, custom networking, two custom renderers, and a lot of custom blood, custom sweat, and custom tears.
As a few GG employees have stated, if you want Torque to do something really well, you should just make it do it well rather than abusing the system. :)