C++ : Programamos un Slotmap. Entidades y componentes caché-friendly con referencias estables

80 Просмотры
Издатель
En la sesión anterior explicamos qué es un #Slotmap y las ventajas que tiene para almacenar componentes en un Entity-Component-System #ECS (1ª Parte - Explicación: https://youtu.be/GKfRDAUvFoE). Ahora programamos un Slotmap básico que podamos usar para almacenar los #componentes de nuestros #videojuegos. Nuestro SlotMap almacenará los componentes linealmente, sin huecos, como un array estándar. Además, tendremos un array de slots que nos dará una capa adicional de identificadores permanentes. Así, nuestras entidades podrán acceder a sus componentes a través del array de slots, aunque los componentes cambien de posición en memoria.

Esta sencilla implementación nos aportará las ventajas de poder recorrer los componentes linealmente, maximizando el throughtput de la memoria #caché, a la vez que nos ahorrará los problemas de acceder con punteros y tener que mantenerlos actualizados ante cambios. Desarrollaremos una interfaz para poder utilizar nuestros SlotMap como si fueran de la librería estándar de C++ (STL) y así nos resultarán muy cómodos.

Clase de la asignatura Videojuegos 1
Grado en Ingeniería Multimedia.
Universidad de Alicante.

Licensed Assets
- Saboteur 2 (The Synthwave EP) / McKlain (https://mcklain.bandcamp.com/track/saboteur-2)
- - Original version by Rob Hubbard / Durell Software
- La Guerra de Gamber - Menu Theme / McKlain (https://mcklain.bandcamp.com/track/la-guerra-de-gamber-menu-theme)
Категория
Язык программирования C++
Комментариев нет.