Space Shooter -- Infinite Survival v2.1 by Andrea CestelliSpace Shooter -- Infinite Survival v2.1 by Andrea Cestelli

Space Shooter -- Infinite Survival v2.1

Andrea Cestelli

Andrea Cestelli

Space Shooter -- Infinite Survival v2.1

Un videogioco 2D arcade ispirato a Space Invaders, sviluppato in Python con Pygame.
Progetto di: Ceccariglia Emanuele & Andrea Cestelli -- ITSUmbria 2026

Requisiti

Dipendenza Versione minima Installazione Python 3.10+ python.org Pygame 2.0+ pip install pygame Pillow 9.0+ pip install Pillow NumPy 1.20+ pip install numpy

Avvio rapido


Controlli

Tasto Azione W / freccia su Muovi su S / freccia giu Muovi giu A / freccia sinistra Muovi sinistra D / freccia destra Muovi destra SPAZIO Spara B Usa bomba F Abilita' speciale (EMP / Overdrive) P / ESC Pausa / Riprendi INVIO Conferma selezione A / D Scegli nave (selezione navi)

Navicelle (5 giocabili)

Il gioco include 5 navicelle animate (sprite GIF), ciascuna con statistiche e abilita' uniche. Le ultime 2 navi hanno il doppio cannone.
# Nome Tipo sparo Speciale Sblocco 0 Viper Cannone singolo Nessuna Disponibile 1 Phoenix Cannone singolo Rigenerazione HP 200 punti 2 Striker Cannone singolo Laser perforanti 500 punti 3 Nova Doppio cannone EMP (tasto F) 1000 punti 4 Zenith Doppio cannone Overdrive (tasto F) 2000 punti

Statistiche per nave

Nave Velocita' Rateo fuoco Danno Speciale Viper 1.0x 1.0x 1 Nessuna (bilanciata) Phoenix 0.8x 1.3x (lento) 2 Rigenera 1 HP ogni 15s Striker 1.4x (veloce) 0.6x (rapido) 1 Laser attraversano nemici Nova 1.1x 0.85x 1 EMP: cancella laser nemici e stordisce Zenith 0.9x 1.0x 2 Overdrive: fuoco rapido 5s (cd 30s)
Le navi con doppio cannone sparano due laser simultanei dai lati. Il power-up arma aggiunge laser angolati a tutte le navi.

Nemici (4 tipi animati)

I nemici usano sprite animati estratti da enemy_ships.gif.
Tipo HP Punti Sparo Colore Scout 1 1 Laser singolo veloce Rosso Fighter 2 3 Doppio laser parallelo Arancio Bomber 4 5 Laser lento pesante (3 paralleli) Viola Elite 3 8 Burst di 3 laser rapidi Ciano

Formazioni intelligenti

Le formazioni hanno tipi misti: nemici deboli (scout) nelle righe frontali e nemici forti (bomber, elite) nelle righe posteriori. La difficolta' controlla quali tipi sono disponibili.

Hit feedback (nemici multi-HP)

Shake: oscillazione rapida dello sprite
Mini-esplosione: piccola esplosione animata al punto d'impatto
Barra HP: mostra gli HP rimanenti

Boss Fight (4 varianti)

Ogni boss ha un'animazione GIF unica e un pattern di sparo esclusivo. Lo spawn del boss e' casuale con probabilita' uguale per ognuno dei 4 boss.
Variante Nome Pattern laser Descrizione 0 Titano Cannoni rotanti 3 sub-pattern: dritti, convergenti, divergenti 1 Furia Burst devastanti Raffica + burst secondario automatico 2 Ventaglio Onde a ventaglio 5 laser con ampiezza e direzione alternata 3 Vortice Spirale rotante 3 bracci che ruotano a velocita' costante

Scaling progressivo

Ad ogni sconfitta le statistiche del boss successivo crescono:
+10 HP per boss sconfitto
+0.3 velocita' orizzontale
-4 frame intervallo sparo (min 22)
Bonus punti crescenti

Meccaniche di gioco

Sistema Combo

Uccidi nemici in rapida successione per accumulare combo:
3+ kill: combo visibile
Moltiplicatore punteggio crescente: +50%, +100%, +150%, +200%, +300%
Numeri di danno flottanti sullo schermo

Bombe

