3D game engine for D
To use this package, run the following command in your project's root directory:
Put the following dependency into your project's dependences section:
<img align="left" alt="dagon logo" src="https://github.com/gecko0307/dagon/raw/master/logo/dagon-logo-320.png" width="100" style="vertical-align:top" />
The goal of this project is creating a modern, easy to use, extendable 3D game engine for D language. Dagon is based on OpenGL 4.0 core profile. It works on Windows and Linux, both 32 and 64-bit.
The engine 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. Follow development on Trello to see priority tasks.
Dagon uses modern graphics techniques and so requires quite powerful graphics card. At least Turing-based NVIDIA cards are recommended (raytracing support is not required though). Main development and testing is done on GeForce GTX 1650.
Important message to users of Dagon due to the 2022 Ukraine crisis
I, Timur Gafarov, creator and maintainer of Dagon, live in Russia. The current political situation can lead to catastrophic consequences, up to the disconnection of all Russian developers from the world community for undefined period, which will seriously affect the projects in which they are actively involved. I hope these fears don't come true, but in case of the worst scenario, I will not be able to participate in the development of Dagon and manage its package in Dub registry. It is also not clear yet whether I will be able to receive funding through Patreon, PayPal and other financial platforms.
Therefore, I strongly discourage using Dagon as a critical dependency in important software products until the situation improves and there is confidence in the future for Russian developers.
- Static and animated meshes, glTF, OBJ and IQM formats support
- Textures in PNG, JPG, DDS, HDR, TGA, BMP, GIF, PSD formats
- Deferred pipeline for opaque materials, forward pipeline for transparent materials and materials with custom shaders
- Physically based rendering (PBR)
- HDR rendering with Reinhard, Hable/Uncharted, ACES and Filmic tonemapping operators
- HDRI environment maps. Preconvolved DDS cubemaps
- Directional lights with cascaded shadow mapping and volumetric scattering
- Spherical and tube area lights, spot lights
- Normal/parallax mapping, parallax occlusion mapping
- Deferred decals with normal mapping and PBR material properties
- Dynamic skydome with sun and day/night cycle
- Particle system with force fields. Blended particles, soft particles, shaded particles with normal map support, particle shadows
- Terrain rendering. Procedural terrain using OpenSimplex noise or any custom height field
- Water rendering
- Post-processing (FXAA, SSAO, DoF, lens distortion, motion blur, glow, color grading)
- UTF-8 text rendering using TTF fonts via Freetype
- GUI and 2D graphics based on Nuklear. 2D canvas framework that renders vector shapes
- Keyboard, mouse and joystick input. Input manager with abstract bindings and file-based configuration
- Unicode text input
- Ownership memory model
- Entity-component model
- Built-in camera logics for easy navigation: freeview and first person views
- Box container support for assets
- Physics using Newton Dynamics.
Planned in future:
- Screen-space reflections.
The recommended way to start using Dagon is creating a game template with
dub init. Create an empty directory for the project, cd to it and run the following:
dub init --type=dagon dub build
On Windows runtime dependencies are automatically deployed if you are building with Dub. On other platforms you have to install them manually.
Copyright (c) 2016-2021 Timur Gafarov, Rafał Ziemniewski, Mateusz Muszyński, Björn Roberg, dayllenger. Distributed under the Boost Software License, Version 1.0 (see accompanying file COPYING or at http://www.boost.org/LICENSE10.txt).
Jan Jurzitza (WebFreak), Daniel Laburthe, Rafał Ziemniewski, Kumar Sookram, Aleksandr Kovalev, Robert Georges, Rais Safiullin (SARFEX), Benas Cernevicius, Koichi Takio, Konstantin Menshikov.
Made with Dagon
- Electronvolt - work-in-progress first person puzzle based on Dagon
- dagon-sandbox - a test application that demonstrates some of Dagon's features
- Dagoban - a Sokoban clone
- dagon-shooter - a shooter game
Patreon subscribers get more! Become a patron to get access to the Patreon Sponsor Folder with additional examples and demos. All code is BSL-licensed and can be shared freely.
- Registered by Timur Gafarov
- 0.13.0 released 7 months ago
- Sub packages:
- dagon:stbi, dagon:ftfont, dagon:nuklear, dagon:newton, dagon:iqm, dagon:init-exec
0.14.1 2022-Aug-30 0.14.0 2022-Aug-27 0.13.0 2022-Mar-02 0.12.1 2021-Oct-28 0.12.0 2021-Oct-10
- Download Stats:
0 downloads today
2 downloads this week
18 downloads this month
1783 downloads total
- Short URL: