Archive for giugno, 2011

29 giugno 2011

Videogiochi del nuovo millennio

Non posso fare a meno di scrivere due righe di auto-risposta ad una domanda che a me sorge spontanea quando vedo il gameplay di almeno il 99% dei videogiochi (e anche giochi ‘fisici’) in commercio: Perché non riesco ad avvicinarmici?

Quasi in ogni opera videoludica a cui ho modo di approciarmi – con rarissime ma notevoli eccezioni – percepisco la sensazione che la giocabilità (gameplay appunto) sia stata sacrificata in termini di tempo e cura, per un apparenza grafica allettante, dettagliata, sfumata, bagliorizzata, etc, con degli estremi che diventano sinceramente così pieni di effetti da risultare quasi inavvicinabili. Certo, è possibile che il mio approccio sia ormai vecchio e sorpassato. Allora, perché prendendo in mano un prodotto degli anni novanta, giusto per non andare troppo sotto a livello grafico (anche se gli anni ottanta colori esclusi, non si perdono niente), riesco fisicamente a giocare e invece con giochi degli ultimi 6-7 anni no? Cosa è cambiato così radicalmente negli ultimi anni da segnare (almeno per me) un salto incolmabile?

IoriRugal

Sicuramente la componente personale nel mio caso un po’ conta, visto che sono molto legato ad uno dei genere principi degli anni novanta (i picchiaduro), ma non può essere solo quello. Ad esempio, chi non prova soddisfazione a giocare a tetris? Tutti vero. Bene, chi non prova soddisfazione a giocare ad una app clone con grafica rifatta o simili? Molti abbandonano dopo 1-2 ore di utilizzo totali l’applicazione/gioco perché in quel breve lasso di tempo è già scaduta.

Purtroppo la logica commerciale odierna punta a trailer mozzafiato, grafica accattivante, etc, con il solo scopo di attirare più clienti possibile (e magari di tutte le età), perdendo totalmente di vista la qualità del gioco. Un’altra caratteristica che via via si è persa con il passare del tempo è la semplicità (da non confondere con basicità, banalità). Secondo me non è vero che più funzioni vengono inserite nel gameplay, più il gioco è bello, anzi, in molti casi, opzioni studiate ad arte per essere facilmente assimilabili e allo stesso tempo permettere una longevità di gioco estrema. Per fare un esempio concreto in questo campo vorrei citare una perla di inizio millennio che è DiabloII della Blizzard.

E qui torniamo al punto di partenza, quanti giochi degli ultimi 6-7 anni hanno o prevedono un futuro prospero, si contano sulle dita di una mano? Se guardiamo invece quelli che tuttora sono molto giocati e amati del decennio precedente troviamo parecchi più titoli (non bastano né piedi né mani per contarli).

Minecraft

Ora, per concludere, è giusto andare avanti così o a breve ci sarà una ventata di cambiamento? Chi può dirlo, intanto Minecraft che si è scostato fortemente dagli schemi commerciali in favore della qualità è stato ampiamente premiato, vedremo se si rivelerà un guizzo nel mare piatto o se scatenerà una bella onda di cambiamento.

27 giugno 2011

Seconda beta per camsensor (0.0.2)

Pochi giorni fa ho rilasciato la seconda beta per il programma.
Non ci sono sostanziali cambiamenti rispetto alla 0.0.1, ma in questa versione ho migliorato l’approccio visivo – in particolar modo della parte di calibrazione che non era molto intuitiva nella versione precedente – ed ho aggiunto un’override per i segnali di sistema per fare in modo di spegnere, uccidere mettere in pausa e riprendere il programma dall’esterno.

Tutto quello che c’è ora, almeno a livello di meccanismo interno, con ogni probabilità rimarrà pressoché immutato nelle versioni future, gli unici cambiamenti possono essere solo migliorativi in termini di consumo di risorse e/o usabilità a livello libreria. In ogni caso farò in modo di non stravolgere nessuna delle funzioni in libreria.

Per la versione 0.0.3 gli obiettivi sono:

  • demone eseguibile indipendentemente a livello utente
  • backend (testuale ma forse anche grafico) per controllare l’esecuzione
  • aggiunta in libreria di tutto ciò che è iterabile
  • pulizia generale del codice e adesione alle regole PEP 8.

In realtà ho detto 0.0.3 perché su svn è questa la versione che ho dato temporaneamente, ma se il backend funziona a dovere penso si possa parlare di 0.1.0. In ogni caso non vedo futuro per una 0.0.4…

Come al solito trovate versioni beta stabili e sorgente su http://sourceforge.net/projects/camsensor/

21 giugno 2011

Camsensor in beta

Ieri notte ho deciso che il progetto aveva raggiunto una maturità tale da poter passare in fase beta. Il programma così come è ora ha tutti i punti che in fase pre-alpha avevo previsto di raggiungere.

Scrivo solo ora perché volevo poter annunciare di più di un semplice passaggio da alpha a beta. Ho delineato infatti i punti da raggiungere per la versione 0.0.2 che mi aspetto di raggiungere a breve:

  • Distribuzione per le maggiori distribuzioni linux
  • Integrazione completa con il sistema xdg_dir per i percorsi di sistema
  • Miglioramento della chiarezza e riorganizzazione grafica nei passaggi di calibrazione

