Nexuiz: creare un server di gioco

Nexuiz

Uno dei migliori giochi sparatutto per linux è senza dubbio Nexuiz.
In questo articolo voglio spiegare brevemente come si fa a creare un server di gioco in.

Cos'è un server di gioco?

E' quel servizio/programma che vi permette di giocare nella stessa mappa con i vostri amici.

Io uso i server pubblici in internet, mi serve questo articolo?

Si se vuoi pubblicare il tuo server personale.
Si se inviti gli amici a casa tua con i loro pc, ed eviti le inutili latenze di internet.

Non mi è chiara la differenza fra server pubblico e privato...

Un server pubblico (il tuo pc in questo caso) è raggiungibile tramite internet e viene messo in una lista di altri server pubblici disponibili in quel momento in rete.
Dal momento che lo avvi, potrebbero passare 5 minuti o più prima che compaia sulla lista.

Un server privato, come puoi immaginare, funziona solo all'interno della tua rete locale.

Veniamo al sodo, come faccio ad avviare un server privato?

Avvia Nexuiz, vai nella sezione Multyplayer / Create. Nella schermata di sx selezionia/deseleziona le mappe tramie lo la barra spaziatrice.
Scegli le altre opzioni che ti interessano e poi premi 'Start Multiplayer'.
I tuoi amici dovrebbero vedere comparire il tuo server nella lista.
Mi raccomando: disattivate il firewall!

E per avviare un server pubblico?

Cominciamo col dire che un server pubblico può essere avviato solo come server dedicato.

Cioé?

Quando prima hai avviato il server privato dal tuo Nexuiz, se tu esci dalla partita, tutti i tuoi amici verranno disconnessi nonostante il tuo Nexuiz sia ancora attivo.
Un server dedicato si avvia separatamente dal gioco. In altre parole, i tuoi amici potrebbero giocare col tuo server senza che tu prenda parte alla partita e senza che tu avvi Nexuiz.

Come si fa ad avviare un server dedicato?

In due parole: si devono copiare due file (uno script e un file di configurazione); eseguire lo script.

Entra nella cartella principale di Nexuiz e leggi il file server/readme.txt.

Riporto la procedura che ho fatto a linea di comando ma che puà benissimo essere fatta con un gestore file (dolphin, nautilus etc) ed un editor di testo (kate, gedit etc).

sirio81@pbds:~$ cd /opt/nexuiz/
sirio81@pbds:/opt/nexuiz$ less server/readme.txt
sirio81@pbds:/opt/nexuiz$ cp server/server.cfg data/
sirio81@pbds:/opt/nexuiz$ cp server/server_linux.sh ./
sirio81@pbds:/opt/nexuiz$ chmod a+x server_linux.sh
sirio81@pbds:/opt/nexuiz$ nano --syntax=php data/server.cfg
sirio81@pbds:/opt/nexuiz$ ./server_linux.sh

Riga per riga:
- entro nella cartella di installazione di Nexuiz
- leggo il readme
- copio il file di configurazione da server/ a data/
- copio lo script da server/ alla directory attuale ./
- mi assicuro che lo script abbia i permessi di esecuzione per tutti
- modifico il file di configurazione facendomi aiutare dalla sintassi colorata di nano
- lancio il server dedicato

Nota: le righe che iniziano con '//' sono commenti. Togliendoli si attiva la relativa opzione. Tutte le cose commentate rappresentano i valori di default.

Ok, cos'è che differenzia un server dedicato da uno privato?

La prima opzione che trovi nel file di configurazione:
  sv_public 1    // 0 if the server should not be on the public servers list

Allora se metto 1 i miei amici vedranno il mio server nella lista dei server pubblici?

Dal punto di vista di configurazione del server sei a posto ma questo non significa che il servizio sia raggiungibile dall'esterno.
Se il tuo pc è collegato ad un router, il servizio non è raggiungibile.
Se hai un modem pci 56k, il servizio è raggiungibile perché il tuo pc ha un ip pubblico.
Verifica le impostazioni del tuo firewall se attivo.

Quindi se sono dietro un router non posso pubblicare il mio server?

Certo che puoi, devi impostare una regola di inoltro in modo che la porta 26000 del router dia rediretta sulla 26000 del tuo pc.
Spiegare come si fa non é nello scopo di questa guida ma cerca nelle impostazioni del tuo router sotto una di queste voci: port-forwardig, nat, virtual-server...