Dagon is a 3D game development framework for D language based on OpenGL 4.0 core profile, SDL2 and Freetype 2.8.1.
The goal of this project is creating a modern, easy to use, extendable game engine for D due to the lack of such.
Please keep in mind that Dagon is still under development and not production-ready. Follow Dagon development on Trello to see priority tasks.
To see what Dagon is capable to at the moment, check out the demo application or watch the video:
Features
Note: the following list includes features from current development branch
Static and animated meshes, OBJ and IQM formats support
Textures in PNG, JPG, TGA, BMP, HDR formats
Own asset format with Blender exporter
Flexible material system with simple user-defined data model (interface) and shaders (backend). You can implement custom materials, with your own shaders and parameters
Deferred pipeline for opaque materials, forward pipeline for transparent materials and materials with custom shaders
Physically based rendering (PBR)
HDR rendering with auto-exposure (eye adaptation), Reinhard, Hable/Uncharted and ACES tonemapping operators
2D canvas framework that renders vector shapes - lines, Bézier curves, rectangles, circles, arcs, triangles, and polygons
Keyboard, mouse, joystick input, Unicode text input
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)
Dagon is distributed under the Boost Software License, Version 1.0. You are free to use, copy, modify and redistribute Dagon, even in closed-source products. The only requirement is to keep the license and copyright notice in all source code copies.
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 one-time donation via PayPal. Thanks in advance!
Sponsors and Contributors
Big thanks to these awesome people for supporting Dagon: Rafał Ziemniewski, Kumar Sookram, Aleksandr Kovalev, Robert Georges, Jan Jurzitza (WebFreak), Rais Safiullin (SARFEX).
Dagon was created by Timur Gafarov and contributors: 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.