Lo sviluppo di software è un arte molto complicata, raffinata e affascinante. Sin da sempre sono stati progettati nuovi stili di programmazione atti a garantire una maggiore flessibilità del linguaggio e una gestione del codice ottimale. Pensiamo al progresso dal linguaggio macchina, all’assembly, al codice strutturato sino alla OOP. Però, man mano che i tempo vanno cambiando, corre sempre di più il bisogno di creare software non a livello console, bensì grafico. Malgrado sia possibile creare un software con la grafica più svariata che vogliamo, e in tanti linguaggi di programmazione (sempre per mezzo di librerie grafiche) in questo articolo parliamo dei software grafici in C e C++, introducento i vari framework principali per il software grafico, su Windows e su Linux.
Iniziamo col dire che in C è possibile scrivere GUI (Grapich User Interface) ma non è consigliato, perchè la maggior parte delle librerie in circolazione è disponibile solo per C++ e non per il C, dato che sono destinate a essere usate per la programmazione OOP. Di conseguenza, se siete su Windows per esempio, e volete creare finestre grafiche potete affidarvi alle API o comunque gestire tutto a manina. Potreste anche trovare librerie o robe simili, ma il linguaggio ottimale è il C++, perchè è un linguaggio OOP.
Infatti, ci sarà pure un motivo per cui sia stata inventata la OOP. Parlando a livello molto basso, comprnesibile da tutti, possiamo dire che essa ci permette di pensare “tutto” come oggetti, e di conseguenza anche i vari componenti di una finestra grafica. In questo modo, grazie alle classi che sono le astrazioni degli oggetti, possiamo gestire al meglio il codice.
Ma non soffermiamoci troppo sulla teoria, quella è qualcosa che dobbiamo studiare da noi, parliamo invece di ciò che tratta il post, i framework disonibli! Anticipiano comunque che tutti i framework hanno degli stili di default per creare finestre, quindi non potrete farle di forme a vostro piacimento, se non con modifiche varie al codice.
Ecco i principali framework:
- Qt - Qt è uuna grande libreria che permette di creare interfaccia utente tramite dei widgets, che sono quelli che compongono essenzialmente anche le altre librerie che vedremo in seguito. Esistono due versione del framework Qt: una opensoruce e un’altra shareware. La prima può essere usata solo per sviluppare software open, la seconda per qualsiasi utilizzo. Il framework di Qt offre anche un Designer per creare le finestre in maniera visuale, ed evitare la fatica del codice. Punto di forza è che sono molto potenti, e sopratutto multipiattaforma, ovvero sono disponibili sia per Windows che per Linux. Esistono anche altre versione per altri OS, come per Mac OS. Sono semplici da usare, ma per un principiante non sono il massimo!
- Visual C++ – E’ un IDE offerto dalla Microsoft sotto due licenze: una freeware (limitata) e una sharewre (completa). Esso permette di creare software, compilarlo (ha un compilatore interno di proprietà della Microsoft) e tanto altro. Il framework che usa per creare le interfaccie grafiche è componeto dalle librerie MFC che includono tutte le funzioni delle API. Di conseguenza dobbiamo dire però, che l’uso non è affatto scemplice, e le applicazioni uscenti saranno solo eseguibili su sistemi Windows. Inoltre le ultime versioni permettono di creare anche applicazioni C++/CLI ovvero sfruttando il .NET Framework di Microsoft. Ciò può aiutare la portabilità del softwre finale anche su Linux, dove esiste Mono che è un porting del .NET Framework. Attualmente è supportato fino alla versione 2.0!
- CodeGear C++ Builder 2007 – Questo ambiente è sviluppato dalla Borland Software Corporation ed è adatto per sviluppare GUI sotto Windows XP/Vista. Esiste la versione precedente che supporta anche Windows 98. E’ importante dire che questo ambiente semplifica molto la gestione e la creazione di GUI sotto Windows rispetto a Visual C++ e le MFC, che richiedono tempo e compotenza! E’ veloce, ma non è freeware. L’unica versione è commerciale. Possiede un compilatore proprio, sempre sviluppato dalla Borland. E’ possibile utilizzare due librerie: una integra le API di Windows e altre funzionalità, l’altra include la funzionalità con Linux, per cui sarà possibilità di esportare il prodotto finale.
Esistono anche altri prodotti che permettono di creare GUI, ma questo sono a mio parere i migliori e i più gettonati. Il primo utile per la portatilità del codice, il secondo per ambienti Windows, e il terzo per avere tempo di sviluppo e un ottima gestionabilità dei progetti (sempre per Windows).
Questi di default permettono di creare finestre nello stesso stile di cui sono le finestre del sistema operativo, se si vuole, si potrebbe grazie ad altre librerie creare softwre grafico personalizzato.
Per informazioni o chiarimenti o critiche sull’articolo, lasciate pure un commento!

