[Logo di Brave GNU World]
Brave GNU World - Numero 37
Copyright © 2002 Georg C. F. Greve <greve@gnu.org>
Tradotto da Marco Parrone <marc0@autistici.org>
Condizioni di copia in basso.

[DE | EN | FR | IT | JA | ES | KO | PT]

Benvenuto ad un'altro numero del Brave GNU World con un misto di progetti che dovrebbero essere capaci di fornire una o due ispirazioni alla maggior parte dei lettori.

Anche questo mese inizierà introducendo alcuni giochi liberi, di cui ce ne sono ovviamente più di quanti uno non possa pensare in un primo momento.

Trophy

Andrew Mustun iniziò a sviluppare Trophy [5] nel Marzo 2000 per riempire il buco che lasciò la fine dei suoi studi in informatica. Trophy è una gara automobilistica con visuale 2D dall'alto, in cui non conta solo oltrepassare il traguardo per primo.

Più specificatamente, si tratta anche di non oltrepassare per niente il traguardo, dal momento che, come in alcuni film di James Bond, le automobili sono armate e desiderose di usare i loro aggeggi.

Grazie a grafica e suono robusti, Trophy è già un gioco abbastanza completo che dovrebbe permettere agli amanti del gioco pieno d'azione di divertirsi, anche se è raccomandato un computer potente per uno scorrimento chiaro.

Trophy è stato scritto in C++ e Andrew lo pubblica sotto la GNU General Public License. Il suo più grande difetto è molto probabilmente la mancanza dell'opzione di gioco in rete. Andrew ha in programma di prendersene cura appena trova di nuovo del tempo per questo, dal momento che gli studi appena ripresi lo tengono abbastanza occupato.

Si dovrebbe notare che in preparazione di questo numero Andrew ha evidenziato che è una persona pacifica che disapprova le armi in generale e pensa anche che le automobili sono già abbastanza pericolose senza armi; comunque siccome ancora non ha conseguito una patente di guida a 25 anni, non può guidare una vera automobile.

Tuttavia ciò non dovrebbe togliere il divertimento di perdere un pomeriggio giocando a Trophy. Se cerchi un rilassamento creativo disegnando più circuiti con GIMP tra una corsa e l'altra, ciò non dovrebbe essere un problema. Le istruzioni su come farlo sono sulla pagina web principale di Trophy.

Se l'opzione di rete vi dovesse mancare troppo, gli sviluppatori interessati sono naturalmente invitati ad implementarla. Andrew apprezzerà sicuramente aiuti in questa direzione.

Adonthell

Il progetto Adonthell [6] si occupa della creazione di un gioco di ruolo libero 2D simile alle prime console come la SNES, anche se è progettato per avere un grado di libertà molto maggiore.

Molti giochi consistono in due parti connesse dove ciascuna parte può essere capita individualmente. L'importanza di contenuti come storia, grafiche, musica e così via è subito ovvia. La componente tecnica, che fa l'effettivo interfacciamento con il giocatore, per esempio, è comunemente chiamata il "motore."

Utili analogie possono essere la relazione tra programmi e sistema operativo o tra gli spartiti e gli strumenti musicali. Questa separazione permette di scrivere i giochi in una forma astratta, con linguaggio e possibilità determintati dal motore.

Il progetto Adonthell non sviluppa solo un gioco con una storia prefissata; piuttosto, sviluppa un motore per giochi di ruolo con delle storie che sono interpretate da questo motore. È previsto che tutti i rilasci non solo contengano frammenti di codice, ma anche piccoli giochi completi.

Considerando la solita fluttuazione, la squadra permantente di Adonthell è composta da Kai Sterker, Alexandre Courbot, James Nash, Benjamin Walther-Franks, Joel Vennin, Joseph Toscano and Mike Nieforth. Solo tre di questi sono programmatori, gli altri sono musicisti, artisti grafici ed autori. Grazie a questa combinazione ed al fatto che tutti i membri insistono ad incontrarsi di persona una volta all'anno, il gioco ha un "tocco" professionale e fornisce un ottimo esempio di viva cooperazione attraverso internet.

Il codice e le grafiche di Adonthell solo pubblicate sotto la GNU General Public License, il linguaggio di programmazione usato per il motore è il C++. Per controllo di gioco, espansioni e scripting del gioco, l'interprete Python è stato incorporato nel motore. Ciò rende possibile la scrittura di giochi per il motore Adonthell senza mai toccare il C++. Per la musica, viene usato OGG Vorbis [7].

Una delle priorità fu quella di essere in grado di impacchettare motore e giochi separatamente. Hai bisogno solo di installare il motore e con un po' aiuto di strumenti come gli editor di mappe e di dialoghi ed anche un pò di Python, è possibile creare un gioco completo.

