Tank Attack (beta)
Drive in grasslands, ice and snow, or the desert while trying to destroy your enemies before they destroy you! (N.B. This is still a beta, some assets need to be added and visuals modified)
The Nerdy Bit!
This is a C++ game rendered using DirectX 10. The sound is in 3D and uses the FMOD sound library. Tank attack is multithreaded in order to spread the load of the game calculations while techniques such as frustum culling and level of detail are used to keep rendering times down to a minimum.
Some parts of this project involved a fair amount of experimentation by me and so it has grown a little out of hand. For this reason I have some code changes and bits of refactoring that I plan on implementing:
Shader and model factories: Currently each instance of certain classes (e.g. the tanks) load their own individual models and shaders from a file. This is quite time consuming and as the models never change it would seem sensible to have a factory class which loaded and stored these models to be quickly retrieved for later use
Ambient Occlusion: This shader currently analyses the depth buffer and generates an ambient occlusion effect for the whole screen. This is quite a GPU hungry process. As the occlusion effect is quite soft it should be possible to render a downscaled depth buffer to a texture and process this smaller image thus reducing the graphics card’s workload.
Menus: This problem keeps cropping up; Menus are messy to program! For this reason I shall be writing a small GUI library myself which I can hopefully put into TankAttack and clean up the code a lot.
This is a small asteroids clone which I put together using C++ OpenGL.
The Nerdy Bit!
As mentioned above, this is a C++ application which uses OpenGL to render the graphics. The following libraries have also been put to use:
DevIL – Used to load PNG images as textures
Fmod – Used for all of the audio
amBX – To add some special effects for those with amBX kits.