I finally watched the video and I thought it was funny what he said about only testing certain levels over and over, and never actually playing the whole game. I do that with a lot of projects I've worked on too...heck, I've never even played Nexuiz... ¬_¬
Thanks. And its a faster technique than raycasting?
Raycasting is done with BOTH. BSP is a method of looking up what the cast rays intercept while consuming less memory than the straight map lookup that Wolf3D uses. Wolf3D uses a 64 by 64 map for each level; while raycasting, it turns the ray position into an index into the map to see if anything was hit. A 64 by 64 map like Wolf3D's uses 4KBytes of memory. It also constrains everything to blocks. When he moved to Doom, Carmack got rid of the map and went to full coordinates for things in the level, constrained to 65536 by 65536. If you made that a table, it would take 4 GBytes of memory - way too much for computers of the time (even today it would be silly to use a 4 GByte table). Instead of making a table of every possible location, you have a linked list that holds everything and where it is. There are many different ways you can build lists, and some are faster to look through than others. BSP is a method of putting things into a list such that you can quickly go through said list to find what's at a particular location. And THAT is what Doom does to look up what is where the ray currently is while raycasting rather than a table like Wolf3D.
A simple table lookup like Wolf3D is much faster, but consumes too much memory or limits you to small, blocky levels. BSP is slower than a table, but consumes far less memory, allowing for far bigger levels not constrained to blocks. So it all depends on what you want to do, and what limits you are willing to live with.
Edited by Chilly Willy, Tue May 15, 2012 6:04 PM.