As many of you already know we switched the whole map system of the Half Life engine to something else. This update is there to tell you about the basic changes to in game maps.
We are now using VBOs (Vertex Buffer Objects) to boost performance due to loading an increased amount of polygons. Vertex Buffer Object is an OpenGL extension that provides methods for uploading data (vertex, normal vector, color, etc) to the video device for non-immediate-mode rendering.
The most notable change due to this system is that we no longer use standard Half Life BSP files for our maps. While these files are still necessary to get the map recognized by the game itself and added to the map list, we are only using blanks. Meaning the BSP files are all an empty box with no entities at all. Instead of BSP files we are now using model files in the OBJ format.
OBJ files are used to represent 3D geometry data in form of the position of each vertex, the UV position of each texture coordinate vertex, normals, and the faces that make each polygon defined as a list of vertices, texture vertices, and normals as well as material settings. Therese material settings can be used to give certain material properties to in game objects allowing them to be rendered differently. You can set things like defuse colors, specular lighting terms, etc.
Due to these changes we were able to make the quality of the maps a lot better. So instead of being limited by standard Half Life BSP file limits which were round 2000 visible brushes, we now have a max limit of 70,000 polygons which allows us to make terrain a lot smoother and more detailed than standard Half Life ever could.
Using this system also allows us to use other benefits of modeling such as normal maps for an even higher quality of the textures on the maps.
With the maps more detailed and since we lost the restrictions of the old BSP file format we were able to drastically increase the size of the maps themselves. While the old system allowed the maximal size of a box map to be ( 8192 x 8192 x 8192 ) we are now facing an unlimited size in the maps. Meaning that the only limit is how far the player is actually prepared to fly. So you can fly in a direction for 3 hours and you'd still be going forward if you wished to.
Of course the new format also has its own limitations. Since the entire OBJ model is rendered at once on the graphics card this means that no matter where you are the entire map is being rendered at once. Meaning that even if we can move into one direction for a long time we would reach the end of the map due to the polygon limit. So we decided that the mappers themselves would have to limit the maps by using a box or other shape, in combination with the XSPR files featured in an earlier update to get certain animated texture effects.