Archive for the ‘Strumenti’ Category

Lunga vita a Neverwinter

Sunday, February 15th, 2009

Neverwinter Nights

Neverwinter Nights


Aurora Il gioco Neverwinter Nights non fa più notizia nei siti esclusivi di videogiochi, eppure continua a esercitare il suo fascino su migliaia di persone da oltre sette anni. Il merito di questo successo va dato in parte ai DM (Dungeon Master, sono i narratori) e ai Builders che hanno mantenuto vivo l’interesse dei giocatori, scrivendo nuove avventure e costruendo nuovi scenari, in parte agli sviluppatori che hanno ideato dei metodi intelligibili per modificare il gioco. Il gruppo di strumenti Aurora fornisce un insieme di oggetti, creature e procedure. Quando l’utente apre l’applicazione deve scegliere il tipo, la dimensione, e il nome della mappa. Un’area viene plasmata con dei prefabbricati: sono modelli di medie o grandi dimensioni disegnati dagli artisti di Neverwinter e pronti all’uso. Il lavoro si arricchisce di particolari attingendo da un ampio assortimento di altri piccoli oggetti ordinari (i “posizionabili”): dai forzieri agli alambicchi per i negozi di alchimia, dalla balista distrutta all’albero morto, e così via. La mappa è messa (eventualmente) in comunicazione con un’altra tramite gli attivatori o le porte. Anche senza un progetto ben definito sulla carta, le idee possono prendere velocemente forma nel riquadro dello schermo. Basta un po’ di fantasia, impegno, conoscenza della riga di comando Unix, e le basi di un linguaggio di programmazione per conseguire dei risultati soddisfacenti. Purtroppo il programma non può essere eseguito da Linux, si usa la versione di Windows nell’ambiente Wine. I moduli funzionano comunque su entrambi i sistemi operativi. Questa soluzione utilizza la copia di Neverwinter Nights del disco rigido (virtuale) di Windows. Non c’è problema a mettere in comune certe directory del gioco (per esempio quella contenente i moduli) fra Linux e Windows, anzi si risparmia spazio sul disco. Sia chiaro, ciò resta facoltativo e ha poca importanza sul risultato finale.
nwn-de_bello_gallico.jpg
La mia avventura si basava sulla campagna di Gallia condotta da Caio Giulio Cesare, descritta fedelmente nel suo libro “De bello gallico”; i Romani, i Galli e i Germani formavano le quest centrali della storia, mentre i mostri (goblin, coboldi, ecc.) erano di supporto. Ho assegnato all’avventura il titolo dello stesso libro e l’ho installata su un server locale per condividerla fra due computer. L’aspirante builder può realizzare una campagna di gioco in poche ore, facendo riferimento ai manuali distribuiti in Internet e consultando frequentemente i forum tematici (vd. Custom Content, Scripting, Toolset), dove altri utenti più esperti hanno già risposto a diversi problemi comuni. Di regola, il sistema resuscita il giocatore nello stesso punto in cui cade, ma molti DM preferiscono spostare il suo corpo in un tempio e rianimarlo. Il giocatore dovrebbe perdere punti esperienza nel caso subisca una sconfitta in duello. Lo scripting di Neverwinter permette di aggiustare questi due aspetti del gioco.
Dopo aver costruito un modulo a sé stante, occorre preparare il server, controllare che tutto funzioni bene, verificare i requisiti: una connessione a Internet, il numero di CD-Key, e la versione del programma. Non esiste una opzione della riga di comando per collegare direttamente il client al server (in Windows c’è +connect), bisogna passare per la modalità d’uso “multigiocatore” specificando il nome e la password registrati nel computer centrale di Bioware. Se il modulo è stato costruito con oggetti presi da Hordes of the Underdark e Shadows of Undrentide, ogni client della Lan deve disporre delle due suddette espansioni e le relative CD-Key. Il server fa un controllo rigoroso, non si sfugge. Oggi, purtroppo, è raro trovare in negozio una confezione nuova di Neverwinter Nights. Solo i codici hanno valore, perché le risorse del gioco si scaricano dalla rete. Quindi se vi capita di vedere una espansione in vendita a pochi euro, per esempio HOTU, compratene tre copie!

Problemi con Neverwinter?

Per risolvere il seguente problema:

