Darkplaces engine

From Blood Wiki
Revision as of 15:21, 27 July 2012 by VorteX (Talk | contribs)

Jump to: navigation, search

DarkPlaces game engine encompasses more than 10 years of research and development in the field of real-time game engine technology by Forest "LordHavoc" Hale and Rudolf "divVerent" Polzer.

Based off GPL GLQuake engine source code released by id Software, DarkPlaces Game Engine is one of the most solid and robust 3D engines available. It lets you to unleash your creative potential at virtually no cost. Being an open source 3D game engine under the GPL license, it only requires you to credit its creator and share the fixes and new implementations you might have made for your application or game.

This is rough feature overview written by Forest "LordHavoc" Hale.

Basic features

  • Supported Platforms: Windows, Mac OS X, Linux
  • Future Platforms: iOS, Android (in development).
  • SIMD optimizations: SSE, SSE2.
  • Support for 32-bit and 64-bit architectures for Windows, Mac OS X and Linux.
  • Statistics and debugging features for tracking memory usage, textures, models and other assets.
  • Fully automated save/restore game system as part of the QuakeC Virtual Machine.
  • Compressed zip archive loading and automatic downloads via CURL library.
  • BlindID user hash generation for online leaderboards.

Renderer

  • API supported: Direct3D 9 Shader Model 3 (in development), OpenGL (all versions), OpenGL ES 2.0, and software rasterizer.
  • Broad range of performance and tuning options allow the renderer to work on very old and new video cards.
  • 64-bit Color HDR Rendering.
  • Anti-aliasing and coverage sampling.
  • OpenGL Quad-Buffer Stereo 3D rendering.
  • NVIDIA 3D Vision / NVIDIA Surround / NVIDIA 3D Vision Surround compatible (Direct3D 9 only).
  • NVIDIA SLI compatible.
  • AMD CrossFire compatible.
  • Dynamic per pixel lighting with shadowmaps or stencil shadow volumes
  • Photon-mapping global illumination (static or dynamic).
  • Compiled lightmaps with bump and specular features.
  • Normal mapping and Specular mapping with per-pixel hardness.
  • Offsetmapping and Reliefmapping.
  • sRGB tonemapping.
  • Deferred lighting.
  • Glow textures.
  • Support for Quake 3 Arena 'shaders'.
  • Customizable particle system (effectinfo files as well as QuakeC scripting).
  • Motion blur.
  • Normal mapped environment cubemap reflections.
  • Dynamic water reflection and distortion effects and Fresnel factor.
  • Decal system with support for animated models.
  • Quake bsp and Quake 3 Arena bsp level support.
  • Skeletal model formats supported: IQM (recommended to use), DPM (compiled from HL2 SMD files or Doom 3 MD5 files), Unreal PSK/PSA.
  • Non-Skeletal Model: Quake MDL, Quake 2 MD2, Quake 3 MD3, OBJ.
  • Textures: DDS, TGA, PNG, JPG, PCX.

Physics

  • Open Dynamics Engine for real-time physics simulations of rigid bodies, cloth (in development), ragdolls (in development).
  • Internal Quake physics with advanced high-performance collision engine (swept-box collisions and trimesh support, Bounding Interval Hierarchy culling technology).

Scripting

  • Powerful high performance scripting language QuakeC (similar to C language syntax) supports server side, client side and menu GUI scripting. Such features as Portal rendering (indoor), Model Level of Detail (LOD) system, clutter objects, impostors, seamless world, advanced AI, advanced in-game GUI, procedurally generated levels and many other features can be achieved entirely in script.
  • Virtual machine with full state saving/restoring and networking as basic features.
  • QuakeC supports localized multilingual text, and automatic console variable access.
  • Graphic User Interface
  • TTF and OTF fonts support (using Freetype library).
  • Unicode (UTF8) support.
  • Built-in support for standard .po translation files for localization of text.
  • Advanced menu and in-game GUI creation via QuakeC.

Sound

  • OGG Vorbis (for sounds as well as music), WAV and CD Audio playback.
  • Doppler and pitch shifting effects (achievable through QuakeC scripting).

Input Devices

  • PC/Mac keyboards and mice.
  • Xbox 360 gamepad.
  • Standard PC joysticks and gamepads.
  • Multi-touch screens (in development).

Network

  • Advanced networking protocol with distance-based priority system allowing thousands of entities visible at once.
  • QuakeC code can provide custom networking for even more optimal bandwidth usage and prediction.
  • Automatic zip archive downloads via CURL library as specified by game server.
  • Automatic Client Side QuakeC code download when playing on modified servers.
  • Server-side traceline culling to block wallhack cheats.

Tools

  • Compatible with NetRadiant level editor.
  • Blender and other modeling apps have various ways to get content into the engine (IQM, SMD from HL2 exporters, Unreal PSK/PSA files, md5mesh+anim can be converted as well).
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox