• 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 ?
 
La guida è complicata però non molto, con l'aiuto di 2 persone si potrebbe fare qualcosa di carino :)

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

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
 
si ottima...guida... non me la sono sentita di leggere tutto il codice...in ogni caso..complimenti...bella guida
 
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 :)
 
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 :) a me interesserebbe veramente un sacco questo topic
:banana2:
--------------- AGGIUNTA AL POST ---------------
heila :) 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 :)
 
Ultima modifica: