Alien Invasion: juego arcade 2D desarrollado en Python
Un clásico juego arcade donde pilotas una nave espacial y debes destruir hordas de alienígenas antes de que invadan la Tierra. Desarrollado completamente en Python usando Pygame.

Características del juego
- Acción arcade frenética
- Múltiples tipos de alienígenas con distintos comportamientos
- Combate explosivo con efectos de partículas
- Efectos de sonido y música de fondo inmersivos
- Sistema de puntuación máxima
- Gráficos estilo retro
- Soporte multiidioma:
- Detección automática del idioma según la configuración del sistema
- Idiomas soportados: inglés, francés, alemán, italiano, portugués y español
- Todos los textos del juego están traducidos
- Mejoras visuales:
- Texto de alto contraste con fondos semitransparentes
- Información del juego claramente visible
- Animaciones y transiciones suaves
El multiidioma en acción — la UI cambia automáticamente al español según la configuración del sistema:

A medida que avanzas de nivel, los alienígenas cambian de diseño y se vuelven más agresivos:

Cómo jugar

- Movimiento: usa las teclas de flecha para mover la nave
- Disparar: presiona la barra espaciadora para disparar
- Objetivo: elimina a todos los alienígenas y evita que lleguen a la base
- Puntuación: aumenta destruyendo enemigos. ¡Intenta superar tu propio récord!
Cómo fue construido
Alien Invasion está desarrollado en Python con la librería Pygame, que proporciona todo lo necesario para crear juegos 2D: ventana de renderizado, manejo de eventos del teclado, colisiones y reproducción de audio.
Tecnologías utilizadas
- Python 3 — lenguaje principal del proyecto
- Pygame — motor de juego 2D para Python
- JSON — almacenamiento de puntuaciones y configuración de idioma
Estructura del proyecto
El juego sigue una arquitectura orientada a objetos donde cada elemento tiene su propia clase:
Ship— gestiona la nave del jugador (movimiento, disparos, vidas)Alien— define el comportamiento de los alienígenasBullet— proyectiles disparados por la naveGameStats— registra la puntuación, nivel y estado de la partidaSettings— centraliza toda la configuración (velocidad, tamaños, colores)
Bucle principal del juego
El núcleo de cualquier juego con Pygame es el bucle de eventos:
while True:
game._check_events() # detectar entradas de teclado/mouse
if game.stats.game_active:
game.ship.update()
game._update_bullets()
game._update_aliens()
game._update_screen() # redibujar todo el frame
Este patrón — leer entradas, actualizar estado, redibujar — se repite a ~60 FPS gracias al Clock de Pygame.
Detección de idioma
El soporte multiidioma se implementa leyendo la configuración regional del sistema operativo al inicio:
import locale
lang = locale.getdefaultlocale()[0][:2] # 'es', 'en', 'fr'...
Según el código de idioma detectado, el juego carga el diccionario de textos correspondiente desde un archivo JSON.
Nota para quien lo copie hoy:
locale.getdefaultlocale()está marcado como obsoleto desde Python 3.11, y puede devolverNoneen sistemas sin locale configurado (lo que rompería el[0][:2]). Como mínimo, conviene añadir un valor por defecto:import locale lang = (locale.getdefaultlocale()[0] or 'en')[:2]Y ojo si lo cambias por
locale.getlocale(): en Windows devuelve nombres comoSpanish_Spain, noes_ES, así que el[:2]deja de funcionar.
Para desarrolladores
¿Te interesa colaborar o estudiar el código? Visita la documentación completa del proyecto.
Documentación de Alien Invasion
Descargar el juego
Visita el sitio oficial para descargar el juego y empezar a defender la Tierra.
Si estás aprendiendo y te preguntas por dónde empezar un proyecto así, en el efecto Tutorial Hell cuento por qué los proyectos propios (aunque sean feos) enseñan más que cualquier curso.