6 comments
Comments feed for this article
Maggio 18, 2009 a 5:48 pm
Fabrizio
Franecesco sai dirmi di come creare un videogioco per playstation2 e 3, e quali framework, e librerie del visual C++ 2008.
Maggio 18, 2009 a 7:05 pm
Francesco Pellegrino
Fabrizio, per sviluppare giochi per piattaforme come la PlayStation 2, o a maggior ragione la 3, occorrono degli strumenti proprietari realizzati da Sony, daltronde anche parecchio costosi. Solitamente sono tools pensati per le aziende che hanno tanto da spendere, ma sopratutto da guadagnarci poi. Avevo comunque sentito parlare di qualcosa di libero, ma non so nulla di preciso, potresti informarti in rete. Per quanto riguarda invece giochi per Windows, puoi sfruttare DarkGDK per Visual C++, un framework gratuito pensato proprio per lo sviluppo di videogiochi, sia 2D che 3D. Se vuoi inoltre, puoi usare XNA Game Studio 3.0: si tratta di un framework per Visual C# (quindi utilizzando principalmente la piattaforma .NET di Microsoft e il linguaggio C#) che ti permette di realizzare in maniera flessibile, potente e anche velocemente dei videogames per Windows e perfino Microsoft Zune e XBox360. E’ da prendere in considerazione per il semplice fatto che un singolo sviluppatore ha poche risorse da mettere in gioco nello sviluppo di un tale gioco, di conseguenza un framework come questo della Microsoft si rivela decisamente adatto, facendo guadagnare tanto tempo al programmatore, che altrimenti andrebbe perso, spesso con risultati non migliori di quanto si pensi. Poi è anche gratuito, ed offre un’ampia community online, meglio di così
Maggio 25, 2009 a 9:35 pm
Fabrizio
Francesco visto che non so quali framework utilizza la sony potrei utilizzare i framwork tradizionali per fare un videogioco per il pc.
Dove inizio per fare un videogioco per pc?
Maggio 26, 2009 a 10:29 am
Fabrizio
Mi conviene comprare un libro sul visual C++ 2008?
Maggio 26, 2009 a 12:32 pm
Francesco Pellegrino
Per creare videogames per ambienti Windows ti serve poco un libro dedicato soltanto al Visual C++ 2008. Certamente la base del linguaggio deve esserti familiare, mi sembra il minimo. Innanzi tutto devi decidere quale piattaforma usare: se Visual C++ 2008 con DarkGDK, oppure Visual C# 2008 con XNA. Io ti consiglio la seconda, per semplicità, supporto e per la possibilità di utilizzare i giochi anche sulla XBOX360. Fatto ciò ti dedichi specificatamente all’indirizzo scelto: se opti per il secondo caso c’è un buon libro che ti consiglio, dal titolo “Learning XNA 3.0″ della O’Reilly, ben fatto, perà in inglese.
Maggio 26, 2009 a 12:41 pm
Fabrizio
Utilizzerò in visual C++ e comprerò il libro