Možnosti návrhového vzoru Entity-Component-System: případová studie
Thesis title in Czech: | Možnosti návrhového vzoru Entity-Component-System: případová studie |
---|---|
Thesis title in English: | Exploring Options of Entity-Component-System Design Pattern: A Case Study |
Key words: | návrhový vzor|Entity-Component-System|počítačové hry|simulace|případová studie |
English key words: | design pattern|Entity-Component-System|computer games|simulation|case study |
Academic year of topic announcement: | 2021/2022 |
Thesis type: | Bachelor's thesis |
Thesis language: | čeština |
Department: | Department of Software and Computer Science Education (32-KSVI) |
Supervisor: | Mgr. Pavel Ježek, Ph.D. |
Author: | Petr Kotáb - assigned and confirmed by the Study Dept. |
Date of registration: | 04.05.2022 |
Date of assignment: | 05.05.2022 |
Confirmed by Study dept. on: | 31.07.2023 |
Opponents: | Mgr. Vojtěch Černý |
Guidelines |
Certain simulation games, a genre of video games focusing on replication of real-work activities, can make use of an ability to simulate thousands of game entities in real-time allowing a player to experience an emergent gameplay. Object-oriented approach for the implementation of such simulations has been proven to be underperforming on modern computers as frequent cache misses stalls the CPU limiting the number of entities that can be run interactively. One possible solution is to use Entity-Component-System design pattern, which requires splitting a game world into entities and components upon which systems can operate sequentially during game update thus minimizing cache misses in the process. However, in practice such a division can be problematic as systems may need to iterate over different subsets of data and the pattern favors unified entity behaviors to diversity. Goal of this thesis is to empirically evaluate the use of Entity-Component-System (ECS) by designing and implementing a simulation game summarizing benefits and drawbacks of using ECS during development and providing performance evaluation of the final solution. |
References |
Fabian, R. (2018). Data-oriented design. https://www.dataorienteddesign.com/dodbook/ [4.5.2022]
Nystrom, R. (2014). Game programming patterns. Genever Benning. https://gameprogrammingpatterns.com/ [4.5.2022] Caini, M. (2019). ECS back and forth. https://skypjack.github.io/2019-02-14-ecs-baf-part-1/ [4.5.2022] |