Game framework for D
To use this package, put the following dependency into your project's dependencies section:
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 (variable number of lights per fragment using spatial hashing)
- Normal/parallax mapping
- Shadow maps
- 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 autimatically reloaded when the file is modified with external application
- 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.
- PBR, IBL
- Dynamic skydome
- Water with reflections and refractions
- Camera motion blur
Dagon is based on OpenGL 1.3 + a number of common extensions, and should run virtually on any hardware. Currently we are not considering implementing OpenGL 3.x/4.x renderer or adding Vulkan support.
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 in 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).