Arcibald Wearlot ha scritto mar, 02 novembre 2004 alle 17:43
Topic interessante
Io ho 17 anni e sono appassionato di informatica fin da quando ero piccolo (il primo computer che ho usato è stato un preistorico Commodore VIC20
)
Ho cominciato a interessarmi di programmazione piu di tre anni fa, e dopo qualche tutorial e programmini di prova ho deciso di iniziare sul serio. Ho comprato il libro "C++ Linguaggio, Libreria Standard, Principi di Programmazione" di Bjarne Stroustrup e ho cominciato a studiarmelo per bene. Dopo aver appreso i fondamenti del c++ ho iniziato con la programmazione Win32, e in seguito ho creato qualche piccola demo in OpenGL. Ho dedicato l'estate 2003 a imparare a usare le DirectX.
Oggi sto creando un videogioco insieme a dei miei amici. Creare giochi è sempre stato il mio sogno, e la cosa incredibile è sto cominciando ad avere le capacità per farlo uno sul serio. Solo questo progetto, includendo utility ed esportatori, mi ha portato a scrivere fino ad ora circa 15.000 righe di codice c++.
Allo stato attuale il motore grafico supporta features come octree space partitioning, environmental mapping, sistemi particellari, e un infinità di altre cose. E' ovvio che il tutto è MOLTO lontano dalla perfezione, c'è ancora moltissimo lavoro da fare e un'infinità di cose da migliorare (vi pare facile scrivere un engine da soli!
), ma grazie a questo progetto ho capito cosa c'è VERAMENTE dietro allo sviluppo di un videogame (sangue sudore e lacrime!!
)
Il senso di tutto questo discorso è che non ti svegli la mattina dicendo "voglio imparare a programmare"
. E' un processo lunghissimo, serve costanza, dedizione, forza di volontà, e prima di vedere qualcosa di decente bisogna lavorare MESI. Più avanti poi, per trovare soluzioni a dei problemi, ti toccherà scavare nei sorgenti di altri progetti per studiarne l'architettura, e qui parliamo di decine di migliaia di righe di codice, per giunta scritte da altri. Dovrai ordinare tonnellate di libri in inglese e leggerteli da cima a fondo. Le mie letture attuali, tanto per dirne qualcuno, sono "Code Complete" (McConnell), "Design Patterns" (GOF), "Real Time Rendering" (Haines/Moller), "3D Game Engine Design" (Eberly). Quest'ultimo usa una matematica talmente pesante che per ora l'ho quasi abbandonato per quando sarò in grado di affrontarlo.
Una delle cose più importanti è anche l'umiltà, mettere sempre in discussione quello che si fa perchè spesso c'è un modo migliore per farlo. Non bisogna pretendere di essere perfetti o di sapere tutto, bisogna riconoscere i propri sbagli e imparare dai propri errori.
Ammazza che post lungo, mi sono lasciato prendere la mano
Colgo l'occasione per salutare tutti visto che questo è il mio primo post