iniziare a programmare partendo da 0.?

ciao a tutti,è da poco che mi sono appassionato alla programmazione di videogiochi...quello che vorrei sapere è come iniziare,cosa studiare,e sopratutto che linguaggi usare per questo tipo di programmazione..le mie basi sono nulle ma la voglia ne ho tanta e sopratutto ho molte idee che vorrei realizzare.. 10 punti alla risposta più dettagliata riguardo all'argomento.

3 risposte

Classificazione
  • 5 anni fa
    Risposta preferita

    Il c++ è il linguaggio considerato lo standard per la programmazione dei videogiochi. Questo però non significa che tu non possa iniziare con un linguaggio più "semplice".

    Prima di poter programmare videogiochi, il che implica una buona conoscenza di tutta una serie di argomenti che non c'entrano niente con la programmazione in senso stretto, come la geometria, la fisica, la matematica e via dicendo.

    Gran parte della difficoltà nella programmazione non risiede nell'imparare il linguaggio in sé, quanto nell'imparare come funzionano i vari algoritmi, le strutture dati e via dicendo.

    Ad esempio tu potresti conoscere il c++ alla perfezione, così come le librerie grafiche direct x, ma non avere idea di come gestire la collisione tra due oggetti, o come partizionare lo spazio 3d in modo che vengano renderizzati solo gli oggetti effettivamente visibili.

    Se ad esempio hai 20000 oggetti nel livello di gioco (nemici, alberi, muri, proiettili) non puoi controllare per ogni oggetto se è avvenuta una collisione con ogni altro oggetto, ad ogni fotogramma, poiché il gioco sarebbe lentissimo. Quindi devi trovare un modo per far sì che per ogni determinato oggetto, si contolli se c'è stata una collisione solo con gli oggetti effettivamente vicini a lui. E qui esistono decine di soluzioni diverse.

    Un altro esempio, vedi il gioco "slenderman" che andava di moda qualche tempo fa. Nel gioco ci sono migliaia di alberi, ma solo poche decine sono visibili di volta in volta, perché gli altri potenzialmente all'interno del campo visibile, sono coperti dagli altri alberi. Quindi non ha senso far fare tutti i calcoli alla CPU, mantenere in ram tutti quei dati e via dicendo. Tuttavia chi sviluppò quel gioco utilizzò la versione free di un motore grafico commerciale, che non includeva quel tipo di ottimizzazione. Infatti se ci hai giocato avrai notato che era piuttosto lento per essere un gioco basico. Immagina i giochi moderni con grafica iper-realistica.

    Questo non per demoralizzarti o altro, anzi sembra più difficile a dirsi che a farsi. Quello che ti voglio dire, prima di concentrarti sulla programmazione di video-giochi, dedicati a padroneggiare la programmazione cosiddetta di base. Quindi non ha senso imparare il C++ ora solo perché è quello più utilizzato nei videogiochi.

    Se decidi ad esempio di imparare un linguaggio più semplice come javascript o python, i costrutti sono comunque gli stessi, e quando un giorno dovrai passare al c++ non avrai problemi.

    Tuttavia il C++ ha delle complicanze come la gestione a basso livello della memoria (puntatori e via dicendo) che potrebbero scoraggiarti e farti pensare che programmare è troppo difficile e portarti a lasciar perdere.

    Guarda questa immagine:

    http://image.slidesharecdn.com/pythonfortextproces...

    questi tre programmi fanno la stessa cosa, stampano a schermo la scritta "hello world". Vedi come il C ed il Java sono più "verbosi" del python? Con il python potresti concentrarti direttamente sulle basi e una volta padroneggiate bene dovrai studiare bene gli algoritmi e le strutture dati che sono alla base della programmazione "seria", compresa quella dei videogiochi.

    Un algoritmo è un insieme di "step" logici per risolvere un problema. Ad esempio, data una lista di numeri casuali, riordinali in ordine crescente. Oppure, data una lista di nomi, scrivi un algoritmo che trovi il nome "caio" nel minor tempo possibile.

    Queste sono cose fondamentali nella programmazione anche se non c'entrano con il linguaggio in sé.

    Strutture dati sarebbero delle strutture dove tu memorizzi i dati, ad esempio in un videogioco potrebbe essere una struttura per memorizzare gli oggetti statici di un livello.

    Per ora non c'è bisogno che tu ti preoccupi di queste cose, te lo dico solo perché tu sappia che il 99% della programmazione non è il linguaggio in sé, quindi iniziare con un linguaggio complesso non ti aiuta, anzi. Meglio ne scegli uno dalla sintassi più pulita e ordinata, che ti permetta di concentrarti meglio sul "come" usare il linguaggio.

    EDIT:

    Se vedi l'immagine che ti ho linkato prima, vedrai che se decidi di imparare il c/c++ o java, dovrai imparare sin da subito cos'è una classe, cos'è un #include, perché c'è quel "main", perché è preceduto da "int", cosa significa static, perché c'è un "return 0" (nell'immagine se lo sono dimenticati), cosa significa "\n", cosa significano quei due ** , e via dicendo. E Tutto questo ancor prima di sapere come si scrive una semplice frase sullo schermo. Mentre in python puoi ignorare per il momento questi dettagli e andare subito al sodo.

  • 5 anni fa

    se hai una risposta più dettagliata della sua o magari riesci a rispondermi meglio fai pure...che se vuoi ti do anche a te 10 punti..a me sinceramente interessa avere più informazioni a riguardo.e se tu pensi di aiutarmi sarei contento a darti anche a te 10 punti se mi rispondi.

  • Anonimo
    5 anni fa

    quindi per i punti basta fare copia e incolla da altri siti??

Altre domande? Fai una domanda e ottieni le risposte che cerchi.