PGNviewer3D

Sono un mediocre giocatore di scacchi con la passione della grafica, del computer e della modellazione anche con Blender.

A proposito di quest’ultimo, alcuni mesi fa ho modellato una scacchiera e un set di scacchi che ho pubblicato anche sul mio sito (http://www.avelino.it/wa/scacchiera/).

Tra i commenti ce n’era uno che tra l’altro diceva: “…che bello sarebbe creare l’animazione di una partita...”. Questo commento mi ha colpito e fatto pensare; un’animazione? Troppo banale, …di una partita, e poi, vista quella che rimane…

Passavano i giorni ma quel pensiero non se ne andava e fu così che iniziai a pensare di scrivere un programma che leggesse una partita nel formato PGN e ne riproponesse le mosse sullo schermo. Esiste un gran numero di programmi di questo tipo, certamente molto sofisticati ma l’idea di costruire qualche cosa da me mi stimolava.

Per chi non lo sapesse bisogna dire che il PGN (Portable Game Notation) è un formato usato in ambito digitale per registrare le partite di scacchi. La maggior parte dei programmi per giocare a scacchi tramite computer lo supportano.

C’è da osservare che non sono un programmatore, che non conoscevo (e non lo conosco ancora!) il linguaggio di programmazione Python, ma sapevo che tramite il Blender Game Engine (BGE) si potevano fare cose strepitose (a patto di esserne capaci!).

Ho così iniziato a esplorare questo mondo assolutamente misterioso e sconosciuto (per me) e i primi successi (riuscire a muovere un pezzo sulla scacchiera) mi hanno incoraggiato e dato la voglia di continuare. Piano piano ho risolto i problemi che mi si presentavano e alla fine, riuscivo a riprodurre avanti e indietro le mosse di una partita, tutto da terminale, senza interfaccia.

Al momento di creare un’interfaccia grafica che offrisse la possibilità di selezionare un file pgn e una partita all’interno dello stesso (esistono file pgn che contengono centinaia di migliaia di partite!) sono iniziati i problemi. Ho provato diversi strumenti, Tkinter, Gtk… ma evidentemente le mie capacità non erano all’altezza dei risultati che mi aspettavo.

Un carissimo amico, nonché esperto programmatore in bash mi è venuto in aiuto e con uno script in tale interprete (aramaico antico per me!) ha creato una valida e comoda interfaccia al mio programmino, tanto che la ritengo il punto focale di tutta l’applicazione. Dall’idea iniziale (riprodurre in 3d una partita) grazie a questa interfaccia è possibile considerare l’applicazione un archivio per i file PGN e la parte 3D una gradevole funzione accessoria.

Quello che segue è il link dal quale chi vorrà, potrà scaricare l’archivio con la documentazione e i file necessari a far girare PGNviewer3D che, bisogna ricordarlo, è stato scritto su su Void Linux ma non ancora testato su altre distribuzioni, ma non c’è ragione di pensare che non funzioni una volta soddisfatte tutte le dipendenze.

https://www.dropbox.com/s/dpyprxbz7gzrqgr/PGNviewer3D.tar.bz2?dl=0  (~40 Mb) – Aggiornato il 18-5 alle ore 18:50

Chi avesse già scaricato l’archivio prima della data dell’aggiornamento (18-5 alle ore 18:50) è invitato a scaricare la nuova versione aggiornata di PGN_GUI (l’interfaccia) migliorata e corretta, e sostituirla a quella contenuta nell’archivio del link più sopra.

Chi volesse leggere la documentazione completa prima di scaricare tutto l’archivio: https://www.dropbox.com/s/8ix96644pfo7u0s/PGNviewer3D.pdf?dl=0

Guarda il video – See video