Game framework for D
To use this package, put the following dependency into your project's dependencies section:
Dagon is a 3D game development framework for D. It is a work-in-progress reincarnation of DGL with several architecture improvements. Dagon is based on OpenGL 3.3 core profile, SDL2 and Freetype 2.7.1.
Currently 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 user-defined abstract API and different backends. 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)
- Spherical area lights
- Normal/parallax mapping, parallax occlusion mapping
- Cascaded shadow maps
- Optional physically based rendering (PBR)
- Dynamic skydome with sun and day/night cycle
- Particle system with force fields
- RTT, 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
- Built-in camera logics for quick and easy navigation (freeview and first person style view)
- Box container support for assets.
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.
- Particle materials, soft particles
- Water with reflections and refractions
- Terrain renderer
- Camera motion blur
Dagon is known to work on Windows and Linux (and should run under OSX as well, though not well tested). 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.
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.
Not available yet, sorry.
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).