You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.9 KiB
2.9 KiB
MICE! — Documentazione Tecnica
Benvenuto nella documentazione tecnica di MICE!, un gioco completo per Game Boy DMG (1989) scritto interamente in C con la toolchain GBDK-2020.
Cos'è MICE!
MICE! è un gioco di strategia in tempo reale a schermata fissa. Il labirinto viene generato proceduralmente ad ogni partita. Il giocatore controlla un cursore di mira e deve eliminare tutti i topi prima che il tempo scada. I topi si muovono autonomamente, trovano percorsi nel labirinto e si riproducono se si incontrano.
Meccaniche principali
| Meccanica | Descrizione |
|---|---|
| Generazione labirinto | Recursive Backtracker iterativo, sempre risolvibile |
| AI topi | Pathfinding casuale senza backtracking, spatial hash per collisioni |
| Riproduzione | Spawn di un cucciolo a ogni incontro tra topi adulti |
| Bomba (A) | Esplosione a croce che si propaga lungo tutto il corridoio |
| Fucile (B) | Sparo istantaneo con cooldown di 3 secondi |
| Timer | Countdown visualizzato come HUD sprite nella barra inferiore |
| Musica | Tracker chiptune 4 canali nativo, jingle dedicati per vittoria/sconfitta |
Struttura della Documentazione
| Sezione | Contenuto |
|---|---|
| Hardware Game Boy | Vincoli fisici: SM83, VRAM, OAM, APU |
| Architettura Moduli | Grafico dei moduli C e dipendenze |
| Loop Principale | Sequenza di inizializzazione e game loop |
| Generazione Labirinto | Algoritmo Recursive Backtracker, MAZE_PITCH |
| AI dei Topi | Movimento, pathfinding, riproduzione, spatial hash |
| Rendering e Autotiling | Tile system, bitmask 4-bit, hardware scrolling |
| Sprite e OAM | Allocazione 40 sprite hardware, meta-sprite 16×8 |
| Armi e Gameplay | Cursore DAS, bomba propagante, fucile con cooldown |
| Audio | Mini-tracker 4 canali, SFX, Wave RAM |
| Pipeline Asset | Script Python, conversione PNG → header C 2bpp |
| Ottimizzazioni | Riepilogo di tutte le tecniche di ottimizzazione |
Quick Start
# Compila tutto
make
# Gioca
pyboy -w SDL2 -s 3 --sound-volume 100 maze.gb
# Test audio interattivo
pyboy -w SDL2 -s 3 --sound-volume 100 test_audio.gb
# Validazione headless
python3 tests/test_pyboy.py
Dati Tecnici
| Parametro | Valore |
|---|---|
| Target hardware | Nintendo Game Boy DMG (1989) |
| Toolchain | GBDK-2020 + SDCC |
| Linguaggio | C (SM83/Z80-compatible) |
| ROM size | 32 KB (MBC1 0x00, solo ROM) |
| Tile in VRAM | 256 tile 8×8 @ 2bpp |
| Sprite OAM | 40 slot hardware (8×8 px ciascuno) |
| RAM disponibile | 8 KB (WRAM) |
| FPS target | 60 Hz (sincronizzato su VBlank) |
| Frequenza CPU | ~4.19 MHz |
