Level-of-detail management and streaming
For example, making sure that it doesn’t take too long to stream in new parts of the world as you move. When we do stream in higher-detail versions of far-away geometry, we don’t want the graphics to pop, so we’ve recently implemented a smooth blend between LOD levels. The Witness is an open-world game with no loading screens; the feeling of just walking around and looking at things is very important. We work hard to make this happen as smoothly as possible.
Audio
Since The Witness is so much about a sense of place, the audio design is crucial. Right now there are 1.2 gigabytes of sound (Much of it compressed!) in the game, which represents over 40% the game’s data.
This last statement about the audio made me curious about what our data looks like, so here are some numbers on how much data is in The Witness. (These are all the size of files in the game as it would be shipped, not the source files!)
Texture Maps: 1,196 files, 446MB
Meshes: 4,588 files, 507MB
Sounds: 2,435 files, 1.2GB
Animations: 197 files, 0.6MB
Entities: 1 file, 4.3MB
Lightmaps (these are auto-generated): 17,916 files, 453MB
Total (including other files not listed here): 39,387 files, 2.7GB