# Open Sonic

Open Sonic è un gioco open source basato sull'universo di "Sonic the Hedgehog". Introduce un diverso stile di gioco detto cooperativo, in cui si possono controllare 3 personaggi insieme. Diversamente da molti giochi simili, Open Sonic offre una maggiore interattività tra il giocatore e i livelli. È più di un semplice "salta & corri"; l'utente deve proseguire con una strategia per superare i livelli.

Al momento questo gioco funziona su Windows, Linux e Mac OS X.

Questo gioco non è certificato, prodotto o collegato a Sega, o una delle sue filiali. Sega non lo ha creato. Questo è un gioco non ufficiale creato senza fini di lucro dai fan, basato sull'universo di "Sonic" e deve considerarsi come opera e invenzione dei fan. Gli autori di questo gioco non sono responsabili di qualsiasi danno provocato durante il gioco. Sonic, Tails, Knuckles, Eggman, e tutti i relativi personaggi, oggetti e luoghi sono di proprietà dei rispettivi autori. Tutti gli altri personaggi presenti coperti da diritto d'autore appartengono alle loro rispettive società e organizzazioni.

## Come si gioca

### Come avviare il gioco

Per far partire il gioco, avvia l'eseguibile di Open Sonic.

### Menù opzioni

- Gioca: avvia il gioco in modalità singolo giocatore;
- Addestramento: avvia l'addestramento, una missione dove si insegna a giocare;
- Gli extra: si può giocare anche a un missione personallizzata! Praticamente una missione è una sequenza di livelli;
- Opzioni: configura il gioco;
- Esci: termina il gioco.

### Controllare i personaggi

Puoi giocare usando la tastiera o il joystick. Se decidi di usare un joystick, assicurati che abbia almeno 2 assi e 4 pulsanti. Collegalo prima di iniziare il gioco! Se vuoi giocare con la tastiera, guarda la tabella qui sotto per sapere come controllare i personaggi in qualsiasi livello:

Tasto | Effetto
--- | ---
Tasti direzionali | Movimenti
Barra spaziatrice | Salto
Invio | Pausa
CTRL sinistro | Cambia il personaggio corrente
ESC | Esci
Stamp oppure '=' | Fare un'istantanea del video
F6 | Ignora/ripristina l'immissine da joystick

### Gioco cooperativo

Il gioco cooperativo è una caratteristica interessante del gioco che permette di controllare 3 personaggi contemporaneamente! Ogni personaggio ha pregi e difetti, così del lavoro di squadra è necessario per superare i livelli.

Per saperne di più sul gioco cooperativo, avvia l'addestramento.

## Editor di livelli

Mentre giochi a qualsiasi livello, premi F12 per accedere all'editor di livelli. Ci sono 3 modalità di modifica: modalità dei mattoni, modalità degli elementi e modalità dei nemici. In pratica un mattone è un oggetto di sfondo o una piattaforma; un elemento è qualcosa tipo un anello, una cassa della vita o un punto di controllo; è ovvio cosa è un nemico. Nella tabella seguente, un 'oggetto' può essere un mattone, un elemento o un nemico, a seconda della modalità di modifica corrente.

Il nostro sito web contiene delle guide dettagliate sull'editor di livelli.

Tasto | Effetto
--- | ---
F12 | Esci
Tasti direzionali o W,A,S,D | Sposta la visuale
Ctrl+Tasti direzionali o Ctrl+W,A,S,D | Sposta la visuale (più veloce)
B / N o la rotella del mouse | Precedente/prossimo oggetto
Ctrl+B / Ctrl+N o Ctrl+rotella del mouse | Precedente/prossima modalità di modifica
Pulsante sinistro del mouse | Crea un oggetto
Tasto centrale del mouse o P | Selezionare un oggetto
Tasto destro del mouse | Elimina un oggetto
Ctrl + tasto sinistro del mouse | Cambia il punto d'inizio
Ctrl+Z / Ctrl+Y | Annulla/Ripristina
G | Attiva/disattiva la griglia

