Space Invaders in C is a classic arcade-inspired project implemented in C, showcasing structured programming and the use of the Allegro 5 library for game development. This project aims to replicate and extend the original Space Invaders game mechanics, allowing for a deeper understanding of game logic, animation, and rendering in a low-level programming environment.
Project Status: In Development
- Player-controlled spaceship with movement and firing mechanics.
- Alien invaders with movement patterns, animations, and interaction logic.
- Score tracking and game state management (e.g., tracking lives, level progression).
- Projectile collision detection between player and aliens.
- Configurable settings for game difficulty and alien speed.
- Allegro 5 library
- GCC compiler (recommended: MinGW for Windows)
-
Clone the Repository
git clone https://github.com/RGiskard7/space-invaders-c.git cd space-invaders-c
-
Install Dependencies
Ensure that the Allegro 5 library is installed and properly linked with your project. For Windows, use MinGW to manage dependencies. -
Compile the Project Use the provided
Makefile
to compile the project:make
-
Run the Game
./SpaceInvaders.exe
- Phase 1: Core Mechanics — Player movement, alien waves, basic collision detection.
- Phase 2: Game Enhancements — Alien animations, sound integration, scoring system.
- Phase 3: Polishing & Optimization — Fine-tuning gameplay, adding visual effects, optimizing for different resolutions.
Contributions, issues, and feature requests are welcome. Feel free to check the issues page to find areas for improvement or to suggest features.
- Fork the repository.
- Create a new branch.
- Submit a pull request with a detailed description of changes.
This project is licensed under the MIT License. See the LICENSE file for details.
For questions or collaboration requests, please contact the project maintainer via GitHub at RGiskard7.
Aquí tienes la versión en español del README. Puedes incluir ambas versiones en tu archivo README.md para que esté disponible en ambos idiomas.
Space Invaders en C es un proyecto inspirado en el clásico juego arcade, implementado en C y utilizando la biblioteca Allegro 5 para el desarrollo gráfico. Este proyecto tiene como objetivo replicar y extender la mecánica original de Space Invaders, proporcionando una comprensión profunda de la lógica de juego, animación y renderización en un entorno de programación de bajo nivel.
Estado del Proyecto: En Desarrollo
- Nave controlada por el jugador con mecánicas de movimiento y disparo.
- Invasores alienígenas con patrones de movimiento, animaciones y lógica de interacción.
- Rastreo de puntuación y gestión del estado del juego (e.g., seguimiento de vidas y progreso de niveles).
- Detección de colisiones de proyectiles entre el jugador y los alienígenas.
- Configuraciones ajustables para la dificultad del juego y velocidad de los alienígenas.
- Biblioteca Allegro 5
- Compilador GCC (recomendado: MinGW para Windows)
-
Clonar el Repositorio
git clone https://github.com/RGiskard7/space-invaders-c.git cd space-invaders-c
-
Instalar Dependencias
Asegúrate de que la biblioteca Allegro 5 esté instalada y vinculada correctamente con el proyecto. En Windows, usa MinGW para gestionar las dependencias. -
Compilar el Proyecto Utiliza el
Makefile
proporcionado para compilar el proyecto:make
-
Ejecutar el Juego
./SpaceInvaders.exe
- Fase 1: Mecánicas Básicas — Movimiento del jugador, oleadas de alienígenas, detección de colisiones básica.
- Fase 2: Mejoras del Juego — Animaciones de alienígenas, integración de sonido, sistema de puntuación.
- Fase 3: Pulido y Optimización — Ajuste de la jugabilidad, adición de efectos visuales, optimización para diferentes resoluciones.
Las contribuciones, problemas y solicitudes de características son bienvenidas. Puedes consultar la página de issues para encontrar áreas de mejora o sugerir características.
- Haz un fork del repositorio.
- Crea una nueva rama.
- Envía un pull request con una descripción detallada de los cambios.
Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.
Para consultas o solicitudes de colaboración, puedes contactar al mantenedor del proyecto en GitHub: RGiskard7.