Raccogli dal power-up "Bomba" (max 3)
Distrugge TUTTI i nemici sullo schermo + cancella laser nemici
Danneggia il boss per il 25% degli HP residui
Cooldown di 2 secondi tra usi

Slow Motion

Attivato automaticamente dopo aver sconfitto un boss
Rallenta l'azione per un momento drammatico

Sistema di vite e protezione

3 vite massime
Invincibilita' temporanea dopo ogni danno
Lo scudo assorbe colpi e protegge dal danno
L'asteroide con scudo: scudo si rompe ma nessun danno
L'asteroide senza scudo: morte istantanea

Power-up

I power-up appaiono su navicelle carrier che scendono dall'alto e si fermano per 5 secondi.
Tipo Effetto Durata Vita Recupera 1 cuore (max 3) Istantaneo Scudo Assorbe colpi nemici e protegge 5 secondi Velocita' Boost velocita' x1.8 5 secondi Arma Sparo triplo/quadruplo angolato 5 secondi Bomba +1 bomba (max 3) Permanente

Formazioni (18 pattern)

Le formazioni sono scelte casualmente con sistema anti-ripetizione:
H_LINE_3, H_LINE_5, V_LINE_3, GRID_3x2, GRID_4x2, GRID_3x3, DIAMOND, V_SHAPE, CROSS, T_SHAPE, STAGGER_3x2, PINCER, ARROW, Z_LINE, WING, CHEVRON, FORTRESS, X_SHAPE

Asteroidi

Cadono verticalmente con scia luminosa realistica (spritesheet animato)
Indistruttibili con i laser
Collisione senza scudo = game over immediato
Lo scudo assorbe UN colpo da asteroide

Pioggia di Asteroidi

Evento speciale periodico:
Avviso di 3 secondi con overlay arancione lampeggiante
Asteroidi piovono fittamente per 20-40 secondi
Corridoio sicuro garantito: almeno 100px liberi da asteroidi

Difficolta' progressiva

Ogni 30 secondi la difficolta' aumenta (max livello 10):
Nemici +12% velocita' per livello
Spawn interval ridotto
Piu' nemici per ondata
Formazioni piu' complesse
Tipi nemico piu' forti sbloccati

Audio

Tutti i suoni -- inclusa la musica di sottofondo -- vengono generati proceduralmente a runtime senza file audio esterni.

Salvataggio

Il gioco salva automaticamente in save_data.json:
Record assoluto (high score)
Top 10 punteggi
Navicelle sbloccate (5 navi con sblocco progressivo)
Statistiche cumulative (tempo, uccisioni, boss sconfitti)
Il sistema di salvataggio gestisce automaticamente la migrazione da versioni precedenti.

Struttura del progetto


Changelog

v2.1 (Refactoring)

Rimosse hitbox visive dei laser per gameplay piu' pulito
Corretto bug intervalli sparo duplicati nel modulo formation_group
Riorganizzata struttura directory asset in sottocartelle tematiche
Refactoring completo con commenti in italiano su tutte le funzioni
Corretto README per riflettere le 4 varianti boss (non 5)
Rimosso codice morto (pulse_timer inutilizzato in FallingPowerUp)
Centralizzati intervalli sparo nemici in constants.py
Corretti posizionamento e dimensionamento testi HUD e menu

v2.0 (Release)

5 navicelle giocabili con statistiche e abilita' uniche
Le ultime 2 navi (Nova, Zenith) hanno il doppio cannone
Punteggi sblocco ribilanciati: 0, 200, 500, 1000, 2000
4 boss con pattern di sparo unici e spawn casuale equo
Formazioni con tipi misti (scout davanti, elite dietro)
Nuove meccaniche: bomba, EMP, piercing, overdrive, regen
Slow motion dopo boss kill
Combo system con moltiplicatori
Grace period con countdown (giocatore puo' muoversi)
Font e testi ridimensionati per leggibilita'

v1.0

12 navicelle giocatore animate con sblocco progressivo
4 tipi di nemici con sprite animati
4 varianti boss con pattern laser unici
Sistema combo, screen shake, grace period
Sviluppato con Python 3 / Pygame / Pillow / NumPy -- ITSUmbria 2026
Like this project

Posted Mar 25, 2026

Developed a 2D arcade game inspired by Space Invaders using Python with Pygame.