Deano Calver answered a few questions about the latest images from GamePro at Beyond3D.
Got to ask what's next, I am sure there is an idea somewhere over at Ninja Theory.
Don't ask us, were just trying to ship this one Worry about minor problems like getting paid in 6 months time, when we get there
According to DeanoC blog, the game can calculate AI for 2180 enemy soldiers.
Slightly more now, we hit that limit... so I managed to pack the data more (each grunts state is down to 48 bytes from 64) so our current high is ~2400. In theory we could get near 3K if we need to (we should now have the RAM to go that high, just haven't needed to test it yet).
Does that mean technically capable at calculating AI for 2400 soldiers in general or capable at calculating AI for 2400 soldiers while displaying them all, with full graphics during gameplay?
The game has a built in LOD system using imposters in the distance. So you can see them all at the same time tho most will be so far away that they are rendered very simply as they get closer they will be draw with more detail.
Each is a real entity, tho so can follow orders, attack you, get blown up etc.
Interesting - does that mean the reserved RAM has been lowered (as many were speculating would happen over time)? I know, I know NDA's an' all that...
Also, how old is the build that these pics are from?
I was talking about SPU ram (which has remained constant unlike reserved RAM). Its hasn't changed but as I've shaved off the fat of each grunt its effectively larger for how many grunts you can have... which is what i meant but didn't explain very well.
And it looks fairly recent... that green atmospherics the artists haves been playing with isn't that old afaik.
BTW just to correct a few people, nothing (HDR or DOF or atmospherics for example) has been removed but most are artist controllable, so if you can't see them as obviously as before, its probably cos they choose to make it look like that.
So that would leave about 110 kB for code and some extra data.
Bloody impressive you can have it running on one single SPU with all the data available. You are able to parse through the horde of soldiers over and over again without touching the main RAM. Now that is how to make the Cell sing.
It was one of the fundamental technical decisions I made back when I started. I'm not sure it was nessecarily the best choice but it works quite well, if you don't mind be very frugal with what each grunt stores.
Each grunt is split into two separate bits of state, its AI state (32 bytes) and 16 bytes thats just output render state for the render engine (that's not keep in memory for the AI SPU program).
The first SPU task does a spatial sort and fires off a SPU task for each non empty chunk of the battlefield. These tasks do the AI for all the grunts in there chunk, apart from a few rare atomic ops (for gameplay statistics and grunts issuing 'events' (which are the name of big things like explosion)) the AI runs out of its own RAM from start to finish (all grunts and its local heightfield and battlefield, battalion and unit data is in LS).
Which means you can program it like a normal processor and the AI code doesn't have to worry too much about DMA or synchronisation... Its taking care before and after its bit, which is nice
Sounds great, thank you for the updates Deano.
Just curious, how smooth are the LOD transitions?
Sounds almost like you plan on doing an RTS in the future.
LOD isn't as smooth as i'd like but its on my TODO list to improve before ship. Tho I should point out that i'm very picky and its mainly the imposter to mesh pop I notice... still bugs me tho hehe
Actually a fundemental gameplay design concept we used when doing this, was that it should feel like an army and not a rabble of people. It should move and attack like its a bunch of separate units coordinated by commanders etc. Not just have 1000 people standing around waiting to pick on a girl