Visto che mi sono arrivati alcuni pm sulle mie recenti "rivelazioni" (), ho deciso di fare qui un post piuttosto che rispondere in pvt, sperando di fare cosa gradita per qualcuno che ha voglia di studiare un po', che sia per cultura personale o anche per poi provarci davvero, da solo o con qualche amico.
Faccio quattro premesse:
#1: "perdo" del tempo per fare questa miniguida ma dai link che ci sono sotto io non ci ricavo un euro che sia uno, li metterò tutti in chiaro e vedrete che non ci sono referral, fornirò dei link semplicemente per supportare la mia esperienza personale (perchè sono proprio i corsi/tool che ho fatto/usato).
#2: non sottovalutate la comodità del poter studiare online, potete andare al vostro ritmo e usare i ritagli di tempo che riuscite ad avere (io ho usato anche le pause pranzo a lavoro, le ho trovate davvero comode per mantenere una costanza quasi giornaliera), poi ogni tanto ci saranno delle scadenze (per es. esercizi settimanali) ed è bene rispettarle ma nulla vieta saltarla e continuare a studiare "da soli" riprendendo la scadenza poi nella sessione dopo.
#3: non spaventatevi alla prima difficoltà, soprattutto su una cosa che non riguarda il vostro "campo" abituale. Se non avete mai toccato una riga di codice i corsi vi aiuteranno dandovi una infarinatura di ciò che dovete sapere e potrete anche seguirne qualcun altro dedicato proprio allo sviluppo software per approfondire. Allo stesso modo se non sapete nulla di grafica (o la schifate, come me) o non avete mai usato Unity, non c'è niente di estremamente complicato, basta solo mettersi sotto e prenderci la mano. E inoltre nulla vieta che ci sia qualche amico/collega a darvi una mano (es. voi fate la grafica, lui la parte di codice, cercando di scambiarvi ogni tanto così imparate entrambi).
#4: purtroppo Coursera è peggiorato tantissimo dalle nuove policy introdotte a febbraio/marzo, quello che vi scriverò sotto sarà parzialmente infattibile da "non pagante" (cioè senza comprare i corsi) dato che hanno eliminato la possibilità di sottomettere gli esercizi e vederseli corretti dai compagni di corso (cosa a mio avviso utilissima e che è alla base dello studio, l'impegno per fare l'esercizio e il feedback costruttivo mi hanno aiutato un sacco).
Il mio percorso:
Alla fine dello scorso anno ho deciso di cominciare a studiare qualcosa di nuovo online, un po’ per cultura mia un po’ per aggiungere altro al mio CV (cosa che nel mio settore ci sta sempre, sono abituato a studiare cose nuove). Ho quindi iniziato con un corso gratuito molto bello sullo sviluppo su Android, il corso non c’entra con il gamedev ma ve lo linko perchè magari può interessarvi comunque: https://www.coursera.org/learn/android-programming . Mi veniva anche “comodo” visto che ho già 10 anni di esperienza in Java e in testa un paio di possibili app da sviluppare.
Ma la svolta l’ho avuta quando ho trovato questo corso sulla teoria del Game Design, sempre gratuito su Coursera, organizzato dalla CalArts: https://www.coursera.org/learn/game-design
Mi ha preso completamente e totalmente, ho abbandonato quello su Android e sono partito per la tangentenon è niente di assurdo o niente che magari in parte non sapessi già grazie all’esperienza sul gaming, ma il modo in cui è presentato imho è davvero perfetto. Parte semplicissimo, chiedendo di realizzare un boardgame su un unico foglio A4, man mano che passano le settimane (4) del corso lo si revisiona per aggiungere dei temi specifici trattati a lezione: dal migliorare le regole, dall’introdurre un minimo di background story, fino al multiplayer (sempre in un A4 :P ).
Così ho iniziato a seguire tutti gli altri corsi di quella specialization (link di tutta la specializzazione by CalArts: https://www.coursera.org/specializations/game-design , di cui questo è il primo corso) cominciando a studiare come un forsennato :P in ordine sono:
2) Story and narrative: https://www.coursera.org/learn/video-game-story , molto bello, fornisce anche spunti anche per migliorare la costanza nella produzione degli scritti (cosa che ho apprezzato particolarmente, avendo anche un minimo di esperienza su quel fronte).
3) World design: https://www.coursera.org/learn/video-game-world , carino, molte delle cose riprese in questo corso diciamo che erano già note per via del background da gamer, ma ci sta sempre dargli un nome ed una “teoria” dietro.
4) Character design: https://www.coursera.org/learn/game-character-design , sicuramente a qualcuno portato verso il disegno potrà piacere anche perchè è pieno di interviste a disegnatori che danno consigli, ma io che schifo il disegno (oltre ovviamente a non avere capacità) l’ho retto giusto per una settimana, non il mio genere.
Per ognuno di questi quattro corsi siamo ad un impegno settimanale tra le 2 e le 4 ore, dipende dagli esercizi e dal grado di impegno che si vuole dedicare. Poca pratica dal punto di vista di codice o di strumenti di sviluppo, molta pratica dal punto di vista di concetti da applicare concretamente.
Finiti questi corsi (in realtà già durante) ho trovato un’altra specialization molto interessante della Michigan University: Game Design and Development - https://www.coursera.org/specializat...me-development
In questo caso l’approccio è stato completamente opposto, prima di parlare di teoria hanno deciso di far “sporcare le mani” agli studenti subito dal primo corso, per far capire che non c’è niente di trascendentale nè impossibile, sia per quelli come me che schifavano ambienti di sviluppo “grafici” (giuro eh, io c’avevo provato prima di questi corsi, aprivo Unity e mi passava la voglia di vivere...), sia per le persone senza background tecnico sul fronte sviluppo.
Quindi ho “divorato” il primo corso: Introduction to Game Development - https://www.coursera.org/learn/game-development
Notate che appunto sin dal titolo si parla subito di sviluppo, tanto che il corso è interamente basato su Unity. E in circa 3-4 ore farete il vostro primo “giochino” (non è vero, il primo non è un gioco ma semplicemente una rappresentazione del sistema solare con alcune variabili cambiate a runtime se non ricordo male, ma è comunque un inizio :P ), alla terza settimana ci sarà un mini arcade e con l’ultima un FPS (semplice eh, niente di che, ma pur sempre un FPS). E con questo corso ho finito di partire completamente per la tangente, mi sono messo a personalizzare gli esercizi, inventandomi qualche cosina in più per renderli miei. Ma soprattutto ho superato lo schifo verso Unity capendo che in realtà dietro c’è qualcosa di molto meglio (e molto più “mio”) e cioè lo scripting. Una volta che ho capito che potevo davvero applicare tutto ciò che già sapevo (dall’esperienza di studio e di lavoro decennale) ad un gioco, ho cominciato a pensare seriamente a quello che avrei potuto fare.
Intanto ho continuato con la specializzazione, andando su:
2) Principles of Game Design - https://www.coursera.org/learn/gamedesign e molto carino ed mi sono divorato anche questo, il prof è un fattone totale, una persona a cui stringerei la mano con un inchino :P
3) Business of Game Dev - https://www.coursera.org/learn/gamedev-business , orientato all’aspetto imprenditoriale (su cui sono molto portato) che c’è dietro con un bel pezzo su copyright e copyleft che non fa mai male, sempre dal prof di cui sopra, consigliatissimo.
4) Game Development for Modern Platforms - https://www.coursera.org/learn/gamedev-platforms , questo non l’ho mai seguito seriamente, in parte perchè avevano già avviato i cambi sulle policy di Coursera, in parte per altri motivi che scrivo sotto.
Anche per questi corsi siamo ad un impegno settimanale sulle 3-4 ore più o meno, un filo di più dell’altra specializzazione.
Nel frattempo avevo tirato dentro un mio amico (decisamente più portato verso la grafica rispetto a me) che ha subito iniziato a studiare su mia segnalazione su questi corsi, mentre abbiamo cominciato a fare qualche ipotesi di gioco assieme.
Un bel giorno troviamo questo a 17€ (invece che 200€): The Complete Unity Developer - https://www.udemy.com/unitycourse (Udemy, non Coursera, altra piattaforma)
Super consigliato, lo prendiamo entrambi (lui lo inizia anche prima di me perchè io ero impegnato con gli altri corsi) e svoltiamo completamente: è ancora più pratico, lunghissimo sì (55 ore totali di video) ma con una buonissima progressione. Si parte dalle basi della programmazione (che io ho visto giusto per curiosità, invece che skipparle) sviluppando un mini gioco scrivendo in console, poi si sale sviluppando una mini avventura testuale (che sono davvero delle banalità, sono macchine a stati finiti). Poi si riprende il mini gioco su console e lo si fa diventare “visivo”, passando poi al primo gioco complesso e cioè a sviluppare un clone di Arkanoid: niente di trascendentale, però si comincia ad andare di prefab, collider, fisica (tutta integrata in Unity), level/scene design, etc.. Successivamente salendo ancora di difficoltà si sviluppa un clone di Space Invaders (differenti risoluzioni, spawn dei nemici, spawn dei proiettili, hitbox/collider, level design, etc) e poi un clone di Plants vs Zombies… io mi sono fermato a metà di quest’ultimo (55% sul totale del corso) ma ce ne sono tipo altri 4 che non ho proprio mai visto per ora (anche perchè il 3D non mi interessa per ora).
E il motivo per cui mi sono fermato è perchè avevamo già avviato il NOSTRO gioco :P , c’erano talmente tante cose da fare per il design che ho interrotto il corso su Udemy, avendo già imparato un sacco di cose utili ed applicabili con i vari corsi che avevo seguito.
[... to be continued ... lo continuo con il resto appena possibile, se no finisce che non lo posto più che ce l'ho in canna da un po', metterò altre info su Unity, più qualche altra info sul nostro percorso]
PS: ovviamente per qualsiasi domanda o richiesta di info scrivete pure in questo thread.
PS2: su alcune cose è scritto un po' di getto, perdonatemi, ma ho zero tempo a disposizione eppure c'ho perso un paio di orette per scrivervi tutto, di più non riesco ora :/