Newsgroup: it.comp.lang
Titolo: [CONFRONTO] giochi 2D

ciao a tutti..vorrei creare un giochino tipo mario bros ma non ho idea di
che linguaggio di programmazione usare.qualcuno mi può dare qualche dritta?
grazie
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 dare qualche dritta? grazie
PREMESSA:
In mancanza di altre risposte, ne azzardo una io, premettendo
che quel che scrivo dui giochi è principalmente "per sentito dire",
non avendo io esperienza diretta di sviluppo di giochi, né della
gran parte delle cose che poi cito.
Per cui è probabile che ci sia qualche inesattezza...
Dunque:
==Giochi==
Per i giochi in genere il linguaggio più usato è il C++ (e il C)
Praticamente tutti i framework più importanti sono fatti in e per
essere usati in C e/o C++.
In realtà, credo, la difficoltà maggiore, non sta nella scelta del
linguaggio migliore, quanto nella scelta del framework che si
vuole utilizzare e nell'apprendimento di come funziona e di come
utilizzarlo.
I framework più famosi per lo sviluppo di applicazione come
giochi sono le DirectX (Microsoft) e le OpenGL.
Di entrambi, con una veloce ricerca con Google, puoi arrivare a
scaricare l'SDK.
Per quel che riguarda i giochi più semplici (tipo cloni di Mario...)
puoi probabilmente prendere in considerazione delle librerie pù
ad alto livello come le "Allegro".
Un altro approccio possibile è realizzare il tutto in Java, magari
utilizzando la "java micro edition" in modo da fare il gioco
funzionante sui cellulari.
Risalendo ancora di livello puoi prendere in considerazione
anche Python con il modulo pyGame.
Infine un'altra possiblità che mi viene in mente è il Blitzbasic.
Insomma... dipende dalla piattafoma sul quale vuoi sviluppare,
da quanto vuoi sfruttare le possibilità dell'HW, da quanto impegno
ci vuoi mettere, ecc.
L'approccio più professionale è probabilmente quello di studiarsi
DirectX o OpenGL e scrivere tutto in C++, ma questo significa
impegnare un sacco di tempo e risorse che non è detto un persona
possa metterci.
Gli altri approcci hanno vantaggi sulla semplicità, ma hanno
varie limitazioni, a seconda della scelta.
==Linguaggi==
Per quel che riguarda il linguaggio di programmazione in se,
valgono le solite considerazioni, anche se non specifiche allo
sviluppo di giochi (il tutto, ovviamente, IMHO).
Il C è di basso livello.
Produce eseguibili nativi per la piattaforma sulla quale viene
compilato e quindi non introduce rallentamenti, di suo.
Ti devi occupare tu della gestione della memoria.
Non è particolarmente adatto allo sviluppo di sistemi complessi,
non essendo un linguaggio ad oggetti ed offrendo una scarsa
propensione a gestire i problemi "astraendo dal caso specifico"
Il C++ è potente.
Eredita dal C sia i lati positivi (velocità e "basso livello") sia alcuni
di quelli negativi (gestione memoria e "basso livello").
In più, però, aggiunge il supporto alla programmazione ad oggetti
ed alla programmazione generica (template), nonchè una libreria
standard molto ampia che implementa algoritmi, contenitori e
quant'altro, permettendo, se ben sfruttata, di non doversi perdere
nel "reinventare l'acqua calda". Il C++ paga lo scotto di tutte
queste potenzialità con una complessità del linguaggio che lo
rende eccessivamente difficile da padroneggiare.
Il Java è interessante.
Ha il vantaggio/svantaggio di appoggiarsi a una macchina virtuale,
per l'esecuzione dei programmi.
Questo, nel caso specifico, provoca la necessità di un computer
almeno discreto dal punto di vista delle risorse disponibili.
E' un linguaggio di alto livello, quasi completamente ad oggetti,
che permette di astrarre molto e di organizzare bene anche progetti
di una certa complessità.
Ha una vastissima libreria standard a corredo del linguaggio
vero e proprio ed ha una comunità di sviluppatori molto attiva
che garantisce che quasi ogni cosa abbia già una sua libreria Java
sviluppata da qualcuno.
E' difficile/impossibile accedere direttamente alle risorse HW da
java, per cui non si adatta a qualunque scopo.
Esiste una versione "micro edition" che, decurtando molti fronzoli,
permette ai programmi java di usare meno risorse e di essere
quindi adatti a piattaforme HW anche più limitate.
Python è elegante.
Python è un linguaggio di alto livello. Interpretato. Come tale
non ha come primo scopo la velocità di esecuzione, né lo
sfruttamento all'osso delle risorse HW.
Piuttosto Python garantisce una sintassi semplice ed elegante
ed fornisce strumenti per generalizzare le soluzioni tali da
permettere la gestione anche di grossi progetti e contestualmente
una notevole velocità di _scrittura_ dei programmi.
A corredo del linguaggio è fornita una libreria standard piuttosto
ampia, comoda per trovare soluzioni già pronte ai problemi più
comuni, dalle espressioni regolari all'accesso al web, dalle
chiamate a sistema fino a delle semplici interfacce grafiche.
Python è facilmente estendibile in C o C++ e questo garantisce
che eventuali colli di bottiglia nell'applicazione possano essere
eliminati riscrivendo un pezzo di codice in questi linguaggi.
Questo, unito a una comunità di sviluppatori attivissima,
fornisce a Python una immensità di librerie fornite da terzi
per fare praticamente ogni sorta di cose, dal calcolo matematico
a GUI con look&feel nativo.
Blitzbasic, lo conosco solo per sentito dire, quindi non ti so dire.
Immagino sia un "basic", con tutti i pregi (semplicità) e i difetti
(difficoltà di gestione quando le cose diventano appena appena
più complicate) tipici di questo tipo di linguaggi
Per chiudere ti indico il gruppo it.comp.giochi.svilluppo, dove
la tematica principale è proprio lo sviluppo di giochi.
Penso ti possa interessare...
Sperando di non aver scritto troppe inesattezze...
....buon proseguimento :-)
-- 
Gerolamo
www.overweb.it

grazie mille per le delucidazioni..mi hai aperto la strada..anche se ho
capito che sarà un'impresa...grazie cmq..ciao


 capito che sarà un'impresa...grazie cmq..ciao
Quello che ti è stato detto è corretto. Se hai poca pratica con la
programmazione ed hai un PC moderno direi che ti conviene partire da
Python ed il sito di riferimento per il tuo problema è: 
www.pygame.org
C'è molto da studiare (se ti piace programmare sarà un diletto) e
molte cose da installare (tutte freeware) per far funzionare il tutto.
Da qui passare al C++ se un giorno vorrai fare un gioco estremo sarà
relativamente semplice.
Considera un vantaggio se userai Python il tuo gioco di colpo
funzionerà su tutte le piattaforme, basta che abbiano le librerie
installate.
Ciao, Francesco
_.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.
email: calypte chiocciola email punto it