Home Features Download Getting Started Tutorials Contributing Sponsorship

Dagon Engine

Dagon is an Open Source 3D game development framework based on OpenGL 4.0 core profile and SDL2. The goal of this project is to create a modern, easy to use, extensible 3D game engine for D language. Dagon currently works on Windows and Linux.

The engine is still under development and lacks many important features. It is currently not recommended to use Dagon in production due to API instability. Follow the development on Trello to see the priority tasks.


Eevee VS Dagon

Dagon uses modern graphics techniques and so requires a fairly powerful graphics card to run. Turing-based NVIDIA cards are recommended (although ray tracing support is not required). The engine is only desktop, support for mobile and web platforms is not planned. Dagon works on Windows and Linux.


Latest source tarball can be downloaded from GitHub releases page.

You can also add Dagon as a dependency to your DUB project:

dub add dagon


Getting Started

Assuming you have installed the D language toolchain, the recommended way to start using Dagon is to create a game template with "dub init". Run the following in an empty directory:

dub init --type=dagon
dub build

By running a template application you should see a sample scene with a plane and a cube. You can then modify the generated dub.json file to suit your needs.

Installing Runtime Dependencies

Dagon depends on the following shared libraries:

The only mandatory dependency is SDL, the others belong to the corresponding extensions.

Runtime dependencies are automatically deployed on 64-bit Windows and Linux. On other platforms, you will have to install them manually.


Dagon has a number of tutorials on GitHub wiki (not all are complete):

  1. Simple Application
  2. Textures
  3. Normal maps
  4. Light Sources
  5. Environment Maps
  6. PBR
  7. First Person Camera
  8. Procedural Sky
  9. Post-processing
  10. Physics
  11. Loading glTF Assets
  12. Particles
  13. Custom Shaders
  14. Input Manager
  15. Terrain
  16. Decals
  17. Character Controller
  18. Nuklear GUI
  19. 3D Sound
  20. Animation
  21. Raycasting
  22. Vehicle Simulator

Corresponding examples can be found here.

Additional examples can be found in Patreon Sponsor Folder which is now available to everyone.

Known Issues and Limitations


If you want to contribute code to Dagon, send pull requests to the project repository. Please, read Contributing Guidelines first.

Found a bug? Please, create an issue here.

Dagon was created by Timur Gafarov, Rafał Ziemniewski, Mateusz Muszyński, Björn Roberg, dayllenger, my-ijet.

Also thanks to Lawrence Aberba, Andrey Penechko, Robert Schadek, RUSshy, isaacs-dev for PRs and bug reports.


If you like Dagon, please support its development on Patreon and get a reward depending on your donation amount. Supporters who donate $10 and more will be listed on this page as Sponsors. You can also make a donation via PayPal and NowPayments.

Big thanks to these awesome people for supporting Dagon: Daniel Laburthe, Rafał Ziemniewski, Kumar Sookram, Aleksandr Kovalev, Robert Georges, Jan Jurzitza (WebFreak), Rais Safiullin (SARFEX), Benas Cernevicius, Koichi Takio, Konstantin Menshikov.

Cryptocurrency & Bitcoin donation button by NOWPayments


Copyright (c) 2016-2024 Timur Gafarov, Rafał Ziemniewski, Mateusz Muszyński, dayllenger, Konstantin Menshikov, Björn Roberg, Isaac S., ijet. Distributed under the Boost Software License, Version 1.0 (see accompanying file COPYING or at https://www.boost.org/LICENSE_1_0.txt).

Fork me on GitHub