python
mercoledì 27 luglio 2011 - 1 Commento
Sviluppare un gioco in Python: Panda3D – importare modelli

Introduzione
In questo articolo vedremo come inserire i nostri modelli all’interno della scena gestita da Panda3D. Utilizzeremo delle funzioni base per il movimento della telecamera, così da permetterci di ammirare le nostre creazioni senza scrivere una riga di codice.
Per realizzare i modelli 3d da caricare all’interno di Panda ho scelto di utilizzare il famoso programma di modellazione e rendering Blender. Questo perché dispone di un semplice script per convertire le nostre creazioni in un formato riconoscibile da Panda.
Panda3D lavora con modelli in formato .egg, che contengono tutto quello che c’è da …

giovedì 14 luglio 2011 - 4 Commenti

Introduzione
In quest’articolo inizieremo il nostro cammino nelle tre dimensioni. Esistono svariati SDK e Game Engine in python che permettono di addentrarsi in questo mondo. Alcune librerie, come pyglet o pyOpenGL, ma anche la stessa pygame che abbiamo utilizzato fin ora, offrono la possibilità di creare ambienti e gestire oggetti in 3D, con una dimensione molto ridotta dell’intera libreria.
Esistono poi librerie più corpose come pyOgre, porting in python del famoso motore grafico Ogre; oppure Game Engine come Crystal Space che supportano lo scripting in python per la creazione dei propri videogiochi. …

mercoledì 6 luglio 2011 - 7 Commenti
L’EuroPython 2011 è sbarcato a Firenze!

Dopo ben 4 anni di successi (si sono toccate punte di 400 partecipanti) PyCon Italia ha ceduto temporaneamente il posto alla più prestigiosa EuroPython, evento internazionale svoltosi fra il 20 e il 26 (in realtà gli ultimi due giorni erano riservati agli “sprint”, ma ne parlerò meglio dopo), che si ritroverà a Firenze anche il prossimo anno.
Con circa 650 partecipanti e ben 7 tracce (di cui una in lingua italiana, omaggio alla nostrana PyCon, seconda soltanto all’EuroPython per affluenza nel continente) potete ben capire come sia stato molto difficile annoiarsi. …

martedì 5 luglio 2011 - 13 Commenti
Sviluppare un gioco in Python: tools.

Introduzione
Fino a questo momento abbiamo analizzato attraverso esempi varie tecniche presenti in videogame in 2D e di conseguenza come utilizzare la libreria pygame per realizzare il nostro videogioco. Non mi sono mai soffermato su un aspetto molto importante ed il più delle volte sottovalutato, ovvero quali tools si possono utilizzare per scrivere i propri progetti.
“Sottovalutato” nel senso che si può risparmiare tempo prezioso semplicemente utilizzando uno di questi programmi (che vedremo di seguito) insieme alla documentazione ufficiale della libreria che stiamo utilizzando (qualsiasi essa sia).
Naturalmente mi concentrerò su quelli che …

mercoledì 29 giugno 2011 - 7 Commenti
Sviluppare un gioco in Python: parallax scrolling.

Introduzione
Alcune tipologie di videogiochi utilizzano una tecnica chiamata parallax scrolling per dare al giocatore la sensazione di percorrere (attraversare) un mondo persistente, che può anche non avere fine (ma quest’ultimo aspetto non interessa il parallasse, è solo un effetto che si utilizza spesso in concomitanza). A volte questa tecnica viene solo utilizzata negli sfondi di videogiochi a scorrimento (non solo come sfondo) o side-scrolling game, per aggiungere uteriore realismo. Anche giochi belt scrolling possono averla integrata, visto che segue gli stessi principi, ma con regole diverse per i movimenti del …

giovedì 16 giugno 2011 - 6 Commenti

Introduzione
Dopo aver introdotto l’isometria, possiamo affrontare un importante e delicato argomento che riguarda da vicino anche l’IA presente in un gioco. Quello di cui stiamo per parlare è : “la ricerca del percorso”.
In molti videogame il giocatore muove personalmente il suo alter-ego, senza preoccuparsi di calcolare gli spostamenti verso un dato punto. Questo purtroppo non accade per i personaggi non giocanti e nemmeno in alcune specifiche categorie di videogiochi, come per esempio gli strategici.
Che il gioco sia in 2D o in 3D, quello che abbiamo visto con l’isometria ci …

mercoledì 18 maggio 2011 - 11 Commenti
Pdp 8 Emulator in python, settima parte.

Introduzione
In questo ultima parte illustrerò come sono stati utilizzati i vari widgets per realizzare l’editor e l’emulatore. Come vedrete, una volta capito il funzionamento della libreria, sarà molto semplice implemtentare soluzioni per le vostre necessità. Spero che gli esempi siano abbastanza chiari, così da potervi permettere di sperimentare autonomamente la creazione di programmi multipiattaforma con tkinter.
Per prima cosa vediamo il codice di Editor:
Come potete vedere dal costruttore, oltre alla finestra principale viene passato anche calcolatore (oggetto creato con la classe pdp8 dei precendeit articoli). Questa finestra non è molto complessa, …

martedì 10 maggio 2011 - Commenta
Pdp 8 Emulator in python, sesta parte.

Introduzione
Questa serie di articoli sul pdp8 sta volgendo al termine. Come avete potuto notare, mi sono soffermato più sulle scelte e sui metodi utilizzati per realizzare il programma che sul funzionamento del processore, ma solo perché il mio obbiettivo è più generale e con queste ultime puntate spero di raggiungerlo. Infatti vedremo come contornare il nostro programma scritto in python con una adeguata interfaccia grafica, se pur molto spartana, per interagire con l’utente.
Tkinter ha tra i suoi pregi quello di essere leggera e semplice da utilizzare. Magari non ha tutte …

martedì 3 maggio 2011 - 2 Commenti
Pdp 8 Emulator in python, quinta parte.

Introduzione
In questa parte vedremo con svolge l’esecuzione il calcolatore. Dopo l’introduzione delle micro-istruzioni, l’esecuzione non è più stata legata solo alle variabili di controllo, ma anche da una terza che rappresenta il tempo di clock. Infatti l’esecuzione temporale del programma (per capirci, l’iterfaccia utente) è completamente scollegata da quella interna.
Il pdp8 è legato fondamentalmente da un clock a 4 tempi e questo condizionerà tutto il codice che si vedrà in questa parte. Non è una scelta personale, infatti il pdp8 eseguiva una microi-istruzione (alcune possono essere eseguite in “contemporane”, quindi …

giovedì 21 aprile 2011 - 6 Commenti
Sviluppare un gioco in Python: isometria, Seconda parte.

Introduzione
In questa parte vedremo le migliorie che si possono apportare all’engine isometrico, per non perdere prestazioni e per rendere più malleabile la creazione del gioco.
Per il momento ho eliminato il giocatore, ma ho lasciato la possibilità di selezionare e deselezionare le piastrelle (tasto sinistro del mouse) ed ora è anche possibile creare un oggetto (in questo caso un albero) tramite il tasto destro del mouse, su una data piastrella. Il terreno viene caricato seguendo una stringa che indica il tipo di tile che dovrà essere visualizzata. Sarà anche possibile scorrere …