
Instructions on how to arrange the binary, BSP, WAD files so that you can run the level viewer application is provided in the “Using the Code” section below. This is what I did and then simply performed a search for BSP and WAD file extensions in my Half Life game install directory. You can get the Half Life 1 game (for only $9.99) from Valve at. These files are the intellectual property of Valve and so to obtain them for use in this viewer application you will need to purchase the game from Valve. Also please note that this project does not include any Half Life BSP or WAD files. Note that I have no affiliation whatsoever with either Valve or Id, and that I created this rendering application all on my own. But all of the information for entity and model animation resides in the BSP files and anyone with interest should be able to add these animations using this source code as a starting point. This application does not do any animation and so doors don’t open and elevators don’t move. If it is true that Half Life 2 levels use an extended version of the older BSP files than someone should be able to take this source code and likewise extend it to render these newer level files.

However, I believe that the newer Half Life 2 environments still use BSP files that are extended for the newer rendering features (but I haven’t looked into this in any great detail). This application currently only loads and renders Half Life levels. I had a lot of fun writing this application and it occurred to me that others who are interested 3D game development might find the source code useful in learning about 3D rendering. Dobbs magazine while working at Id to be very illuminating. In particular I found the Michael Abrash articles that he wrote for Dr. I mainly used information and articles I found on the web about Quake 2, Half Life, WAD and BSP files. So I decided to attempt to write a rendering engine that would render existing game levels. Since I am a developer and not an artist I didn’t have the skills to create my own models, levels, and textures. At the same time I found myself in between jobs and so I embarked on an effort to learn about 3D rendering with the goal of creating my own 3D rendering engine.

A few years ago I became interested in first person shooter games and in particular how the world levels are created and rendered in real time.