Per renderlo ancora più interessante, il gruppo Adonthell lavora anche ad un mondo completo con la propria storia, costumi e peculiarità.

Alexandre Courbot, che ha risposto al questionario di Brave GNU World, dice che il prossimo passo è riscrivere grosse parti del codice basandosi sull'esperienza raccolta.

Inoltre, la squadra sta ancora cercando persone che vogliono aiutare portando su altre piattaforme. Si sà che il gioco funziona su GNU/Linux, FreeBSD, OpenBSD e BeOS, ma a lungo termine, è anche in programma di supportare sistemi operativi proprietari in modo da dare ai loro utenti un primo assaggio di libertà.

Internamente lo sviluppo si sta spostando verso un'architettura più basata sul modello client/server per permettere il gioco in rete. Anche se non è previsto di supportare un numero di giocatori molto elevato, Adonthell dovrebbe eventualmente essere capace di permettere ad un numero medio di giocatori di interagire in un mondo persistente.

Dai primi passi nel 1999, Adonthell ha fatto già molta strada e gli ulteriori sviluppi fanno ben sperare. Quelli con le giuste capacità che sono troppo impazienti di aspettare sono incoraggiati ad aiutare il processo in corso. La squadra di Adonthell gradisce ogni tipo di supporto. [8]

Tutti gli altri possono già spendere uno o due pomeriggi con "Waste's Edge," la prima pubblicazione su cui si può giocare.

XBindKeys

Philippe Brochard ha scritto il programma XBindKeys, [9] che rende possibile assegnare comandi di shell a tasti, sotto X11. Così programmi usati frequentemente come mailer, browser o xterm possono essere avviati, senza lunghi giri attraverso i menù, con una singola combinazione di tasti. Una volta che ci si è abituati a fare certe cose senza dover togliere le mani dalla tastiera, non si vorrà rimanere senza questa possibilità.

Alcuni gestori di finestre supportano nativamente le associazioni ai tasti, ma spesso non tutti i tasti sono definibili liberamente - come alcuni tasti speciali presenti solo su alcune tastiere. Philip stesso usa XBindKeys per far apparire un menu di spegnimento premendo il tasto "power" che la sua tastiera possiede.

Chiunque provi nuovi gestori di finestre o ne usa di differenti di volta in volta conosce i problemi associati ad insegnare al nuovo gestore di finestre la combinazione di tasti preferita.

XBindKeys risolve entrambi i problemi ed in combinazione con il mini-programma MoveMouse [10] , scritto anch'esso da Philippe, può anche essere usato per portare il mouse a delle posizioni specificate precedentemente con la pressione di un singolo tasto.

XBindKeys e MoveMouse sono stati scritti entrambi in C e sono disponibili sotto la GNU General Public License, perchè Philippe li sente come il suo contributo al Sistema GNU.

La configurazione di XBindKeys avviene modificando direttamente il file di configurazione in ASCII, semplice da capire, o usando il front-end GTK XBindKeys-Config [11] scritto da Laurent Vuibert.

Come nota a margine occorre dire che bisogna accertarsi che XBindKeys venga avviato prima del gestore di finestre; ciò rende certo che le pressioni dei tasti non vengano intercettate dal gestore di finestre ed arrivino a XBindKeys.

Non ci sono piani per ulteriori sviluppi dal momento che XBindKeys è stabile e Philippe crede che dovrebbe rimanere piccolo ed utile. Questo rappresenta chiaramente un buon esempio di lotta al dilagante "featureism." (le features sono le funzionalità dei programmi, n.d.t.)

Access Road

L'area della sicurezza IT è senza dubbio abbastanza complessa ma importante. La consapevolezza della possibilità di bachi nei programmi è abbastanza buona oggi, ma è anche possibile creare problemi di sicurezza combinando programmi che funzionano e sono "liberi da bachi."

Ambienti e compiti complessi a volte richiedono sistemi informatici abbastanza complessi ed oscuri.

Senza limitazioni di accesso, i dati possono essere violati o modificati segretamente. Il problema diventa subito evidente quando si pensa ad ospedali che si basano sui calcolatori. L'opposto, una completa limitazione di tutto l'accesso, non è nemmeno una buona idea dal momento che rende tutto il lavoro impossibile.

Così il compito che si ha tra le mani è di disegnare un sistema in modo che il necessario utilizzo sia possibile, mentre l'abuso diventi impossibile.

Dal momento che la concezione di questi sistemi è fatta da umani, c'è sempre un significativo potenziale di errore. Access Road [12] di Patrick Thazard cerca di modellare l'ambiente complesso dei sistemi di informazione e di visualizzarlo all'amministratore. Ciò non aumenta la sicurezza di per sè, ma offre aiuto nel trovare problemi di sicurezza che altrimenti potrebbero passare inosservati.

