Video není dostupné.
Omlouváme se.

Este juego está MAL optimizado pero NO IMPORTA

Sdílet
Vložit
  • čas přidán 9. 09. 2021
  • Está bien optimizar los videojuegos, ¡pero hasta cierto punto! Hagámoslo de manera inteligente, sólo cuando realmente vaya a dar resultados y no perdamos tiempo trabajando en algo que poco o nada va a cambiar.
    🎮 Flatworld an Steam: store.steampow...
    ⭐ Patreon: / guinxu
    🌏 Mis juegos: www.guinxu.com
    🐦 TWITTER: / guinxu
    📷 INSTAGRAM: / guinxu
    ▶▶ Música usada en el vídeo ◀◀
    Intro: "Shell Warfare" (Hylian Lemon / ocremix.org)
    OST de Chrono Trigger
    Outro: "Golden Sun Rebirth of Venus" (Matt R., S. Battle / ocremix.org)
    Me llamo Guinxu y desarrollo videojuegos indie en Unity para PC (Steam) y Android. En mi canal te ayudo a crear tus propios juegos y manipulo juegos conocidos para aprender cómo funcionan sus trucos y técnicas. Además comparto los avances de mis proyectos y cómo soluciono los bugs que surjan.

Komentáře • 942

  • @Guinxu
    @Guinxu  Před 2 lety +1330

    Pobre del que diga "Es que Guinxu promueve hacer juegos mal optimizados!" porque todo lo contrario. Ese no es el punto del vídeo xD

  • @miguel_7128
    @miguel_7128 Před 2 lety +1664

    Guinxu promueve a hacer juegos con mensajes secretos para el gobierno ruso

    • @JesusEPV
      @JesusEPV Před 2 lety +39

      Shitpost:

    • @solanamcco7261
      @solanamcco7261 Před 2 lety +58

      En un antiguo trabajo tuve un compañero de Ucrania q dejaba comentarios en ruso. Nunca supimos qué decían...

    • @JesusEPV
      @JesusEPV Před 2 lety +12

      @@solanamcco7261 😃😀😐🤨

    • @samnesssepiol1230
      @samnesssepiol1230 Před 2 lety +4

      @@JesusEPV yo

    • @ellukitas_1239
      @ellukitas_1239 Před 2 lety +5

      Denunciable xD

  • @victorperezgomez534
    @victorperezgomez534 Před 2 lety +1151

    "te introduzco lo que me pidas" 7:55
    Se nota que hay confianza

  • @SirGary
    @SirGary Před 2 lety +372

    Me recuerda a cuando miré la decompilación de Pokémon Esmeralda y la gente había comentado algo así como "Game Freak no sabe usar arrays" xD

    • @Guinxu
      @Guinxu  Před 2 lety +86

      No sabia que se hubiera filtrado, necesito ver el código fuente a ver qué hay :)

    • @saul67pro
      @saul67pro Před 2 lety +13

      Hombre sir Gary cuento tiempo sin verte
      Edit: me olvide de ti x'd

    • @0x19
      @0x19 Před 2 lety +11

      Yo intenté ver el disassembly de Pokémon R/B no entendí nada xdxdxd

    • @SrWolf90
      @SrWolf90 Před 2 lety +4

      Es lenguaje de máquina, encima la GB tenía una CPU hibrida entre intel 8080 y z80, es un poco caos de entenderlo, pero si te aprendes las instrucciones de la cpu puedes ver como funciona el juego.

  • @vladimirputin2944
    @vladimirputin2944 Před 2 lety +342

    7:56 *"Te introduzco lo que me pidas"*
    *-Guinxu*

    • @Bryan183
      @Bryan183 Před 2 lety +43

      2:25 *”Si ya corren estupendamente bien tal y como están, ¿para qué tocarlos más?”*
      -*Guinxu*

    • @yoshis7778
      @yoshis7778 Před 2 lety +17

      alva: introduce tu dinero en mi cuenta

    • @juanma_cello
      @juanma_cello Před 2 lety +6

      Estaba buscando este comentario

    • @hecthor6000
      @hecthor6000 Před 2 lety

      @@yoshis7778 comentario copiado

    • @yoshis7778
      @yoshis7778 Před 2 lety

      @@hecthor6000 si fue copiado pero de mi comentario ósea yo no se si alguien mas puso eso antes

  • @joserogeliogutierrezaraujo2777

    "Do you believe in gravity?"
    Solo con eso ya me convenciste de comprar flatworld y de aprender programación, grande guinxu

  • @Aguineu
    @Aguineu Před 2 lety +289

    Vamos, que no hay que ponerse locos por el rendimiento
    ya que no todo hace que tu juego vaya lento.
    Lo importante es evitar darle al programador sufrimiento
    porque, no te miento, si nunca acabas tu juego, solo habrá hambre y lamento.

    • @fluz8563
      @fluz8563 Před 2 lety +10

      Inspirador 😔😔
      Pa cuando el call of gruty 🤑🤑🤑🤑👌👌👌

    • @sebascolorgg4984
      @sebascolorgg4984 Před 2 lety +5

      Vamos lo que dicen por ahi, si funciona no lo toques

    • @ISuperI
      @ISuperI Před 2 lety +5

      Vaya hasta rima xD

    • @rszt5210
      @rszt5210 Před 2 lety +1

      @@sebascolorgg4984 AKAJAJJSKA

    • @skookamv8487
      @skookamv8487 Před 2 lety +1

      @@ISuperI si XD

  • @antoniomunn3208
    @antoniomunn3208 Před 2 lety +57

    En la asignatura de optimización y concurrencia en la carrera, la afrontamos de una forma muy peculiar. El profesor nos dio un juego básico de estrategia estilo age of empires hecho en Unity "a lo bruto" y a lo largo de la asignatura íbamos optimizandolo, arreglando cosas, haciendo otras "de forma elegante", usando threads, etc. Pues el object pooling (aunque Unity tiene el suyo tuvimos que programarlo nosotros) fue la forma de pasar de máximo 500/800 soldados a, potencialmente, una cantidad estúpida de soldados.

  • @STARTTY
    @STARTTY Před 2 lety +150

    7:54 "Tu ya sabes que hay confianza y te... introduzco lo que me pidas 7w7"

  • @Gian_Log
    @Gian_Log Před 2 lety +532

    Juegos mal optimizados.
    YandereDev: Aquí es donde entro yo.

    • @moisespleytez
      @moisespleytez Před 2 lety +48

      El tipo según programadores era muy novato y programaba de forma muy sosa, no recuerdo el nombre, pero lo estaba haciendo como si sumáramos 1+1+1+1 hasta llegar a 100 en lugar de 50+50=100,así de ineficiente era.

    • @miltox
      @miltox Před 2 lety +11

      @@moisespleytez si mal no recuerdo había hecho eso para tomar el tiempo del juego, algo que es bastante ineficiente ya que esa suma se actualiza x cada frame, va, eso es lo que entendi

    • @GabrielTorres-us5uc
      @GabrielTorres-us5uc Před 2 lety +33

      @@moisespleytez lo peor es que un programador profecional se ofreció a reescribir toooooodo el código y YandereDev se enojo y acabo rompiendo lazos con la empresa del desarrollador

    • @xEndkoNx
      @xEndkoNx Před 2 lety +22

      Dizque tenía un cepillo con 10.000 polígonos.

    • @miltox
      @miltox Před 2 lety +28

      @@GabrielTorres-us5uc no era un programador solo, sino que era el estudio indie tinyBuild ( los desarrolladores de hello neighbor) o sea, se perdió una oportunidad bastante grande ahi

  • @silveriasilva5867
    @silveriasilva5867 Před 2 lety +35

    7:54 Guinxu: "alva, tu ya sabes que hay
    confianza y te _introduzco_ lo que me pidas"
    *Guinxu, declaraciones de amor, 2021*

  • @Esteban_83
    @Esteban_83 Před 2 lety +42

    Un ejemplo de object pooling que funciona estupendamente es cuando dicho objeto tiene que inicializar una conexión con algún tipo de servicio de red (como una conexión a base de datos o un servidor multijugador). En esos casos el pooling es imprescindible.

  • @gaelmoramontes
    @gaelmoramontes Před 2 lety +111

    Guinxu, podrías hackear la cámara de Lego Batman 2, y ver cómo es la Ciudad de metrópolis que sólo se puede ver al fondo del mapa pero no se puede acceder a ella

    • @lisandrulo9573
      @lisandrulo9573 Před 2 lety +7

      Esa ciudad a la que no se puede acceder es solo un fondo, no hay ciudad en realidad.

    • @xEndkoNx
      @xEndkoNx Před 2 lety +3

      @@lisandrulo9573 como el escenario de los need for speed desde underground.

    • @lisandrulo9573
      @lisandrulo9573 Před 2 lety

      @@xEndkoNx Nunca jugue need for speed

    • @aguacatedev5991
      @aguacatedev5991 Před 2 lety +5

      Es solo una imagen, como el puente de kindom hearts

    • @josuemosquera3238
      @josuemosquera3238 Před 2 lety +3

      @@aguacatedev5991 tipico de guinxu xd

  • @g4m3rz64
    @g4m3rz64 Před 2 lety +441

    Guinxu: "te introduzco lo que me pidas" 7:56
    Alva: Introduce tu dinero en mi cuenta bancaria
    Edit: Me acabo de levantar y esto es una locura, mas de 360 likes!, gracias a todos los que dieron me gusta! jamas habia pasado del auto like, los quiero a todos! ^-^

  • @mariajuana3280
    @mariajuana3280 Před 2 lety +10

    8:00 te introduzco lo que quieras
    Álva: *se sonroja *

  • @infinite1000darc
    @infinite1000darc Před 2 lety +35

    En un juego que estoy programando, al destruir una caja daba orbes, el problema es que después de cierto tiempo el juego se realentizaba, igual puder usar pooling... Pero el remedio fue que el comportamiento individual de los orbes los volví una función, que cada objeto llamaría y santo remedio, va fluido.

  • @JasperDev
    @JasperDev Před 2 lety +315

    Guinxu por favor ve a dormir, ya esta tarde uwu

  • @PKPoyo
    @PKPoyo Před 2 lety +72

    Hombre, los Wario ware? Porfavor, son tan buenos juegos que de ahí salen juegos tan Buenos como pureya

  • @Scafidi616
    @Scafidi616 Před 2 lety +30

    Más que todo yo diría que el object pulling viene a ser una buena práctica, viéndolo de en proyectos pequeños no existe diferencia alguna, pero a mayor escala supongo que sí daría un impacto significativo

  • @srqubit9480
    @srqubit9480 Před 2 lety +5

    7:50 wtf ginxu le introduce lo que quiera

  • @BitBoss
    @BitBoss Před 2 lety +28

    Alva, ten cuidado cuando te enseñe matemáticas, Guinxu empieza enseñándote como optimizar el minijuego del flamenco y cuando menos te lo esperes está enseñándote a elevar el miembro a su máxima potencia, guiño guiño.
    Me ha molado el vídeo, me gusta mucho lo relacionado con la optimización. Pedazo pósters, ten cuidado con ellos 👀

    • @rastersoft
      @rastersoft Před 2 lety +1

      Nah, Alva no parece de esos que se traga cualquier cosa :-D

    • @Jaimetu0012
      @Jaimetu0012 Před 2 lety +1

      Grande

  • @mtnfutedits596
    @mtnfutedits596 Před 2 lety +152

    Guinxu diciendo que no hay que optimizar juegos , ese es tu ídolo?

  • @BtHacha
    @BtHacha Před 2 lety +70

    5 años siendo desarrollador web y lo más clave que aprendí es: las buenas prácticas no existen, todo es situacional. Está bueno tener una base de referencia a la que acudir, pero hay que entender el porqué se usan las cosas que se usan, y evitarlas cuando sea necesario.
    Existe el sesgo en la industria de "saber y aplicar siempre las buenas prácticas", que por suerte mucha gente ya está dejando de lado pero reinó el rubro durante años y años.

    • @rastersoft
      @rastersoft Před 2 lety +8

      Tal cual: ahora mismo está de moda la "programación funcional", y ya leí incluso una entrada de un tío que dice que abandona completamente la programación orientada a objetos por la programación funcional porque la programación orientada a objetos tiene graves errores de base (y pone un par de ejemplos que se conocen desde hace años y que, de hecho... SON ANTIPATRONES).
      Lo que hay que hacer es utilizar lo mejor para cada cosa, y punto. No empeñarte en usar POO/funcional/declarativa para todo "porque es lo que está de moda".

    • @lorenzito0852
      @lorenzito0852 Před 2 lety +11

      Muchas buenas prácticas están ahí para que otro pueda leer y entender tu código sin tener que dedicarle demasiado tiempo. Puedes no seguirlas, pero entonces la persona que venga detrás lo sufrirá... Y hay que ser buena gente

    • @Scafidi616
      @Scafidi616 Před 2 lety +4

      El asunto es que algunos siguen las buenas prácticas como si fuese una biblia Haha claramente esa no es la idea, lo ideal es entenderlo y saberlo aplicar cuando lo amerite...

    • @Scafidi616
      @Scafidi616 Před 2 lety +2

      @@lorenzito0852 concuerdo totalmente

    • @BtHacha
      @BtHacha Před 2 lety +1

      @@lorenzito0852 hay que ver cuándo compensa un código óptimo frente a un código entendible / mantenible. Si nadie más que vos mismo entiende el código no sirve de nada a futuro 😂

  • @sayu_chan2002
    @sayu_chan2002 Před 2 lety +4

    El código de flatword: pensaste que era código pero era yo DIO

  • @QuimGarrigos
    @QuimGarrigos Před 2 lety +9

    En CZcamsrs Life un programador se tomó tan en serio el tema del pooling que detrás de la pared de la habitación podías encontrar cientos de bolsos de la madre esperando a ser necesitados (sólo se usaba uno cuando hacías algo muy bien y te daba una propina), cientos de vasos para cuando se necesitaban en la discoteca y todo tipo de objetos que se instanciaban a lo largo del juego

  • @andresfelipemunozaguilar5607

    1:10 NO WAY... ALVA MAJO REFERENCE!!!???

  • @nachomateuramon6983
    @nachomateuramon6983 Před 2 lety +7

    4:54 agárramela que me crece, te falta vía pública guinxu

  • @JosueCM
    @JosueCM Před 2 lety +17

    Cuando tu juego corre a 59 fps y no a 60 :'v
    Guinxu: no te obsesiones con la optimización >:c

  • @rueton
    @rueton Před 2 lety +5

    7:00 método de newton para cálculo de raíces. Alva quiere evitar usar mates y las termina inventando. De hecho hay funciones imposibles de resolver por fórmula (que una ecuación no tiene solución analítica) y se usan métodos numéricos para ello.

  • @pecosbill3336
    @pecosbill3336 Před 2 lety +5

    Estaría interesante un vídeo hablando sobre aplicar la destrucción en el entorno como lo hizo Gears of war 2 (tenían las coberturas y algunos objetos una especie de corteza destruible y cuando se la quitabas toda ya no quedaba nada más que un objeto de pura piedra)

  • @Scafidi616
    @Scafidi616 Před 2 lety +5

    Hay que recalcar que con estos temas de optimización y buenas prácticas, no se hace solo porque algunos lo hacen(como menciona Guinxu) pero tampoco es buena idea ignorarlo o evitarlo, esto por diversos puntos específicos, empezando por proyectos con escalabilidad y también por cuantas personas colaboran en el código. Obviamente si el objetivo es hacer un juego simple y que cumpla con tus objetivos como desarrollador sin tener que complicarse mucho, lo normal es no hacerle tanta mente a esos detalles. PERO, si el objetivo incluye un alcance mayor, desarrollado por etapas y que incluirá mano de obra adicional, las buenas prácticas y trucos de optimización llegan a reducir dolores de cabeza y a asegurar que tu trabajo no tengo problemas y que los que ayudan en el código tampoco se retrasen o afecten algunos otros script... Son temas interesantes que hay que saber y conocer un poco para medirse bien.

  • @giovannigaming8144
    @giovannigaming8144 Před 2 lety +8

    Guinxu, podrías hacer un video explicando la inteligencia artificial de un videojuego de pelea?
    Ejemplos serían:
    Marvel vs Capcom,
    Mortal Kombat o
    The King of fighters.
    Te lo agradecería muchísimo 🙏
    (Autolike para no morir ignorado)

  • @mikeyemulators1813
    @mikeyemulators1813 Před 2 lety +25

    Oye Guinxu una pregunta: ¿Como podrias meter un easter egg de manera efectiva ?

    • @Ryokusei2
      @Ryokusei2 Před 2 lety +9

      La verdad es que sería un buen tema de video

    • @penkinodenuevo7468
      @penkinodenuevo7468 Před 2 lety +6

      Un Easter Egg es solo una curiosidad, un detalle escondido creado por diversión, puedes hacerlo como tu quieras. Incluso hacer referencias en los dialogos es un tipo de Easter Egg.
      Por ejemplo el "do you believe in gravity" es un secreto del Código de Guinxu.
      Pero es verdad, es buen tema para video.

    • @flawidaflowinci
      @flawidaflowinci Před 2 lety +2

      @@penkinodenuevo7468 Quien no creería en la gravedad? Una prisionera que se vista de Billie elish?

  • @yoshis7778
    @yoshis7778 Před 2 lety +6

    7:52
    todos: malpensando
    yo y seguramente alva: pon todo tu dinero en mi cuenta bancaria

  • @josueromero1337
    @josueromero1337 Před 2 lety +26

    Todos hablando de "te introduzco lo que me pidas" pero alguien se dio cuenta del calvo con coletas XD 10:32

  • @shadyocclusion872
    @shadyocclusion872 Před 2 lety +48

    La lección del día, no optimicen juegos 👍
    Okno, optimicenlo

    • @Hola-cx6fu
      @Hola-cx6fu Před 2 lety +3

      Lección del dia, ginxu esta dispuesto a meterle a alva lo que alva pida

    • @thanosgerman6418
      @thanosgerman6418 Před 2 lety +1

      @@Hola-cx6fu XD

  • @danielreyes7156
    @danielreyes7156 Před 2 lety +7

    7:25 Ginxu: Soy mejor y mas inteligente que Alva 😨
    9:15 Ginxu: De nuevo, soy mas inteligente y poderoso que tu Alva 😱

  • @rtucanxd
    @rtucanxd Před 2 lety +6

    Guinxu, sabias que puedes sacar lo que detecta la region de una nintendo? hay varios tutoriales, deberias probarlos, es mucho mas economico que tener adaptadores

  • @Rhomita
    @Rhomita Před 2 lety +1

    En uno de los juegos de estrategia que hice este año tuve que usar object pooling justamente para las balas.
    Sin usarlo también funcionaba pero si que se notaba una mejora de ~20fps.
    Coincido 100%, hay que usarlo si realmente es necesario 🙌

  • @Sokrof
    @Sokrof Před 2 lety +7

    "Alba, ya sabes que hay confianza y te introduzco lo que me pidas" xD

  • @anthonylindao07
    @anthonylindao07 Před 2 lety +54

    Mi mayor pregunta es porque ARK Survival Evolved, un juego que es del año de 2015, aún con los componentes de un ordenador del 2018 y 2019, no pudo conseguir mayor tasa de frames... Será por lo enorme del mundo y más cuando se enfoca al multijugador? O le falta pulir algunos archivos? Porque no creo que su problema sea el motor grafico, o me equivoco?

    • @pilathebattery5801
      @pilathebattery5801 Před 2 lety +14

      ARK está peor Optimizado que PUBG en su inicio.

    • @moisespleytez
      @moisespleytez Před 2 lety +3

      Bró, yo no me explicaba porque me lo corría tan lento, creí que me faltaban drivers porque con esas graficas kk que tiene es acojonante lo que pide, tuve que jugarmelo a lo minimo para no romperme la cabeza iendo a 25fps

    • @alejandrodasilva8110
      @alejandrodasilva8110 Před 2 lety

      @@moisespleytez solo es mala optimización, necesitas poder bruto pa moverlo

    • @jkvier7136
      @jkvier7136 Před 2 lety +2

      El motor grafico es malo y el juego está mal optizado, se supone que ARK II va a ser mucho mejor, con unreal engine 5 va a estar muchisimo mejor optimizado y mejor visualmemte

    • @rising_fredo_pixel
      @rising_fredo_pixel Před 2 lety

      @@pilathebattery5801 pubg actualmente es una mantequilla en equipos medianos.

  • @elbicho1914
    @elbicho1914 Před 2 lety +3

    Hola Guinxu, com le haces para sacar la camara en cualquier juego? me gustaria poder hacerlo

  • @giornofacha4047
    @giornofacha4047 Před 2 lety +4

    0:36 sin duda alguna ese es el mejor coche del mundo

  • @thenecrocoffe
    @thenecrocoffe Před 2 lety +24

    por optimaciones bestia es el código de doom es básicamente poesía. esta optimizado tan minuciosamente que portear a cualquier plataforma es muy sencillo y no consume casi nada de recursos en hardware precario ..... solo digo mas nada

  • @JuanChona
    @JuanChona Před 2 lety +4

    7:45
    Guinxu: Alva ya sabes que hay confianza y te introduzco lo que me pidas 😉
    Alva: XD

  • @lautarogonzalez2700
    @lautarogonzalez2700 Před 2 lety +2

    7:55 me encanta como alva y guinxu se la pasan haciendose insinuaciones xd

  • @pabloh.4103
    @pabloh.4103 Před 2 lety +2

    7:54 "sabes que ya hay confianza y te introduzco lo que me pidas"

  • @shoker_rider
    @shoker_rider Před 2 lety +2

    8:31 si... creo en la gravedad

  • @elgranedgamer722
    @elgranedgamer722 Před 2 lety +3

    yo una vez utilize el object pooling, estaba creando un juego para scratch llamado worldwars, el juego era de aviones y cuando empezaba a lanzar balas, osea muchas se crasheaba el juego, no sabia porque, luego vi este video y me salvo mi vida GRACIAS GUINXU!!!!!!!! Gracias a ti mis juegos se volvieron muy conocidos con 1000 visitas, espero que llegues pronto al millon!!!!!

  • @henrycanon304
    @henrycanon304 Před 2 lety +12

    Guinxu, una pregunta, ¿Como funcionan internamente juegos como Doki Doki cuando se alteran carpetas?
    Y otra cosa, se que no tengo derecho en meterme en flatworld, pero no crees que podría ser buen idea poner un jefe o masmorra que pueda romper la cuarta pared? O ya rompe la estética del juego?

    • @alexozeroexe6866
      @alexozeroexe6866 Před 2 lety +6

      Bueno no soy Guinxu pero la respuesta a tu pregunta no es ciencia de cohetes, los juegos requieren varios archivos para funcionar, y si se tiene planeado una alteracion en especifica (Como por ejemplo, borrar el Monika.char en Doki Doki), simplemente se hace que el juego si no encuentra ese archivo, actue de cierta manera diferente a la que actuaria teniendolo.
      Claro, esto teniendo planeado la modificacion de archivos, de otra manera sencillamente el juego o no arrancara, se corrompera o faltaran cosas.

    • @lexo5546
      @lexo5546 Před 2 lety

      La verdad, dudo que no haga algo como eso, tiene un muy buen sentido del humor

  • @chuyamescua9445
    @chuyamescua9445 Před 2 lety +1

    Oye guinxu cuando hagas un vídeo de mover camara para ver los trucos, puedes hacer una toma del guardado de partida en Metroid prime, en el guardado en la nave de Samus

  • @SoulDXD123
    @SoulDXD123 Před 2 měsíci +1

    6:01 justamente, yo hace poco hice un "prototipo" de un juego (que deje por problemas de organización y optimizacion) en el que para hacer combos y acciones asi, creaba y destruia objetos y eso causaba que en pleno combate los fps bajarán extremadamente, pasando de 60 fps al principio del combate a solo como 15-10 fps, gracias guinxu por los consejos sobre optimizacion, lo tendre en cuenta si decido retomar el proyecto y hacerlo un juego de verdad😉

  • @CositaPeculyar
    @CositaPeculyar Před 2 lety +3

    No sabía que habían hecho Japan Weekend BCN (por el cv19) 🤔. Espero que te lo hayas pasado genial 🌸🤗.

  • @ACYRB
    @ACYRB Před 2 lety +5

    Si

  • @serraiglesias8552
    @serraiglesias8552 Před 2 lety +2

    Video de guinxu fuera del horario habitual? No estaba preparado!

  • @Calamar112
    @Calamar112 Před 2 lety +2

    Trabajo en una empresa de videojuegos móvil (Genjoy, en Sevilla) y he trabajado en el motor de Match3 que lleva nuestro juego Tuscany Villa. En nuestro caso el Pooling ha sido necesario para los Renderer y VFXs del juego, son objetos que tienen ParticleSystem que al instanciar meten bastante Garbage, y los Renderer tienen bastante carga en su jerarquía con bastantes sprites y algunos VFXs de los que hablaba antes (destrucción, spawneo de piezas, etc).
    También te digo, el Pooling mete muchísima carga de trabajo para que los objetos de los que se hace Pool se puedan reactivar sin ningún problema, y haberlo hecho a medias del curso del proyecto ha sido un tremendo coñazo porque ha dado muchísimos problemas de objetos que no se reseteaban correctamente de su estado anterior para tener su nuevo estado.

    • @user-qn5vi1tv6w
      @user-qn5vi1tv6w Před 2 lety

      Una pregunta,he ido a la playstore por curiosidad y me extraña que solo respondan en inglés (ō-ō),al menos en las primeras reseñas,¿no deberían responderles en español o ya esta predeterminado al ser la lengua más usada? Claro que creo que trabajas en esa empresa ^^ y que es un proyecto sevillano que por cierto soy de allí pero da igual xD ,solo que no entendí eso,si esque es un bot con respuestas regulables y que hay alguien que supervisa los comentarios y a veces responde...Se nota que no se apenas _del feed en la playstore y como se gestiona el trato con los usuarios_ así que lo siento si dije alguna tontería o pregunté algo estúpido :/ ,como que en realidad es una normativa que se responda en inglés o algo por el estilo ╮(─▽─)╭

    • @user-qn5vi1tv6w
      @user-qn5vi1tv6w Před 2 lety

      Aa y se ve interesante el juego =,>
      °. Apenas tengo espacio así que no puedo instalarlo *pero me encanta la decoración (uwu)* y en los videojuegos más,como en los Sims :3 ,Minecraft y como fan de Animal Crossing tengo el ACHHD (que largo xdd) ,y de juegos móviles probé un día uno al estilo chibi kawaii,pero es cierto que abundan,lo bueno esque esta mejor si le haces ciertos detalles que lo diferencien o hagan la experiencia mejor y creo que las tiene :3 ,aunque tenga los "tópicos" de minijuegos como el de unir comida para ganar cash X,D (no se por qué se usa tanto ese minijuego ._.) ,así que solo opino por lo que se publicita y el diseño gráfico que se ve lindo~ n-n ,pero como no lo puedo probar pues nada más que decir de el (•.•U)

  • @Axenide
    @Axenide Před 2 lety +4

    Este video me define. xD
    Para mi proyecto principal, hago optimizaciones minuciosas, hasta un punto obsesivo...
    Para el juego que hice para Tu Juego A Juicio Jam, a falta de tiempo, al que le corra, genial, y al que no, lo lamento. xD

  • @the_collector_52
    @the_collector_52 Před 2 lety +7

    Para guinxu
    Hola Guinxu me gustaría que hicieras un video hablando de explicando porque el juego crashea en un punto espesifico, a que me refiero, ejemplo, en un punto del juego "undertale" hay una escena donde un jefe te habla y cuando acaba la charla te cierra el juego, no es un fallo esta diseñado para que se sierre y cuando vuelves al juego empieza la pelea contra ese jefe entonces me gustaría saber como es que los desarrolladores hicieron que después de que el juego se cierra cambian las cosas y obvio como hacen para que el juego se cierre en ese momento específico

    • @joacomedel2827
      @joacomedel2827 Před 2 lety

      No es algo muy difícil , cuando apretado salir en un juego ejecuta una función que cierra el juego , hacen lo mismo solo que sea en un momento contesto ya sea con un código que el jefe hablé y cuando termine de hablar habilita la función para que se cierre el juego

    • @STARTTY
      @STARTTY Před 2 lety

      En unity, la secuencia seria:
      El jefe dice lo que tiene que decir.
      Se hacebn los cambios.
      Application.Quit();
      De nada uwu

    • @dydierripe5611
      @dydierripe5611 Před 2 lety

      Depende del motor, es solo almacenar lo que tengas que almacenar y cerrar el juego

    • @the_collector_52
      @the_collector_52 Před 2 lety

      @@joacomedel2827 gracias no soy desarrollador ni muchísimo menos pero la verdad era algo que me ha tenido intrigado vastante tiempo

  • @FURRKoDy
    @FURRKoDy Před 2 lety +2

    7:55 hijole como asi se nota la confianza XD

  • @elmeromerofan8767
    @elmeromerofan8767 Před 2 lety +2

    Wow, guinxu, tu adivinas el futuro, yo hoy mismo estaba viendo el video de lo del minijuego del flamenco y me hice la duda sobre como no se ralentiza y unas 3 horas despues llega tu video

  • @-18
    @-18 Před 2 lety +19

    Guinxu: "... es más ajustado que los pantalones deportivos de Alba Mayo"
    Alba Mayo: "¡Guinxu! Deja de usarme en tus analogias"

  • @ivancraftinglol5384
    @ivancraftinglol5384 Před 2 lety +4

    Vaya confianza que hay entre Alva y tú ¿eh?
    Por cierto, está chido ese lugar al que fuiste ojalá hubiera podido ir :,)

  • @nicolasfumador2074
    @nicolasfumador2074 Před 2 lety +1

    Gran video como siempre, guinxu mi juego favorito es el mother 3 y siempre he querido saber como funcionan las mecánicas de la música con los combos, me haria mucha ilusion si un dia hicieras un video sobre eso :)

  • @14-K
    @14-K Před 2 lety +2

    0:00 entendi esa referencia de Danidoube TV

  • @Yntoxicboy.
    @Yntoxicboy. Před 2 lety +4

    Hoy en día tenemos equipos muy potentes y creo que hacer un juego 2d optimizado no es un problema a como tenían que ingeniárselas antes para optimizar un juego xd.

  • @brunoalonsocardenaslopez8137

    10:33 ¿El de abajo es Zun?

  • @martesdemotores5410
    @martesdemotores5410 Před 2 lety +1

    Respecto al objet pooling... En los juegos suele suceder eso con los casquillos de bala... Cuando hay muchos en el piso empiezan a desaparecer y a ser remplazados por los actuales que bota el arma (manteniéndose así un número constante de casquillos)

  • @celticrapsodia6614
    @celticrapsodia6614 Před 2 lety +2

    10:33 Que lindo peinado, le daba.

  • @gabrielrodriguez-pk3ce
    @gabrielrodriguez-pk3ce Před 2 lety +3

    6:26 eso esta desordenado si vieras los míos

  • @anthonyrose455
    @anthonyrose455 Před 2 lety +4

    Es que los de WarioWare están 4 universos paralelos adelante de ti y supieron que en un momento Guinxu iba a venir a hackearse el juego

  • @rastersoft
    @rastersoft Před 2 lety

    Yo tuve un caso donde puse en práctica lo de reciclar objetos en lugar de crearlos y destruirlos. Fue en la carrera, en la asignatura de laboratorio de simulación (teleco): teníamos que simular un sistema de colas múltiples, donde distintos eventos entraban en varios recursos con colas y consumían un cierto tiempo en el recurso, y al salir entraban en la cola de otro recurso, o salían del sistema (todo en C++), y a partir de la simulación, obtener valores como el tiempo medio de espera en cola y demás. Cada evento era un objeto, y efectivamente, si creaba un objeto nuevo cada vez que lo necesitaba y lo destruía cada vez que ya no lo necesitaba, iba muchísimo más lento que si hacía un pool.
    Sin embargo, creo que se el motivo de que tú no notases diferencia y yo sí: en C++ la gestión de memoria es explícita: cada vez que hago un new() o un malloc() se reserva un bloque de memoria, lo que implica recorrer una lista enlazada para buscar un bloque libre de tamaño suficiente, ajustar la lista de bloques libres si se encuentra, pero si no hay entonces hay que llamar al núcleo para que modifique las tablas de páginas y segmentos del procesador para reservar más espacio direccionable al final del heap, lo que encima te desbarata la caché... vamos, un proceso bastante lento.
    En cambio, si no me equivoco, tu usas o JavaScript o C# en Unity, y esos son lenguajes que corren sobre una máquina virtual (por mucho que se compilen a nativo por debajo, siguen teniendo un runtime bastante gordo), e incluyen gestión automática de memoria. Es por esto que, muy probablemente, hagan cosas como reservar más memoria de la necesaria, contando con que en el futuro la van a usar, y así reducir el número de veces que hay que tocar las tablas de segmentos/páginas y llamar al núcleo (cosa que también hacen algunos MALLOCs avanzados en C, por cierto; por ejemplo, si pides X bytes, ellos reservan a nivel de sistema operativo hasta la potencia de 2 más cercana por arriba, de manera que les queda sitio extra para pequeños trozos que se pidan más adelante. Si no recuerdo mal, así lo hace gmalloc, el malloc portable de GLib), además de que, al trabajar con objetos de manera nativa, muy probablemente hagan un pool interno de objetos "terminados" en base al tamaño, con lo que cuando haces un "new" para un nuevo objeto del mismo tipo, pueden obtener muy rápidamente un bloque de memoria del tamaño adecuado.
    A fin de cuentas, como ya sabes, en C/C++ la gestión de memoria es explicita y no existe realmente un runtime por debajo, lo que significa que no se pueden hacer muchos trucos que un sistema con un runtime como C#, Javascript o incluso ObjectiveC sí pueden hacer.
    En mi caso, además, hice una optimización extra: dado que no sabía de primeras cuantos elementos iba a necesitar, lo que hacía era partir del pool vacío, y cada vez que necesitaba un elemento y el pool estaba vacío, entonces lo creaba, pero al terminar con él lo metía en el pool en lugar de destruirlo. Así la cantidad iba subiendo, pero en cuanto se alcanzaba un régimen estable ya no se creaban más. Pero, y esta es la verdadera optimización, no creaba sólo uno, sino que pedía un bloque de memoria del tamaño de un múltiplo de una página del procesador (por ejemplo un múltiplo de 4kbytes en x86, o de 8kbytes en SPARC; si mal no recuerdo, pillaba un bloque de 64Kbytes) y creaba dentro de él los nuevos objetos. De esa manera reducía al mínimo posible la llamada al sistema operativo para ampliar las zonas de memoria disponibles y las comprobaciones que tiene que hacer para saber si el bloque que pedí entra en lo que ya tengo o no.
    El resultado fue que quedé segundo. Y no quedé primero porque el otro hizo trampas al saltarse un requisito que ponía claramente en el enunciado de la práctica. Pero esa es otra historia, y debe ser contada en otra ocasión :-D
    Y hasta aquí la historia del abuelo cebolleta :-)

  • @LCYTAdrianNo1
    @LCYTAdrianNo1 Před 2 lety +1

    07:56
    Bien dicho que donde hay confianza entra la ... Amistad* Guiño Guiño*

  • @Javier-ft5mx
    @Javier-ft5mx Před 2 lety +3

    No le crean,lo mejor es al hacer tu juego lo único que tienes que hacer es poner de requisitos esto:
    Rtx 3090
    Core i9 11900k
    32gb ram
    200gb almacenamiento

    • @bley6420
      @bley6420 Před 2 lety

      Como que 200 Gb póngale que 500 Gb y así no nos preocupamos por el peso del juego

  • @SergioRibera
    @SergioRibera Před 2 lety +2

    Justamente, a veces el proceso de refactor no vale la pena porque requiere mucho tiempo y recursos. Aunque si esta bueno tener buenas bases iniciales para que el proceso de desarrollo no sea caotico

  • @hsmt604
    @hsmt604 Před 2 lety +1

    Enhorabuena por esa caza del StarOcean para SuperFamicom!! Podrías mostrar tu cole actualizada para inspirar compras!! Un saludo

  • @0xva
    @0xva Před 2 lety +2

    Como dijo Donald Knuth "La optimización prematura es la raíz de todos los males."

  • @nicolasxd7717
    @nicolasxd7717 Před 2 lety +44

    Resumen: Los codigos de guinxu son god y los de alva zzzzzzzz

  • @mateodaza5558
    @mateodaza5558 Před 2 lety +3

    Juegos mal optimizados
    Geometry Dash: yo inventé eso

  • @Viejascachonditas
    @Viejascachonditas Před 2 lety +1

    7:55 " tu ya sabes que hay confianza y te introduzco lo que me pidas "

  • @kaizervamph
    @kaizervamph Před 2 lety

    siempre que uno hace juegos con mucho spawn de objetos es buena idea crear un manager que extienda la funcionalidad del garbage collector, en unreal al menos siempre que tenga un pool de objetos muy grandes, busco de spawnear solo el objeto una vez, y luego con ese mismo generar mallas instanciadas, de todas maneras dependera del codigo y la logica que pretenda

  • @djgio6804
    @djgio6804 Před 2 lety +20

    en resumen: hay que optimizar la optimización jajajaja buen video guinxu

  • @missingnossj9652
    @missingnossj9652 Před 2 lety +4

    10:53 OH GOD!! Es un juego de Morning Musume!!!... Sinceramente no lo conocia, pero en cuanto lo vi me emocione a ver a las mini moni (y las demas integrantes, claro), yo mataría por tener ese juego...
    P.D: ver algo que me gusta en el canal que me gusta, simplemente epico.

  • @luismanuel2107
    @luismanuel2107 Před 2 lety +1

    Una vez hice un emulador de chip8 en kivy, y simulaba una pantalla antigua usando varios objetos en forma de cuadrados, al probarlo en Android me di cuenta de que la emulación tenía demasiado lag.
    Así que recurrí al object pooling, lo que hice fue crear todos esos cuadrados al principio y solo cambiar sus propiedades, al realizar las siguientes pruebas ya no había lag.

  • @404ErrorFatal
    @404ErrorFatal Před 2 lety +1

    Explica las buenas prácticas de la optimización de código y gráficos

  • @capmayonesa
    @capmayonesa Před 2 lety +4

    11:37 Anciano explica relaciones con su esposa.

  • @Javier-vi6db
    @Javier-vi6db Před 2 lety +3

    A buenas horas el vídeo. 😂

    • @jalow6446
      @jalow6446 Před 2 lety +1

      La pregunta es, que hace usted despierto ? 🤨

    • @Javier-vi6db
      @Javier-vi6db Před 2 lety

      @@jalow6446 Buena pregunta 😂

  • @misterjuan111
    @misterjuan111 Před 2 lety

    Podrías probar el object pooling con enemigos que aparecen continuamente y que tengan muchas variables (cambio de texturas, clases y armas, dificultad random, etc.) Y cada vez que se haga el spawn de un enemigo, se cambien esas variables en vez de crear una nueva instancia. Igual y así sale más fácilmente el vídeo del object pooling.

    • @misterjuan111
      @misterjuan111 Před 2 lety

      O si los enemigos necesitan traer datos de un API para poder instanciarse, también podría ser útil el object pooling debido a la latencia pero solo sería útil en casos muy específicos

  • @moisespleytez
    @moisespleytez Před 2 lety +2

    con ese mensaje final me has animado a empezar a hacer juegos, me encanta hacer historias, y jugar videojuegos, empezaré a crear juegos con muñecos stickman y espero algun dia aprender a hacer pixel art uwu

  • @nancat9122
    @nancat9122 Před 2 lety +5

    Mi juego favorito es hackear juegos

  • @tutojuegosnabil8384
    @tutojuegosnabil8384 Před 2 lety +4

    yanderedev: XD

  • @Michael-ke9kf
    @Michael-ke9kf Před 2 lety +1

    7:54 la parte del video más sacable de contexto, lo ame

  • @338fabian
    @338fabian Před 2 lety +1

    en mugen los helpers consumen recursos a la hora de su uso ya que si un personaje tiene programado muchos codigos helpers=ayudantes ya sea para llamar a un explod=imagen o sonido se vuelve tan lento en carga entre carga de personajes para cada pelea ejemplo si hago un 1 vs 1 y uno de los personajes esta programado a puro codigo helpers se va a tardar mas en cargar todo el personaje completo y lo que yo hago es disminuir los helpers y modificarlos a explod para reducir la carga y solo dejar 1 o 2 codigos helpers en el personaje que los uso dentro del mismo motor osea el archivo general que llama a los efectos.
    pero tambien depende de que disco tenga uno para la lentitud de carga en el principio ya que no solo codigo tarda sino tambien lo que son los archivos de sonidos los archivos de imagenes etc, y peor tarda mas si es un personaje con doble modo y no esta optimizado para que la carga sea menor.

  • @alvarofernandocunson2620
    @alvarofernandocunson2620 Před 2 lety +4

    Soy uno de los primeros por primera vez

    • @Frizztyk
      @Frizztyk Před 2 lety

      Primeros en comérsela

  • @cyberpegasus1311
    @cyberpegasus1311 Před 2 lety

    En mi caso hice hace tiempo una prueba en Unity donde instanciaba entre 6000 y 20000 balas que hacían patrones estilo touhou. Si los creaba y destruía iba entre 2 y 7 FPS.
    Si usaba Object pooling si había incremento, pero era un lío. Tenía que poner una pared detrás de los personajes y hacer que sus balas al colisionar con sus paredes volvieran a la pool y el número de balas era muy difícil de calcular.
    Haciendo pruebas encontré que con 400 sólo había algunas pocas veces que desaparecían balas. Esto hizo una subir los FPS entre 25 y 90.
    Por último usé DOTS ECS, una tecnología donde se tratan de forma diferente los objetos y sus scripts y se puede hacer multrithread. Fue bastante complejo de hacer porque hay poca información pero el incremento fue bestial, subió a alrededor de 400 FPS, y si lo ponía con Burst Compiler subía de esos 400 a 900 de máximo.

  • @rastersoft
    @rastersoft Před 2 lety

    Lo de la pata del flamenco me recordó a mí mismo en BUP: habíamos dado en física las ecuaciones de Schrodinger para los orbitales, y claro, yo veía los dibujos de los orbitales en el libro y no entendía cómo el orbital P podían ser dos medias bolas, así, sin más. Así que cogí el QBasic y su famoso modo 13 e hice un programa que pintaba la ecuación, a ver qué demonios salía. La cuestión es que la ecuación utilizaba coordenadas polares, pero la pantalla trabaja en coordenadas cartesianas. Podía pasar fácilmente de coordenadas polares a cartesianas mediante SIN() y COS(), pero yo necesitaba lo contrario: pasar de cartesianas (la coordenada de pantalla) a polar (el ángulo y el módulo), para calcular el valor de la ecuación en cada pixel, y para eso necesitaba el ARCSIN y el ARCCOS (o sea, las inversas)... ¡¡¡Y EL QBASIC NO LAS TENÍA!!! ¡¡¡Sólo tenía ARCTAN, la inversa de la tangente!!! Así que no me quedó otra que hacerlo al revés: en vez de recorrer 0

  • @FRANCISCOCARRIONIK
    @FRANCISCOCARRIONIK Před 2 lety +2

    0:36 guinxu eso es tuning o vinilos pero eso es genial me encanta pero yo le pondria el sonic jejeje me gusta sonic

  • @reder093
    @reder093 Před 2 lety +2

    Una vez hice un bullet hell con eso de crear y destruir en game maker aunque nunca me paso nada, la única optimización que tenía era que las balas al salir de la pantalla se destruían.

  • @GES402
    @GES402 Před 2 lety +1

    11:08 :0 alto poster de jojo, guinxu es jojofan B)

  • @ErickGarcia-jn6id
    @ErickGarcia-jn6id Před 2 lety +1

    8:28 sabía que habían JoJoreferencias !!! 🤑🤙🏻

  • @andricode
    @andricode Před 2 lety

    Yo he llegado a hacer unos pocos juegos con un sistema de objetos que se creaban y destruían (balas con efectos de partículas) y en general no hubo ningún bajón de fps, y eso que lo probé directamente en un celular del 2016.
    También hice un port del juego a html5 en canvas2d y aún así estando usando un solo hilo no hubo problemas.
    Una pequeña nota, en el port solo se lageaba cuando el objeto se dibujaba por primera vez