The True Boolean
The True Boolean
  • 14
  • 3 520
¿Qué es RAII en C++? Programación de videojuegos
En este vídeo, comparto una experiencia reciente en una entrevista para una posición de Senior Gameplay Developer en una destacada empresa de videojuegos. Me preguntaron sobre el patrón de diseño 'Resource Acquisition is Initialization' (RAII) en C++. Descubre qué es RAII, cómo funciona y por qué es crucial en el desarrollo de videojuegos para la gestión segura de recursos. ¡Acompáñame mientras desglosamos este concepto con ejemplos prácticos y consejos!
══════════════
📂 **Recursos:**
👉 Github del canal: github.com/AlejandroSuau/thetrueboolean
══════════════
SÍGUEME EN REDES SOCIALES
👉🏻 Mi Instagram: the.true.boolean
══════════════
⌛ **Capítulos:**
00:00 Introducción
00:16 ¿Cuál fue la pregunta del entrevistador?
00:51 ¿Qué es RAII?
01:07 Procedencia del nombre de RAII
01:17 ¿Cómo funciona RAII?
01:43 Ejemplos
02:54 Ventajas
03:10 Conclusión
══════════════
Переглядів: 63

Відео

¡Aprende a Programar el Juego Snake en C++ con SDL! 🚀 (Tutorial Completo Paso a Paso)
Переглядів 1872 місяці тому
¿Te gustaría crear el famoso y mítico juego del Snake con C ? Estás en el lugar correcto. En este vídeo aprenderás cómo hacerlo y tendrás el código accesible para ti. Utilizaremos el framework SDL2 (Simple DirectMedia Layer) que nos permitirá interactuar con el sistema a bajo nivel y nos proporcionará herramientas tales como: abrir una ventana, manejar los eventos de teclado o crear un renderiz...
Cómo crear Flappy Bird con C++ y SDL - Fácil y Sencillo
Переглядів 2012 місяці тому
En este video, te explico cómo crear el famoso juego de Flappy Bird con C . Utilizaremos el framework SDL2 (Simple DirectMedia Layer) que nos permitirá interactuar con el sistema a bajo nivel y nos proporcionará herramientas tales como: abrir una ventana, manejar los eventos de teclado o crear un renderizador entre otros. ══════════════ ENLACES MENCIONADOS 👉 Github del canal: github.com/Alejand...
Cómo Crear Videojuegos en C++ - Paso a Paso - Parte 2
Переглядів 1602 місяці тому
En este video, te explico cómo dar el primer paso para desarrollar videojuegos con C desde 0; siendo este el segundo de una lista. De corazón, me hubiese encantado poder ver una serie de vídeos así cuando me preparaba las entrevistas para las empresas top de programación de videojuegos en C como: RockStar, Paradox Interactive, DECA Games o Activision Blizzard King entre otras; con la finalidad ...
Cómo Crear Videojuegos en C++ - Paso a Paso - Parte 1
Переглядів 4073 місяці тому
En este video, te explico cómo dar el primer paso para desarrollar videojuegos con C desde 0; siendo este el primero de una lista. De corazón, me hubiese encantado poder ver una serie de vídeos así cuando me preparaba las entrevistas para las empresas top de programación de videojuegos en C como: RockStar, Paradox Interactive, DECA Games o Activision Blizzard King entre otras; con la finalidad ...
Cómo utilizar correctamente los condicionales if, else if, else y los switch
Переглядів 553 місяці тому
En este video, te explico cómo funcionan las estructuras de control de flujo en programación utilizando ejemplos prácticos en C . Aprenderás a manejar las condiciones en tu código de manera eficiente utilizando if, else if, else y switch. Además, también comprobarás cómo estas estructuras ya eran importantes y utilizadas por los primeros estoicos alrededor del 300 antes de cristo. ═════════════...
Cómo usar el Unit Testing con GTest y GMock para mejorar tus videojuegos
Переглядів 583 місяці тому
En este video, exploramos el mundo de las pruebas unitarias (unit tests) y cómo utilizarlas para mejorar la calidad del software. Te muestro cómo usar Google Test (gtest) y Google Mock (gmock) para crear pruebas efectivas en tus proyectos de programación. ══════════════ 👉 Github con el ejemplo: github.com/AlejandroSuau/thetrueboolean/tree/main/17.06.2024-unit-testing 👉 Github del canal: github....
Aprobé Física en la Universidad con 0 en todos los exámenes. ¿Cómo lo hice?
Переглядів 293 місяці тому
¿Cómo es posible aprobar una asignatura tan difícil como Física en la universidad si saqué 0 en todos los exámenes? En este vídeo, comparto mi historia personal y los pasos exactos que seguí para lograrlo. Te cuento todo lo que hice para pasar esta materia sin tener que repetirla. ¡No te pierdas estos consejos esenciales! Sígueme en mis redes sociales: Instagram: the.true.boolean
Entendiendo los Bucles en Programación: For, While y Do While con Ejemplos Reales y de Videojuegos
Переглядів 574 місяці тому
En este video, explico de manera sencilla qué son los bucles en programación y las diferencias entre un bucle for, while y do while. Acompáñame mientras te doy ejemplos prácticos de la vida real, como una lista de la compra, y ejemplos divertidos de videojuegos, como el famoso Flappy Bird. Ideal para principiantes en programación y desarrolladores que quieran reforzar sus conocimientos.
¿Qué es un autómata celular? ¿Tendrán la capacidad de gobernarnos?
Переглядів 804 місяці тому
¿Qué son los autómatas celulares? ¿Nos ayudan en nuestro día a día? ¿En qué consiste el juego de "Falling Sand"? ¿Y el de "The Game Of Life"? En este vídeo se pretende dar contestación a estas y otras preguntas sobre los autómatas celulares.
Cerca de la salvación con "The Rule Of Three"
Переглядів 13011 місяців тому
¿Por qué The Rule Of Three puede ayudarnos a sobrevivir en el desarrollo de C ? En español, conocida como "La Regla del Tres" o "La Regla de Los Tres" fue originada en C 98 para la prevención de bugs y debido a su importancia. Posteriormente, para otorgar compatibilidad con C , fue ampliada a "The Rule Of Five". Es, a día de hoy, un ente casi desconocido para muchos de nosotros como programador...

