|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 242
|
[C++] Info sulla creazione di videogame
Credo che quasi tutti noi abbiamo sempre sognato di creare un videogame tutto nostro... Ecco, io sono uno dei tanti che vorrebbe riuscirci... Il mio scopo è creare un videogame platform 2D (come Sonic, dove ho intenzione di prendere l'ispirazione). Conosco la programmazione in C++, sò alla perfezione l'uso delle varie funzioni di default del C, sò usare bene le librerie stdio, stdlib, conio e un pò le api windows... Un paio di mesi fa avevo provato un SDK chiamato Dark GDK che combinato con Visual C++ 2008 avevo ottenuto qualche piccolo risultato tipo sprite animate, menu funzionanti e completi di grafiche animate e complete! Però dopo un pò mi accorgo che la maggior parte delle funzioni è per creare un videogame completamente 3D e qundi quelle librerie non mi sarebbero servite a molto, anche perchè gli example erano tutti riferiti a piccole demo 3D quindi... Ho intenzione di lavorare con librerie potenti, tipo le DirectX e quindi lasciar perdere librerie tipo l'allegro. Io penso che con un paio di mesi (giusto il tempo di prendere familiarità con la libreria) e potrei realizzare qualcosa di veramente serio! Il fatto è che non sò dove partire! anche perchè le basi del C++ le sò! Sò anche programmare per PSP quindi volendo potrei realizzare il videogame anche lì. Indicatemi voi la strada, magari seguendo qualche buon tutorial! Con l'inglese ci sò fare, quindi anche qualche tutorial in inglese mi va bene (anche se ho un pò di difficoltà nel parlarlo). Poi anche un'altra cosa che non credo sia semplice imparare, è come posso usare formati particolari, ad esempio quei videogame che hanno quei pack che contengono vari file. Non vorrei fare di certo un videogame che carica le risorse con formati ad esempio png o ogg XD sò che bisognerebbe fare riferimento ad altre librerie ancora oppure crearsele da zero ma come nel caso precedente, non sò dove cercare >.< spero di avere risposte che mi aiutino, in modo da realizzare il mio sogno che è nato da quand'ero piccolino
|
|
|
|
|
|
#2 | ||
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Quote:
Se vuoi fare tutto da solo in C++, al contrario, le probabilita' di non realizzare il tuo sogno sono prossime al 100%.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
||
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Esagerato! Dagliela almeno qualche possibilità. Diciamo che al 99,9999(periodico)% non ci riuscirà...
![]() P.S. Ovviamente quoto.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#4 | |
|
Member
Iscritto dal: Jan 2008
Messaggi: 242
|
Quote:
|
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 906
|
Quote:
http://www.gameprog.it/ c'è un forum apposito per videogame in ita e molte info. per il [c++] chiedi pure qui |
|
|
|
|
|
|
#6 | |||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Quote:
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|||
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
In C++ impieghi a scrivere un gioco probabilmente dieci volte il tempo che impiegheresti con un linguaggio come Java/C#/Python. Questo presupponendo che tu abbia una decina di anni di esperienza di programmazione alle spalle. Ma non li hai. Quindi hai due scelte: 1) Aiuti altri a scrivere un gioco 2D con un linguaggio ad alto livello imparando il mestiere 2) Provi a scrivi tutto da solo in C++ non concludendo nulla quasi sicuramente A te la scelta
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Jan 2008
Messaggi: 242
|
va bene dai, proverò col java =) magari aiutandovi nel vostro progetto potrei avere conoscienze abbastanza buone se magari voglio realizzare minigiochi in java!! Mi metterò a leggere qualche tutorial per imparare bene le basi! Cmq grazie per la proposta di entrare a far parte del progetto
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Secondo me... non vorrei incorrere nelle giuste ire dei più esperti
1) Aiuti altri a scrivere un gioco 2D con un linguaggio ad alto livello imparando il mestiere Pro: -Linguaggio di alto livello più "semplice" da usare; -riuscirai quasi certamente a finire un progetto carino; -avrai idea dello sviluppo di un gioco nel suo complesso; -facile; Contro -linguaggio di alto livello che rende difficile sfruttare appieno l'hardware; -il gioco non verrà "fico", se mi passate il termine. E' la scelta migliore se preferisci finire un progetto rispetto a imparare cose avanzate. 2) Provi a scrivi tutto da solo in C++ non concludendo nulla quasi sicuramente Pro: -linguaggio "intermedio livello" che permette di creare applicazioni prestanti, e che sfruttano appieno l'hardware; -volendo invece puoi usare diversi middleware come Ogre3D o PhysX; -qualsiasi cosa ti venga in mente, c'è una libreria che la implementa in C++; -esperienza avanzata dovuta ai punti precedenti; -I giochi "veri" sono fatti in C++, anche se il trend si sta invertendo. Contro -linguaggio di "intermedio livello" che permette al programmatore di rovinarsi con le sue mani; ergo, ci si mette moltissimo a fare qualcosa; -si rischia di non avere idea di come si faccia un progetto grosso; -perchè non è facile lavorare in team; -perchè si rischia di fare tante piccole demo e mai un gioco vero e proprio; -non finirai il tuo gioco, se non dopo anni di esperienza. E' la scelta migliore se preferisci imparare cose avanzate più che finire un progetto. (Ammetto che è una scelta un po old Indi, la scelta dipende solo da te Preferisci finire un gioco semplice o saperne fare uno complesso solo in teoria? Io ho scelto la seconda solo perchè sono affascinato dalle tematiche avanzate come shaders, nuove tecniche, gestione a basso livello ecc... ma so che a molti potrebbe sembrare terribile EDIT: tutto sto post e lui ha deciso prima |
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Apr 2007
Messaggi: 263
|
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Ulteriore PRO nel partecipre a Diamonds:
- impari a lavorare in un team; - confrontandoti con altri programmatori (e nota che sono esperti) impari molto di più che da solo; - fai esperienza con la metodologia di sviluppo TDD (Test Driven Development) che ti permette di approcciare le scelte di design di un applicazione e l'evoluzione del codice prodotto da un nuovo punto di vista. Viste le alternative, la partecipazione al progetto Diamonds ha molti più "PRO", imho, poi ovviamente tutto dipende da cosa vuoi ottenere |
|
|
|
|
|
#12 | ||||
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Quote:
Quote:
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
||||
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Dec 2007
Messaggi: 505
|
Quote:
__________________
Giochi:Fallout 3,Civilitation IV,Call of Duty-World at War,Far Cry 2,Crysis,Age of Empires III. BLOG Non ricordo niente ma non lo dimenticherò mai |
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Dec 2007
Messaggi: 505
|
come a scritto diobrando c'è che ha imparato java lì io con il vostro aiuto e con il manuale ci capirò qualcosa o no?
__________________
Giochi:Fallout 3,Civilitation IV,Call of Duty-World at War,Far Cry 2,Crysis,Age of Empires III. BLOG Non ricordo niente ma non lo dimenticherò mai |
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Ero "leggermente" sarcastico...
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#17 |
|
Member
Iscritto dal: Sep 2007
Messaggi: 207
|
java3D credo poi sia una rivoluzione ihih
non voglio denigrare il C++ che lo studio con passione da anni,da quando ero alto un metro e un tappo asd, ma per cultura e passione alla materia studio tutto detto cio in Java l'apprendimento di molte cose e' più veloce e intuitivo a mio parere di fatti le universita si stanno spostando tutte al Java come linguaggio principale se vuoi a mano da solo riscrivere un videogame 3D in C++ da solo con Engine e tutto credo anche io sia impossibile, ma studiare cmq la programmazione delle librerie grafiche 3D indipendentemente dal linguaggio e' utile per se stessi |
|
|
|
|
|
#18 | ||
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Quote:
E li è piuttosto facile andare incontro ai limiti hardware, se non si sa cosa si sta facendo. In effetti... Bhe, ma l'engine e il framework si... e se uno vuole per caso comprendere come funzionano oppure scriverne uno, non può non sapere C++. Quote:
Cmq si, il linguaggio è solo il mezzo per implementare un algoritmo. In ogni caso, conoscere cose che non sono direttamente connesse al proprio obiettivo spesso può far scoprire molte cose... altrimenti perchè insistono ad insegnare ASM all'università? Non si usa più da decenni... indi secondo me uno che riesce a fare il suo giochello 2D, senza gestire la memoria, senza usare la scheda video ne aver visto un vertice eccetera, avrà comunque una visione molto incompleta di "come funziona" un videogioco moderno. Poi certo, se gli interessa solo averci un gioco finito studiare altro è ovviamente inutile... |
||
|
|
|
|
|
#19 | |||||
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Se riesci ad essere CPU bound in una scena relativamente semplice (perche' non hai un team che ti produce content per una scena complessa) con una CPU dual core, non hai bisogno di usare un C++, hai bisogno di riscrivere l'engine da zero. Per tutto quello che puoi fare a casa da solo, XNA va piu' che bene, anzi ce n'e' di avanzo abbondante. Non avrai mai bisogno neppure di avvicinarti al C++. Nel 99.99% dei casi ti ritrovi GPU bound. Quote:
Sbagli gia' in partenza: il C++ non ti serve per una questione prestazionale, ma per avere sotto controllo il layout degli oggetti in memoria e il loro ciclo di vita. E queste cose sono importanti quando hai decine di migliaia di oggetti su console, non dieci su PC. Quote:
Quote:
Quote:
Lascia perdere il C++ se vuoi fare videogiochi e impara prima a programmare.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|||||
|
|
|
|
|
#20 | ||||
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Quote:
E non credo sia un male essere in grado di ottimizzare il proprio codice (cosa che molti programmatori di "alto livello" credono inutile) Quote:
Io dicevo solamente che per capire il gli engines degli altri devi sapere il C++, perchè il spessissimo sono scritte in C++... E la mia idea cmq non è rimanere a gestire 10 oggetti su PC, ma quello è un'altro discorso Quote:
Ci speravo in realtà Quote:
Indi, credo sia una questione di gusti... |
||||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:03.





















