dagon 0.4.0

Game framework for D


To use this package, put the following dependency into your project's dependencies section:

dub.json
dub.sdl

Build Status DUB Package DUB Downloads License

Dagon

Dagon is a 3D/2D game development framework for D. It is a work-in-progress reincarnation of DGL with several architecture improvements. Surrently Dagon has the following features:

  • Static and animated meshes, OBJ and IQM formats support
  • Textures in PNG, JPG, TGA, BMP formats
  • Flexible material system with simple abstract API and different backends (for example, fixed pipeline or GLSL-based). You can implement custom materials, with your own shaders and parameters
  • Clustered forward shading (world space XZ plane light indexing, variable number of lights per fragment)
  • Normal/parallax mapping
  • Cascaded shadow maps
  • Dynamic skydome with sun and day/night cycle
  • Particle system with force fields
  • Post-processing filters (FXAA, lens distortion)
  • UTF-8 text rendering using TTF fonts via Freetype
  • Ownership memory model - every object belongs to some object (owner), and deleting the owner will delete all of its owned objects. This allows semi-automatic memory management - you have to manually delete only root owners
  • Entity-component model that allows game objects behave differently and combine many behaviours
  • Scene management. Any scene has its own assets, entities and logical context
  • Live asset reloading - asset can be automatically reloaded when the file is modified with external application
  • Box container support for assets.

Screenshot1

Dagon is still under development and lacks a lot of important functionality. Currently it is not recommended to use Dagon in production due to unstable API.

Upcoming plans:

  • Port the engine to OpenGL 3.3 - see gl33 branch
  • PBR, IBL
  • Water with reflections and refractions
  • Terrain renderer
  • SSAO
  • Camera motion blur
  • Bloom

Known problems

For historical reasons, Dagon is based on OpenGL 2.1. But some functionality (BlinnPhongBackend and ClusteredBlinnPhongBackend) uses OpenGL 3.x level features via GLEXTgpu_shader4 extension (like integer samplers, direct texel fetches, sampler2DArrayShadow). It works correctly only on NVIDIA cards. Currently we are porting Dagon to core OpenGL 3.3, and soon it will support wider range of graphics hardware.

Prerequisites

Dagon is known to work on Windows, Linux, FreeBSD and OSX. To use Dagon, a number of libraries should be installed, namely SDL2 and Freetype. If you don't have them installed system-wide (which is a common case on Windows), you can use the libraries provided here. Currently we provide libraries only for Windows and Linux. Download an archive for your system and place the lib folder to your project's working directory. Dagon will automatically detect and try to load them. If there are no local libraries in lib directory, it will use system ones.

Demos

A test application that demonstrates Dagon's features is hosted here. If you are starting from scratch, we recommend to use it for learning purposes.

Documentation

Not available yet, sorry.

License

Copyright (c) 2016-2017 Timur Gafarov. Distributed under the Boost Software License, Version 1.0 (see accompanying file COPYING or at http://www.boost.org/LICENSE10.txt).

Authors:
Timur Gafarov
Dependencies:
dlib
Versions:
0.4.0 2017-Sep-10
0.3.0 2017-Sep-07
0.2.0 2017-Aug-11
0.1.1 2017-Jun-08
0.1.0 2017-Jun-08
Show all 9 versions
Download Stats:
  • 1 downloads today

  • 1 downloads this week

  • 26 downloads this month

  • 62 downloads total