PDA

View Full Version : [Videogioco in 2D] - C++ how to start


nitro89
14-12-2011, 11:58
Salve a tutti

è da tempo che ci sto pensando e vorrei iniziare a mettere alla pratica le mie conoscenze di C++ per provare a realizzare qualcosa,seppur basilare.Vorrei iniziare con la realizzazione di un "gioco" (diaciamo pure ambiente) 2D\?3D scarno,giusto per capire le logiche di funzionamento (ho guardato i sorgenti di progetti open stile openarena ma sono alieni per quello che so ora).

Le domande che vi pongo sono queste:

-Dove posso trovare del materiale per iniziare?
-Esistono community di supporto per naif come me?
-Il C++ è suff per il mio scopo o dovrò imparare nuovi linguaggi (non è assolutamente un problema)?

Grazie,buona giornata!

MissaW_RaZ_98
16-12-2011, 17:51
Allora mi sa che devi impararti le DirectX. Le DirectX sono delle librerie grafiche (e non solo) che sono state create apposta per programmare giochi. Le puoi scaricare dal sito ufficiale di Microsoft. Oltre alla gestione di grafica 3D e 2D offrono anche validi aiuti per i controlli (tastiere, mouse, joypad, ecc.), per il suono e per il gioco in rete.
Ti avverto da subito che non è una cosa facile.
inoltre per creare i modelli 3D (mesh) ti servirà un programma di grafica tridimensionale (per esempio 3D Studio Max), una tool per esportarli in formato X (il formato di DirectX per i modelli 3D) e savriate cose che imparerai man mano che leggi una guida apposta.

Ultima cosa: le DirectX sono di proprietà di Microsoft e quindi funzionano solo su Windows. In alternativa a DirectX ci sono le OpenGL (Open Graphic Library) che sono buone, ma non reggono il confronto.

das
19-12-2011, 18:37
Salve a tutti

è da tempo che ci sto pensando e vorrei iniziare a mettere alla pratica le mie conoscenze di C++ per provare a realizzare qualcosa,seppur basilare.Vorrei iniziare con la realizzazione di un "gioco" (diaciamo pure ambiente) 2D\?3D scarno,giusto per capire le logiche di funzionamento (ho guardato i sorgenti di progetti open stile openarena ma sono alieni per quello che so ora).

Le domande che vi pongo sono queste:

-Dove posso trovare del materiale per iniziare?
-Esistono community di supporto per naif come me?
-Il C++ è suff per il mio scopo o dovrò imparare nuovi linguaggi (non è assolutamente un problema)?

Grazie,buona giornata!

Se intendi un videogioco un minimo decente non provare a farlo da zero perchè è un lavoro immane. Usa invece un framework tipo Box2D, rimane un lavoro grosso e complesso ma perlomeno hai una base di partenza.

shinya
20-12-2011, 09:08
Io sto giocando un po' con LOVE a tempo perso... programmi in Lua però (che è molto usato nei videogiochi comunque).
Mi sembra ci sia un bel po' di pappa pronta e la community è friendly.
http://love2d.org/

Tommo
20-12-2011, 10:05
Eddai, perchè bisogna vedere sempre gli stessi consigli per sentito dire? :read:

DirectX è un modo pessimo per iniziare a fare un gioco, il motore grafico è una piccolissima parte di un gioco e DirectX è una piccolissima parte di un motore grafico.

OpenGL regge perfettamente il confronto sia in Windows (coi dovuti accorgimenti contro i driver fallati) ed è allo stesso livello al di fuori.

Box2D non è un motore di gioco ma è un motore fisico, vedrei difficile farci qualcosa di visibile :asd:

Personalmente consiglio di iniziare dall'alto livello per capire le cose piú importanti, cioè l'architettura generale di un gioco, la logica che c'è dietro, e l'importanza dei contenuti.
Per cui guardati qualcosa tipo flash, flixel, unity, cocos2D etc prima di buttarti a pesce nel C++. :D
E concentrati sul gioco, non sul codice!

...e magari fatti un giro su www.indievault.it/forum!

ingframin
20-12-2011, 15:15
Quoto Tommo e rilancio, oltre a indievault:
http://www.libsdl.org/
http://lazyfoo.net/SDL_tutorials/
http://pygame.org/news.html

Buon divertimento :)

andreagira
20-12-2011, 15:41
Bhe se ti potesse interessare utlizzare C# invece di C++ ci sarebbe Microsoft XNA.Te ne parlo perchè me ne sono avvicinato anch'io e anche se lo conosco superficialmente si dice che si possono ottenere buoni risultati.