-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLibraries.html
1 lines (1 loc) · 6.93 KB
/
Libraries.html
1
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"><title>dagmar_website</title><link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Catamaran:100,200,300,400,500,600,700,800,900"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:100,100i,300,300i,400,400i,700,700i,900,900i"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Archivo+Black"><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Armata"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"><link rel="stylesheet" href="assets/css/styles.min.css"></head><body style="color: rgb(33,37,41);"><section class="d-flex d-sm-flex d-md-flex d-lg-flex d-xl-flex justify-content-center justify-content-sm-center justify-content-md-center justify-content-lg-center" style="width: 100%;height: auto;background: #252424;color: rgb(33, 37, 41);padding-bottom: 10px;min-height: 100vh;margin-bottom: 0px;"><div class="d-sm-flex d-md-flex flex-column align-items-sm-center justify-content-md-center justify-content-xl-start detail_page" style="background: rgb(210,208,208);padding-bottom: 0px;"><header class="d-flex d-sm-flex d-xl-flex justify-content-center justify-content-sm-center justify-content-xl-center align-items-xl-center" style="width: 100%;background: rgba(255,255,255,0);height: auto;position: relative;padding-top: 12px;"><h1 class="d-md-flex justify-content-md-center" style="font-size: 62px;">System Architecture</h1></header><div class="d-flex d-sm-flex d-md-flex d-xl-flex flex-column align-items-center align-items-sm-center align-items-md-center justify-content-xl-start align-items-xl-center" style="width: 100%;padding-top: 10px;height: auto;padding-bottom: 20px;"><div class="d-sm-flex d-xl-flex flex-column justify-content-sm-center justify-content-xl-center align-items-xl-center" style="width: 90%;height: auto;padding-top: 29px;"><p class="text-justify" style="width: 100%;margin-bottom: 0px;"><strong>Libraries</strong><br>During the development process we wanted to avoid using third party libraries wherever possible, with the only possible exception being the editor UI. A full dependency graph is below, with external libraries highlighted in red.<br></p><img src="assets/img/dagmar_arch_trans.png" style="width: 100%;"><p class="text-justify" style="width: 100%;margin-bottom: 0px;">For a more legible view of the engine, we’ve also provided a full list of internal and external libraries and executables.<br><br></p><div style="width: auto;"><div class="table-responsive table-borderless" style="border-style: none;width: 100%;"><table class="table table-bordered"><thead style="border-style: none;background: #b5b5b5;"><tr><th>Engine Libraries</th><th>Use</th></tr></thead><tbody><tr style="height: 40px;"><td style="width: 193px;">Dagmar::Log<br></td><td>Handles multiple logging levels to various output streams</td></tr><tr style="height: 40px;"><td>Dagmar::Filesystem</td><td>Utility library for tracking various important disk locations<br></td></tr><tr><td>Dagmar::PlatformDetector</td><td>Utility library for basic platform reflection</td></tr><tr><td>Dagmar::Renderer</td><td>Contains wrapper classes for buffers, shaders, cameras, and more</td></tr><tr><td>Dagmar::Exceptions</td><td>Provides custom exceptions for an easier debugging experience<br></td></tr><tr><td>Dagmar::Allocator</td><td>Handles some memory allocation and management</td></tr><tr><td>Dagmar::ModuleLifecycle</td><td>Ensures the safe startup and shutdown of singletons</td></tr><tr><td>Dagmar::Resources</td><td>Handles the serialisation, parsing and storage of resources</td></tr><tr><td>Dagmar::EngineConfig</td><td>Parses and stores engine configurations provided by the user</td></tr><tr><td>Dagmar::ECS</td><td>Entity Component System which manages entities in a DOD fashion</td></tr><tr><td>Dagmar::UI</td><td>Contains managers for the window, I/O, and fonts</td></tr><tr><td>Dagmar::Graphics</td><td>Wrappers for meshes, textures, descriptors, etc.</td></tr><tr><td>Dagmar::Components</td><td>Components used in our ECS for attachment to entities</td></tr><tr><td>Dagmar::Systems</td><td>Systems used in our ECS, e.g. Physics, Rendering, Lighting, etc.</td></tr><tr><td>Dagmar::Scene </td><td>Handles the scene graph, and all operations on it</td></tr><tr><td style="width: 255px;">Dagmar::Time</td><td>Tracks various time metrics, both relative and absolute</td></tr><tr><td>Dagmar::Layers</td><td>Handles the dispatching of I/O events, as well as UI rendering order</td></tr><tr><td>Dagmar::Application</td><td>Provides an interface for applications to use the engine</td></tr><tr><td>Dagmar::Voxel</td><td>Manages voxel structures, mesh generations, etc.</td></tr><tr><td>Dagmar::Profiler</td><td>Tracks memory and CPU usage of the system</td></tr><tr><td>Dagmar::Engine</td><td>Links all previous libraries into one interface</td></tr></tbody></table></div><div class="table-responsive table-borderless" style="border-style: none;width: 100%;"><table class="table table-bordered"><thead style="border-style: none;background: #b5b5b5;"><tr><th style="width: 255px;">Common Libraries</th><th>Use</th></tr></thead><tbody><tr><td>Dagmar::Common::Layers<br></td><td>Contains the game layer which is used in both our apps</td></tr><tr><td>Dagmar::Compiler<br></td><td>Used to compile the game from the editor</td></tr></tbody></table></div><div class="table-responsive table-borderless" style="border-style: none;width: 100%;"><table class="table table-bordered"><thead style="border-style: none;background: #b5b5b5;"><tr><th style="width: 215px;">Editor Libraries</th><th>Use</th></tr></thead><tbody><tr><td>Dagmar::Editor::Layers<br></td><td>Layers used solely by the editor</td></tr><tr><td>Dagmar::Editor::ResourceLoader<br></td><td>Loads resources solely required by the editor at startup</td></tr><tr><td>Dagmar::Editor::Application</td><td>Wraps the whole editor application</td></tr><tr><td>Dagmar::Editor</td><td>Main function entry point</td></tr></tbody></table></div><div class="table-responsive table-borderless" style="border-style: none;width: 100%;"><table class="table table-bordered"><thead style="border-style: none;background: #b5b5b5;"><tr><th style="width: 257px;">Game Libraries</th><th>Use</th></tr></thead><tbody><tr><td>Dagmar::Game::Layers<br></td><td>Layers used solely by the game</td></tr><tr><td>Dagmar::Game::ResourceLoader<br></td><td>Loads resources required by the game</td></tr><tr><td>Dagmar::Game::Application</td><td>Wraps the whole game application<br></td></tr><tr><td>Dagmar::Game</td><td>Main function entry point</td></tr></tbody></table></div></div></div></div></div></section><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.bundle.min.js"></script></body></html>