ECS, a la carga otra vez

Aprender a utilizar ECS es una de esas muchas cosas que tengo pendientes desde hace tiempo, sobre todo porque los proyectos en progreso ya estaban bastante avanzados y también por la dificultad para instalarlo. Se requiere una serie de paquetes que hay que descargar de internet (vía VPN) y eso acá se vuelve un poquito complicado.
Pero como tenía que reiniciar un proyecto (un pequeño prototipo de Elymuria) ahora que me estoy tomando lo de escribir con calma, decidí echarle un vistazo otra vez. Tengo que decir que media hora de estudio no arrojó nada en claro: aún no tengo mucha idea de cómo convertir mi proyecto de RPG a ECS puro. Para empezar, los GameObjects desaparecen y entran en juego otros conceptos. Sí, ya sé que es posible usar GameObjects con Hybrid ECS, pero si vas a romperte la cabeza estudiando, mejor que estudies la solución completa y no una a medias. Otro grandísimo problema es que los tutoriales que descargué hace unos meses ya están desactualizados. Como lo oyen. Eso es lo que significa preview packages, por si no lo sabían: el API del mes pasado puedes ser totalmente diferente este mes.
Hay detallitos adicionales, como por ejemplo, que debes tener cuidado con el Input, que se realiza en el hilo principal, mientras que tu código, gracias al nuevo sistema de Jobs, corre en otros hilos. Como para cagarse en el día en que naciste, oigan. Pero es como la moda: la gente dice que es lo mejor que se ha inventado y que todo va más rápido, por tanto, toca joderse y aprender, aunque solo pienses hacer un clon del Flappy Birds (no se tomen en serio esto, en realidad ECS brilla en ciertas situaciones específicas). Al final, todos sabemos que echándole ganas, se saca adelante cualquier cosa.
Pero bueno, concreto no tengo nada todavía, ni tendré a corto plazo. Los cambios de paradigma suelen ser difíciles en sus comienzos y también hay que considerar si vale la pena. Como decía, ECS está pensado para casos muy especiales donde se forman cuellos de botella, y de esos no he identificado ninguno por el momento. Quizás en batallas de varios personajes con un despliegue enorme de sistemas de partículas, algo que no puedo ni imaginarme.
En fin, ya veremos si se logra o no algún beneficio.

Comentarios