• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Guida Creare giochi 2d cross-platform con C#, SdlDotNet e OpenGl (Parte 1)

marco94

Utente Attivo
Autore del topic
4 Maggio 2007
360
0
Miglior risposta
0
Creazione di videogiochi 2D cross-platform
in C#, SdlDotNet e OpenGL


Introduzione:

Con questa guida cercherò di insegnarvi come creareun videogame 2D cross-platform, compatibile quindi con Windows, Linux e Mac OS, con C# e l’ausilio delle librerie SdlDotNet (per la creazione delle finestre e la gestione degli eventi e degli input) e delle OpenGL per il rendering grafico vero e proprio.


Strumenti necessari:


Per mettere in atto questa guida avremo bisogno di alcuni strumenti (tutti gratuiti):

- Visual C# Express Edition 2010 (se intendiamo programmare sotto Windows) scaricabile da:
Perfavore, Entra oppure Registrati per vedere i Link!


- Se siete utenti Linux o Mac non potete usare Visual C#, per voi ci sono da scaricare: MonoDevelop, il Framework MONO e le Gtk# (per Linux, Mac OS e anche Win) scaricabili rispettivamente da
Perfavore, Entra oppure Registrati per vedere i Link!
e
Perfavore, Entra oppure Registrati per vedere i Link!


- il file che contiene le dll necessarie al tutorial:
Perfavore, Entra oppure Registrati per vedere i Link!



Preparazione dell’ambiente di sviluppo:


Dopo aver scaricato e installato Visual C# (o MonoDevelop), avviatelo e create un nuovo progetto di tipo “progetto vuoto” e chiamiamolo “gioco2d”

Visual C#:
Perfavore, Entra oppure Registrati per vedere i Link!


MonoDevelop:
Perfavore, Entra oppure Registrati per vedere i Link!

Perfavore, Entra oppure Registrati per vedere i Link!


PS: da ora in poi, per praticità, inserirò solo le immagini di Visual C#, in quanto le procedure per entrambi gli IDE si assomigliano, e inserirò screen di monodevelop solo se le scermate differiranno molto o su vostra richiesta.

Ora raggiungiamo la cartella interna del progetto, quella in cui si trovano le cartelle bin e obj e il file gioco2d.csproj, e creiamo una nuova cartella ref dove inseriamo le librerie che avete scaricato prima.

la situazione dovrebbe essere circa cosi:

Perfavore, Entra oppure Registrati per vedere i Link!


Perfavore, Entra oppure Registrati per vedere i Link!


Torniamo al nostro IDE (visualC# o monodevelop) e facciamo click con il tasto destro sulla voce "Riferimenti" nella finestra "esplora soluzione", dopodichè scegliamo la voce aggiungi riferimenti e si aprirà una finestra come quella sottostante, clickiamo sfoglia, entriamo nella cartella "ref" nel nostro progetto e selezioniamo i files "SdlDotNet.dll", "Tao.OpenGl.dll" e "Tao.DevIl.dll" (per selezionare piu files contemporaneamente tenete premuto il tasto control, alternativamente potete aggiungere un file alla volta)
Perfavore, Entra oppure Registrati per vedere i Link!


dopodichè aggiungiamo i riferimenti a System e System.Drawing:

Perfavore, Entra oppure Registrati per vedere i Link!


Passiamo al programma:

Il programma è composto da 3 files: Program.cs, Graphics.cs, Game.cs.
Ora vediamoli in dettaglio:

Il primo file è Program.cs, contiene la Main del programma e l'inizializazione degli eventi, ecco il codice.
Non spiego tutto perchè è commentato in maniera (spero =P) esauriente:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Il file Graphics.cs contiente le funzioni per accedere alle OpenGL: l'inizializzazione delle librerie, il caricamento delle texture e il disegno sullo schermo
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Ed ecco il file Game.cs:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Ora potete compilare ed eseguire, se vi da errori di mancanza di dll copiate le librerie contenute nella cartella ref nella cartella da cui parte il programma o nella cartella system32
Perfavore, Entra oppure Registrati per vedere i Link!


IMPORTANTE:
quando si disegna una texture bisogna disegnare i vertici in senso orario o antiorario, per chiarire ecco un'immagine di ciò che puo accadere:
Perfavore, Entra oppure Registrati per vedere i Link!


Per ora mi fermo qui, se ci sarà qualche interessato andrò avanti con le guide, parlando di animazioni, collisioni, tiling, ecc....

Ecco il download del progetto e l'immagine ciao.png:
Perfavore, Entra oppure Registrati per vedere i Link!

Perfavore, Entra oppure Registrati per vedere i Link!
 
Quando saprò un po' di più sul C proverò a fare un gioco, ma adesso non è ancora il momento, per ora mi limiterò a leggere e comprendere il codice ;)

Ps : Fonte ?
 
scritta tutta con le mie manine =) (e la tastiera XD)
 
La guida è complicata però non molto, con l'aiuto di 2 persone si potrebbe fare qualcosa di carino :emoji_slight_smile:

Bella guida!
 
La guida è complicata però non molto, con l'aiuto di 2 persone si potrebbe fare qualcosa di carino :emoji_slight_smile:

Bella guida!

eh si, è complicato anche perchè bisogna gestire manualmente le opengl, cosa che di solito si lascia fare ad una libreria dedicata, ma cosi si hanno prestazioni migliori e un controllo totale sulla grafica...

è anche vero che diventi matto a trovare gli errori, e ne so qualcosa purtroppo XD
 
Anche io qualche mese fa feci una cosa del genere... però poi ho lasciato perdere... chissà che con il tuo aiuto riesca a creare un game :emoji_slight_smile:
 
Riferimento: Creare giochi 2d cross-platform con C#, SdlDotNet e OpenGl (Parte 1)

Ottimo, molto utile :-)​
 
Riferimento: Creare giochi 2d cross-platform con C#, SdlDotNet e OpenGl (Parte 1)

Scusami ma quando provo a compilarlo l'applicazione abortisce dandomi errore su "Program.Init();" dicendo che non trova il file Tao.Sdl.dll, ho provato a vedere se nell'archivio dei dll che avevi uppato ci fosse questo file ma niente , sapresti aiutarmi ?
 
Riferimento: Creare giochi 2d cross-platform con C#, SdlDotNet e OpenGl (Parte 1)

heila :emoji_slight_smile: a me interesserebbe veramente un sacco questo topic
:banana2:
--------------- AGGIUNTA AL POST ---------------
heila :emoji_slight_smile: a me interesserebbe veramente un sacco questo topic
:banana2: se qualcuno vuole provare a fare un gioco mi scriva pure io sto tentando di farlo akira.space24[MENTION=117708]gmail[/MENTION].com
--------------- AGGIUNTA AL POST ---------------
scarica sharp develop che è uguale ma gratis :emoji_slight_smile:
 
Ultima modifica: