Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rgiskard7/space-invaders-c
A C-based Space Invaders project under development, recreating the classic game with Allegro library.
https://github.com/rgiskard7/space-invaders-c
2d-game allegro c-language game-development retro-game space-invaders
Last synced: 2 months ago
JSON representation
A C-based Space Invaders project under development, recreating the classic game with Allegro library.
- Host: GitHub
- URL: https://github.com/rgiskard7/space-invaders-c
- Owner: RGiskard7
- License: mit
- Created: 2024-11-14T02:05:48.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-14T02:41:41.000Z (2 months ago)
- Last Synced: 2024-11-14T03:21:13.570Z (2 months ago)
- Topics: 2d-game, allegro, c-language, game-development, retro-game, space-invaders
- Language: C
- Homepage:
- Size: 5.06 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Space Invaders in C
## Project Overview
**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_
## Features
- **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.## Screenshot
![SpaceInvaders](https://github.com/user-attachments/assets/4bbfd3ac-5afa-4fbc-a61e-b6cd670580fb)## Requirements
- **Allegro 5** library
- **GCC** compiler (recommended: **MinGW** for Windows)## Setup and Installation
1. **Clone the Repository**
```bash
git clone https://github.com/RGiskard7/space-invaders-c.git
cd space-invaders-c
```2. **Install Dependencies**
Ensure that the **Allegro 5** library is installed and properly linked with your project. For Windows, use **MinGW** to manage dependencies.3. **Compile the Project**
Use the provided `Makefile` to compile the project:
```bash
make
```4. **Run the Game**
```bash
./SpaceInvaders.exe
```## Development Roadmap
- **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.
---## Contributing
Contributions, issues, and feature requests are welcome. Feel free to check the [issues page](https://github.com/RGiskard7/space-invaders-c/issues) to find areas for improvement or to suggest features.1. Fork the repository.
2. Create a new branch.
3. Submit a pull request with a detailed description of changes.## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.---
## Contact
For questions or collaboration requests, please contact the project maintainer via GitHub at [RGiskard7](https://github.com/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
## Descripción del Proyecto
**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_
## Funcionalidades
- **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.## Captura de Pantalla
![SpaceInvaders](https://github.com/user-attachments/assets/48a46d8a-0180-436b-8c95-7769712331ff)## Requisitos
- Biblioteca **Allegro 5**
- Compilador **GCC** (recomendado: **MinGW** para Windows)## Configuración e Instalación
1. **Clonar el Repositorio**
```bash
git clone https://github.com/RGiskard7/space-invaders-c.git
cd space-invaders-c
```2. **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.3. **Compilar el Proyecto**
Utiliza el `Makefile` proporcionado para compilar el proyecto:
```bash
make
```4. **Ejecutar el Juego**
```bash
./SpaceInvaders.exe
```## Plan de Desarrollo
- **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.---
## Contribuciones
Las contribuciones, problemas y solicitudes de características son bienvenidas. Puedes consultar la [página de issues](https://github.com/RGiskard7/space-invaders-c/issues) para encontrar áreas de mejora o sugerir características.1. Haz un fork del repositorio.
2. Crea una nueva rama.
3. Envía un pull request con una descripción detallada de los cambios.## Licencia
Este proyecto está bajo la licencia MIT. Consulta el archivo [LICENSE](LICENSE) para más detalles.---
## Contacto
Para consultas o solicitudes de colaboración, puedes contactar al mantenedor del proyecto en GitHub: [RGiskard7](https://github.com/RGiskard7).