View Full Version : [C++]Consiglio libreria da utilizzare per programmare giochi
MissaW_RaZ_98
09-11-2012, 22:20
Salve a tuttii,
Ho abbastanza esperienza in c++(anche in c),quindi ho deciso di iniziare a programmare dei giochi,iniziando dal semplice e passando poi al difficile.
Esistono molte librerie(o API) che mi permettono di creare giochi(ad esempio SDL,allegro,SFML,ecc)
Non sono pochi,quindi vorrei un consiglio da voi su quale utilizzare.
Grazie:)
MissaW_RaZ_98
10-11-2012, 16:46
UP
Gaiden80
10-11-2012, 18:17
o DirectX o openGl. In ambiente microsoft la prima è insuperabile, in quanto piena di features che mancano ancora in openGL, tuttavia la seconda ti permette di essere compatibile su linux (e quindi anche android)
mistergks
11-11-2012, 17:30
Ma se faccio un gioco su linux sará eseguibile su altri s.o.?
Inviato dal mio GT-I9003 usando Tapatalk
lorenzo001
11-11-2012, 19:05
Ovviamente dovrai ricompilare su Windows ...
IngMetallo
11-11-2012, 19:28
Salve a tuttii,
Ho abbastanza esperienza in c++(anche in c),quindi ho deciso di iniziare a programmare dei giochi,iniziando dal semplice e passando poi al difficile.
Esistono molte librerie(o API) che mi permettono di creare giochi(ad esempio SDL,allegro,SFML,ecc)
Non sono pochi,quindi vorrei un consiglio da voi su quale utilizzare.
Grazie:)
Dipende da cosa vuoi fare. Io ti consiglio di partire con qualche giochino 2d in modo tale da prendere confidenza con questo tipo di progetti. Prova SFML o SDL e vedi quale ti piace di più.
Io attualmente sto usando le SFML perchè mi sembravano più intuitive e sopratutto perché sono orientate agli oggetti.
Se poi vuoi partire direttamente con engine 3d ti sconsiglio sia directx che opengl : mi sembrano troppo complicate da studiare agli inizi... ma su questo campo non ho mai messo piede quindi non ho diretta esperienza.
Considera che in molti preferiscono sviluppare appoggiandosi a motori grafici come Unreal Engine od Unity 3d.
Scrivere un engine da solo è praticamente impossibile.
Riguardo la portabilità : Unity3d gira facilmente su più piattaforme.
Ovviamente dovrai ricompilare su Windows ...
Non credo che basti ricompilare un gioco per farlo girare su altre piattaforme, ma anche qui non ho mai avuto esperienze dirette quindi lascio la parola ai più esperti.
pabloski
11-11-2012, 20:06
Secondo me è bene considerare prima la complessità di quello che si vuole fare.
Per un giochino va benissimo l'accoppiata sdl/opengl ( per chi vuole il cross-platform, altrimenti conoscete la risposta ).
Ma per giochi più importanti è bene cominciare a considerare qualche engine di un certo livello ( ogre?? ).
Gaiden80
11-11-2012, 21:06
però l'autore del post se ho capito bene ha interessi didattici. Ho lavorato per anni in directX... conoscere a basso livello una libreria grafica come DirectX o openGL è il modo migliore di imparare, altrimenti rischia di imparare solo un motore grafico. Poi una volta imparato può passare a motori grafici completi ma sicuramente con un background per capire cosa sta succedendo. Tenete presente che i motori grafici professionali neanche si programmano in C++, hanno i loro linguaggi interni.
Ps, è disponibile gratuitamente per fini non commerciali anche l'unreal engine e se non ricordo male anche il crysis engine
pabloski
11-11-2012, 21:12
però l'autore del post se ho capito bene ha interessi didattici. Ho lavorato per anni in directX... conoscere a basso livello una libreria grafica come DirectX o openGL è il modo migliore di imparare, altrimenti rischia di imparare solo un motore grafico. Poi una volta imparato può passare a motori grafici completi ma sicuramente con un background per capire cosa sta succedendo. Tenete presente che i motori grafici professionali neanche si programmano in C++, hanno i loro linguaggi interni.
Ps, è disponibile gratuitamente per fini non commerciali anche l'unreal engine e se non ricordo male anche il crysis engine
In effetti non avevo letto quel "iniziare a programmare". In questo caso è ovviamente opportuno seguire la strada più impervia. Sarebbe bello poter partire dal livello direttamente inferiore a quello dell'api grafica, ma forse è troppo :D
Il problema è che librerie come opengl e direct3d nascondono un bel pò di dettagli geometrici.
Mah sono del tutto in disaccordo: per scrivere codice di basso livello che abbia un qualsiasi senso serve sapere a cosa serve il programma che si sta scrivendo...
scrivere un motore senza aver mai finito un gioco è come studiarsi il sesso sui film porno :asd:
Io consiglio di usare un motore tipo Unity3D o se proprio Ogre, finire un gioco, capire perchè Unity è fatto così e perchè quelle feature aumentano la produttività, e poi provare a fare di meglio :D
Gaiden80
11-11-2012, 23:00
In effetti non avevo letto quel "iniziare a programmare". In questo caso è ovviamente opportuno seguire la strada più impervia. Sarebbe bello poter partire dal livello direttamente inferiore a quello dell'api grafica, ma forse è troppo :D
Il problema è che librerie come opengl e direct3d nascondono un bel pò di dettagli geometrici.
mica tanto, con Direct3D10 e 11 bisogna gestirsi shader, calcolarsi la luce, le texture, ora anche tessellazione... rimane solo il rasterizer che ti viene nascosto :D
cmq sono questioni di punti di vista, ora lavoro in asp .net e vedo troppo spesso programmatori che non avendo neanche letto come funziona il ciclo di vita della pagina fanno cose che voi umani non potreste neanche immaginare... ma che purtroppo io vedo :muro:
pabloski
12-11-2012, 12:27
mica tanto, con Direct3D10 e 11 bisogna gestirsi shader, calcolarsi la luce, le texture, ora anche tessellazione... rimane solo il rasterizer che ti viene nascosto :D
e sarà sempre peggio
se intel fosse riuscita ad imporre larrabee, probabilmente saremmo già ritornati all'epoca delle api grafiche "fatte in casa"
che poi è pure giusto se ci pensi, la flessibilità è un elemento importantissimo e la rigidità imposta dalle pipeline fixed ha costretto a scendere a troppi compromessi ( almeno così la pensano alcuni produttori di titoli AAA )
MissaW_RaZ_98
23-11-2012, 19:37
quindi se inizio col 2d la scelta migliore è l'SFML?
AnonimoVeneziano
25-11-2012, 12:10
o DirectX o openGl. In ambiente microsoft la prima è insuperabile, in quanto piena di features che mancano ancora in openGL, tuttavia la seconda ti permette di essere compatibile su linux (e quindi anche android)
Uh? :mbe:
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.