11 meneos
216 clics
![Diseño de videojuegos orientado a entidades y componentes](cache/34/85/media_thumb-link-3441987.jpeg?1610656086)
Diseño de videojuegos orientado a entidades y componentes
Los que nos dedicamos al desarrollo de videojuegos sabemos que la programación orientada a objetos es la paradigma dominante en la programación de los mismos ya que es la que mejor se adapta, pero últimamente está surgiendo cada vez más el diseño basado en entidades y componentes.
|
comentarios cerrados
Me da la sensación de que, como siempre, cuando el código es simple todo encaja a la perfección, pero cuando te pongas a hacer un sistema complejo vas a tener problemas similares a la programación orientada a objetos. RenderSystems con muchos casos especiales, o componentes diferentes con ligeras variantes tal que EspadaHumanoComponent, EspadaTentaculoComponent, etc
Puedes ver esto como coger un objeto clásico y poner los miembros que son datos en componentes y los miembros que son métodos o funciones en sistemas. Entonces el objeto original se queda vacio. No es más que un identificador que une esos componentes y es lo que llaman entidad en este diseño.
El mayor problema es que razonar sobre como deberían funcionar las cosas no es muy intuitivo. Hay que cambiar la forma de pensar de lo que la mayoría estamos acostumbrados y eso cuesta.
Si por "últimamente" te refieres a hace 15 años, de acuerdo. El primer ECS es de 2002 o 2003 si no recuerdo mal, creo que lo implementaban en uno de los Tony Hawk.
Edit: 2001, pero hay juegos de antes. entity-systems.wikidot.com/games-using-an-entity-system
También tienes un capítulo dedicado a ECS en el libro "Game Programming Patterns", de Bob Nystrom. Libro indispensable por cierto para todo el que quiera programar videojuegos.
cc #8