КОМЕНТАРІ

  • @angelcesar85
    @angelcesar85 Місяць тому

    wow por favor muy bueno excelente , gracias likes y nuevo suscriptor

  • @dani08sv
    @dani08sv 2 місяці тому

    Pero es lo que se hace de normal no? Desde que se enseña la POO en c++ se explica eso, solo que ese concepto se llama RAII, una pregunta muy mala para hacer en una entrevista, porque es algo que hace todo el mundo pero que no se conceptualiza digamos.

    • @The.TrueBoolean
      @The.TrueBoolean 2 місяці тому

      Aunque algunas prácticas de RAII puedan parecer intuitivas o “normales” para desarrolladores experimentados, no estoy de acuerdo con asumir que todos los desarrolladores aplican el patrón de manera sistemática y consciente. RAII es un patrón de diseño formal que ofrece beneficios claros en la gestión de recursos, y su comprensión y aplicación no deben darse por sentadas en todos los contextos de desarrollo. La pregunta en una entrevista sobre RAII no solo evalúa la familiaridad con una práctica común, sino también la profundidad del conocimiento sobre la gestión de recursos en C++.

  • @DoloresRuizRodenas
    @DoloresRuizRodenas 2 місяці тому

    Me gusta❤

  • @patcherandpatch
    @patcherandpatch 2 місяці тому

    Hey Alejandro, ¿Podría hacer un vídeo haciendo el sonido como que bebes agua? Gracias

    • @The.TrueBoolean
      @The.TrueBoolean 2 місяці тому

      @@patcherandpatch Hola! Creo que no te sigo mister. A qué te refieres? 😂

  • @xiscusmagnificus
    @xiscusmagnificus 2 місяці тому

    No he entendido nada...

  • @horaciotena5114
    @horaciotena5114 2 місяці тому

    Soy el suscriptor #69! 🎉

    • @The.TrueBoolean
      @The.TrueBoolean 2 місяці тому

      Bienvenido entonces Horacio! Espero que te sirva

  • @DoloresRuizRodenas
    @DoloresRuizRodenas 2 місяці тому

    Muy guay❤

  • @MostafaChahboune-n8h
    @MostafaChahboune-n8h 2 місяці тому

    😅😅😅😅😅😅

  • @dani08sv
    @dani08sv 2 місяці тому

    No veo el porque cargar todas las texturas de una y al principio. Si juego tiene muchas texturas, vas a cargar todo al principio consumiendo memoria de manera innecesaria hasta que se usen las texturas, que igual ni se usan porque el usuario no va a cierto sitio o no ocurre nada que las utilice?

    • @The.TrueBoolean
      @The.TrueBoolean 2 місяці тому

      Totalmente Dani. Si te fijas, estamos cargando los 3 sprites del pájaro que conforman la animación y que sí vamos a utilizar. Sin embargo, también te diré que cargar todos los assets al comienzo del juego puede tener ciertos beneficios y puede ser una estrategia a considerar. Entre ellos encontramos el de prevenir al usuario de tiempos de carga durante el propio juego, produciendo así una sensación más fluída.

    • @dani08sv
      @dani08sv 2 місяці тому

      @@The.TrueBoolean Sí eso también esta bien y tiene sentido, es que lo que tengo me parece que requiere demasiada ram porque lo comparo con otros juegos y no me cuadra estar usando casi 300MB(de momento) y me da la sensación de estar haciéndolo mal😅.

  • @dani08sv
    @dani08sv 2 місяці тому

    Me está siendo super útil y me esta viniendo bien repasar la base de como empezar un proyecto con SDL, lo que no veo es porque generar clases innecesarias como por ejemplo Engine. En el main() tengo lo que seria el engine directamente(Instancio la clase Game y tengo el bucle de run y voy llamando a las funciones Game.handleEvents, Game.update i Game.render) porque el ejecutable en si, ya considero que sea el propio engine. No acabo de ver el sentido de la clase Engine. Igual con los siguientes videos lo veo más.

    • @The.TrueBoolean
      @The.TrueBoolean 2 місяці тому

      Me alegra leer eso Dani! 🙂 Es una muy buena pregunta, trato de responderte. En la programación, siempre hay cientos de caminos para lograr el mismo resultado, eso es lo "bonito", todos podemos ser creadores de nuestra propia solución. Sin embargo, cada camino que tomamos, nos ofrece unos beneficios y unas dificultades. En mi caso, he optado por abstraer los conceptos relacionados con el Engine y encapsularlos en esa clase: como el bucle principal, el manejo de eventos, la carga de texturas, etc. Así, cuando cree un juego, puedo mantener una referencia a esa clase y hacer uso de todas sus herramientas. Hacerlo así me permite tener un main.cpp simple, que únicamente se encargue de encender y comenzar el juego. Tú solución, es otro camino diferente que también te permite obtener lo que deseas. Sin embargo, presenta el inconveniente de no permitirte reutilizar la clase Engine, y hacer crecer el fichero main.cpp a medida que añadas funcionalidades a tu motor. Aunque quizás, es lo que necesitas y también está fantástico así 🙂. Estoy seguro de que en el vídeo del domingo, con el desarrollo del Flappy Bird, podrás ver más claramente a qué me refiero. ¿Mejor así? Abrazo

    • @dani08sv
      @dani08sv 2 місяці тому

      @@The.TrueBoolean Sí, me imaginaba que era por eso. Otra cosa es el renderer que lo haces unique_ptr pero porque supongo que, viendo que va acabar siendo un flappy bird, vas a poder renderizar todo en el mismo sitio. Yo tengo el propio renderer dentro de cada objeto, con un diseño de que cada objeto se renderiza a si mismo en cadena(no se si por esto estoy teniendo bugs), primero tengo table.render(), luego dentro player1.render(), dentro tengo handCards.render() y luego acaba renderizandose cada carta ella misma. Lo que no me gusta que estoy arrastrando y pasando por todo el puntero al renderer y tambíen que tengo la logica y el renderizado en cada objeto, pero no se si el bug me puede estar viniendo por esto.

  • @sarasm0630
    @sarasm0630 2 місяці тому

    Me encantas 🤩

  • @DoloresRuizRodenas
    @DoloresRuizRodenas 2 місяці тому

    😂

  • @dani08sv
    @dani08sv 3 місяці тому

    Pues justo estoy haciendo mi proyecto de fin de grado con SDL para gráficos y asio nonboost para red. Es un juego de cartas muy simple pero la gracia es el tener que implementar los sistemas desde casi cero. Lo único malo es que ya me queda poco tiempo para entregarlo y justo empiezas la serie, pero bueno usaré lo que me de tiempo. Yo no estoy usando CMake porque me parece un coñazo y con el Visual Studio se hace todo este tema de gestionar las bibliotecas. De momento tengo un bug que a veces, cuando hago click en los botones se borra el fondo que renderizo como una textura. Lo único que se me ocurre es algo de la memoria que a veces toca con la del fondo.png o algo, pero no he conseguido debuggar esto, no veo una manera clara ni estandard de debugar en c++

    • @The.TrueBoolean
      @The.TrueBoolean 3 місяці тому

      Hola Dani! Mucho ánimo entonces. Confío en que estarás disfrutando de crearlo casi desde cero. Estoy de acuerdo con lo que comentas, cuando lo tiene que hacer uno mismo, CMake es un coñazo. Sin embargo, a mí parecer, tiene 2 ventajas para el que ve los vídeos (que es lo importante para mí): - La primera y para mí más relevante es que, con CMake y las librerías de SDL ya compiladas, puedo hacer que funcione directamente en tu ordenador, mientras que si utilizamos Visual Studio como comentas (además de que debes tener Windows como sistema operativo, o correr una máquina virtual) sólo podría explicar cómo se hace y sería tarea vuestra hacer que funcionara. Bastante más complejo a mi parecer. Aunque es una opinión. - La segunda es que no tienes que instalar nada en tu sistema operativo ni modificar las variables de entorno. Así, si mañana te cansas, borras el repositorio y tu sistema queda limpio. En cuanto a debuggear, es posible que utilizando puntos de interrupción en la función que gestiona tu click y seguir la traza a través de él, te pueda ayudar. Un punto de interrupción, siempre es una manera estándar válida para debuggear "todos" los lenguajes :-D. Abrazote. Nos vamos viendo.

  • @clarabujeda
    @clarabujeda 3 місяці тому

    Yo odiando apple....

    • @clarabujeda
      @clarabujeda 3 місяці тому

      Amo Linux xd

    • @The.TrueBoolean
      @The.TrueBoolean 3 місяці тому

      @@clarabujeda Hola Clara! Vaya … yo que te iba a decir que estabas de suerte porque en la 2a parte del vídeo que sale el domingo, había añadido la compilación para Windows … jeje Aunque acabo de leer tu comentario sobre Linux 😂.

    • @The.TrueBoolean
      @The.TrueBoolean 3 місяці тому

      Le echaré un vistazo, a ver cómo podemos añadirlo :-)!

    • @clarabujeda
      @clarabujeda 3 місяці тому

      @@The.TrueBoolean Wow Muchas gracias. Sinceramente eres muy atento. Normalmente los creadores de contenido no suelen leer los comentarios :3. Usualmente la gente no suele tener apple debido a sus excesivos precios por ello el comment y como humana humilde que soy no tengo jajaja. Sinceramente pienso que windows no esta mal pero para desarrollar ya que es el sistema mas usado, pero como vengo del sector de servicios (Servidores y sistemas que normalmente solo lo ves en la shell) pues usualmente uso linux que simplemente puedes hacer lo que quieras con el. Por eso lo amo. Además que es el sistema con mas herramientas para C y C++.

    • @The.TrueBoolean
      @The.TrueBoolean 3 місяці тому

      Gracias a ti Clara, por tu tiempo. Entiendo que cuando se tiene un gran volumen de comentarios, pueden ser complejos de gestionar. Entiendo lo que dices porque yo también usaba Linux cuando desarrollaba juegos para las máquinas de Casino. Abrazote! Nos vamos viendo por aquí!

  • @t0niii7_
    @t0niii7_ 3 місяці тому

    Con estos videos en 2 meses me hago el nuevo Elden Ring🤩🤩

  • @DoloresRuizRodenas
    @DoloresRuizRodenas 3 місяці тому

    Muy bien😂

  • @AdrianLuis-gs3nu
    @AdrianLuis-gs3nu 3 місяці тому

    Soy Arnau de Nau

  • @AdrianLuis-gs3nu
    @AdrianLuis-gs3nu 3 місяці тому

    Soy Arnau de Nau

  • @AdrianLuis-gs3nu
    @AdrianLuis-gs3nu 3 місяці тому

    Soy Arnau de Nau

  • @AdrianLuis-gs3nu
    @AdrianLuis-gs3nu 3 місяці тому

    Soy Arnau el de Nau

  • @QuitandoCaretas
    @QuitandoCaretas 4 місяці тому

    Olé! se me hacia complicado entender con claridad los bucles, aunque eso era antes de ver el video. Enhorabuena por la Master Class y gracias!

  • @HVManager
    @HVManager 4 місяці тому

    Muy bien explicado

  • @xiscusmagnificus
    @xiscusmagnificus 4 місяці тому

    Un tema muy interesante!

  • @QuitandoCaretas
    @QuitandoCaretas 4 місяці тому

    Muy buen contenido!! 🔝🔝

  • @QuitandoCaretas
    @QuitandoCaretas 9 місяців тому

    Muy buena explicación! Sigue con más videos así!

  • @xiscusmagnificus
    @xiscusmagnificus Рік тому

    Enhorabuena por la explicación, ahora sí que lo entiendo.