En tu videojuego, tal vez tengas un coche que se está moviendo o algo así. En ese caso, digamos, tu coche va a tener, ya sabes, velocidad, la rapidez, ¿verdad?, vas a tener una rapidez, vas a tener una posición, como, donde tu coche actualmente está. Todas esas dos cosas son como tus componentes, ¿verdad?, tu velocidad y tu posición, son componentes.
Pero el coche en sí, que es, ya sabes, va a ser como, ya sabes, un cierto coche va a tener una velocidad, va a tener una posición, va a tener un color, el coche en sí va a ser una entidad, porque es básicamente solo, ya sabes, una colección de diferentes componentes reunidos. Así que básicamente, ese es el concepto principal detrás de ECS. Básicamente queremos separar, ya sabes, diferentes, quieres separar los diferentes comportamientos y datos en tus juegos en componentes. Y de esa manera, es fácil para ti, es básicamente fácil para ti, ya sabes, elegir cualquier componente que necesites. Sabes, al construir como una entidad o para desglosar un objeto en tu juego, es fácil para ti, ya sabes, simplemente elegir diferentes componentes, ya sabes, como parte de las entidades.
Y básicamente como, ya sabes, construiste un nuevo, ya sabes, un nuevo objeto para tu juego, como directamente de la caja. Entonces, y básicamente, las entidades son identificadores únicos, como mencioné, y los componentes son solo datos que están adjuntos a las entidades. Entonces, ahora hablando de sistemas, los sistemas son, por otro lado, básicamente solo una colección de entidades y componentes que realizan una tarea específica. Así que, solo para, de nuevo, usando esa analogía. Así que, supongamos que en una situación donde tienes tal vez, quieres realizar una tarea, digamos en el caso de un videojuego, ¿verdad?, donde tienes como un coche, tu videojuego y quieres básicamente, digamos, mover el coche. Entonces, en esa situación, el único componente que realmente necesitas para realizar esa tarea es, digamos, posición y velocidad, ¿verdad?
Entonces, en este caso, probablemente no tengas interés en, ya sabes, tal vez el color del coche o qué tan grande es el coche porque no afectan la tarea particular que quieres realizar en ese momento particular, ¿verdad? Entonces, básicamente, lo que hacen los sistemas es que son básicamente solo como, una especie de, funciones que te ayudan, como, a separar, como, tareas específicas y los ciertos componentes que están relacionados para que realmente realices la tarea. Y, básicamente, a largo plazo, lo que hace es que hace que sea más fácil para ti, ya sabes, gestionar tu código, hace que tu código sea, como, más manejable. Entonces, y cómo, básicamente, cómo funciona ECS? Entonces, las entidades se crean y destruyen en tiempo de ejecución por tu motor de juego. Entonces, las entidades son básicamente solo objetos en tus juegos. Agregas componentes, tu motor de juego agrega, ya sabes, o elimina componentes de él en tiempo de ejecución. Eso es de tus entidades, ¿verdad? Y luego tus sistemas se actualizan a intervalos regulares, ya sabes, dependiendo de las operaciones que realices o que el usuario realice dentro de los juegos. Entonces, ¿por qué es ECS una arquitectura de desarrollo de juegos tan popular, ya sabes, es una arquitectura de desarrollo de juegos muy popular, ¿verdad? ¿Y por qué es así? Es una buena elección para el desarrollo de juegos porque uno, promueve la reutilización de código, ¿verdad? Quiero decir, como explicamos antes, tienes, ya sabes, componentes específicamente definidos, lo que significa, como, que puedes fácilmente tomar un componente y adjuntarlo a diferentes entidades, en realidad, no solo a un tipo de entidades. Puedes puedes fácilmente crear un objeto de juego modificado.
Como, básicamente, todo lo que tienes que hacer es simplemente, ya sabes, defines la entidad del juego y simplemente creas una nueva, adjuntas algunos componentes a ella. Y también puede ayudar a soportar el acceso eficiente a datos, al igual que, ya sabes, la separación de, como, todos tus datos en componentes bien definidos. Y puede ser fácilmente escalado, ya sabes, a medida que tu juego se hace más grande, puedes escalarlo fácilmente. Así que, solo para añadir, como, un pequeño ejemplo de código, solo para dar sentido a lo que he estado hablando hasta ahora. Así que, en este ejemplo aquí, puedes ver que tienes, tienes un componente de posición, tienes un componente de velocidad. Y tu componente de posición, puedes ver, como, básicamente, solo tienes tu eje X y Y, ¿verdad? Y tu componente de velocidad, también, tienes tu eje X y Y.
Comments