Il primo punto degli obbiettivi per la versione 0.0.2 è stato raggiunto, il codice attualmente caricato su svn infatti è compatibile con tutte le distribuzioni debian-based (debian,ubuntu,…) e con tutte le RPM-based (red-hat,Fedora,…) nonché con Archlinux e Gentoo. In realtà ho parlato di compatibilità, perché ho avuto modo di testare effettivamente il funzionamento solo su Archlinux (XFCE), Fedora 14 (GNOME) e Ubuntu 11.04 (Unity). Ma a rigor di logica dovrebbe essere portabile in ogni distribuzione basata su kernel 2.6.
Il secondo punto sarà meno complesso del primo, ma richiederà comunque del tempo (soprattutto per il testing), in quanto ad ogni cambiamento di una variabile per le configurazioni, devo testare che non si sballino riferimenti.
Il terzo punto a livello di applicazione è veloce e semplice, ma richiederà tempo per pensare ad un layout efficente e allo stesso tempo chiaro per tutti.

La versione beta è caricata su sourceforge e disponibile all’indirizzo http://sourceforge.net/projects/camsensor/files/camsensor-beta/0.0.1/camsensor-0.0.1.tar.gz ha un bug per quanto riguarda la localizzazione, quindi per evitare errori, bisogna cambiare riga 39 del file camsensor.py così:
gettext.install(‘camsensor’,unicode=False)
‘nella versione originale unicode e impostato su True’

Spero di poter dare presto nuove nuove 🙂

10 giugno 2011

I giorni di pioggia non fanno poi così male

Questi ultimi giorni di pioggia mi hanno portato a scoprire un serio bug (o quasi) su camsensor che non impediva il cambio continuo del valore di retroilluminazione in caso di valori di luce esterna “stabili” nell’intorno di un salto (15%, 25%, 35%, …).

La scala percentuale della luminosità ambientale infatti non è lineare – in realtà è quasi logaritmica – e quindi le normali oscillazioni del valore di luminosità che si hanno a causa dei limiti materiali (la webcam e i normali movimenti dell’utente) provocano delta sulle misure notevoli. Se per disgrazia il cielo temporalesco, ovvero 50-60% di luminosità (con la pendenza della funzione che comincia a farsi sentire), diventa più/meno annuvolato rapidamente, ci si trova nella brutta situazione di avere la retroilluminazione che passa da passo precedente a successivo e vice-versa ad ogni cattura (ogni 0.5 secondi… disturbante)

Poiché, come dicevo uno o due articoli fa, ormai sono totalmente dipendente da questa mia applicazione, il doverla escludere anche solo per brevi periodi di tempo (altra grossa feature da implementare in futuro) non mi dava pace. Ho pensato un pochetto e alla fine ho adottato questa banale soluzione:
appena cambia la retroilluminazione parte un conteggio a 60 secondi, prima dello scadere del conteggio viene inibita l’azione di scrittura dei valori di retroilluminazione, a meno che non si tratti di un cambio repentino (classica luce accesa/spenta) che è ininfluente all’atto del conteggio. Ci tengo a precisare che i valori mostrati nei log non risentono dell’inibizione e quindi sono “reali”, non falsati.

Poiché queste modifiche potrebbero ledere in maniera consistente la risposta del programma nel primo minuto di avvio (per ora i test che ho effettuato non hanno presentato anomalie), come le altre dalla revisione 19 in poi per ora rimangono solo su subversion.
Ormai pensavo di pulire qualcosina sul codice, ottimizzare questa nuova feature e quindi rilasciare una nuova alpha. Il tutto, tra esami e resto penso mi occuperà un mesetto.

Per tutti quelli che non hanno pazienza (io consiglio CALDAMENTE di usare la versione sperimentale su subversion…) il link è il solito: camsensor/code

1 giugno 2011

E dopo qualche ora di studio…

E dopo qualche oretta di studio cosa c’è di meglio di una morbida, sugosa, nutriente e sana pizza?

Pizza fatta in casa

Avevo diligentemente preparato la pasta tornato dall’utilissima visita-seminario all’INSIE di Udine ieri mattina (che mi aveva fatto venire una fame assurda dato che non avevo fatto a tempo a fare colazione).
Così, dopo qualche ora di studio ho ben farcito un buon terzo di pasta e dopo una ventina di minuti abbondante di forno… magia.

Avevo proprio voglia di pizza!

Faccio notare la genuinità… pizza con pasta fatta in casa, sugo di pomodoro fatto in casa, mozzarella fresca (non hanno senso di esistere le mozzarelle da pizza), pomodorini datterini a quarti, rucola fresca e GranaPadano a scaglie.

Chiedo scusa se in questo periodo lo sviluppo di camsensor è un po’ fermo, ma devo occuparmi degli esami per il momento, in ogni caso tutte le cose vitali sono sistemate. In ogni caso su subversion dovrebbero già esserci due o tre revisioni successive alla versione alpha12 se volete provare qualcosa di nuovo (non mi pare in realtà ci siano nuove features, ma solo bugfix)