Este juego está MAL optimizado pero NO IMPORTA

แชร์
ฝัง
  • เผยแพร่เมื่อ 9 ก.ย. 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.steampowered.com/app/12...
    ⭐ 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.
  • เกม

ความคิดเห็น • 943

  • @Guinxu
    @Guinxu  2 ปีที่แล้ว +1313

    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 2 ปีที่แล้ว +1655

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

    • @kaliorsi
      @kaliorsi 2 ปีที่แล้ว +39

      Shitpost:

    • @solanamcco7261
      @solanamcco7261 2 ปีที่แล้ว +58

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

    • @kaliorsi
      @kaliorsi 2 ปีที่แล้ว +12

      @@solanamcco7261 😃😀😐🤨

    • @samnesssepiol1230
      @samnesssepiol1230 2 ปีที่แล้ว +4

      @@kaliorsi yo

    • @ellukitas_1239
      @ellukitas_1239 2 ปีที่แล้ว +5

      Denunciable xD

  • @victorperezgomez534
    @victorperezgomez534 2 ปีที่แล้ว +1146

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

    • @ninomorello4392
      @ninomorello4392 2 ปีที่แล้ว +34

      😳

    • @At0mskGamer
      @At0mskGamer 2 ปีที่แล้ว +64

      Momento "Ara ara"

    • @israman77
      @israman77 2 ปีที่แล้ว +92

      Le va a enseñar cómo meter el cartucho en el adaptador

    • @andreuribe4167
      @andreuribe4167 2 ปีที่แล้ว +29

      bromomento

    • @eaquex
      @eaquex 2 ปีที่แล้ว +24

      Diablos señorito 😂😂😂😂😂😂😂

  • @vladimirputin2944
    @vladimirputin2944 2 ปีที่แล้ว +338

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

    • @Bryan183
      @Bryan183 2 ปีที่แล้ว +43

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

    • @yoshis7778
      @yoshis7778 2 ปีที่แล้ว +17

      alva: introduce tu dinero en mi cuenta

    • @juanma_cello
      @juanma_cello 2 ปีที่แล้ว +6

      Estaba buscando este comentario

    • @hecthor6000
      @hecthor6000 2 ปีที่แล้ว

      @@yoshis7778 comentario copiado

    • @yoshis7778
      @yoshis7778 2 ปีที่แล้ว

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

  • @SirGary
    @SirGary 2 ปีที่แล้ว +370

    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  2 ปีที่แล้ว +86

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

    • @saul67pro
      @saul67pro 2 ปีที่แล้ว +13

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

    • @0x19
      @0x19 2 ปีที่แล้ว +11

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

    • @SrLobo90
      @SrLobo90 2 ปีที่แล้ว +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.

  • @Aguineu
    @Aguineu 2 ปีที่แล้ว +288

    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 2 ปีที่แล้ว +10

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

    • @sebascolorgg4984
      @sebascolorgg4984 2 ปีที่แล้ว +5

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

    • @ISuperI
      @ISuperI 2 ปีที่แล้ว +5

      Vaya hasta rima xD

    • @rszt5210
      @rszt5210 2 ปีที่แล้ว +1

      @@sebascolorgg4984 AKAJAJJSKA

    • @skookamv8487
      @skookamv8487 2 ปีที่แล้ว +1

      @@ISuperI si XD

  • @Gian_sfc
    @Gian_sfc 2 ปีที่แล้ว +530

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

    • @moisespleytez
      @moisespleytez 2 ปีที่แล้ว +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 2 ปีที่แล้ว +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 2 ปีที่แล้ว +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 2 ปีที่แล้ว +22

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

    • @miltox
      @miltox 2 ปีที่แล้ว +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

  • @STARTTY
    @STARTTY 2 ปีที่แล้ว +149

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

  • @joserogeliogutierrezaraujo2777
    @joserogeliogutierrezaraujo2777 2 ปีที่แล้ว +292

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

    • @arubikcubethatshouldnthave4440
      @arubikcubethatshouldnthave4440 2 ปีที่แล้ว +4

      grande

    • @MrVault-fi6nv
      @MrVault-fi6nv 2 ปีที่แล้ว +9

      Oh my god another jojoreference

    • @edwinmonge9155
      @edwinmonge9155 2 ปีที่แล้ว +6

      ¿Acaso los encuentros no son alguna clase de gravedad?
      Ni modo, a añadir flatworld a mi lista de deseos

    • @MrVault-fi6nv
      @MrVault-fi6nv 2 ปีที่แล้ว +2

      @@edwinmonge9155 Entre usuarios de stand sí

  • @g4m3rz64
    @g4m3rz64 2 ปีที่แล้ว +439

    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! ^-^

    • @ZaelKraft
      @ZaelKraft 2 ปีที่แล้ว +3

      Jaja

    • @m.alexanderjarquin1859
      @m.alexanderjarquin1859 2 ปีที่แล้ว +4

      😳😳

    • @enriquefalcon3808
      @enriquefalcon3808 2 ปีที่แล้ว +7

      Un hechizo simple pero inquebrantable

    • @abrahammartinez3603
      @abrahammartinez3603 2 ปีที่แล้ว +2

      Alva: lo voy a gozar... Como no lo puedes imaginar.

    • @Deivo_Mtg
      @Deivo_Mtg 2 ปีที่แล้ว +3

      Guinxu:pero primero te introducire algo más antes de introducir ese dinero ( ͡° ͜ʖ ͡°)

  • @silveriasilva5867
    @silveriasilva5867 2 ปีที่แล้ว +35

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

  • @mariajuana3280
    @mariajuana3280 2 ปีที่แล้ว +10

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

  • @antoniomunn3208
    @antoniomunn3208 2 ปีที่แล้ว +56

    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.

  • @JasperDev
    @JasperDev 2 ปีที่แล้ว +315

    Guinxu por favor ve a dormir, ya esta tarde uwu

    • @mosdei
      @mosdei 2 ปีที่แล้ว +3

      aaa 2 segundos

    • @maxzzzpro
      @maxzzzpro 2 ปีที่แล้ว +2

      no

    • @iansu1238
      @iansu1238 2 ปีที่แล้ว +2

      uwu

    • @jul55778
      @jul55778 2 ปีที่แล้ว +13

      **un youtuber famoso aparece**
      Todos: khe haces aki?!

    • @carlpersona8426
      @carlpersona8426 2 ปีที่แล้ว +1

      O

  • @mtnfutedits596
    @mtnfutedits596 2 ปีที่แล้ว +152

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

  • @Esteban_83
    @Esteban_83 2 ปีที่แล้ว +41

    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 2 ปีที่แล้ว +110

    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 2 ปีที่แล้ว +7

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

    • @xEndkoNx
      @xEndkoNx 2 ปีที่แล้ว +3

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

    • @lisandrulo9573
      @lisandrulo9573 2 ปีที่แล้ว

      @@xEndkoNx Nunca jugue need for speed

    • @aguacatedev5991
      @aguacatedev5991 2 ปีที่แล้ว +5

      Es solo una imagen, como el puente de kindom hearts

    • @josuemosquera3238
      @josuemosquera3238 2 ปีที่แล้ว +3

      @@aguacatedev5991 tipico de guinxu xd

  • @PKPoyo
    @PKPoyo 2 ปีที่แล้ว +72

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

  • @srqubit9480
    @srqubit9480 2 ปีที่แล้ว +5

    7:50 wtf ginxu le introduce lo que quiera

  • @infinite1000darc
    @infinite1000darc 2 ปีที่แล้ว +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.

  • @BtHacha
    @BtHacha 2 ปีที่แล้ว +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 2 ปีที่แล้ว +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 2 ปีที่แล้ว +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 2 ปีที่แล้ว +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 2 ปีที่แล้ว +2

      @@lorenzito0852 concuerdo totalmente

    • @BtHacha
      @BtHacha 2 ปีที่แล้ว +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 😂

  • @andresfelipemunozaguilar5607
    @andresfelipemunozaguilar5607 2 ปีที่แล้ว +4

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

  • @sayu_chan2002
    @sayu_chan2002 2 ปีที่แล้ว +4

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

  • @BitBoss
    @BitBoss 2 ปีที่แล้ว +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 2 ปีที่แล้ว +1

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

    • @Jaimetu0012
      @Jaimetu0012 2 ปีที่แล้ว +1

      Grande

  • @nachomateuramon6983
    @nachomateuramon6983 2 ปีที่แล้ว +7

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

  • @Scafidi616
    @Scafidi616 2 ปีที่แล้ว +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

  • @QuimGarrigos
    @QuimGarrigos 2 ปีที่แล้ว +9

    En TH-camrs 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

  • @JosueCM
    @JosueCM 2 ปีที่แล้ว +17

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

  • @yoshis7778
    @yoshis7778 2 ปีที่แล้ว +6

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

  • @rueton
    @rueton 2 ปีที่แล้ว +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.

  • @thenecrocoffe
    @thenecrocoffe 2 ปีที่แล้ว +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

    • @MasterGiant4841
      @MasterGiant4841 2 ปีที่แล้ว +5

      Joder en una prueba de embarazo!!!

    • @mond0ngobv231
      @mond0ngobv231 2 ปีที่แล้ว

      @@MasterGiant4841 xD

    • @diegodig9
      @diegodig9 2 ปีที่แล้ว

      Se puede ver parte de su código?

  • @pecosbill3336
    @pecosbill3336 2 ปีที่แล้ว +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 2 ปีที่แล้ว +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 2 ปีที่แล้ว +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)

  • @danielreyes7156
    @danielreyes7156 2 ปีที่แล้ว +7

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

  • @shadyocclusion872
    @shadyocclusion872 2 ปีที่แล้ว +48

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

    • @Hola-cx6fu
      @Hola-cx6fu 2 ปีที่แล้ว +3

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

    • @thanosgerman6418
      @thanosgerman6418 2 ปีที่แล้ว +1

      @@Hola-cx6fu XD

  • @elbicho1914
    @elbicho1914 2 ปีที่แล้ว +3

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

  • @josueromero1337
    @josueromero1337 2 ปีที่แล้ว +26

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

  • @elmeromerofan8767
    @elmeromerofan8767 2 ปีที่แล้ว +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

  • @nicolasfumador2074
    @nicolasfumador2074 2 ปีที่แล้ว +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 :)

  • @anthonylindao07
    @anthonylindao07 2 ปีที่แล้ว +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 2 ปีที่แล้ว +14

      ARK está peor Optimizado que PUBG en su inicio.

    • @moisespleytez
      @moisespleytez 2 ปีที่แล้ว +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 2 ปีที่แล้ว

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

    • @jkvier7136
      @jkvier7136 2 ปีที่แล้ว +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 2 ปีที่แล้ว

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

  • @JuanChona
    @JuanChona 2 ปีที่แล้ว +4

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

  • @martesdemotores5410
    @martesdemotores5410 2 ปีที่แล้ว +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)

  • @pabloh.4103
    @pabloh.4103 2 ปีที่แล้ว +2

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

  • @elgranedgamer722
    @elgranedgamer722 2 ปีที่แล้ว +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!!!!!

  • @rtucanxd
    @rtucanxd 2 ปีที่แล้ว +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

  • @jericalnaudes9444
    @jericalnaudes9444 2 ปีที่แล้ว

    Excelentes tus vídeos.
    Me gustaría comentar que me sorprendí muchísimo que tenía mucho tiempo viéndote y no sabía que la canción del momento Guinxu era la de Golden Sun hasta que lo jugué hace poco. Me emocionó mucho escuchar esa canción mientras jugaba!

  • @kaizervamph
    @kaizervamph 2 ปีที่แล้ว

    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

  • @Sokrof
    @Sokrof 2 ปีที่แล้ว +7

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

  • @mikeyemulators1813
    @mikeyemulators1813 2 ปีที่แล้ว +25

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

    • @Ryokusei2
      @Ryokusei2 2 ปีที่แล้ว +9

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

    • @penkinodenuevo7468
      @penkinodenuevo7468 2 ปีที่แล้ว +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.

    • @flawoflawlessy
      @flawoflawlessy 2 ปีที่แล้ว +2

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

  • @rusbelantonioanijagarcia6008
    @rusbelantonioanijagarcia6008 2 ปีที่แล้ว

    Usaste el modelo de arwing de star-fox para el ejemplo del rendimiento del shooter espacial

  • @338fabian
    @338fabian 2 ปีที่แล้ว +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.

  • @lautarogonzalez2700
    @lautarogonzalez2700 2 ปีที่แล้ว +2

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

  • @ivancraftinglol5384
    @ivancraftinglol5384 2 ปีที่แล้ว +4

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

  • @jlinkproxy
    @jlinkproxy 2 ปีที่แล้ว

    Buena reflexión. Yo programo macros en mi actual trabajo, y estoy obsesionado con la optimización, porque vba es muy malo para ciertas tareas. Sin embargo, también es cierto que algunas ocasiones he usado por ejemplo, etiquetas y goto, para resolver ciertas tareas. Y pongo mi ejemplo, porqué un programador más experimentado podría criticar mis métodos, pero también es cierto que un usuario final ignora mucho de lo que ocurre tras bambalinas, y eso es lo que importa.
    Yo soy de la idea que saber programar es una cuestión más, de saber resolver problemas que de dominar un lenguaje. Eso sí, cómo dices, es bueno hacer uso de tus conocimientos, pero siempre será recomendado aprender más.

  • @chuyamescua9445
    @chuyamescua9445 2 ปีที่แล้ว +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

  • @Axenide
    @Axenide 2 ปีที่แล้ว +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

  • @giornofacha4047
    @giornofacha4047 2 ปีที่แล้ว +4

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

    • @Stt_Sebx
      @Stt_Sebx 2 ปีที่แล้ว +1

      Si

    • @guajolotemacias4323
      @guajolotemacias4323 2 ปีที่แล้ว +1

      No pa los autos otakus tienen un olor asqueroso y además dan vergüenza :(

  • @ZoroastrianMK
    @ZoroastrianMK 2 ปีที่แล้ว

    En un shooter/space invaders VR que hice, tanto los enemigos como el jugador no paraban de disparar, y el implementar el object pooling si que ayudo a que fuera muy bien. Algo parecido fue cargar los enemigos deshabilitados entre oleada y oleada, y activarlos cuando fuera preciso

  • @shoker_rider
    @shoker_rider 2 ปีที่แล้ว +2

    8:31 si... creo en la gravedad

  • @anthonyrose455
    @anthonyrose455 2 ปีที่แล้ว +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

  • @ACYRB
    @ACYRB 2 ปีที่แล้ว +5

    Si

  • @juancrespo866
    @juancrespo866 2 ปีที่แล้ว

    Un buen ejemplo del Object Pooling podrían haber sido las canicas de Pureya. Porque además eso acabo provocando un bug muy tonto (por insignificante) que trajo a Alva de cabeza varias semanas, porque el pool era en casos muy concretos demasiado pequeño. Subió un video sobre ello

  • @moisespleytez
    @moisespleytez 2 ปีที่แล้ว +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

  • @the_collector_52
    @the_collector_52 2 ปีที่แล้ว +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 2 ปีที่แล้ว

      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 2 ปีที่แล้ว

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

    • @dydierripe5611
      @dydierripe5611 2 ปีที่แล้ว

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

    • @the_collector_52
      @the_collector_52 2 ปีที่แล้ว

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

  • @SergioRibera
    @SergioRibera 2 ปีที่แล้ว +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

  • @serraiglesias8552
    @serraiglesias8552 2 ปีที่แล้ว +2

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

  • @Rhomita
    @Rhomita 2 ปีที่แล้ว +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 🙌

  • @CositaPeculyar
    @CositaPeculyar 2 ปีที่แล้ว +3

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

  • @Yntoxicboy.
    @Yntoxicboy. 2 ปีที่แล้ว +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.

  • @rastersoft
    @rastersoft 2 ปีที่แล้ว

    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 :-)

  • @GoldenPockets2
    @GoldenPockets2 2 ปีที่แล้ว

    Pues yo si he tenido problemas con el object pooling.
    Cuando programé un juego en android con libGDX en el que generaba los obstáculos de forma dinámica. Y eran pocos, como 10 o 20 por segundo.
    Era culpa del garbage collector. Quizá también del debugger (no recuerdo que pasaba en release).
    Era en un Nexus 4, allá por 2014 creo.
    Pues había frames que tardaban 200 ms en renderizarse por culpa de esto (pasaba en 1 frame cada 5 o 10 segundos, lo que tardaba el colector en querer recolectar) y con un pool del 20 obstáculos se arregló.

  • @henrycanon304
    @henrycanon304 2 ปีที่แล้ว +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 2 ปีที่แล้ว +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 2 ปีที่แล้ว

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

  • @gabrielrodriguez-pk3ce
    @gabrielrodriguez-pk3ce 2 ปีที่แล้ว +3

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

  • @alvarogomezfernandez8770
    @alvarogomezfernandez8770 2 ปีที่แล้ว +1

    Hola @Guinxu, necesito que me digas como puedo comenzar a programar y escribir codigos y todo eso para en un futuro lejano intentar crear videojuegos. Quiero aprender ahora que soy joven.
    Gracias de antemano!🙏🙏🙏
    (Responde plss)

  • @whoknowsmyfukingname
    @whoknowsmyfukingname 2 ปีที่แล้ว

    Esta mañana vi un video tuyo antigo y me alegro mucho de lo que has crecido en TH-cam

  • @-18
    @-18 2 ปีที่แล้ว +19

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

  • @brunoalonsocardenaslopez8137
    @brunoalonsocardenaslopez8137 2 ปีที่แล้ว +3

    10:33 ¿El de abajo es Zun?

  • @0xva
    @0xva 2 ปีที่แล้ว +2

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

  • @Krlos_Hernandez
    @Krlos_Hernandez 2 ปีที่แล้ว

    Yo tuve que recurrir al object pulling en un juego no por que mejorara el juego sino por que simplemente era mi primer proyecto y no sabia como hacer que funcionara el juego ya que al borrar un objeto no sabia hacer que aparezca de nuevo y sin querer use esta tecnica

  • @mateodaza5558
    @mateodaza5558 2 ปีที่แล้ว +3

    Juegos mal optimizados
    Geometry Dash: yo inventé eso

  • @djgio6804
    @djgio6804 2 ปีที่แล้ว +20

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

  • @luismanuel2107
    @luismanuel2107 2 ปีที่แล้ว +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.

  • @reder093
    @reder093 2 ปีที่แล้ว +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.

  • @nicolasxd7717
    @nicolasxd7717 2 ปีที่แล้ว +43

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

  • @Javier-ft5mx
    @Javier-ft5mx 2 ปีที่แล้ว +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 2 ปีที่แล้ว

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

  • @andricode
    @andricode 2 ปีที่แล้ว

    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

  • @Likulau059
    @Likulau059 2 ปีที่แล้ว

    Hace varios años cuando me comenzó a interesar el tema de desarrollo de videojuegos decidí comenzar en un programa sin código (Clickteam Fusion) para comenzar con mis primeros proyectos y ver si me gustaba, y la verdad me fue bastante bien con mis pruebas, mucho tiempo después de ir practicando y estudiando de algunos canales fui haciendo proyectos un poco más ambiciosos y cuando hacia la Build para probarlo notaba que entre los cambios de escenas había un tiempo de carga exageradamente alto, y en ciertas escenas donde tenia que crear y destruir objetos había bajones fuertes, en mi caso para solucionar esto cree una escena aparte que no apareceria nunca en el proyecto final pero estaría ahí cargada, con esto, simplemente determinaba las condiciones a cumplir para ir cargando o quitando los objetos durante la partida y en general esto me soluciono varios problemas.

  • @nancat9122
    @nancat9122 2 ปีที่แล้ว +5

    Mi juego favorito es hackear juegos

  • @capmayonesa
    @capmayonesa 2 ปีที่แล้ว +4

    11:37 Anciano explica relaciones con su esposa.

    • @Ivanvi_55
      @Ivanvi_55 11 หลายเดือนก่อน

      XD

  • @404ErrorFatal
    @404ErrorFatal 2 ปีที่แล้ว +1

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

  • @SoulDXD123
    @SoulDXD123 29 วันที่ผ่านมา +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😉

  • @Javier-vi6db
    @Javier-vi6db 2 ปีที่แล้ว +3

    A buenas horas el vídeo. 😂

    • @jalow6446
      @jalow6446 2 ปีที่แล้ว +1

      La pregunta es, que hace usted despierto ? 🤨

    • @Javier-vi6db
      @Javier-vi6db 2 ปีที่แล้ว

      @@jalow6446 Buena pregunta 😂

  • @missingnossj9652
    @missingnossj9652 2 ปีที่แล้ว +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.

  • @Webos_Nya
    @Webos_Nya 2 ปีที่แล้ว

    Hola te has puesto a pensar en easter eggs para tu juego flatwordl sobre tu cunal o cosas asi

  • @vegetamaker
    @vegetamaker 2 ปีที่แล้ว

    ¡Oye! Pues justamente uno de los pocos proyectos que he empezado (y nunca terminado por supuesto) usé el object pulling, como dices por recomendación de aquí y allá. Pero al princpio, en mi propio aprendizaje, no lo usaba y tampoco noté ninguna diferencia. Me planteé si hacerlo "bien" o dejarlo como estaba.
    Pero me dije "más vale prevenir que curar". Además, me parecía bastante bonito el resultado final (ese del cual nadie ve, pero tu sabes que está ahí detrás).
    Gracias por sacarme un poco de nostalgia :_)

  • @tutojuegosnabil8384
    @tutojuegosnabil8384 2 ปีที่แล้ว +4

    yanderedev: XD

  • @alvarofernandocunson2620
    @alvarofernandocunson2620 2 ปีที่แล้ว +4

    Soy uno de los primeros por primera vez

    • @Frizztyk
      @Frizztyk 2 ปีที่แล้ว

      Primeros en comérsela

  • @adrenological1
    @adrenological1 2 ปีที่แล้ว

    en rpg maker no pueden compartirse los eventos creados en diferentes mapas, buscando en foros logré dar con un código para sortear esto y crear balas de distintos tipos. tras cien disparos el juego comenzaba a dar tirones. Estos objetos entraban con animación de caminar y tras probar noté que quitando las animaciones el juego soportaba más tiempo sin dar tirones, aún así, se volvía injugable sea con la animación activada o no. La solución a la caida de frames fue no traer objetos nuevos a escena, resetear los mismos nueve eventos fuera de camara.

  • @poketto1113
    @poketto1113 2 ปีที่แล้ว +2

    8:50 viendo ese ejemplo se parece a lo mismo que estoy haciendo con mi juego que en vez de 1 tengo 4 scripts haciéndolo todo jaja