Thanks to kipper for linking it in the PC Games forum.. Just thought I'd put things into one place here. If mods have other funny ideas ! on where to put it, by all means...
Quotes are from around the TTLG Forums:
Chris Kline, Lead Programmer for Bioshock:
So, like I was going "huh?" to in the other thread... Three threads for physics
Quotes are from around the TTLG Forums:
Chris Kline, Lead Programmer for Bioshock:
ckline 10 Oct 2006 regarding multi-threads said:We currently run
- simulation update (1 thread)
- UI update (1 thread)
- rendering (1 thread)
- physics (3 threads on Xenon, 1 to TBD on PC)
- audio state update (1 thread)
- audio processing (1 thread)
- texture streaming (1 thread)
- file streaming (1 thread)
ckline 12 Oct 2006 regarding "Simulation Update" said:AI, game internals, setting up batched data to kick off to the renderer and other threads, calculating digits of PI, etc.
ckline 12 Oct 2006 regarding multi-threads said:Basically we just chop up tasks as coarse-grained as possible so that threads don't need to share any data or do much synchronization. To do this we do a lot of double-buffering of state. Then we kick off the threads and wait until they all come back and sychronize.
It's really simple (in theory, not practice) stuff, but games don't lend themselves well to fine-grained multithreading because you'd get killed with all the synchronization overhead, not to mention the bugs from not doing it right.
We've looked into Software Transactional Memory, which would allow you to simulate thousands of entities independently in a sane way, but no one's figured out a good (meaning "nice API" + "fast") way to implement it yet.
ckline 16 July 2007 regarding 360 framerate said:On the XBox 360 it is locked at 30 or 60 fps, depending on the situation. There is also an option to disable locking so you can play with the fastest possible framerate (though this may result in occasional "tearing").
ckline 3 April 2007 regarding ragdoll & standing up again said:Pyrian said:Getting up from ragdoll (GUFR?) isn't too bad as long as they're lying on a flat surface... If you don't assume that, then it's a real pain in the neck.
Ours work on any surface (stairs, physics objects, uneven surfaces, dead bodies, etc) by blending ragdoll with animation and inverse kinematics, all in realtime.
And yes, it was a real pain in the neck to make that work. But John Abercrombie and Darren Lafreniere are the Wonder Twins of AI and Animation, and they totally rocked the house with this bit of tech.
ckline 26 Dec 2006 regarding compression/streaming said:That isn't quite correct. It *would* use that much if you loaded all the textures at once. However, our streaming system will stream a much smaller working set of textures in/out on the fly, so you won't need that much VRAM.bjossi said:The game is going to use around 512 MBs of video memory when texture compression is 8x.
(To that end, they'll be streaming instead of loading things into memory all at once of course. )ckline 25 Dec 2006 regarding memory/streaming said:We use approximately 6-8x as much texture memory on models in Bioshock as we did on SWAT 4, for example.
Bioshock probably uses around 500-600MB of compressed textures (at 8:1 compression!) for an entire level, and that doesn't include Audio data, Mesh data, and lots of other memory that's needed to run the game.
So, like I was going "huh?" to in the other thread... Three threads for physics