Consiglio #0: usa il tasto Ctrl sinistro.
Consiglio #1: premi Ctrl+F12 per salvare il livello modificato. Questa operazione è irreversibile! Per modificare un livello permanentemente, si invita a farne una copia di riserva! Su Linux, se non si hanno diritti di scrittura per la cartella CARTELLA_DI_GIOCO/levels/, il gioco salverà in $HOME/.opensonic/levels.
Consiglio #2: per creare un proprio livello, si dovrebbe leggere la nostra guida sul sito web.
Consiglio #3: per selezionare (o eliminare un elemento), si deve scegliere la modalità degli elementi. Similmente, per selezionare (o eliminare) un mattone, si deve scegliere la modalità dei mattoni. Lo stesso per i nemici. Usa Ctrl+N o Ctrl+B per cambiare modalità di modifica.

## Risoluzione dei problemi

Il nostro sito web contiene una sezione aggiornata di domande frequenti.

## Funzioni avanzate

### Opzioni da riga di comando

Questo gioco offre molte funzioni da riga di comando. Apri il terminale e scrivi:

    opensonic --help

### Risorse del gioco

Utenti Linux: dalla versione 0.1.1, si possono salvare i livelli personalizzati, missioni, immagini, suoni e così via in CARTELLA_DI_GIOCO/ (predefinito) e anche in $HOME/.opensonic/. CARTELLA_DI_GIOCO è la cartella dov'è istallato il gioco. In altre parole, se il gioco è situato in qualche cartella di cui non si dispongono i diritti di scrittura, è possibile, per esempio, creare il proprio livello con l'editor di livelli e salvarlo nella cartella $HOME/.opensonic/levels/.

## Come si compila

### Panoramica

Per compilare il gioco serve un compilatore C e le librerie software usate dal progetto. Serve anche CMake, un sistema di assemblaggio multipiattaforma open source.

Definiamo GAMEDIR la cartella dove si è spacchettato il gioco. GAMEDIR conserva, tra le altre cose, questo readme_it.html e un file CMakeLists.txt

### Ottenere le librerie

Una volta impostato il compilatore correttamente, ti servirà installare le librerie software:

- Allegro 4.4.1.x, con (almeno) le seguenti aggiunte:
  - JPGalleg
  - loadpng - necessita: zlib e libpng
  - LOGG - necessita: libogg e libvorbis

In un'installazione regolare di Allegro 4.4, JPGalleg e loadpng e LOGG sono già incluse in maniera predefinita.

Non si vuol entrare in dettagli su come installare queste librerie. Si prega di controllare i rispettivi siti web per conoscere le istruzioni dettagliate.

Nota: è possibile disattivare la libreria DUMB decommentando la riga SET(DISABLE_DUMB TRUE) in CMakeLists.txt. Analogamente, è possibile anche disattivare il supporto ai file .ogg decommentando la riga SET(DISABLE_LOGG TRUE) nello stesso file. Comunque, NON è consigliabile disattivare queste risorse, siccome sono necessarie per la riproduzione della musica.

### Compilazione su GNU/Linux - gcc

Aprire un terminale, andare a GAMEDIR ed eseguire i seguenti comandi:

    chmod +x configure
    ./configure
    make
    sudo make install

Per avviare il gioco, scrivere:

    opensonic

Nota: se si ottiengono errori dallo script "allegro-config", si raccomanda di compilare Allegro dal codice sorgente da sé.

### Compilazione su MS Windows - MinGW

Se si usa MingW, prestar attenzione che sia la cartella lib\ che bin\ siano elencate nella variabile d'ambiente PATH. Se MinGW è installato in C:\MinGW\, si può usare il comando

    set PATH=%PATH%;C:\MinGW\bin;C:\MinGW\lib

