====== Programación de videojuegos ====== Aquí tienes una lista de juegos clásicos que puedes clonar (o inspirarte en ellos), ordenados por dificultad y conceptos clave que aprenderás: ===== Juegos arcade ===== ==== Pong ==== * Conceptos: Colisiones básicas, movimiento de paletas, sistema de puntuación. * Extras: IA simple para jugar contra la computadora. ==== Snake ==== * Conceptos: Movimiento en cuadrícula, crecimiento de sprites, gestión de colas. * Extras: Dificultad progresiva, sistema de power-ups. ==== Space Invaders / Galaga ==== * Conceptos: Movimiento de oleadas de enemigos, disparos, sistema de vidas. * Extras: Patrones de movimiento enemigos, efectos de sonido. ===== Plataformeros ===== ==== Super Mario Bros (simplificado) ==== * Conceptos: Gravedad, salto controlable, colisiones con plataformas, enemigos básicos. * Extras: Sistema de niveles, animaciones de sprites, power-ups (como el hongo). ==== Celeste (versión minimalista) ==== * Conceptos: Movimiento preciso, dash aéreo, paredes escalables. * Extras: Mecánicas de reinicio rápido, diseño de niveles desafiantes. ==== Jump King ==== * Conceptos: Física de salto realista, diseño vertical de niveles, obstáculos mortales. ===== Juegos de Puzzles (Lógica) ===== ==== Tetris ==== * Conceptos: Manipulación de matrices, rotación de piezas, sistema de líneas completadas. * Extras: Sistema de puntuación, niveles de velocidad progresiva. ==== Sokoban ==== * Conceptos: Lógica de empujar cajas, diseño de niveles basado en grids, backtracking. ==== Bomberman (simplificado) ==== * Conceptos: Colocación de bombas, explosiones en cadena, IA de enemigos básica. ===== Juegos de Aventura / RPG (Avanzado) ===== ==== The Legend of Zelda (2D) ==== * Conceptos: Transición entre pantallas, inventario de objetos, combate básico. * Extras: Puzzles, jefes finales, sistema de corazones (vidas). ==== Pokémon (versión simplificada) ==== * Conceptos: Menús de selección, combate por turnos, sistema de experiencia. * Extras: Mapa overworld, NPCs con diálogos. ==== Stardew Valley (muy simplificado) ==== * Conceptos: Ciclo día/noche, gestión de inventario, interacción con NPCs. ===== Shoot 'em up / Roguelikes ===== ==== Geometry Wars ==== * Conceptos: Movimiento con stick analógico (teclas), disparos en 360°, oleadas de enemigos. * Extras: Efectos de partículas, power-ups aleatorios. ==== Enter the Gungeon (simplificado) ==== * Conceptos: Disparos con recarga, coberturas, generación procedural de salas. * Extras: Sistema de armas, objetos coleccionables. ===== Juegos Experimentales ===== ==== Flappy Bird ==== * Conceptos: Control de un solo botón, generación procedural de obstáculos, dificultad ajustable. ==== Doodle Jump ==== * Conceptos: Movimiento vertical automático, plataformas generadas proceduralmente. ==== Pac-Man ==== * Conceptos: IA de fantasmas (patrones de movimiento), recolección de items, laberintos. ===== Juegos de Estrategia / Gestión ===== ==== Tower Defense ==== * Conceptos: Colocación de torres, oleadas de enemigos, economía del juego. * Extras: Tipos de enemigos, árbol de mejoras. ==== Chess / Ajedrez ==== * Conceptos: Movimientos legales de piezas, sistema de turnos, IA básica. ===== Juegos de Ritmo / Música ===== ==== Guitar Hero (simplificado) ==== * Conceptos: Sincronización de notas con música, sistema de combos. * Extras: Integración de archivos de audio, efectos visuales al ritmo. ===== Juegos de Survival / Horror ===== ==== Five Nights at Freddy's (2D) ==== * Conceptos: Sistema de cámaras de seguridad, gestión de energía, jumpscares. ===== Juegos Híbridos (Creatividad) ===== ==== Undertale (combate simplificado) ==== * Conceptos: Sistema de combate híbrido (turnos + acciones en tiempo real), diálogos con ramificaciones. ===== Consejos ===== * Empieza con mecánicas simples: Primero clona un juego básico (como Pong) para entender el bucle principal de un juego. * Reutiliza assets: Usa sprites de 8x8 o 16x16 para no perder tiempo en arte. * Divide en sistemas: Separa el código en módulos (ej: physics.py, enemies.py, ui.py). * Usa la documentación de Pyxel: Pyxel tiene funciones específicas para sprites, tiles y sonido. * Experimenta con variaciones: Una vez clonado un juego, añade tu propio giro (nuevos power-ups, niveles, etc.). ===== Motores ===== * [[https://godotengine.org/|Godot]] * [[https://phaser.io/|Phaser]] * [[informatica:programacion:python:pyxel|Pyxel]]