[ferocious@laptop-mango nwn]$ ./nwn
nwmain: xcb_lock.c:77: _XGetXCBBuffer: Assertion `((int) ((xcb_req) - (dpy->request)) >= 0)' failed.
./nwn: line 12: 18836 Aborted ./nwmain $@

si deve rimuovere la directory lib dalla variabile d’ambiente LD_LIBRARY_PATH specificata nello script nwn.

Una introduzione al server di Enemy Territory: Quake Wars

Saturday, September 29th, 2007

Installer del server di Quake Wars
La distribuzione dei programmi per il server di gioco di Enemy Territory: Quake Wars avviene tramite il servizio Bittorent oppure Ftp. Il file compresso della versione retail del gioco ha dimensioni di 420 MB circa e richiede uno spazio su disco di 450MB; il server per il demo invece occupa 181MB.

Con la distribuzione Ubuntu in versione server si può scaricare i file suddetti da console tramite il programma bittorrento (richiede ncurses).
apt-get install bittorrento

Ci sono importanti prerequisiti di tipo software che debbono essere controllati col proprio provider prima di procedere alla configurazione e successivamente esecuzione del server; se è una Intranet ad interconnettere i client al server, è probabile che l’amministratore abbia le chiavi d’accesso anche ai programmi di sviluppo o di gestione dei pacchetti. A basso livello il kernel dovrebbe avere il parametro CONFIG_HZ_1000 abilitato, che si trova nel menù di configurazione (di solito si ottiene con make menuconfig…)

Processor type and features / Time frequency / 1000 Hz (default è 250 HZ)

in questo modo si otterranno prestazioni ottimali.

Requisiti Hardware/Software
Se vuoi eseguire un server di Quake Wars al 100% senza lag e riservato a 31 giocatori, allora devi prenderti delle precauzioni: non eseguire più di 2 server per macchina; evitare se possibile le tipologie di macchina “virtual private server” a meno che quest’ultime abbiano risorse pari al seguente hardware dedicato

  • Processore Pentium (r) 4 @ 2.0GHz oppure Athlon ™ XP 2000+
  • 512MB di memoria di sistema
  • Ottime unità di massa; per esempio con velocità di 7200rpm, meglio in RAID
  • Kernel Linux 2.6 low-latency, con timer a 1Khz
  • Una connessione a banda larga (broadband) con 320KB/s in upstream (~2.5Mbit/s) e 122.1KB/s in downstream (1MBit)

Controlla la variabile net_servermaxclientrate e net_clientmaxrate. Esse limitano la banda per ogni client connesso (è espressa in bytes/s). Valori piu’ alti assicurano prestazioni migliori per ogni giocatore, ma in ogni caso il server aggiusta automaticamente la disponibilità di banda a seconda delle richieste del client. Mediamente 16000 (default) è un valore molto buono per entrambe le variabili nella maggior parte dei sistemi. Se i client non useranno più di 16KB/s, valori superiori di net_maxclientrate non avranno effetto.

Se c’è un firewall attivo fra il server del gioco e Internet, allora dovranno essere “aperte” certe porte

  • in ingresso: UDP 27733 e UDP 3074
  • in uscita: TCP 3074

La porta del primo tipo può essere cambiata a piacimento dalla linea di comando con una opzione, per esempio
etqw-dedicated +set net_port 27734
oppure
etqw-dedicated +set in_tty "0" +set net_ip 194.175.27.69 +set net_port 27734
La opzione in_tty abilita/disabilita l’uso dei comandi nel terminale tty sul quale si sta eseguendo Quake Wars. Quando avviato per la prima volta, il server crea una serie di directory e sub-directory nella home dell’utente che esegue il gioco. Affinché l’amministratore o i suoi delegati (moderatori) possano gestire tutte le funzioni speciali previste per una partita (kick/ban, votazioni, riavvio, scelta mappa, ecc.), dovrà essere creato o copiato i file usergroups.dat, match.cfg e public.cfg dentro $HOME/.etqw/base e modificati opportunamente; potrebbe benissimo farlo il seguente comando (dopo aver adattato il percorso d’origine)
cp /path/to/etqw/base/{usergroups.dat, macth.cfg, server.cfg} $HOME/.etqw/base
Altrimenti il server eseguirà una configurazione “precotta”. Usergroups.dat si ispira probabilmente alla gestione dei gruppi di amministrazione previsti dalla modifica ETPUB (e precedentemetne SHRUB) di Wolfenstein: Enemy Territory. Qui possiamo aggiungere le utenze che detengono determinati privilegi. E’ bene non eliminare o rinominare il gruppo Default, perché comprende tutti i giocatori che si collegano al server; è sconsigliato anche associargli una password.
etqw-dedicated +set in_tty "0" +set net_ip 194.175.27.69 +set net_port 27734 +exec "server.cfg"

Wine 0.9.45 e Counter-Strike

Wednesday, September 19th, 2007

Rieccomi a parlare di Wine, spinto dal fatto che l’annuncio di venerdì scorso riportava, fra gli altri cambiamenti, “A number of fixes to sound support, cioè soluzioni ai problemi con il suono che potevano interessarmi molto. E infatti le avevo provate proprio tutte con le versioni precedenti per sentire qualche rumore in Counter-Strike, ma nisba.
L’installazione da sorgenti non è niente di trascendentale (vedasi anche LFS+Wine 0.9.31=Counter-Strike), in sostanza la compilazione è una operazione da compiersi con una serie di comandi abbastanza semplici:


./configure --prefix=/opt/wine-0.9 && make depend && make && make install

E stavolta funziona anche il suono… sono abbastanza soddisfatto. Dal menu’ di winecfg ho abilitato l’emulazione del driver via OSS, prima di caricare il browser Steam di Valve con il comando steam; quest'ultimo non fa parte di nessuna distribuzione perché l'ho creato con un alias nell'ambiente bash (in $HOME/.bashrc, per esempio) ed è molto piu' comodo da richiamare:


alias steam="/usr/bin/aoss /opt/wine-0.9/bin/wine $HOME/MyGames/Steam/steam"

Ora viene il compito piu' difficile! Imparare a giocare :)
Ho appena 8 anni di esperienza da recuperare (sì, quello nella foto in primo piano sono io, battetemi una stecca :) ).
Counter-Strike è un gioco d'azione appartenente al genere counter-terror. Distribuito come una modifica per Half-Life, è ancora tra i più giocati al mondo, per questo non potevo rinunciare ad acquistarlo (nell'agosto 2006) online tramite Steam e a provarlo con Wine sotto Linux.

(+) Scarica wine-0.9.45.tar.bz2