Lo stesso Patrick Thazard lavora come consulente di sicurezza di computer dal 1987 ed ha scritto Access Road in Java sotto la GNU General Public License, la documentazione è pubblicata sotto la GNU Free Documentation License.

Al momento Access Road supporta sistemi compatibili con GNU/Linux, semplici router e sistemi compatibili con Solaris, ed anche se nessun aggiornamento dati è stato fatto prima dell'ultima pubblicazione, Patrick è convinto che può già fornire una struttura molto utile ad altri sviluppatori.

Successivi piani includono innanzitutti l'aggiunta dell'interazione tra GNU/Linux ed Apache, poi quella tra il sistema operativo ed il sistema di gestione database impiegato. Nella prospettiva a lungo termine, le espansioni per sistemi di modellazione come CORBA o Windows 2000/XP dovrebbero completare il sistema.

Prima di arrivare a quel punto c'è ancora abbastanza lavoro da fare e Patrick sta cercando altri sviluppatori che vogliano supportare il suo lavoro. Anche se l'approccio della modellazione grafica in generale ha alcuni potenziali punti deboli, questo progetto sembra essere abbastanza affascinante e permette l'esplorazione in modi nuovi.

GNU Cons

GNU Cons [13] offre un'alternativa ad uno dei programmi senior, GNU Make. [14] Chiunque abbia mai scaricato software in forma di codice sorgente per installarlo o abbia mai ricompilato il kernel Linux ha già usato GNU Make semplicemente immettendo il comando "make."

Make fu scritto in un tempo in cui era ancora normale compilare i programmi a mano o con script Bash ed a quel tempo fu un grande passo avanti. Ma se avete mai provato a scrivere un Makefile, avrete certamente trovato la sintassi abbastanza difficile da comprendere. Questo è il motivo per cui la maggior parte degli sviluppatori copiano da altri progetti Makefile funzionanti per modificarli per i loro scopi o ottengono Makefile generati automaticamente da programmi come GNU Automake.

Soprattutto, Make cerca di rilevare le modifiche solo dalla data di ultimo accesso, che è problematico e fallisce sicuramente quando si cerca di ricompilare con delle nuove opzioni per il compilatore.

Il nome GNU Cons è stato scelto perchè con i suoi programmi di aiuto può essere "Cons-tructed" ("costruito comodo", n.d.t.) ed il suo obiettivo è di svolgere i compiti eseguiti da GNU Make nel modo in cui dovrebbero essere fatti.

Un componente centrale per questo è un buon meccanismo per rilevare quali file sono stati modificati - GNU Cons non verifica solo le date di accesso, ma funziona anche con le firme MD5 dei file, permettendo un'identificazione molto buona.

Un buon esempio di queste capacità è la caratteristica di GNU Cons nello scenario seguente: il programma "prova"" consiste dei file oggetto "prova1.o, " "prova2.o" e "prova3.o."

Dopo la prima compilazione del programma, il file oggetto "prova2.o" viene danneggiato/corrotto deliberatamente. La successiva chiamata di GNU Cons ricostruirà "prova2.o" e non farà il relinking del programma "prova", dal momento che GNU Cons ha capito che la versione genetata di "e;prova2.o"e; è identica a quella linkata prima.

Se GNU Cons dovesse essere chiamato con delle opzioni del compilatore differenti, tutte le parti saranno ricompilate e linkate, dal momento che fanno parte del confronto non solo i risultati ma anche i parametri usati per crearli.

GNU Cons è stato scritto in Perl da Bob Sidebotham che si è ritirato dal lavorarci sù. Rajesh Vaidheeswarran e Steven Knight diventarono i manutentori delle versioni stabile (Rajesh) e di sviluppo (Steven). Facendo parte del Progetto GNU, GNU Cons è pubblicato sotto la GNU General Public License.

Grazie all'uso di Perl, GNU Cons funziona su Windows ed i derivati di Unix ed i suoi file di configurazione, l'equivalente del "Makefile" comunemente usato, permettono di usare espressioni molto dinamiche e complesse per personalizzare il più possibile un programma per un determinato sistema.

GNU Cons è perfettamente utilizzabile sebbene sia piuttosto pesantemente orientato al C/C++. Si può accedere ad altri linguaggi di programmazione con il modulo Cons::Plus di Johan Holmberg. Anche i file di configurazione sono senza dubbio pesantemente orientati a Perl, il che non è esattamente un vantaggio per molte persone.

Alla fine di questo pezzo voglio esprimere i miei ringraziamenti alla squadra di GNU Cons per le risposte estremamente esaustive alle domande standard di Brave GNU World.

