¿Qué es ECS? ¡En 5 minutos, cómo funciona para Unity y Godot!

Поделиться
HTML-код
  • Опубликовано: 24 июл 2024
  • Hoy aprovechamos 5 minutos para ver cómo mover millones de objetos con la arquitectura ECS, y cómo motores muy conocidos, como Unity o Godot, lo implementan.
    Más sobre DOTS: unity.com/dots
    Si tienes alguna duda o comentario, no dudes en dejármelo en los comentarios ❤
    ¡Para apoyarme, puedes invitarme a un café a través de ko-fi! ko-fi.com/buscalaexcusa
    ------------------- ¡Más contenido interesante! --------------------
    · Otros patrones de diseño
    ¿Qué es MVC? • ¿Qué es MVC? ¡En 5 min...
    · Inteligencia Artificial y Generación Procedural
    Tu Primer Terreno Procedural • Unity - Tu primer Terr...
    ¡Terrenos Procedurales Avanzados! • Unity C# - Generación ...
    ¡Aprende a hacer NPCs e Inteligencias Artificiales! • Todo lo que necesitas ...
    · Shaders
    ¿Cómo instalar URP? • ¡Aprende cómo instalar...
    ¿Cómo funcionan los shaders? • Introducción a los sha...
    ¡Cómo empezar con Shadergraph! • Las bases de Shadergra...
    ¿Qué son los modelos de iluminación? • ¿Qué son los Modelos d...
    Hablemos de las mallas y sus propiedades • Hablemos de las mallas...
    Tu primer Toon Shader • Unity - Cómo hacer el ...
    · ¡Y muchas más cosas que puedes encontrar en el canal!
    / @buscalaexcusa
    ---------------------------------- Capítulos ----------------------------------
    00:00 - Búscate una excusa
    00:17 - ¿Qué es ECS?
    00:40 - El ECS de Unity y Godot
    02:01 - Cómo funciona un ECS puro
    02:35 - Por qué el ECS de Unity y Godot no puede ser puro
    03:13 - Plugins de ECS puro para Unity y Godot
    03:38 - ¿Por qué se hacen motores propios?
    ________________________________________________________

