Game Maker è stato il mio primo linguaggio di programmazione, la sua semplicità e la velocità che permette nel creare un qualcosa di giocabile credo siano impareggiabili rispetto agli altri engine che ho provato. Però il GML è troppo limitato, creare codice incasinato è fin troppo facile e la mancanza di alcune feature si fa sentire quando provi altri linguaggi, per questo nasce Citen.
Citen è un game engine fatto in C++ il cui obiettivo è quello di essere semplice e di rendere la creazione di giochi veloce senza dover rinunciare ad usare un linguaggio consolidato.
Tutto si basa sulla classe GameEngine, che si occuperà di creare la finestra/finestre, gestire gli oggetti che devono essere disegnati ed il loro ordine, l'input ed gestire il framerate. Questo codice apre una semplice finestra nera:
Spoiler
Tutte le istanze nel gioco devono derivare dalla classe GameObject, la classe GameObject ha un metodo drawSelf() che si può paragonare all'evento draw di Game Maker: se non viene toccato disegnerà lo sprite assegnato all'oggetto normalmente altrimenti può essere sovrascritto per disegnare altro, disegnare qualcos'altro insieme allo sprite o chissa cosa. Per dire all'engine di disegnare un oggetto è necessario aggiungerlo alla lista degli oggetti che verrano disegnati dall'engine, per fare questo si usa GameEngine.
GameEngine al suo interno contiene un altro oggetto, il draw_controller. Questo è responsabile del disegnare tutti gli oggetti, per aggiungere un oggetto alla lista degli oggetti da disegnare basta usare
Codice: Seleziona tutto
engine.draw_controller.addDrawInstance( puntatore all'oggetto da disegnare );
Spoiler
Questa è solo una piccola parte, ci sono tantissime altre cose da spiegare per fare un gioco completo ma spero si capisca un poco come il tutto è gestito e a cosa punto di creare. Opinioni? mancano ancora tante feature, come implementare il sonoro, collisioni e chissa cos'altro che ancora non so.