Configura tu entorno: C++, SDL2 y un asistente de IA

By Carlos Montiel | Especialista en IA Empresarial
Publicado: 2026-07-28 | Por: Carlos Montiel | Lectura: ~4 minutos

Antes de escribir una sola línea de juego necesitas un entorno que compile, enlace y ejecute. Vamos a dejarlo listo en menos de 30 minutos.

Por qué SDL2 y no otra cosa

En la lección anterior hablamos de qué vamos a construir. Ahora toca poner los cimientos. Vamos a usar SDL2 (Simple DirectMedia Layer) como librería gráfica durante todo el curso, por tres razones concretas: es multiplataforma (Windows, Linux, macOS), es de bajo nivel — te obliga a entender el bucle de juego, el renderizado y el input en vez de escondértelo detrás de un motor — y tiene años de documentación y ejemplos, lo cual ayuda muchísimo a que tu asistente de IA te dé respuestas precisas cuando le preguntes sobre ella.

No vamos a usar un motor como Unity o Godot porque el objetivo de este curso es que entiendas los fundamentos de C/C++ aplicados a juegos. Una vez que domines esto, aprender cualquier motor te va a resultar trivial.

Instalando el compilador

Necesitas un compilador de C++ que soporte al menos C++17. En Linux, lo normal es `g++`. En macOS, se instala junto con las Command Line Tools de Xcode. En Windows, la opción más simple es MSYS2 con `mingw-w64`, o usar WSL2 para tener un entorno Linux completo.

# Linux (Debian/Ubuntu) sudo apt update sudo apt install build-essential g++ cmake # macOS xcode-select --install brew install cmake # Windows (dentro de MSYS2 MinGW64 shell) pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake

Verifica que quedó instalado correctamente:

g++ --version cmake --version

Si ves un número de versión en ambos comandos, estás listo para el siguiente paso.

Instalando SDL2

SDL2 se puede instalar por gestor de paquetes en Linux y macOS, y por MSYS2 en Windows. También vamos a instalar `SDL2_image` (para sprites, que usaremos en la lección 4) y `SDL2_ttf` (para texto en pantalla, útil desde el marcador de Pong).

# Linux (Debian/Ubuntu) sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-ttf-dev # macOS (con Homebrew) brew install sdl2 sdl2_image sdl2_ttf # Windows (MSYS2 MinGW64 shell) pacman -S mingw-w64-x86_64-SDL2 mingw-w64-x86_64-SDL2_image mingw-w64-x86_64-SDL2_ttf

Un primer programa para verificar que todo funciona

Vamos a escribir el "hola mundo" de SDL2: abrir una ventana negra y cerrarla con la tecla Escape o el botón de cerrar.

// main.cpp #include <SDL2/SDL.h> #include <iostream> int main(int argc, char* argv[]) { if (SDL_Init(SDL_INIT_VIDEO) != 0) { std::cerr << "Error al iniciar SDL: " << SDL_GetError() << std::endl; return 1; } SDL_Window* ventana = SDL_CreateWindow( "Prueba de entorno", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SDL_WINDOW_SHOWN ); if (!ventana) { std::cerr << "Error al crear la ventana: " << SDL_GetError() << std::endl; SDL_Quit(); return 1; } SDL_Renderer* renderer = SDL_CreateRenderer(ventana, -1, SDL_RENDERER_ACCELERATED); bool corriendo = true; SDL_Event evento; while (corriendo) { while (SDL_PollEvent(&evento)) { if (evento.type == SDL_QUIT) corriendo = false; if (evento.type == SDL_KEYDOWN && evento.key.keysym.sym == SDLK_ESCAPE) corriendo = false; } SDL_SetRenderDrawColor(renderer, 10, 10, 20, 255); SDL_RenderClear(renderer); SDL_RenderPresent(renderer); } SDL_DestroyRenderer(renderer); SDL_DestroyWindow(ventana); SDL_Quit(); return 0; }

Compílalo así:

g++ main.cpp -o prueba -lSDL2 ./prueba

Si ves una ventana oscura que se cierra con Escape, tu entorno gráfico está funcionando.

Configurando CMake para el resto del curso

A partir de la próxima lección vamos a usar CMake para no depender de comandos largos de `g++`. Este es el esqueleto que vamos a reutilizar en todas las lecciones siguientes:

# CMakeLists.txt cmake_minimum_required(VERSION 3.16) project(CursoJuegosIA) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(SDL2 REQUIRED) find_package(SDL2_image REQUIRED) add_executable(juego main.cpp) target_link_libraries(juego PRIVATE SDL2::SDL2 SDL2::SDL2main SDL2_image::SDL2_image)
mkdir build && cd build cmake .. cmake --build .

Instalando y configurando tu asistente de IA

Ahora la otra mitad del entorno: tu asistente de IA. Si usas Claude Code, instálalo desde la terminal y ejecútalo dentro de la carpeta de tu proyecto — así tiene contexto completo de tus archivos, tu `CMakeLists.txt` y tus errores de compilación. Si prefieres Cursor, ábrelo directamente sobre la carpeta del proyecto; su integración de IA funciona sobre el mismo principio: contexto de archivos reales, no fragmentos aislados de código pegados en un chat genérico.

La diferencia clave de trabajar así, dentro del proyecto, es que puedes pedirle cosas como "corre el CMake y dime por qué falla el linker" y el asistente puede leer el error real, no uno que tú transcribiste a medias. Esto es especialmente valioso en C++, donde los errores del linker (símbolos no definidos, librerías no encontradas) suelen ser crípticos para quien empieza.

// Ejemplo de prompt útil para tu asistente al configurar el entorno: // "Mi CMake falla con 'undefined reference to SDL_Init'. // Aquí está mi CMakeLists.txt y el comando que ejecuté. ¿Qué falta?"

Estructura de carpetas recomendada

Para mantener consistencia durante las próximas 11 lecciones, usa esta estructura base en cada proyecto:

mi_juego/ ├── CMakeLists.txt ├── src/ │ └── main.cpp ├── assets/ │ ├── sprites/ │ └── sonidos/ └── build/

Con el compilador, SDL2 y tu asistente de IA configurados y verificados, ya tienes todo lo necesario. En la próxima lección vamos a usar exactamente este entorno para construir nuestro primer juego completo: Pong, paso a paso, con el bucle principal, las paletas, la pelota y el marcador.

Carlos Montiel
Arquitecto de Soluciones IA Empresarial
Especialista en LLMs, Agentes y Orquestación
guatemalia.com/#contacto · info@guatemalia.com

¿Necesitas implementar IA en tu empresa?

Carlos Montiel es arquitecto de soluciones IA empresarial. Implementa LLMs, Agentes, RAG y orquestadores en empresas de Guatemala y Latinoamérica. Contáctalo para una consultoría.

Contactar a Carlos Montiel

info@guatemalia.com