The True Boolean
The True Boolean
  • Видео 14
  • Просмотров 3 549
¿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 ...
Просмотров: 64

Видео

¡Aprende a Programar el Juego Snake en C++ con SDL! 🚀 (Tutorial Completo Paso a Paso)
Просмотров 2033 месяца назад
¿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
Просмотров 2093 месяца назад
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
Просмотров 1633 месяца назад
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
Просмотров 4103 месяца назад
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
Просмотров 604 месяца назад
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?
Просмотров 294 месяца назад
¿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 2 месяца назад

    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 3 месяца назад

    Me gusta❤

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

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

    • @The.TrueBoolean
      @The.TrueBoolean 3 месяца назад

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

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

    No he entendido nada...

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

    Soy el suscriptor #69! 🎉

    • @The.TrueBoolean
      @The.TrueBoolean 3 месяца назад

      Bienvenido entonces Horacio! Espero que te sirva

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

    Muy guay❤

  • @MostafaChahboune-n8h
    @MostafaChahboune-n8h 3 месяца назад

    😅😅😅😅😅😅

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

    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 3 месяца назад

      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 3 месяца назад

      @@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 3 месяца назад

    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 3 месяца назад

      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 3 месяца назад

      @@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 3 месяца назад

    Me encantas 🤩

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

    😂

  • @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🤩🤩

    • @The.TrueBoolean
      @The.TrueBoolean 3 месяца назад

      Gracias crack! Esa es la idea 💪🏼

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

    Muy bien😂

  • @AdrianLuis-gs3nu
    @AdrianLuis-gs3nu 4 месяца назад

    Soy Arnau de Nau

  • @AdrianLuis-gs3nu
    @AdrianLuis-gs3nu 4 месяца назад

    Soy Arnau de Nau

  • @AdrianLuis-gs3nu
    @AdrianLuis-gs3nu 4 месяца назад

    Soy Arnau de Nau

  • @AdrianLuis-gs3nu
    @AdrianLuis-gs3nu 4 месяца назад

    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 10 месяцев назад

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

  • @xiscusmagnificus
    @xiscusmagnificus Год назад

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