Discussion in 'Planetary Annihilation General Discussion' started by varrak, September 17, 2014.
On that topic: I wish they would do that.
Thanks for this varrak ! I'm still so much impressed when i watch a massive battle with tons of missiles, explosions and so on, all this running at 60FPS.
Just for my information, as with bengolus you're in charge of optimizing the client side, who is in charge of optimizing the server side ? I'm now pretty sure pathing (called "navigation" in debug window) is the most intensive cpu task that would require a bunch ff this black magic you put on the client side
Different areas, different expertise.
Graphics is all about figuring out what not to draw (at full detail) and when.
In pathing you have no choice to not do a calculation just because the unit is off-screen. Until the unit is dead it needs to be considered for pathing and targetting alike. In pathing it is about not doing the same step more then once (if avoidable).
While he could also be a crack in pathing, I think the graphics can use his expertise more right now
The GPU is smart, or at least it's smart in the sense of doing things really really fast, but on a very low level. For a graphics card it is all triangles and meshes, it doesn't know the higher meaning of those triangles. And that's where you need to help it out.
Say you want to render a planet in PA, that is roughly 60K - 200K triangles. If you don't mind if the planet is visible or not you stream all those triangles to the graphics card. The graphics card will do the visibility test for you (frustum clipping, face culling, depth test, ...) and it will only draw those triangles that are visible, but since the card doesn't know that those 60K -200K triangles belong to "one" object (e.g. are spatially clustered <- well, I'm missing the correct term, so I made this one up ), it tests every triangle for its own. This means 60K -200K triangles are streamed to the GPU (if you are lucky they reside in VRAM on the card, otherwise it will take up bandwidth from the PCIe bus), 60K -200K triangles are transformed and tested for visibility. If - at the end - the planet is not visible that is a lot of work for nothing.
If you test the visibility in your program, the program knows that if it does one test for the entire planet it can skip those 60K - 200K triangles all together. Because you know that this is "one" object.
For being so awesome I shall give you a really cute puppy
Reminds me of the theory that if something is not being observed by a sentient being, it simply does not exist (in any tangible meaningful way, with the whole quantum uncertainty principle, things must be observed to find a resting point).
Its funny how philosophy, theoretical physics and something as seemingly trivial as graphics engine optimization are crossing paths. Oh, and Haruhi Suzumiya, naturally.
How dare you change your profile picture!?
I'd like to play with icons always on because I have a hard time seeing some of the units, or telling the difference at a quick glance (also, the T2 symbol on the icon needs to be more obvious. I get infernos and vanguards confused regularly). But I also don't want the ground icons showing up in the orbital layer, so I'm kind of stuck with range dependant.
Edit: formatting. Also @varrak if you could make it so I can turn off ground icons while in orbit, but still have the icon at all other times, I'd love you even more!
thanks for the reply! I agree there is more important stuff too.
BGolus does effects - he's the technical artist, so he makes things look pretty. I do code, optimization, stuff like that.
We're doing another round of optimizations over the coming months, primarily focused on memory use and server performance. I'll be working on all that stuff (so less focus on the client for a while). There's four of us who'll be focused on server performance primarily, so I'm optimistic we'll make some solid progress.
I like puppies. Here's me with mine:
by "bunch of this black magic you put on the client side" i meant "strong expertise in optimizing code". but i perfectly got that it's absolutly not the same
Varrak, what do you think will be the bottleneck for us when we start purchasing servers to use for massive games?
I LOVE Nerd talk!
This sentence in particular made me happy. Post launch support FTMFW. Keep up the sterling work.
@varrak You and the other optimization guys really should just start typing up a book for us forumers to melt our brains in. That'd be amazing!
All hail to the guy working on the Server side, so we may soon(ish) have offline mode.
May his coding the swift, may the bugs shun him and may his choosen datatypes always be on spot.
All of them. My build power usually grows exponentially. (That said, the game runs smoothly until the jig'd gas giant enters the view frustrum).
As for specs, MBP late 2014, Intel Core i7, Intel Iris Pro, SSD, 16GB RAM, OSX 10.9.4
I was wondering - how difficult would it be to make a projection of a planet that is one of the 'standard' full-earth projections?
Not even in-game or whatever, I was just looking for a way to get this kind of image of a PA planet:
Separate names with a comma.