First Person Shooter

I wanted to start a new programming project and decided to try an FPS. Its still in the early stages of development and I'm not quite sure what to do with it (story, setting, etc..). I'd like to do something with Cold War era espionage; three-quarters role playing, one-quarter shooter, but we'll see. For now I'm focusing on learning to make OpenGL and 3D math work. At the moment, the plan is to develop for Windows only. The game is using OpenGL for the graphics API and OpenAL for audio.


AK-47 Model

This is nothing major; just figured I'd show it here. I've been using Blender for many years and needed to make a weapon for the game. It was modelled using several reference images but mostly this one. Here is an image of it in-game shoulder-fired and also sighted-in. It does kick, the bolt handle cycles, and the firing rate is roughly accurate.




A Good Start

The base of the code came from the NeHe Tutorials and has grown to approx 3500 lines. First, I wrote an MD3 (3D file format) loader function using this specification. The next step was to convince my favorite 3D modelling program, Blender, to export models as MD3 using this MD3 Import/Export script I found on the web. After that it was time learn some texturing (loading from TGA for now) and lighting. From there, an epic battle was waged against transformation matrices to create the familiar mouse-look, ADSW-move FPS movement system. Then I had to learn trigonometry again to write the collision detection code. So far, I haven't made wall-sliding work; for now the player just stops when hitting a wall (or any object). From here, I did a little more math and made the player able to shoot bullets (whose collision positions are used to create bullethole decals). After that, it was obvious that those bulletholes needed some flying debris; so I added a particle system. Then to make things fancy-looking, I made everything shaded by GLSL. At this point, it uses point per-pixel lighting and normal-mapping for that bumpy-surface look.