Download DarkBattle e' il mio primo gioco (beh, in realta' e' solo una bozza...) per linuzzo. Tutto e' nato dopo aver letto un articolo sulle librerie SDL su Linux&C. In effetti il primo gioco, di prova, fu qualcosa di molto semplice... DarkPong !! Ovvero una rivisitazione del celeberrimo gioco (ATARI RULEZ =) sempre con l'ausilio delle SDL. Avevo intenzione di mettervi a disposizione DarkPong ma riflettendoci sopra potrebbe essere uno sbaglio. Il codice e' veramente "terra terra" e, anzi, vi sono un sacco di cose che andrebbero aggiustate quindi non vorrei che fosse preso come esempio da qualcuno piu' principiante di me !! Invece in DarkBattle vi sono gia' molti degli elementi che costituiscono giochi seri. Ad esempio l'algoritmo per la rilevazione delle collisioni, deelay ragionevoli per non fondere la CPU, ecc... In realta' in DarkBattle vi sono ancora molte cose da sistemare (iniziando magari dalla longevita' del gioco... :-\ ) pero', vedendo il codice di altri giochi, penso di essere sulla strada giusta. Piu' che altro andrebbe raffinato il sistema di gestione dei frame. Di solito si utilizza una struct annidata (una sorta di array... senza limiti!) che contiene tutti gli elementi da disegnare e che viene "parsata" ad ogni frame. Purtroppo mi sono accorto di questo sistema quando ero gia' abbastanza avanti con la stesura del codice di DarkBattle e quindi l'ho lasciato cosi' com'e', non funziona male, ma quando il gioco comincia a complicarsi un po', il mio sistema diventa parecchio inelegante, un pugno nell'occhio per un programmatore. |
![]() |
|
![]() |
La parte piu' divertente e' stata la progettazione e il disegno degli elementi
tridimensionali, per il quale mi sono appoggiato ad un programma di modeling
e rendering noto come Moonlight Atelier
3D. La parte noiosa invece e' consistita nel renderizzare i vari elementi
per ogni frame di ogni sprite, speravo di potermela cavare con qualche procedura
batch ma purtroppo non ne ho trovato il modo, anzi, se qualcuno ha qualche
dritta riguardo cio'... mi scriva :-) !
![]() |
|
Le cose che andrebbero aggiunte sono, ehm, innumerevoli, prima fra tutte il calcolo dell'fps
ovvero dei frame per second(o), in modo da ottenere la stessa velocita' del gioco su
qualunque macchina, con qualunque processore. In pratica consiste semplicemente nel calcolare
il giusto deelay tra un frame e l'altro. Andrebbero aggiunti altri frame per gli sprite, almeno 24 in totale (sbattimento atroce!), aggiungere nuovi nemici e relativi schemi di volo. Nuove armi, bonus, ecc.... |
||
![]() |
||
Insomma, creare un gioco e' qualcosa di estremamente creativo e divertente. E' un po' come
scrivere un libro, dapprima vi inventate una storia, poi inserite i vostri personaggi all'interno
di essa e li dotate di caratteristiche uniche, addirittura di una personalita'.
Cio' e' parecchio affascinante, a mio avviso, certo, l'unica cosa e' che purtroppo richiede davvero tanto tempo e tanti sforzi. Pero' puo' anche avere un ritorno pratico. Io, ad esempio, prima di scrivere DarkBattle non ne sapevo nulla di come si scrivono i giochi mentre adesso ne ho ben piu' che una vaga idea. Senza contare che ho rafforzato la mia conoscenza del linguaggio C. Stavo pensando che in effetti sarebbe interessante iniziare magari con qualcosa di semplice ma comunque non banale. Intendo dire, ho visto molti giochi che avevano una grafica interessante, effetti scenici quasi sorprendenti ma dal punto di vista dell'originalita'... si possono considerare parecchio scadenti, cloni di altri giochi. Quindi si potrebbe iniziare con qualcosa dalla grafica semplice ma molto originale per quanto riguarda la storia, il tema, lo scopo, ecc... Questo articolo mi ha messo voglia di iniziare un nuovo gioco... ;) ! by darko |