Комментарии • 25

  • @rojascamilohernandez5072
    @rojascamilohernandez5072 3 месяца назад +11

    Como mencionas, ECS es una forma en la cual desarrollamos videojuegos, específicamente una arquitectura, es dejar de pensar en objetos (la mejor forma de asociar muchos elementos de la vida real) y empezar a pensar cómo si tú fueras la máquina (aquí priorizas rendimiento) por eso, al perder el poder de la programación orientada a objetos también se siente que se pierde la magia y entendimiento de la abstracción, ¿sacrificamos lo humano por rendimiento?

    • @BuscaLaExcusa
      @BuscaLaExcusa  3 месяца назад +2

      Para mí es una magia diferente, el poder controlar los esfuerzos de la máquina para poder engañar a los sentidos de quien juega y hacerle ver comportamientos todavía más complejos y ricos. Quizá el código sea menos discernible desde la perspectiva humana, pero nos habilita para crear experiencias más orgánicas ;)

  • @camilobolanoscordoba2355
    @camilobolanoscordoba2355 3 месяца назад +2

    Muy buen video.. gracias por compartir

  • @hebep
    @hebep 3 месяца назад +1

    super bien explicado!!

  • @KernZeit_Dev
    @KernZeit_Dev 11 дней назад

    Busca La Excusa, esta información es oro, cuando subiste el video y lo vi ya había hecho un pool de objetos en mi juego para manejar una cantidad considerable de enemigos, pero me encantaría intentar usar esta estructura… un poco aparte me haría mucha ilusión que pudieras ver el avance de mi juego y me comentaras que tal te parece, me encantaría leer la retroalimentación de alguien tan pro como tu.
    Un Abrazo :)

    • @BuscaLaExcusa
      @BuscaLaExcusa  6 дней назад +1

      Aupi! Claro, me encantaría. He visto que has subido un vídeo hace poco, lo veo cuando pueda y te dejo un comentario :)

  • @jonathanzamudio250
    @jonathanzamudio250 3 месяца назад +1

    Hermoso simplemente hermoso esta explicacion 😏

  • @lehisluguer9300
    @lehisluguer9300 3 месяца назад

    Excelente video

  • @uxigadur
    @uxigadur 2 месяца назад

    Muy buen video.

  • @RyptimalGames
    @RyptimalGames 2 месяца назад

    muy bueno

  • @Harotyx
    @Harotyx 3 месяца назад

    Buen video, me he suscribido.

  • @saicoromero1180
    @saicoromero1180 2 месяца назад

    Seria bueno ver esto en un video explicado e visto como lo mueven con rust o c++ en godot pero seria bueno verlo en accion ya que algunos aprendemos mas viendo y asiendo que solo viendo o escuchando o solo leyendo saludos y ojala saques mas videos del poderoso godot

  • @conigamy9l694
    @conigamy9l694 3 месяца назад

    No estoy segura si entendi ¿Lo ideal para mover multiples objetos seria un solo cofigo en el que le doy instrucciones a todos los objetos?

    • @MrShadow_
      @MrShadow_ 3 месяца назад

      Básicamente, así solo recuperas los datos de cada objeto y el código usa estos para darle comportamiento a cada uno sin saltar de objeto en objeto.

  • @loulai
    @loulai 3 месяца назад +5

    IncluidE

    • @BuscaLaExcusa
      @BuscaLaExcusa  3 месяца назад +4

      Sí, lo has oído bien ^^

    • @indieanimation1
      @indieanimation1 21 день назад

      Te vas a morir por eso? Si quiere usar esos pronombres pues bien , más importante es la información que expone en este video.

  • @Carlosgala82
    @Carlosgala82 3 месяца назад

    Tambien podrías definir structs o clases simples que guarden las variables del objeto, instanciarla y asignar los datos a cada instancia en un bucle sin necesidad de monobehaviors en cada instacia de objeto, no?

    • @BuscaLaExcusa
      @BuscaLaExcusa  3 месяца назад

      Es muy buena pregunta. La cosa es que la única manera de unir un objeto, la capa UI digamos, a unos datos, es pasando por un MonoBehaviour.
      Mínimo necesitaremos 1 que correlacione N objetos con sus N datos. No es imposible hacerlo así, pero el código se vuelve locura rápido si nos negamos a separar en MB. Y aún así, cada vez que llamamos a .transform hay una traducción Cpp a C# muy costosa. Se puede optimizar pero por desgracia tenemos estas limitaciones

  • @danielturambar
    @danielturambar 3 месяца назад

    Sin saber cómo va Unity o Godot ¿No se pueden declararlos métodos como static para conseguir el mismo efecto? Los static son compartidos por todas las instancias del objeto, incluyendo herencia. Al menos desde C++

    • @BuscaLaExcusa
      @BuscaLaExcusa  3 месяца назад +1

      GDScript no permite hacer nada estático como tal; no fue diseñado así. Lo que lo suple es poner código en un nodo que va al nodo raíz supremo, de manera que aguanta toda la vida del programa aunque cambies de escena. Pero vamos, es el equivalente al Don't Destroy On Load de Unity.
      En C# puedes hacer cosas estáticas, claro, pero cada objeto es una instancia distinta. Lo ideal sería que una clase estática NO mono behaviour fuera la que updateara todo y el resto se acoplara. Sabiendo estructurarlo es posible pero no va a ser tan eficiente como hacerlo directamente en C++!

    • @danielturambar
      @danielturambar 3 месяца назад

      @@BuscaLaExcusa Ok entiendo. El eterno problema de programar videojuegos: tener que bajar de nivel para optimizar código. Hace siglos, cuando enredaba con estas cosas y no había estos motores, en más de una ocasión había hasta que tirar de rutinas en ensamblador para que la cosa fuera fluida... Gracias por tus vídeos, me estoy reenganchando con esto y veo que ha evolucionado muchísicmo.

  • @adriantorres8440
    @adriantorres8440 3 месяца назад

    CSS?

  • @hadjidejan9541
    @hadjidejan9541 Месяц назад