This is V1.2c tech demo of my racing game called Driving Speed.
Due to being under constant development there are still some bugs etc... but the demo can be found here:
I've been working on this game for a few years now in my spare time (I only have about 6-12 spare hours max per week) with myself as the only programmer and will continue its development until its complete. The cars in these screenshots were kindly built for me by a professional 3d modeller. At the moment the tracks are usually conversions from add-ons for other racing games. Some exclusive tracks for the game will come in the near future.
Developed with VC++ the graphics engine is using DirectX 9.0 and will run on cards with pixel-shader support, with plans to support older cards with fallback shaders.
NOTE that not all these listed features are enabled in the demo.
The car rendering features:
- Per pixel soft edge shadows that pass over the cars surface with diffuse and specular occlusion.
- Dynamic soft edge shadows cast from cars, and varying intensity (darker closer to the car) to simulate global illumination with multiple LODs.
- Fresnel reflection and real-time dynamic environment mapping so surrounding objects and scenery are seen in the cars reflection. (Achieved by a highly optimized culling / rendering system and multiple LODs for environment map rendering)
- Metallic paint shading that simulates the reflection from tiny metallic flakes in the paint.
- Hemispherical ambient light.
- Realistic glass shading for the windows.
- The customizable LODs speed rendering and allow up to 12 cars in view at one time while still maintaining a high frame rate. A car's LOD is determined using its projected size based on the camera's field of view rather than distance so that its possible to have a distant trackside camera zoom in on any car and see it in high detail.
- Specular bloom post processing effect.
- Basic prelit scene, diffuse and global illumination.
- Atmospheric attenuation.
- Track specular with specular maps.
- Track specular occlusion from shadows.
- The car physics model is rather complex with too many parameters to list here, it provides a very realistic driving experience, months of work on the tyre physics formulas that use dynamic friction curves that change shape at runtime based on various parameters from the tyre state.
- Each car has its own weight distribution, engine torque curves to accurately reflect engine power at various RPM, a gearbox with a configurable number of gears and ratios, a final drive ratio (limited slip differential). For example a higher ratio diff can be used on a car to achieve faster acceleration and quarter mile times with the expense of top speed.
- Engine sounds are created by a custom sound tool that supports combining multiple sound files at various pitches and frequencies that are cross faded at run-time depending on engine load and RPM.
- Dynamic skidmarks.
- Smoke, sand and grass particles.
- Support for configurable keyboard, joystick/wheels including controller dead zones.
- Artificial Intelligence for the opponent cars that also run on full physics.
- Lap times, best lap, total race time, car positions.
- A user interface library and editor is used for rapid development of game screens.
- Quick race and arcade modes.
- Drag racing mode.
- Circuit racing and point to point.