-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathECS.html
1 lines (1 loc) · 3.83 KB
/
ECS.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;">ECS</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;"><img src="assets/img/ecs_pic.png" style="width: 100%;"><p class="text-justify" style="width: 100%;margin-bottom: 0px;">The entity component system has been created specifically for the engine, aiming for a fast and cache-friendly approach.<br><br>The entities are the "objects" in the scene, internally stored as a unique ID. This ID is used to find a mapping between an entity and a component. A component is a simple structure which is usually defined as a struct with various data fields. The component information is laid out in memory in a contiguous manner for a fast retrieval of data. The entities and the components are managed by a coordinator, which keeps track of all the component arrays (storage for the components data) and the two-way mapping between entities and their components.<br><br>Within the coordinator, there is a system manager which controls multiple systems. A system is a construct that has access to entities that have a specific set of components, through a binary signature. The signature of an entity represents which components it contains. This signature is used to retrieve the entities that have at least the components required by the system. The cache optimization consists of storing the components in continuous memory such that when iterating over entities from a system, components from consecutive entities will be close in memory, with a high chance of being retrieved in the same cache line.<br><br>The entity component system is the core organizational component of the engine, and thus, the engine's performance is enhanced by its optimizations.<br></p></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>