dagon 0.8.3

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 game development framework for D language. It is a work-in-progress reincarnation of DGL with several architecture improvements. Dagon is based on OpenGL 4.0 core profile, SDL2 and Freetype 2.8.1.

The goal of this project is creating a modern, easy to use, extendable game engine for D due to the lack of such.

Currently Dagon has the following features:

  • Static and animated meshes, OBJ and IQM formats support
  • Textures in PNG, JPG, TGA, BMP, HDR formats
  • Own asset format with Blender exporter
  • Flexible material system with simple user-defined abstract API and different backends. You can implement custom materials, with your own shaders and parameters
  • Physically based rendering (PBR)
  • HDR rendering with auto-exposure (eye adaptation), Reinhard, Hable/Uncharted and ACES tonemapping operators
  • HDRI environment maps support
  • Multiple light sources using clustered forward shading method (variable number of lights per fragment)
  • Spherical area lights
  • Normal/parallax mapping, parallax occlusion mapping
  • Cascaded shadow maps for directional light
  • Dynamic skydome with sun and day/night cycle
  • Particle system with force fields
  • Post-processing (FXAA, lens distortion, motion blur, glow, LUT color grading)
  • 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
  • Built-in camera logics for quick and easy navigation (freeview and first person style view)
  • Box container support for assets.

Screenshots:

Screenshot1 Screenshot2 Screenshot3

Videos:

https://www.youtube.com/watch?v=pxu9sxL9MIM

https://www.youtube.com/watch?v=3_BqgOLCvyE

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:

  • Soft particles
  • Water with reflections and refractions
  • Terrain renderer
  • SSAO
  • Deferred renderer (?)

If you like Dagon, please support its development via PayPal. Thanks in advance!

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

See Tutorials.

License

Copyright (c) 2016-2018 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:
derelict-sdl2, dlib, derelict-gl3, derelict-ft
Versions:
0.8.3 2018-Aug-21
0.8.2 2018-Aug-17
0.8.1 2018-Aug-17
0.8.0 2018-May-24
0.6.0 2017-Dec-04
Show all 16 versions
Download Stats:
  • 0 downloads today

  • 12 downloads this week

  • 24 downloads this month

  • 365 downloads total

Score:
2.3
Short URL:
dagon.dub.pm