Rajesh Vaidheeswarran ed Erich Waelde hanno fornito un'enorme quantità di informazioni con molti esempi, cosa che è stata molto interessante per me anche se mi è stato possibile inserirne solo piccole parti in questo numero. Posso solo sperare che alcuni dei vantaggi più importanti circolino abbastanza bene per dare un'idea agli sviluppatori interessati del perchè si dovrebbe provare Cons.

SCons

Le ovvie somiglianze nel nome tra GNU Cons e SCons [15] non sono circostanziali. L'architettura di SCons è ampiamente basata su GNU Cons ed è stato scritto nell' Agosto 2000 da Steven Knight, manutentore della versione di sviluppo di GNU Cons, per la competizione Software Carpentry.

Dopo essere stato già da un pò do tempo il manutentore di Cons, si pose per la competizione l'obiettivo di combinare le idee di Cons con la potenza di Python .

SCons è basato su questo lavoro. Come Cons, fornisce capacità superiori per la rilevazione delle modifiche e la soluzione delle dipendenze, ma i suoi file di configurazione sono basati su Python. Inoltre SCons supporta già la compilazione parallela con la possibilità di specificare il numero di thread attraverso un'opzione a linea di comando.

SCons è ancora un progetto abbastanza giovane, la prima alpha è stata pubblicata il 13 Dicembre 2001. Questo è il motivo per cui i rilasci avvengono ancora ad intervalli molto brevi, e spesso contengono funzioni aggiuntive. Così, anche se il progetto è stato condotto con una seria infrastruttura di test di regressione per mantenere la retrocompatibilità e la qualità sin dalla prima ora, qualcuno potrebbe ancora aver a che fare con qualche asperità nell'utilizzo quotidiano

La lista delle espansioni pianificate è ancora abbastanza lunga e contiene non solo un buon supporto per Java, C# e Fortran, ma anche capacità per la generazione di documenti in diversi formati (PDF, PostScript, TeX ed altri) ed archiviazione.

SCons viene pubblicato sotto una licenza di tipo X11, che è nota per non proteggere le libertà. È possibile che la GPL sarebbe stata la scelta migliore nella prospettiva a lungo termine, ma SCons si qualifica chiaramente come Software Libero e dargli uno sguardo o partecipare è chiaramente una buona idea.

Fine

Bene, è tutto per il Brave GNU World di questo mese, per il prossimo numero ho già da parte un progetto che non vedo l'ora di presentare dal momento che ha reso la mia vita molto più facile e spero farà lo stesso per voi.

Fino ad allora auguro a tutti voi di spassarvela e per favore non smettete con i vostri suggerimenti, idee, commenti, risposte e presentazioni di progetti; preferibilmente per email. [1]

Info
[1] Inviare idee, commenti e domande, in Inglese o Tedesco, a Brave GNU World <column@brave-gnu-world.org>
[2] Pagina principale del Progetto GNU http://www.gnu.org/
[3] Pagina principale del Brave GNU World di Georg http://brave-gnu-world.org
[4] Iniziativa "Noi usiamo GNU" http://www.gnu.org/brave-gnu-world/rungnu/rungnu.en.html
[5] Pagina principale di Trophy http://trophy.sourceforge.net
[6] Pagina principale di Adonthell http://adonthell.linuxgames.com
[7] Pagina principale di OGG Vorbis http://www.xiph.org/ogg/vorbis/
[8] Unirsi ad Adonthell http://adonthell.linuxgames.com/development/join.shtml
[9] Pagina principale di Xbindkeys http://hocwp.free.fr/xbindkeys/xbindkeys.html
[10] Pagina principale di MoveMouse http://hocwp.free.fr/movemouse.html
[11] Pagina principale di Xbindkeys-Config http://www.netchampagne.com/xbindkeys_config/
[12] Pagina principale di Access Road http://accessroad.sourceforge.net
[13] Pagina principale di GNU Cons http://www.gnu.org/software/cons/
[14] Pagina principale di GNU Make http://www.gnu.org/software/make/
[15] Pagina principale di SCons http://www.scons.org

[ numero precedente | pagina principale di Brave GNU World | numero successivo ]

Return to pagina principale di GNU.

Per informazioni e domande sulla FSF e GNU rivolgersi, possibilmente in Inglese, a gnu@gnu.org. Altri modi per contattare la FSF.

Commenti sul Brave GNU World di Georg, in Inglese o Tedesco, a column@gnu.org,
commenti su queste pagine a webmasters@www.gnu.org,
altre domande a gnu@gnu.org.

Copyright (C) 2001,2002 Georg C. F. Greve
Tradotto da Marco Parrone.

Sono permesse la copia letterale e la distribuzione di questo articolo nella sua integrità, a condizione che siano riprodotti il copyright e questa nota.

Aggiornato: Thu Mar 21 17:16:33 CET 2002