Original title:
Komponentní systém pro herní grafický engine
Translated title:
Graphic Engine Based on Entity Component System
Authors:
Polášek, Tomáš ; Matýšek, Michal (referee) ; Španěl, Michal (advisor) Document type: Bachelor's theses
Year:
2017
Language:
cze Publisher:
Vysoké učení technické v Brně. Fakulta informačních technologií Abstract:
[cze][eng]
Cílem této bakalářské práce je návrh a implementace knihovny pro správu entit, která umožňuje vývoj pomocí Entity-Component-System paradigmatu. Součástí práce je analýza aktuálního stavu návrhu software, z pohledu vývoje her a rozbor dnes používaných technik pro práci s entitami včetně srovnání jejich výhod a nevýhod. Následně se práce zabývá důvody, proč tuto metodu návrhu používat a jakým způsobem využití kompozice ovlivňuje výkon aplikací, ve vztahu k hardwarové architektuře moderních počítačů, se zaměřením na paměťovou hierarchii. V práci je dále navržen entitní systém, který umožňuje dynamickou kompozici entit za běhu aplikace z předem definovaných komponent. Výsledný systém je navržen s ohledem na snadnou paralelizaci vykonávaných akcí a umožňuje uživatelské rozšíření ve směru datových struktur k uchovávání komponent. Výsledkem této bakalářské práce je multiplatformní knihovna pro programovací jazyk C++ , pojmenovaná Entropy , která vývojářům zpřístupňuje návrh aplikací pomocí ECS paradigmatu.
The goal of this bachelor thesis is the design and implementation of a library for entity management which allows software development using the Entity-Component-System paradigm. Analysis of the current state of software design is presented, including comparison of techniques used for entity representation. Potential advantages of composition are discussed from the hardware point of view, primarily based on the memory hierarchy found in modern computers. Thesis proposes design of an entity system, using the ECS paradigm, which allows dynamic composition of entities during runtime of application from predefined components. The resulting system is designed to allow for easy parallelization of performed actions and user customizability of component data structures. The result of this bachelor thesis is a C++ multi-platform library, named Entropy , which enables its users to design applications using the ECS paradigm.
Keywords:
C++; Component system; Composition; Data-oriented design; ECS; Entity-component system; Entity-component-system; Game design; Parallelism; C++; Data-oriented design; ECS; Entitní systém; Entity-Component-System; Komponentní systém; Kompozice; Návrh her; Paralelismus
Institution: Brno University of Technology
(web)
Document availability information: Fulltext is available in the Brno University of Technology Digital Library. Original record: http://hdl.handle.net/11012/69663