< Back to Volatile Dove main page

VOLATILE DOVE ENGINE



A minimal, open-source, C++ 2D (and a bit of 3D) video game library for Windows (Vista/7/8/10), Linux, and the Windows Store. Supports OpenGL and DirectX. Supports both X86 and X64 architectures, and also ARM (for Windows Store) (Note: this latter has not been tested for a while).

(github)

The code is available on GitHub with a ZLib license (mostly ZLib actually, see LICENSE.txt), So you can use it freely for any purpose, even commercial.
Using it for Good, not Evil, would be appreciated, though.

Use the source, Luke!

To build a new application, the simpler way is to use one of the example programs provided with the sources, but if you want to build a new Visual Studio (or other) project from scratch, see How to compile below. Note that the code is provided as sources i.e. without a library link, to make it easier to integrate and more customizable for your needs.

TUTORIALS

  A Hello World tutorial

FEATURES

The engine supports (non exhaustive list):

  • PNG (32 bits RGBA) file support
  • 2D scene features
    • Sprites with scaling, rotation, bounding boxes,...
    • Bitmap fonts and text rendering
  • Input management
    • Keyboard
    • Mouse
    • XBox 360 joystick
    • Touchscreen (semantic zoom on the Windows Store)
  • Utility tools and functions
    • File read/write wrappers
    • Logging utilities
    • String management utilities
    • Multidimensional buffers
    • Memory pool
    • Data compression/uncompression utility (except for Windows Store)
  • 3D scene
    • Camera
    • Cube
    • Sphere
    • Fast rendering of arbitrary polygons (with arbitrary colors, texture coordinates, and normals) using Vertex Buffer
    • Shaders (GLSL and HLSL) included
  • Minimal network functions
  • Minimal (experimental) pathfinding functions
  • Minimal Steamworks SDK integration (basic integration + achievements)

HOW TO CREATE AND MAINTAIN A NEW PROJECT (THE EASY WAY)

HOW TO ADD STEAMWORKS INTEGRATION (THE EASY WAY)

Add the path of your Steam SDK (e.g. "c:\Steam SDK - FooBar") as a value for steam_sdk_path= in setup.ini.
Run again generate_project.pl on your project.
Create a file named steam_appid.txt in the working directory (WorkDir/), with as text content your AppId number.

HOW TO CREATE A NEW PROJECT FROM SCRATCH (THE MASOCHIST WAY)

  Follow the link...

When compiling, you have to add one of the following preprocessors define, to define the target environment:

HOW TO ADD STEAMWORKS INTEGRATION (THE MASOCHIST WAY)

On Windows:

[...] to be replaced by the path to the Steam SDK.

On Linux:

[...] to be replaced by the path to the Steam SDK.