(dal Prompt dei comandi) per raggiungere l'obiettivo.

Dallo stesso Prompt dei comandi, andare a GAMEDIR ed eseguire i seguenti comandi:

    cmake -G "MinGW Makefiles" .
    mingw32-make

Notare il piccolo '.' alla fine del primo comando. Se tutto va bene, opensonic.exe dovrebbe essere nella cartella GAMEDIR.

### Compilazione su MS Windows - Microsoft Visual C++

Questo esempio usa Microsoft Visual C++ 2008 Express. Un approccio simile dovrebbe funzionare con una differente versione di MSVC. Di solito, questo software è installato in C:\Programmi\Microsoft Visual Studio 9.0\VC\. Prestar attenzione che la cartella lib\ sia elencata nella variabile d'ambiente PATH. Se non se n'è sicuri, dal Prompt dei comandi, eseguire

    set PATH=%PATH%;C:\Programmi\Microsoft Visual Studio 9.0\VC\lib

Dallo stesso Prompt dei comandi, andare a GAMEDIR e scrivere:

    cmake -G "Visual Studio 9 2008" .

Ora un file Microsoft Visual Studio Solution (.sln) dovrebbe essere localizzato in GAMEDIR. Aprirlo, selezionare Release da Configurazione soluzione attiva e compilare. Dopo si dovrebbe vedere opensonic.exe nella cartella GAMEDIR\Release. Copiarla in GAMEDIR.

Con differenti versioni di MSVC, si deve cambiare l'argomento "Visual Studio 9 2008" quando si avvia cmake. Scrivere

    cmake --help

dal Prompt dei comandi per maggiori informazioni.

La nostra wiki contiene guide più dettagliate sull'argomento.

### Compilazione Mac OS X

Il supporto per Mac OS X è sperimentale. Per favore leggere la sezione Compilazione su GNU/Linux (guarda sopra) per sapere come compilare il gioco. Le istruzioni sono le stesse.

### Altri compilatori/ambienti di sviluppo

Per compilare il gioco usando altro software, per favore eseguire

    cmake --help

dal terminale per maggiori informazioni. Usando CMake, è possibile generare i dati necessari per altri compilatori. CMake può generare file di progetto per altri famosi ambienti di sviluppo come Code::Blocks, KDevelop, etc. Per esempio, su Linux, per generare un progetto di Code::Blocks (opensonic.cbp), eseguire

    ./configure -G "CodeBlocks - Unix Makefiles"

## Crediti

### Licenza

Il codice di questo gioco è sotto licenza GPL versione 2. Si prega di leggere il file license.txt fornito con questo software.

### Circa questo gioco

Open Sonic è scritto da zero in linguaggio C e usa le librerie per la programmazione di giochi Allegro per la grafica, i suoni, l'input dei giocatori e i contatori. Usa anche le librerie DUMB e LOGG per la riproduzione di musica, loadpng e JPGalleg per le funzioni di caricamento/salvataggio delle immagini e lib2xSaI per una migliore resa grafica. Il gioco è stato scritto originariamente da Alexandre Martins, uno studente di informatica dal Brasile, e ora ci sono diversi collaboratori da tutto il mondo! Lo sviluppo di videogiochi è una cosa bella e affascinante, e si può imparare molto mentre si crea un gioco! Ecco perché ci piace così tanto.

Questo gioco è ancora in sviluppo. Attualmente usa per lo più grafica e effetti sonori "strappati via", ma li stiamo passo-passo sostituendo con materiale originale creato dagli utenti. Questo gioco è sviluppato da volontari. Abbiamo bisogno del vostro aiuto! È possibile contribuire a questo progetto in numerosi settori: arte, suoni, livelli, ecc. Per favore dai un'occhiata alla nostra wiki per sapere esattamente come puoi contribuire.

Grazie per la lettura. :)

Tradotto da Francesco Sciusco