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.
- Static and animated meshes, OBJ and IQM formats support
- Textures in PNG, JPG, TGA, BMP, HDR, DDS formats
- Own asset format with Blender exporter
- 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
- 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, lens distortion, motion blur, glow, LUT color grading)
- UTF-8 text rendering using TTF fonts via Freetype
- GUI and 2D graphics based on Nuklear. Canvas framework that renders vector shapes
- Keyboard, mouse, joystick input
- Unicode text input
- Ownership memory model
- Entity-component model
- Built-in camera logics for quick and easy navigation (freeview and first person style view)
- Box container support for assets
- Built-in physics engine.
Planned in future:
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).
Daniel Laburthe, Rafał Ziemniewski, Kumar Sookram, Aleksandr Kovalev, Robert Georges, Jan Jurzitza (WebFreak), Rais Safiullin (SARFEX), Benas Cernevicius, Koichi Takio.
Made with Dagon
- dagon-sandbox - a test application that demonstrates some of Dagon's features
- dagon-newton - Newton physics demo
- Dagoban - a Sokoban clone
- dagon-shooter - a shooter game
Patreon subscribers get more! Become a patron to get access to the Patreon Sponsor Folder that is regularly updated with new examples and demos. All code is BSL-licensed and can be shared freely.
- Registered by Timur Gafarov
- 0.12.0-beta1 released 6 days ago
- Sub packages:
- dagon:ftfont, dagon:nuklear, dagon:newton, dagon:physics, dagon:iqm, dagon:init-exec
0.12.0-beta1 2021-Sep-13 0.11.0 2020-Oct-20 0.11.0-beta2 2020-Oct-10 0.11.0-beta1 2020-Oct-07 0.11.0-alpha3 2020-Oct-07
- Download Stats:
0 downloads today
6 downloads this week
23 downloads this month
1365 downloads total
- Short URL: