WEBVTT 00:00:00.240 --> 00:00:04.700 Nell'ultima puntata di Developing, ho scelto il motore di gioco - Unity - 00:00:04.700 --> 00:00:07.040 e ho iniziato ad imparare ad usarlo. 00:00:07.040 --> 00:00:10.670 Ma ora è il momento di rivelare l'idea per il mio gioco 00:00:10.670 --> 00:00:14.035 e, beh, di iniziare a crearlo. 00:00:14.400 --> 00:00:19.130 Ma da dove si inizia a sviluppare un gioco? 00:00:19.130 --> 00:00:25.540 Penso sia una domanda d'importanza cruciale perché, come vedrete, 00:00:25.540 --> 00:00:29.680 iniziare lo sviluppo di un gioco col piede sbagliato 00:00:29.680 --> 00:00:33.797 può rivelarsi disastroso per il progetto. 00:00:33.797 --> 00:00:34.897 Fatemi spiegare. 00:00:44.800 --> 00:00:48.530 Fatemi iniziare dall'idea per il gioco. 00:00:48.530 --> 00:00:52.510 Creerò, e tenetevi forte perché è pazzesco, 00:00:52.510 --> 00:00:55.540 un platform bidimensionale a scorrimento orizzontale. 00:00:55.540 --> 00:00:57.350 Sì, lo so, tutti gli sviluppatori indie 00:00:57.350 --> 00:01:00.119 iniziano con un platform a scorrimento orizzontale. 00:01:00.119 --> 00:01:02.320 Ma penso ci siano delle buone ragioni. 00:01:02.320 --> 00:01:04.330 Amo il genere. 00:01:04.330 --> 00:01:08.460 Nel complesso i platform sono relativamente facili da creare - 00:01:08.460 --> 00:01:10.600 quantomeno non è un MMO. 00:01:10.600 --> 00:01:15.450 Ed ho creato molti video sul level design e il character design per i platform, 00:01:15.450 --> 00:01:17.760 il che dovrebbe tornare utile. 00:01:17.760 --> 00:01:24.150 Inoltre sarà, tenetevi forte di nuovo, un platform con una peculiarità. 00:01:24.150 --> 00:01:29.120 L'idea è di rendere magnetico il personaggio del mio platform, 00:01:29.120 --> 00:01:34.620 ovvero respingerà alcune piattaforme attraendone altre. 00:01:34.620 --> 00:01:38.560 E si potrà cambiare la polarità premendo un pulsante. 00:01:38.560 --> 00:01:42.910 L'idea mi è venuta da questo gioco: The Legend of Zelda: Oracle of Seasons. 00:01:42.910 --> 00:01:45.810 In questo gioco c'è un guanto magnetico come power-up 00:01:45.810 --> 00:01:50.600 che permette a Link di respingere alcune superfici attraendone altre. 00:01:50.600 --> 00:01:53.357 Può essere usato anche per raccogliere grandi sfere metalliche 00:01:53.357 --> 00:01:56.210 da usare nella risoluzione dei rompicapo e per combattere i nemici. 00:01:56.210 --> 00:02:01.680 È una meccanica davvero forte ma sembra limitata dal genere, 00:02:01.680 --> 00:02:03.800 dalla prospettiva top-down della telecamera, 00:02:03.800 --> 00:02:06.960 e ovviamente dai limiti tecnologici del Game Boy. 00:02:06.960 --> 00:02:11.860 Così ho pensato: e se prendessi in prestito quell'idea 00:02:11.860 --> 00:02:16.500 e la implementassi in un genere diverso, un frenetico platform 2D? 00:02:16.500 --> 00:02:19.520 Qualcosa che richiama Celeste o Super Meat Boy. 00:02:19.520 --> 00:02:22.355 Un gioco in cui bisogna padroneggiare il magnetismo 00:02:22.355 --> 00:02:26.150 per avere velocità, fluidità e precisione. 00:02:26.150 --> 00:02:27.800 Questa è l'idea. 00:02:27.800 --> 00:02:30.650 Mentre la domanda ora è: da dove inizio? 00:02:30.650 --> 00:02:33.630 Apro Unity e inizio a programmare? 00:02:33.630 --> 00:02:37.840 Apro Photoshop e inizio a creare la grafica? 00:02:37.840 --> 00:02:41.350 Inizio a pensare alla storia o ai personaggi? 00:02:41.350 --> 00:02:43.355 Da dove inizio? 00:02:43.600 --> 00:02:48.430 Sarò sincero con voi: non è il primo gioco che tento di creare. 00:02:48.430 --> 00:02:51.910 Fin da bambino ho avuto idee per i giochi, 00:02:51.910 --> 00:02:55.290 e in vari momenti della mia vita ho provato a creare quei giochi 00:02:55.290 --> 00:02:57.470 con diversi strumenti e quant'altro. 00:02:57.470 --> 00:03:06.460 Ma non ho quasi mai finito quei giochi e penso che la ragione sia sempre la stessa: 00:03:06.460 --> 00:03:09.560 ho iniziato nel modo sbagliato. 00:03:09.560 --> 00:03:10.680 Lasciate che vi mostri. 00:03:10.680 --> 00:03:14.870 Ho preso questa cartella dalla casa dei miei genitori 00:03:14.870 --> 00:03:20.930 ed è piena di note e bozzetti e idee per un gioco che stavo creando 00:03:20.930 --> 00:03:24.000 alcuni anni prima di iniziare Game Maker's Toolkit. 00:03:24.000 --> 00:03:27.868 Questo è un tappetino per il mouse di Starcraft Ghost. 00:03:27.868 --> 00:03:30.739 Quel gioco non è mai uscito, giusto? Potrebbe valere qualcosa, 00:03:30.739 --> 00:03:32.830 lo metto tra la roba di eBay. 00:03:32.830 --> 00:03:36.110 Il gioco avrebbe dovuto chiamarsi Carter's Curse. 00:03:36.110 --> 00:03:38.970 Parlava del famoso archeologo Howard Carter, 00:03:38.970 --> 00:03:41.800 il tizio che ha scoperto la tomba di Tutankhamon. 00:03:41.800 --> 00:03:45.940 E, almeno nel mio gioco, avrebbe anche rievocato un'antica maledizione egizia 00:03:45.940 --> 00:03:51.021 che lo avrebbe portato a combattere zombie, mummie e antiche divinità egizie. 00:03:51.021 --> 00:03:55.740 Ricordo di aver passato ore ed ore a disegnare tutta questa roba. 00:03:55.740 --> 00:03:58.160 Voglio dire... che nerd! 00:03:58.480 --> 00:04:01.480 Comunque. Come avreste affrontato questi nemici? 00:04:01.480 --> 00:04:04.480 La risposta: giocando a dei rompicapo Nonogram. 00:04:04.480 --> 00:04:08.810 I Nonogram sono dei rompicapo a griglie basati sulla logica, un po' come il Sudoku. 00:04:08.810 --> 00:04:11.110 Nintendo ha creato molti giochi del genere. 00:04:11.110 --> 00:04:13.840 Ero davvero ispirato da giochi come Bookworm Adventures 00:04:13.840 --> 00:04:16.970 dove c'è un rompicapo alla base dello schermo 00:04:16.970 --> 00:04:20.800 che se completato danneggia i nemici in una piccola scena di combattimento 00:04:20.800 --> 00:04:22.560 in cima allo schermo. 00:04:22.560 --> 00:04:26.370 La mia idea era simile: ci sarebbe stata una griglia Nonogram alla base dello schermo 00:04:26.370 --> 00:04:30.000 mentre Howard Carter avrebbe combattuto i mostri in cima allo schermo. 00:04:30.000 --> 00:04:32.280 Sono quindi passato allo sviluppo. 00:04:32.280 --> 00:04:35.760 Stavo creando il gioco in un'app per iPad chiamata Codea 00:04:35.760 --> 00:04:38.820 che permette di creare giochi per iOS sul vostro iPad. 00:04:38.820 --> 00:04:43.430 L'avevo utilizzata in precedenza per una vera e propria app Nonogram per iOS 00:04:43.430 --> 00:04:45.600 quindi probabilmente avrei saputo programmarlo, 00:04:45.600 --> 00:04:49.700 ma volevo che la grafica fosse meravigliosa così ho aperto Photoshop 00:04:49.700 --> 00:04:52.800 iniziando a creare sprite e frame d'animazione. 00:04:52.800 --> 00:04:58.210 Ho ancora una cartella su Dropbox piena di sprite e animazioni. 00:04:58.210 --> 00:05:02.450 Ho creato molti personaggi diversi, le mosse finali per Howard Carter, 00:05:02.450 --> 00:05:08.080 una cutscene introduttiva, i menù con dei bei pulsantoni da premere. 00:05:08.080 --> 00:05:10.580 Ero davvero preso. 00:05:10.580 --> 00:05:16.722 Ma poi ho capito una cosa. Una cosa abbastanza importante. Una cosa... 00:05:16.880 --> 00:05:21.120 abbastanza deleteria per il progetto. 00:05:21.120 --> 00:05:26.080 Il gioco non era granché. Davvero pessimo, per niente divertente. 00:05:26.080 --> 00:05:31.940 E più programmavo, più sviluppavo, e più capivo qual era il problema: 00:05:31.940 --> 00:05:37.040 i Nonogram non hanno abbastanza profondità per un gioco del genere. 00:05:37.040 --> 00:05:39.790 Non ci sono né tattica né strategia, 00:05:39.790 --> 00:05:44.490 non è possibile adattare le azioni al tipo di nemico che si sta affrontando, 00:05:44.490 --> 00:05:47.910 e in definitiva il combattimento era irrilevante. 00:05:47.910 --> 00:05:50.720 Avreste potuto ignorare l'intera sezione superiore dello schermo 00:05:50.720 --> 00:05:52.320 e il gioco avrebbe funzionato comunque 00:05:52.320 --> 00:05:54.580 perché tutto ciò che fate è giocare ad un Nonogram. 00:05:54.580 --> 00:05:59.030 Significava non poter rendere il gioco più difficile o interessante 00:05:59.030 --> 00:06:01.250 a seconda del nemico che si affronta, 00:06:01.250 --> 00:06:05.040 e significava che il giocatore avrebbe fatto la stessa cosa ancora e ancora. 00:06:05.040 --> 00:06:09.670 Avevo creato un gioco superficiale, ripetitivo e noioso. 00:06:09.670 --> 00:06:13.590 Forse avrei potuto aggiustarlo ma a quel punto ero così avanti nello sviluppo 00:06:13.590 --> 00:06:18.960 e così demoralizzato che ho cestinato tutto. 00:06:18.960 --> 00:06:21.350 Qual era stato il mio errore? 00:06:21.350 --> 00:06:24.470 Beh, con un senno di poi frutto di anni e anni... 00:06:24.470 --> 00:06:26.640 è passato quasi un decennio... 00:06:26.640 --> 00:06:28.540 mi sembra abbastanza ovvio cos'è accaduto. 00:06:28.540 --> 00:06:33.800 Ovvero: quando fate un gioco dovete create molte cose diverse. 00:06:33.800 --> 00:06:40.119 Le principali sono la musica, la grafica, il game design, la storia e il codice. 00:06:40.119 --> 00:06:44.850 Ora è facile vederle sullo stesso piano... ma non è così. 00:06:44.850 --> 00:06:48.330 In molti casi il game design non è alla pari 00:06:48.330 --> 00:06:53.250 ma bensì è la base su cui poggiano tutte le altre parti. 00:06:53.250 --> 00:06:58.150 E così se quella parte è debole finirà col far crollare il tutto. 00:06:58.150 --> 00:07:01.000 Potete risolvere i bug e ridisegnare la grafica 00:07:01.000 --> 00:07:03.600 ma se il gameplay è viziato di per sé, 00:07:03.600 --> 00:07:07.760 talvolta l'intero progetto potrebbe essere irrecuperabile. 00:07:07.760 --> 00:07:09.670 Ed è di fatto quello che mi è accaduto. 00:07:09.670 --> 00:07:12.920 Ho dedicato così tanto tempo alla grafica e all'animazione 00:07:12.920 --> 00:07:15.740 che nel momento in cui sono finalmente arrivato al gameplay, 00:07:15.740 --> 00:07:18.360 mi sono accorto che l'intero progetto era difettoso. 00:07:18.360 --> 00:07:21.620 Avevo di fatto costruito una casa su delle fondamenta davvero instabili, 00:07:21.620 --> 00:07:26.560 per poi ritrovarmi sorpreso e arrabbiato quando il water è sprofondato nel pavimento. 00:07:26.560 --> 00:07:29.830 È imbarazzante dire che non mi è successo solo quella volta. 00:07:29.830 --> 00:07:32.720 Volevo creare un gioco d'avventura punta e clicca in stile noir 00:07:32.720 --> 00:07:35.410 con un peculiare sistema d'indizi generati proceduralmente - 00:07:35.410 --> 00:07:39.120 ma ho dedicato così tanto tempo alla storia e alla ricerca su quel periodo 00:07:39.120 --> 00:07:42.240 che non ho mai iniziato a progettare quel sistema. 00:07:42.240 --> 00:07:47.310 E volevo creare una versione moderna e frenetica del gioco mobile Snake 00:07:47.310 --> 00:07:49.780 ma mi sono così impantanato nel correggere i bug 00:07:49.780 --> 00:07:51.920 e nel rendere perfetto il codice per il movimento 00:07:51.920 --> 00:07:54.767 che non ho mai scoperto se il gioco fosse divertente 00:07:54.767 --> 00:07:57.200 prima di annoiarmi ed esaurirmi. 00:07:57.200 --> 00:08:00.710 E quindi ogni volta che ho cercato di progettare un mio gioco 00:08:00.710 --> 00:08:06.290 ho messo altri elementi come la storia e la grafica davanti al gameplay. 00:08:06.540 --> 00:08:07.330 Perché? 00:08:07.680 --> 00:08:13.290 Penso si possa ridurre il tutto a due presupposti decisamente errati. 00:08:13.290 --> 00:08:17.980 Il primo presupposto è che se il gioco era figo nella mia testa, 00:08:17.980 --> 00:08:22.370 allora lo sarebbe stato anche una volta creato. 00:08:22.370 --> 00:08:24.100 Ovviamente non era così. 00:08:24.100 --> 00:08:26.110 Il secondo presupposto 00:08:26.110 --> 00:08:29.840 era l'impossibilità di capire se il gioco fosse divertente 00:08:29.840 --> 00:08:31.830 prima di completarlo. 00:08:31.830 --> 00:08:35.390 Avrei dovuto continuare a lavorare finché ad un certo punto 00:08:35.390 --> 00:08:38.320 avrei capito se funzionava... giusto? 00:08:38.320 --> 00:08:40.400 No, di nuovo sbagliato. 00:08:40.400 --> 00:08:46.500 Ed è davvero imbarazzante da raccontare perché ora le risposte appaiono ovvie. 00:08:46.500 --> 00:08:48.080 Ma non erano ovvie allora. 00:08:48.080 --> 00:08:50.440 È solo da quando faccio Game Maker's Toolkit, 00:08:50.440 --> 00:08:52.340 da quando studio lo sviluppo dei videogiochi, 00:08:52.340 --> 00:08:55.540 dopo aver intervistato dozzine e dozzine di game designer 00:08:55.540 --> 00:09:00.270 che so come nascono molti dei giochi di maggior successo. 00:09:00.270 --> 00:09:03.460 I game designer hanno continuamente delle idee 00:09:03.460 --> 00:09:07.360 e sono sicuro che nelle loro teste suonino divertentissime. 00:09:07.360 --> 00:09:12.400 Ma i migliori game designer sanno che i loro cervelli sono dei gran bugiardi. 00:09:12.400 --> 00:09:18.870 L'unico modo per sapere se un'idea è buona è metterla in pratica, testarla. 00:09:18.870 --> 00:09:24.510 Ma invece di creare l'intero gioco, un designer deve semplicemente creare un... 00:09:24.510 --> 00:09:25.760 prototipo. 00:09:25.760 --> 00:09:30.280 Un prototipo è solo un piccolo banco di prova per un'idea, 00:09:30.280 --> 00:09:34.350 progettato unicamente per vedere se l'idea è divertente o meno. 00:09:34.350 --> 00:09:36.920 Di solito questi prototipi sono davvero brutti 00:09:36.920 --> 00:09:42.810 con una grafica raffazzonata o forme di base o sprite presi da altri giochi. 00:09:42.810 --> 00:09:45.280 Spesso sono buggati e scadenti 00:09:45.280 --> 00:09:48.890 e non prevedono altro se non le caratteristiche essenziali 00:09:48.890 --> 00:09:50.540 necessarie per testare quella meccanica. 00:09:50.540 --> 00:09:53.930 Sono solo una versione sufficientemente funzionante dell'idea per il gioco, 00:09:53.930 --> 00:09:55.760 costruita il più velocemente possibile, 00:09:55.760 --> 00:10:00.730 con l'unico scopo di verificare se l'idea per il gioco funziona. 00:10:00.730 --> 00:10:04.780 È divertente o interessante? Vale la pena dedicarvicisi? 00:10:04.780 --> 00:10:09.760 È una base solida sulla quale costruire il resto del gioco? 00:10:09.760 --> 00:10:13.510 Ed è quello che farò. Questa volta lo farò nel modo giusto. 00:10:13.510 --> 00:10:16.860 Mi concentrerò esclusivamente sulla creazione del prototipo, 00:10:16.860 --> 00:10:19.360 e sarò estremamente disciplinato 00:10:19.360 --> 00:10:23.120 e non mi dedicherò ad altro se non a mettere alla prova questa idea. 00:10:23.120 --> 00:10:27.020 Per quanto riguarda la grafica, mi affiderò a Google Immagini. 00:10:27.020 --> 00:10:29.310 Non ci sarà nessuna musica, nessuna storia, 00:10:29.310 --> 00:10:33.910 non penserò al nome del gioco o dei personaggi, 00:10:33.910 --> 00:10:38.240 Non inizierò a disegnare l'icona per un gioco che non è stato ancora creato, 00:10:38.240 --> 00:10:39.640 Mark, idiota. 00:10:39.640 --> 00:10:44.780 Il codice sarà scadente e pieno di bug perché sto ancora imparando ad usare Unity, 00:10:44.780 --> 00:10:48.600 ma sarà abbastanza buono per verificare se questa idea funziona. 00:10:48.600 --> 00:10:51.912 Solo un banco di prova per testare le meccaniche di gioco 00:10:51.912 --> 00:10:53.020 e vedere cos'è divertente. 00:10:53.020 --> 00:10:56.485 Quindi iniziamo, e apriamo Unity. 00:10:56.485 --> 00:10:57.750 La prima cosa da creare 00:10:57.750 --> 00:11:01.110 era un personaggio in grado di muoversi a destra e a sinistra e saltare, 00:11:01.110 --> 00:11:05.520 così ho applicato delle forze al rigidbody alla pressione dei tasti dedicati. 00:11:05.520 --> 00:11:09.020 Ci sono stati subito dei problemi per niente incoraggianti, 00:11:09.020 --> 00:11:10.770 ma alla fine ci sono riuscito. 00:11:10.770 --> 00:11:12.640 Poi ho aggiunto un magnete alla scena 00:11:12.640 --> 00:11:17.360 facendo in modo che il personaggio ne fosse attratto. 00:11:17.360 --> 00:11:21.300 Nel farlo sono dovuto diventare un programmatore esperto 00:11:21.300 --> 00:11:24.160 elevando le mie abilità di programmazione fino alla mente galattica, 00:11:24.160 --> 00:11:28.590 così mi sono scrocchiato le dita e ho digitato questa linea di codice... 00:11:28.590 --> 00:11:31.990 come muovere un rigidbody verso un altro oggetto. 00:11:31.990 --> 00:11:34.440 Ok, sì, ho usato Google, trovato del codice, 00:11:34.440 --> 00:11:35.930 e l'ho schiaffato nel mio progetto. 00:11:35.930 --> 00:11:38.440 Ma mi sono assicurato di aver capito come funziona - 00:11:38.440 --> 00:11:42.290 fondamentalmente trova la direzione tra il personaggio ed il magnete 00:11:42.290 --> 00:11:45.260 per poi applicare le forze al rigidbody in quella direzione. 00:11:45.260 --> 00:11:50.320 Inoltre ho ottimizzato il codice in modo che accelerasse all'avvicinarsi al magnete. 00:11:50.320 --> 00:11:53.930 Poi ho fatto in modo che si potesse spegnere il magnete premendo un pulsante 00:11:53.930 --> 00:11:59.290 mantenendo però la velocità del personaggio, librandolo in aria. 00:11:59.290 --> 00:12:01.430 Quindi se inserisco una piattaforma qui sopra 00:12:01.430 --> 00:12:03.770 posso attirare il personaggio verso il magnete, 00:12:03.770 --> 00:12:06.580 lasciarlo andare e poi saltarci sopra. 00:12:06.580 --> 00:12:11.220 Non è male... ma è un po' difficile da controllare. 00:12:11.220 --> 00:12:15.449 Forse il codice non è perfetto, le cose sfuggono di mano abbastanza facilmente. 00:12:15.449 --> 00:12:17.588 Ma mentre facevo delle ricerche a riguardo, 00:12:17.588 --> 00:12:20.540 mi sono imbattuto in qualcosa di molto utile che c'è in Unity. 00:12:20.540 --> 00:12:24.058 È un componente nativo chiamato Point Effector, 00:12:24.058 --> 00:12:26.720 che è fondamentalmente... un campo magnetico. 00:12:26.720 --> 00:12:30.860 Non so come mi sia sfuggito, la sua icona è letteralmente un magnete. 00:12:30.860 --> 00:12:31.900 Ecco come funziona. 00:12:31.900 --> 00:12:35.690 Associate un collider ed un Point Effector ad un GameObject, 00:12:35.690 --> 00:12:37.521 e poi definite una forza d'attrazione. 00:12:37.521 --> 00:12:42.800 Ora quando un rigidbody sarà nel collider, sarà attratto verso il centro del campo. 00:12:42.800 --> 00:12:45.595 Inoltre potete usare il sistema di maschere di livello di Unity 00:12:45.595 --> 00:12:48.830 in modo da attrarre solo determinati oggetti. 00:12:48.830 --> 00:12:51.640 Questo avrebbe certamente reso più facile la creazione del gioco, 00:12:51.640 --> 00:12:54.240 così ho decido di rifare il prototipo. 00:12:54.240 --> 00:12:56.400 E, sì, il gioco è risultato più solido. 00:12:56.400 --> 00:12:59.870 È più facile fare delle modifiche e mi permette di fare così fighe tipo... 00:12:59.870 --> 00:13:05.050 se aggiungo un punto d'attrazione ai poli del magnete, succede questo - e non è male. 00:13:05.050 --> 00:13:08.630 Ma quando ho creato questo secondo prototipo, per qualche motivo, 00:13:08.630 --> 00:13:09.450 non so bene perché, 00:13:09.450 --> 00:13:11.770 ho deciso di non usare Mario come personaggio 00:13:11.770 --> 00:13:15.720 e di rimpiazzarlo con l'immagine di un magnete. 00:13:15.720 --> 00:13:19.350 E questo mi ha dato un'idea: 00:13:19.350 --> 00:13:25.940 e se il personaggio non fosse magnetico ma ci fosse un magnete nel mondo di gioco? 00:13:25.940 --> 00:13:29.890 E il personaggio potesse avvicinarsi e raccogliere il magnete? 00:13:29.890 --> 00:13:34.990 Per farlo ho usato il sistema nativo di Unity dei Joints, un altro componente. 00:13:34.990 --> 00:13:39.000 Questo permette di collegare due rigidbody usando vari tipi di giunto 00:13:39.000 --> 00:13:40.935 come carniere (Hinge) e molle (Spring). 00:13:40.935 --> 00:13:44.160 Quindi ora il personaggio trasporterà il magnete 00:13:44.160 --> 00:13:48.340 che, se attratto da un pezzo di metallo, porterà con sé il personaggio. 00:13:48.340 --> 00:13:51.530 Finché non lo lascerete andare e sarete di nuovo liberi di muovervi. 00:13:51.530 --> 00:13:55.270 E il gameplay che volevo in origine, dove si usava la traiettoria del magnete 00:13:55.270 --> 00:13:57.870 per lanciare il personaggio verso una piattaforma più alta, 00:13:57.870 --> 00:14:01.710 può essere ottenuto semplicemente lasciando andare il magnete a mezz'aria. 00:14:01.710 --> 00:14:06.390 Inoltre permette molte altre cose, come usare due magneti o più. 00:14:06.390 --> 00:14:09.030 E potreste, ad esempio, posizionare il magnete qui sopra, 00:14:09.030 --> 00:14:13.680 farvi inseguire da un nemico, disattivare il magnetismo e... splat! 00:14:13.680 --> 00:14:18.590 Oh, questa in effetti non è male. Potrebbe funzionare. 00:14:18.590 --> 00:14:21.240 Improvvisamente il gioco sembrava molto più interessante 00:14:21.240 --> 00:14:23.920 rispetto alla mia idea originale che, devo ammettere, 00:14:23.920 --> 00:14:26.350 iniziava a preoccuparmi un po'. 00:14:26.350 --> 00:14:29.510 Se il vostro personaggio è magnetico e viene attratto e respinto, 00:14:29.510 --> 00:14:32.820 è facilissimo sentirsi un po' fuori controllo. 00:14:32.820 --> 00:14:34.900 Mentre con un magnete come oggetto separato 00:14:34.900 --> 00:14:38.595 ci sono momenti in cui si ha il controllo totale del personaggio 00:14:38.595 --> 00:14:41.200 mentre si è un po' fuori controllo quando si trasporta il magnete. 00:14:41.200 --> 00:14:44.520 Inoltre ero preoccupato dalla carenza di idee 00:14:44.520 --> 00:14:46.968 per un gioco in cui il personaggio è magnetico. 00:14:46.968 --> 00:14:50.160 Ma non appena ho avuto due entità separate, 00:14:50.160 --> 00:14:52.470 le idee hanno cominciato a fluire. 00:14:52.470 --> 00:14:54.990 Inoltre adoro i giochi in cui si fa avanti e indietro 00:14:54.990 --> 00:14:57.840 tra due diverse tipologie di gameplay. 00:14:57.840 --> 00:15:02.320 Pensate a come cambia Mario Odyssey in base alla presenza del cappello. 00:15:02.320 --> 00:15:07.450 Nel mio gioco il personaggio è agile e può saltare molto in alto senza il magnete, 00:15:07.450 --> 00:15:10.920 mentre è lento e pesante quando lo trasporta - 00:15:10.920 --> 00:15:15.140 ma ovviamente quel magnete apre un mare di opportunità. 00:15:15.140 --> 00:15:18.920 Non dovrei essere sorpreso che sia emersa un'idea ancora migliore 00:15:18.920 --> 00:15:20.440 durante la prototipazione. 00:15:20.440 --> 00:15:24.329 Come abbiamo visto nell'episodio di GMTK 'The Games That Designed Themselves', 00:15:24.329 --> 00:15:28.820 è abbastanza comune che emergano nuove idee durante la prototipazione. 00:15:28.820 --> 00:15:31.260 Pensiamo al gioco Crypt of the Necrodancer: 00:15:31.260 --> 00:15:35.201 nel progetto originario del gioco, avrebbe dovuto essere un roguelike 00:15:35.201 --> 00:15:38.380 con un esiguo margine di tempo tra un turno e l'altro. 00:15:38.380 --> 00:15:40.558 Ma durante lo sviluppo i designer si sono accorti 00:15:40.558 --> 00:15:44.410 che sarebbe stato ancora più interessante se, al posto del timer, 00:15:44.410 --> 00:15:46.960 ci fosse stato il ritmo di una canzone. 00:15:46.960 --> 00:15:51.737 Quindi i prototipi non sono solo un modo per testare e provare la validità di un'idea: 00:15:51.737 --> 00:15:56.040 sono un modo per generare idee nuove e migliori. 00:15:56.040 --> 00:16:00.160 Durante questa fase ho fatto un'altra interessante scoperta in Unity: 00:16:00.160 --> 00:16:02.219 questo si chiama Sprite Shape. 00:16:02.219 --> 00:16:06.030 E viene generalmente usato quando si vuole fare del level design organico, 00:16:06.030 --> 00:16:08.080 come nei giochi di Ori, 00:16:08.080 --> 00:16:11.190 ma nel mio caso l'ho usato per ottenere un colore uniforme 00:16:11.190 --> 00:16:14.360 che mi ha permesso di fare un rapidissimo level design. 00:16:14.360 --> 00:16:17.160 Ho potuto assemblare l'area di un prototipo 00:16:17.160 --> 00:16:20.210 usando delle semplici maniglie come in Photoshop. 00:16:20.210 --> 00:16:21.860 E così ho ricostruito il prototipo 00:16:21.860 --> 00:16:25.840 e questa volta ho voluto che il personaggio fosse un po' più facile da controllare, 00:16:25.840 --> 00:16:28.240 qualcosa di più simile ad un vero personaggio dei videogiochi. 00:16:28.240 --> 00:16:32.620 Non volevo rimanere impantanato nella programmazione di movimenti e salti, 00:16:32.620 --> 00:16:36.160 così ho scaricato da internet uno script per il controllo del personaggio. 00:16:36.160 --> 00:16:37.590 Funziona benissimo, 00:16:37.590 --> 00:16:42.680 così in futuro potrò concentrarmi nel migliorarlo, rifarlo o quant'altro. 00:16:42.680 --> 00:16:45.520 Per ora non voglio dedicarci altro tempo. 00:16:45.520 --> 00:16:48.760 In questo prototipo ho anche iniziato a vagliare altre meccaniche 00:16:48.760 --> 00:16:55.480 come il poter lanciare e richiamare a sé il magnete come Thor e il suo martello. 00:16:55.480 --> 00:16:59.260 E dato che il rigidbody del magnete rimbalza sul rigidbody del personaggio, 00:16:59.260 --> 00:17:02.330 darà un piccolo feedback quando lo acchiappate. 00:17:02.330 --> 00:17:04.950 È una sensazione di libertà ludica. Bellissimo. 00:17:04.950 --> 00:17:09.020 E poi ho pensato a vari scenari in cui si può usare il magnete, 00:17:09.020 --> 00:17:12.210 come lanciarlo contro un muro per creare una piattaforma. 00:17:12.210 --> 00:17:16.730 Magari collegarlo ad un pistone per poi slacciarlo al momento giusto per farlo volare. 00:17:16.730 --> 00:17:20.520 Magari invertire la sua polarità per saltare tra due nastri trasportatori. 00:17:20.520 --> 00:17:23.360 O ancora: abbassare questa piattaforma, 00:17:23.360 --> 00:17:27.870 salirci sopra e poi cambiare la polarità del magnete per lanciarsi in aria. 00:17:27.870 --> 00:17:30.620 Whoa, non è niente male, vero? 00:17:30.620 --> 00:17:35.220 Sembra proprio un videogioco. È divertente! 00:17:35.220 --> 00:17:40.480 Ed è stato il momento in cui ho sentito che questa idea aveva del potenziale. 00:17:40.480 --> 00:17:46.220 È originale: ho visto molti giochi basati sul magnetismo, ma niente di simile. 00:17:46.220 --> 00:17:50.540 Permette un gameplay basato sia sul platforming sia sui rompicapo. 00:17:50.540 --> 00:17:54.100 Sento che le idee per questo gioco fluiscono così facilmente 00:17:54.100 --> 00:17:56.380 che sarà possibile creare molti livelli diversi. 00:17:56.380 --> 00:17:58.830 E, soprattutto, è davvero divertente da giocare. 00:17:58.830 --> 00:18:00.960 Mi basta entrare in questa scena su Unity, 00:18:00.960 --> 00:18:04.410 prendere un controller, ed è tutto davvero piacevole. 00:18:04.410 --> 00:18:06.870 È sicuramente un ottimo segno. 00:18:06.870 --> 00:18:10.250 È questo il potere dei prototipi: 00:18:10.250 --> 00:18:15.070 potete usarli per verificare se l'idea per un gioco è effettivamente buona. 00:18:15.070 --> 00:18:16.440 E se siete davvero fortunati, 00:18:16.440 --> 00:18:20.820 potreste veder emergere nuove idee durante questa fase di prototipazione. 00:18:20.820 --> 00:18:24.840 Credo sia necessario un certo livello di disciplina: 00:18:24.840 --> 00:18:30.910 al momento non dovete concentrarvi su nient'altro, solo il gameplay. 00:18:30.910 --> 00:18:32.100 Ed è difficile. 00:18:32.100 --> 00:18:36.910 In questo video non vi ho mostrato l'intera settimana passata sugli effetti particellari, 00:18:36.910 --> 00:18:40.750 gli shader, gli elementi dell'interfaccia e cose così - 00:18:40.750 --> 00:18:45.530 Sono ricaduto nella vecchia abitudine di essere distratto e rapito 00:18:45.530 --> 00:18:48.380 da cose che al momento non sono importanti. 00:18:48.380 --> 00:18:51.800 Ma per fortuna me ne sono reso conto e ho cestinato quel prototipo 00:18:51.800 --> 00:18:54.430 prima di tornare alle cose importanti. 00:18:54.430 --> 00:18:56.640 E in definitiva penso che abbia funzionato: 00:18:56.640 --> 00:18:59.650 ho finito col creare qualcosa che credo sia davvero divertente, 00:18:59.650 --> 00:19:04.500 che abbia del potenziale, e sul quale sono entusiasta di lavorare. 00:19:04.500 --> 00:19:07.510 I giochi precedenti che ho cercato di creare quando ero più giovane, 00:19:07.510 --> 00:19:11.600 si basavano su una sorta di cieca speranza che il gioco fosse divertente, 00:19:11.600 --> 00:19:15.450 che non è il modo più incoraggiante per creare un gioco. 00:19:15.450 --> 00:19:19.300 Ma ora sento di star costruendo su delle basi davvero solide 00:19:19.300 --> 00:19:23.620 e ora tutti gli altri aspetti - la storia, la musica, la grafica - 00:19:23.620 --> 00:19:29.200 possono essere costruiti sapendo che le fondamenta sottostanti sono solide. 00:19:29.200 --> 00:19:34.400 E così credo che sia questo il modo per iniziare a creare un gioco: 00:19:34.400 --> 00:19:36.280 costruire un prototipo. 00:19:36.280 --> 00:19:40.850 Resta solo una domanda: poi cosa diavolo faccio? 00:19:40.850 --> 00:19:42.920 Immagino che lo scopriremo la prossima volta, 00:19:42.920 --> 00:19:44.760 nel prossimo episodio di Developing. 00:19:44.760 --> 00:19:46.700 Grazie mille per la visione, 00:19:46.700 --> 00:19:50.130 e spero di rivedervi alla prossima tappa di questo viaggio. 00:19:50.130 --> 00:19:51.300 Arrivederci. 00:20:14.320 --> 00:20:18.320 L'idea mi è venuta da questo gioco, The Legend of Zelda: Oracle of Seasons. 00:20:19.701 --> 00:20:22.510 Dannazione. Da questo gioco. Oops. 00:20:25.120 --> 00:20:26.370 Da questo gioco. 00:20:26.931 --> 00:20:28.421 Mi è venuta da questo gioco. 00:20:28.421 --> 00:20:29.425 questo gioco. 00:20:29.492 --> 00:20:30.212 questo gioco. 00:20:30.212 --> 00:20:32.954 questo gioco: The Legend of Zelda: Oracle of Seasons. 00:20:32.954 --> 00:20:34.249 venuta da 00:20:34.474 --> 00:20:38.630 L'idea mi è venuta da questo gioco: The Legend of Zelda: Oracle of Seasons. 00:20:40.200 --> 00:20:41.450 Questa era ottima.