Autore Topic: Corso/Master per programmazione videogiochi e OpenGL  (Letto 2518 volte)

Offline noodles

  • Utente junior
  • **
  • Post: 130
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Sistema operativo:
    Mac OS X Snow Leopard
Corso/Master per programmazione videogiochi e OpenGL
« il: 28 Luglio 2010, 23:59:10 CEST »
Mi piacerebbe approfondire l'argomento OpenGL e grafica 3D, non necessariamente per sviluppare videogiochi. E' un argomento molto ampio e complicato che difficilmente si presta a mio avviso all'apprendimento "fai da te" a cui spesso siamo abituati, che se pur indispensabile può portare ad un apprendimento errato e in tempi assai lunghi. Da quel poco che ho potuto leggere e vedere utilizzando le OpenGL, quello che serve è una solida base teorica di tecniche di programmazione orientate alla grafica 3D (vedi il gaming), che va oltre al semplice utilizzo delle librerie e delle sue funzioni.

In questa ottica vorrei sapere se qualcuno è a conoscenza di corsi o master specializzati nel settore.

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Corso/Master per programmazione videogiochi e OpenGL
« Risposta #1 il: 29 Luglio 2010, 10:12:50 CEST »
Quello che serve è una discreta base di matematica generale, di geometria e di algebra.
Per quanto riguarda le tecniche di programmazione ci vuole, invece, una base teorica di algoritmi legati alle problematiche della visualizzazione 3d, come culling, FOV, zBuffer (e varianti)...
Sebbene ad oggi non sia più indispensabile conoscerle a fondo (poiché l'hardware e le varie librerie grafiche gestiscono il tutto in maniera abbastanza trasparente all'utente), servono per comprendere meglio problematiche più complesse legate alle più moderne tecniche di elaborazione 3D (che sia o meno in tempo reale).
Tempo fa ho accennato ai tutorial di NEHE (http://nehe.gamedev.net/) che, se si hanno anche minime basi, permettono di realizzare cose di un certo livello.
Prova a vedere questo che, sebbene datato, è stato un riferimento per molto tempo (http://www.dpfiles.com/dpfileswiki/index.php?title=Black_Art_of_3D_Game_Programming%2C_Chapter_11:_Building_a_3D_Graphics_Engine) e tratta in maniera generica, senza rimanere legato ad una libreria grafica: affronta la creazione di un motore 3D, descrivendo diversi algoritmi per risolvere ogni problematica che si presenta.

Non è un lavoro semplice, ma se si ha voglia e costanza non serve un corso, credimi.

 ;-)
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline noodles

  • Utente junior
  • **
  • Post: 130
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Sistema operativo:
    Mac OS X Snow Leopard
Re:Corso/Master per programmazione videogiochi e OpenGL
« Risposta #2 il: 29 Luglio 2010, 14:14:01 CEST »
ti ringrazio molto, vedo di trovare il tempo per dargli un'occhiata  ;-)

Offline Vytek

  • Translate Team
  • Utente junior
  • **
  • Post: 125
    • Mostra profilo
  • Dispositivo Android:
    Samsung S5
  • Sistema operativo:
    Windows 8.1
Re:Corso/Master per programmazione videogiochi e OpenGL
« Risposta #3 il: 29 Luglio 2010, 17:00:15 CEST »
Ciao a tutti,
mi trovo nella stessa impasse e devo essere sincero non ho trovato nulla che possa essere definito un vero e proprio corso approfondito per poter conoscere le OpenGL e poi creare il proprio motore 3D. Esistono ovviamente dei corsi universitari, ma le librerie OpenGL vengono descritte ed usate a livello base senza affrontare le be più complesse conoscenze di creare un motore grafico tridimensionale basato su OpenGL (Si veda ad esempio l'ottimo corso ad Uniroma: http://www.dis.uniroma1.it/~schaerf/igno/dispense/index.html
L'unica possibilità è quella di comprare qualche libro sul tema che tuttavia non mi hanno assolutamente soddisfatto perchè estremamente complessi ed in inglese. Ho una conoscenza scolastica dell'inglese e non ho problemi a leggere manuai tecnici in inglese che alla fine sono comprensibili comunque. Vi posso garantire che leggere 200-300 pagine dense di spiegazione su come creare un engine 3D mi hanno praticamente annientato, è un compito troppo complesso ed oneroso sia in termini di tempo che di risorse mentali :-) Tutti consigliano l'ottimo 3D Game Engine Programming (http://books.google.it/books?id=T8d4hBklV3UC&dq=3d+game+engine+design&printsec=frontcover&source=bn&hl=it&ei=uJJRTKDWEoSCOJ6GucEE&sa=X&oi=book_result&ct=result&resnum=4&ved=0CDIQ6AEwAw#v=onepage&q&f=false) ma vi posso garantire che non ho mai trovato un libro più complesso. L'intero sorgente del motore aggiornato all'ultima versione può essere trovata qui:

Geometric Tools


Alla fine insomma tutti mi dicono fai reverse engineering sul codice degli esempi e studia gli esempi di nehe. Che esistono per le più disparati piattaforme come ad esempio Android e WebGL:


 nehe-android -
 
 Project Hosting on Google Code

  The Lessons | Learning WebGL

La cosa ripeto non è assolutamente semplice e richiede moltissimo tempo che molto spesso non si ha. Forse un vero e proprio corso organizzato sarebbe la cosa migliore. Avete ulteriori suggerimenti?

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Corso/Master per programmazione videogiochi e OpenGL
« Risposta #4 il: 20 Febbraio 2011, 20:08:09 CET »
Riprendo questo argomento per chiedere :  programmare videogiochi per android in 2D ?? magari quelli con il classico scroll verso destra tipo supermario, etc ?? ci sono libri o qualcosa da cui si può prendere spunto ?

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Corso/Master per programmazione videogiochi e OpenGL
« Risposta #5 il: 21 Febbraio 2011, 09:07:34 CET »
Probabilmente ci sono dei libri, ma se cerchi in giro (su google), ci sono dei buoni tutorial riguardo il 2d e android.
Ti dico fin da ora che il problema principale riguarda il Garbage Collector, per cui dovrai ottimizzare sotto certi punti di vista il tuo codice.
Aggiungo, inoltre, che se non vuoi reinventare la ruota, puoi benissimo utilizzare qualche framework già printo e pure molto valido: uno fra tutti è andengine.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Corso/Master per programmazione videogiochi e OpenGL
« Risposta #6 il: 21 Febbraio 2011, 11:01:39 CET »
Quindi tu dici di utilizzare framework già pronti? non si è limitati in questo modo? che sono della sorta di api per grafica e animazione?

Offline elegos

  • Nuovo arrivato
  • *
  • Post: 44
    • Mostra profilo
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    Giacomo Furlan
  • Sistema operativo:
    Mac OS X
Re:Corso/Master per programmazione videogiochi e OpenGL
« Risposta #7 il: 21 Febbraio 2011, 11:43:27 CET »
È tipicamente italiano: "Not invented here syndrome". Caspita, abbiamo motori grafici DI OGNI GENERE basati su OpenGL (e nel nostro caso OpenGL - ES), usiamoli! Sapete quanto diavolo sia difficile, specialmente se non si ha un team alle spalle, creare da zero un motore grafico? E non dovete solo "riscrivere per l'ennesima volta" tutte le funzioni più o meno base, ma anche ottimizzarle! La prima fase sta nel creare l'ambiente 3D, poi ci devi mettere le collisioni, la fisica... un lavoro che non finisce più e che ti porta ad avere un sistema che se ti andrà bene ti andrà a 15 FPS!

Esistono librerie professionali closed, le paghi, funzionano. Esistono librerie professionali open, non le paghi, le puoi modificare, funzionano. Usiamole! Non è che siano "Satana in persona", non sarà il tuo codice ma caspita, nell'era dell'Object Orienting non è difficile includere una libreria esterna!

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Corso/Master per programmazione videogiochi e OpenGL
« Risposta #8 il: 21 Febbraio 2011, 12:24:38 CET »
Ma qual'è megpio opengl-es oppure andengine?

Offline elegos

  • Nuovo arrivato
  • *
  • Post: 44
    • Mostra profilo
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    Giacomo Furlan
  • Sistema operativo:
    Mac OS X
Re:Corso/Master per programmazione videogiochi e OpenGL
« Risposta #9 il: 21 Febbraio 2011, 12:33:44 CET »
È come dire: è meglio una macchina o il suo motore?

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Corso/Master per programmazione videogiochi e OpenGL
« Risposta #10 il: 21 Febbraio 2011, 12:49:05 CET »
però andengine forse è più specifico per android o no?

Offline elegos

  • Nuovo arrivato
  • *
  • Post: 44
    • Mostra profilo
  • Dispositivo Android:
    Nexus One
  • Play Store ID:
    Giacomo Furlan
  • Sistema operativo:
    Mac OS X
Re:Corso/Master per programmazione videogiochi e OpenGL
« Risposta #11 il: 21 Febbraio 2011, 12:54:06 CET »
Non hai capito... OpenGL-ES è la libreria grafica 3D utilizzata da Android, ed è l'unica. Andengine è un'implementazione di un set di funzioni che lavorano sempre sull'OpenGL-ES, il quale non è di per sé un MOTORE grafico, ma solo un mero layer che ti permette di "disegnare" corpi tridimensionali sullo schermo.

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:Corso/Master per programmazione videogiochi e OpenGL
« Risposta #12 il: 21 Febbraio 2011, 13:05:20 CET »
Ok ora mi é tutto chiaro :-) grazie tante! ;-)