Vai al contenuto
Daniele Russo

Primi passi verso matematica e fisica in un videogioco

Recommended Posts

Salve a tutti, come ben saprete ormai i videogiochi arrivano ad utilizzare algoritmi molto complessi matematicamente parlando e io ancora non sono in grado, non avendo la capacità, di crearne miei propri.

Volevo quindi iniziare un percorso di studi (autodidatta) per la geometria e l'algebra nei videogiochi (inoltre vorrei chiedervi che campi della matematica si usano, in quanto l'unica cosa che sono riuscito a comprendere è che si usa soprattutto l'algebra lineare), la fisica (qui immagino che i campi usati varino a seconda delle situazioni in cui ci si trova, come collisione ecc...). Premetto che ho tempo, e anche molto.

Ecco, il problema principale è che non riesco a trovare l'input giusto, il giusto percorso di studi per far ciò (e le giuste documentazioni, che anche in inglese, non troppo complesso, vanno bene): ci sono talmente tante cose che proprio non so da dove iniziare, per cui chiedo a gente più esperta di me da quale argomento iniziare (sia per matematica, sia per fisica) per sviluppare il percorso con eventuali riferimenti a documenti/guide/manuali ecc (possibilmente online free perché non sono in possesso di conto corrente online in famiglia e i manuali fatico a trovarli in giro per la mia città purtroppo).

Per la programmazione credo invece di potermela gestire, adesso come adesso sto studiando le liste puntate in C e finito il C (so che manca ancora un bel po', ma mi piace studiare ciò che mi interessa) passerò al C++ (a scuola studio Java e C, andando all'informatico, ma questi due linguaggi li sto portando avanti da solo), avendo anche le basi di OOP grazie al già citato Java. Ed infine, una volta finito il percorso nei dettagli con il C++ passerò a studiare DirectX (o OpenCL, ancora non lo so). Ditemi se è meglio imboccare un altro percorso nel caso in cui mi sbaglio.

Tutto questo però so che si tratterà di un percorso molto lungo (che mi accompagnerà per diversi anni), ma avendone adesso come adesso 17 ho il tempo di farla diventare una professione ed è quello che mi piacerebbe fare.

Ci tenevo a precisarlo per non passare per il solito ragazzino che pensa che creare un videogioco sia, appunto, un gioco anziché un vero e proprio lavoro, anche complesso. ^_^

Quindi riassumendo ho bisogno dell'aiuto di qualcuno che mi indirizzi verso questo percorso, con gli argomenti iniziali e gli sviluppi (in generale) di essi sia in matematica, che in fisica.

Grazie anticipatamente per l'ascolto, Daniele.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Ciao Daniele,

per gli studi, non saprei come indirizzarti al momento, ma posso suggerirti qualche libro di base da avere sempre a portata di mano (magari ti dicono di piu di quello che ti serve, ma trovi sicuramente gli argomenti che cerchi).

Il Foley/Van-Dam, Computer Graphics

http://www.amazon.co.uk/Computer-Graphics-Principles-Practice-Practices/dp/0321399528/ref=dp_ob_title_bk

e GPU Gems volume 3

http://www.amazon.co.uk/GPU-Gems-Programming-High-Performance-General-Purpose/dp/0321515269/ref=pd_sim_b_10?ie=UTF8&refRID=0XZGBGY6SYST8W3XTP86

non sono sicuramente letture da principiante, richiedono un po di tempo ma secondo me avercele a portata di mano, come dicevo, conviene sempre.

Ci sono argomenti sempre attuali (a parte ottimizzazioni per schedevideo, etc. cambiano poi col tempo).

In questo genere di cose ovviamente non si tratta solo di sapere di matematica e fisica, ma anche di come saper trasformare il tutto in C++.

Inizia con qualche piccolo esempio, inizia ad avvicinarti a questi argomenti non solo dal punto di vista dei videogiochi, ma scrivi i tuoi programmi, per simulare, per tirare fuori i numeri.

Ti consiglio Processing per fare dei rapidi test e capire come gli algoritmi rispondono (l'ho usato molte volte a lavoro for rapid prototyping solutions da mostrare visto che molti devono "vedere" per capire... argh)

http://www.processing.org/

un banale esempio, come applicare forze fisiche a oggetti in CG:

https://processing.org/examples/springs.html

Nel frattempo puoi studiarti OpenGL e farti un piccolo motore di rendering per applicare queste cose dirattemente in un contesto creato tutto da te senza usare processing any more.

cmq, in bocca al lupo ;)

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Mille grazie, Paolo.

Quindi mi consiglieresti di iniziare ad implementare in C++ quello che so (in ambito matematico fisico) e pian piano studiare in base alle esigenze?

Se è un percorso valido, sono veramente contento in quanto programmando, la matematica e la fisica potrebbero diventare meno ostiche da affrontare in quanto unite nell'apprendimento con una vera e propria mia passione, qual'è la programmazione.

Come già ho detto purtroppo non posso permettermi di acquistare online in quanto in famiglia manca il conto corrente online (causa sfiducia non mia).

Più che altro qualcuno conosce qualche sito colmo di esercizi (base) di programmazione in questo ambito? O se potete qualche traccia da voi ideata, è uguale. Vi ringrazio molto.

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Guarda , ti parlo con cognizione di causa :

indubbiamente C/C++ con Directx / OpenGL sono strumenti indispensabili per i professionisti.

Ma a mio modesto parere converrebbe farsi prima le ossa con qualcosa di più accessibile

(non più "facile" , perché a qualunque livello creare videogames è un'impresa veramente ardua ).

Per esempio : Java e il framework Libgdx .

Come engines , va per la maggiore Unity , che ha una versione free e usa C# o Java.

Tieni presente che per Ios devi comunque avere un Mac ,mentre per Windows e Android non ci sono

problemi.

Ciao !

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)

creo indie games da 5-6 anni, e ti posso dire che crearti un engine personale non conviene per niente, come puoi intuire dal mio avatar, uso svariati engines, e non ho da sporcarmi le mani con i frame buffer, e la programmazione a basso livello, anche mi spiace ammetterlo, tutti i developer professionisti ormai usano unreal, unity, cry engine e qualche altro engine minore o a licenza chiusa (fox engine o renderware per esempio). Tralasciando che ogni engine se usa un linguaggio ne usa solo la sintassi, quindi con il cambiare engine cambierà moltissimo e non hai modo di trasferire il codice da un engine all'altro. Inoltre creare un videogioco da solo è una pazzia, dovresti essere: un bravo modellatore, musico, programmatore, animatore e ideatore. Anche a livello di indie (dove ormai ci ho fatto caso: se lavori da solo il gioco esce molto meno di quello che hai immaginato) che ha un team riesce a racimolare molta più visibilità ed il gioco è valutato molto perchè risulta più pulito.

Prova ad iniziare con unity (togli di torno Javascript e boo, il C# ha tutte le funzioni, java script gliene mancano alcune e boo non ha documentazione (e nemmeno supporto dato che non lo usa nessuno), non partire con l'idea di creare il nuovo GTA, ma fai un passo alla volta; non tutto quello che crei deve essere pubblicato, fai degli aborti di gioco solo per testare cosa riesci a fare come coder, poi passa a creare shaders e post effetti, quindi fatti le ossa con l'openGL diretto e solo dopo se vorrai potrai fare un videogioco o un tuo engine personale.

Se hai bisogno di un punto dove iniziare o di un team, puoi sempre programmare con noi.


Modificato da Aironenero

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora


  • Navigazione recente   0 utenti

    Non ci sono utenti registrati da visualizzare in questa pagina.

×