Un juego que solo corre en tu máquina de desarrollo no es un juego terminado. Cerramos el curso empaquetando y distribuyendo lo que construiste.
En la lección anterior decidimos cuándo migrar de C a C++. Ahora, con el motor ya maduro, toca el último paso del ciclo: que alguien que nunca instaló un compilador pueda descargar tu juego y jugarlo con un doble clic. Esto implica resolver dependencias (¿tiene el usuario SDL2 instalado?), compilar para cada plataforma objetivo, y organizar los archivos de una forma que el sistema operativo reconozca como una aplicación válida.
Por defecto, tu ejecutable depende de que SDL2 esté instalado como librería dinámica (`.dll`, `.so`, `.dylib`) en la computadora del usuario. La forma más simple de evitar pedirle al usuario que instale nada es distribuir esas librerías dinámicas junto a tu ejecutable, o enlazar estáticamente cuando sea posible.
En Windows, la forma más práctica es copiar los archivos `SDL2.dll`, `SDL2_image.dll` (y sus dependencias) a la misma carpeta que tu `.exe` — Windows busca DLLs primero en el directorio del ejecutable.
Para no mantener tres sistemas de compilación distintos, seguimos usando el mismo `CMakeLists.txt` de la lección 2, agregando reglas específicas por plataforma cuando haga falta.
Compilando en cada plataforma objetivo (o usando compilación cruzada con MinGW desde Linux para generar el `.exe` de Windows sin salir de tu máquina):
macOS espera que las aplicaciones gráficas vengan empaquetadas como un `.app`, una carpeta con una estructura específica que el Finder reconoce como una sola aplicación.
Para Linux, distribuir un binario suelto obliga al usuario a instalar dependencias manualmente. AppImage empaqueta el ejecutable junto con todas sus librerías en un solo archivo ejecutable, sin necesidad de instalación.
Con los ejecutables empaquetados para cada plataforma, las opciones más accesibles para un desarrollador independiente son:
- itch.io: sin costo de entrada, ideal para publicar tu primer juego y recibir retroalimentación real de jugadores. - Steam (a través de Steamworks): requiere una cuota única de registro, pero da acceso a la mayor base de jugadores de PC. - Tu propia página web: la opción con más control, aunque requiere que resuelvas tú mismo el hosting de los archivos de descarga.
Para todas estas plataformas, es buena práctica incluir un `README` con los requisitos mínimos (sistema operativo, controles del juego) y un número de versión claro (`1.0.0`), que te permitirá comunicar actualizaciones futuras sin ambigüedad.
Antes de publicar, pídele a tu asistente de IA que revise tu proyecto completo buscando específicamente: rutas de archivos escritas de forma absoluta (que solo funcionan en tu máquina y romperán el juego en la de un jugador), mensajes de depuración (`printf`, `SDL_Log`) que quedaron activos y no deberían estar en la versión final, y cualquier credencial o dato sensible que se te haya colado en el código fuente si tu juego incluye funciones de red como las de las lecciones 9 y 10. Es una revisión rápida que evita errores vergonzosos en el primer lanzamiento.
Empezamos con la pregunta de por qué combinar C++ con un asistente de IA, configuramos un entorno completo, y construimos Pong desde cero. Le agregamos sprites animados, colisiones físicas reales, guardado persistente, una máquina de estados ordenando el flujo del juego, enemigos con pathfinding, y finalmente lo llevamos a la red como un juego multijugador. Cerramos optimizando su rendimiento, decidiendo con criterio cuándo migrar de C a C++, y hoy lo empaquetamos listo para que cualquiera lo juegue.
Ese es el punto real de este curso: no reemplazar tu criterio como programador con IA, sino usarla para moverte más rápido sin dejar de entender cada línea que corre en tu juego. Lo que sigue depende de ti — el siguiente proyecto, más grande o más ambicioso, ya lo vas a construir solo, con tu asistente de IA como el copiloto que ya sabes dirigir.
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