Articolo originale: https://www.freecodecamp.org/news/learn-to-code-rpg/

Ciao a tutti – qui Lynn. È un mio grande piacere annunciare il lancio di Learn to Code RPG, un progetto che abbiamo sviluppato in segreto negli ultimi otto mesi.

Learn to Code RPG è un videogioco, una visual novel interattiva in cui imparerai a programmare, stringerai amicizie nell'industria tech e seguirai il tuo sogno di diventare uno sviluppatore. 🎯

Le caratteristiche del gioco:

  • Ore di gioco 🎮
  • Grafica e musica originali 🎨
  • Più di 600 domande di informatica a quiz 📚
  • Più di 50 Easter Egg da scoprire 🚀
  • 6 finali diversi 👀
  • Personaggi simpatici e un adorabile gattino 🐱
  • Minigiochi! 👾

Questa è la prima versione e speriamo di aggiungere altri contenuti in futuro. Le prossime versioni avranno più personaggi, sceneggiature, missioni secondarie, disegni, musica e ovviamente minigiochi (che ne dici di quiz in modalità di sopravvivenza e speedrunning?). Stiamo anche pianificando di localizzare il gioco in diverse lingue. 🌎 Non ci poniamo limiti. ✈️

Puoi scaricarlo da itch.io e giocare gratuitamente.

Se vuoi imparare di più sul gioco in sé, il processo di sviluppo e via dicendo, continua a leggere. Questo è devlog molto visivo (il nostro gioco è una visual novel per una ragione) e sono sicuro che ti piacerà.

img_1-1
Learn to Code RPG – un gioco di ruolo in cui impari a programmare

Dove tutto è iniziato

Partiamo con un po' di background.

Ho sempre amato i videogiochi con una storia ben curata fin da quando ero piccola. 🧒🏻

Il mio interesse per lo sviluppo di giochi mi ha inspirato a laurearmi in Informatica al college. Nel giugno 2021, mi sono laureata all'Università di Chicago con una laurea congiunta in Informatica.

Nel luglio 2021, mentre stavo pianificando di trasferirmi a San Francisco per iniziare la mia carriera da software developer, Quincy mi ha contattata parlandomi dell'idea di questo gioco.

Un gioco in cui impari a programmare, conosci amici, esplori la cultura tech e alla fine entri nell'industria tech. 🎯

Anche se mi diletto di motori per sviluppo di videogiochi come Unity e Ren'Py e ho creato dei piccoli progetti per passione nel mio tempo libero, per me questa era la prima volta in cui creare un gioco dalle fondamenta, con un team formato (fondamentalmente) da una persona. Tutto questo per dire che mi sono sentita un po' sopraffatta da questa opportunità di realizzare il mio sogno di sviluppare videogiochi. 🤯

Non potevo lasciarmi sfuggire questa occasione! E quindi ho accettato e mi ci sono tuffata dentro.

Screen-Shot-2021-12-18-at-12.56.15
Chi sono mai per non accettare un'offerta da CupcakeCPU? 🧁

Come creare un gioco in quattro mesi

La storia

L'idea della storia è stata piuttosto chiara fin dal principio: il/la protagonista prende la decisione di imparare a programmare, affronta ostacoli durante il suo percorso, incontra alleati e mentori, e alla fine ottiene il grande premio: uno splendido lavoro da sviluppatore.

Ho iniziato con il classico modello di scrittura del viaggio dell'eroe, o del monomito in 17 fasi.

Da quando ho iniziato a lavorare sul gioco, ho desiderato più e più volte di aver frequentato almeno un corso di scrittura creativa al college. 😅

Ecco un assaggio della bozza del primo e del terzo dei 17 stadi, direttamente dal mio Google Doc:

1. The Call to Adventure

the first stage of the hero’s journey often presents to the audience the current (and sometimes rather mundane) existence of the protagonist.

Main Character (abbreviated MC) graduates and moves back with her parents. She isn’t really sure what her career is going to look like so she spends her days working gigs and browsing job openings. She has applied to some sales and consulting jobs but they turned her down.

3. Supernatural Aid

in this stage of the journey, the protagonist seeks out a sage-like figure and possibly gains a special item or skill in the process.

Annika, MC’s best friend in college, calls MC one day. Annika is excited because she just got an entry-level web dev role, after spending 6 months to brush up her rusty CS skills (from auditing a few CS classes in college). Annika asks about how MC is doing; is delighted that MC is also considering learning to code; and encourages MC that she can do it if she has the right study method and resources.
Annika introduces MC to the resource she uses.

I personaggi

Considerando il protagonista che viene controllato dal giocatore, abbiamo quattro personaggi principali nel gioco:

  • La protagonista, Lydia, che ha appena terminato il college ( nelle prossime versioni potremmo rendere disponibili diversi personaggi tra cui scegliere)
  • Annika, la migliore amica della protagonista
  • Marco, che diventa il mentore della protagonista
  • Layla, l'amica che aiuta la protagonista con il suo primo lavoro da sviluppatore

Ho iniziato a progettare i personaggi raccogliendo immagini su Pinterest. Poi io e Quincy abbiamo commissionato a un artista online la creazione degli sprite dei personaggi delle immagini splash.

Nelle immagini qui sotto, puoi vedere affiancati i personaggi a cui ci siamo ispirati da Pinterest (il copyright appartiene agli autori originali) e il design finale.

Untitled265_20211217211947
Lydia, disegni di ispirazione + scheda del personaggio finale
Untitled265_20211217212148
Annika, disegni di ispirazione + scheda del personaggio finale
Untitled265_20211217211928
Layla, disegni di ispirazione + scheda del personaggio finale
Untitled265_20211217211832
Marco, disegni di ispirazione + scheda del personaggio finale

Adesso che abbiamo il cast principale, cosa potremmo aggiungere per dare più profondità al personaggio di Lydia e per non farla stare da sola nella sua camera a macinare codice tutto il giorno? Magari un gatto? 🐱

E qui arriva Mint, il gatto di Lydia (disegnato da me, da artista improvvisata, così da far concentrare il nostro artista sui personaggi. Il disegno digitale 🎨 è il mio secondo grande hobby dopo lo sviluppo di giochi).

mint
Mint saluta!

La grafica

Con i personaggi terminati, potresti pensare che si conclude il grosso della grafica. Non così in fretta! Una visual novel è, come suggerisce il nome, visiva, e quindi ha bisogno di un sacco di altra grafica per raccontare una storia accattivante.

Ad esempio, nell'immagine qui sotto, oltre agli sprite del personaggio, ci sono l'immagine di sfondo e alcuni componenti dell'interfaccia grafica come la casella di testo.

Screen-Shot-2021-12-18-at-12.40.00
Componenti della grafica di base: GUI, sprite dei personaggi e sfondo

Per creare le immagini di sfondo, ho applicato dei filtri con effetti speciali a immagini di stock per dare l'idea dei colori ad acquerello. In questo modo, lo schema dei colori dei nostri personaggi si combina perfettamente a quello dello sfondo.

Untitled266_20211217213638
In alto: immagine di stock. In basso: immagine con filtri.

Per illustrare lo scorrere del tempo durante un giorno, ho cambiato l'illuminazione delle immagini si sfondo manipolando i colori programmaticamente (dai un'occhiata al nostro repository GitHub se sei interessato ai dettagli di implementazione).

color
Quattro modalità di illuminazione

Per motivarmi ogni volta che sentivo di procrastinare, ho convogliato le mie energie creative e realizzato diversi elementi che appaiono durante il gioco. 🤣

Ed ecco come mai nel gioco abbiamo biscotti, toast, pizza, pollo fritto e altro ancora!

ezgif.com-gif-maker-7-
Gnam gnam!

Il codice

Ho usato il motore grafico con cui ho più familiarità, il motore per visual novel Ren'Py. Ho riutilizzato molto del codice dei miei vecchi progetti, ad esempio per far sbattere le palpebre ai personaggi e per un minigioco di ritmo.

blink2
Personaggi che sbattono le palpebre 😉
Screen-Shot-2021-12-17-at-19.33.39-1
Minigioco di ritmo: riesci a ottenere il punteggio perfetto?

Ho anche incorporato del codice Ren'Py open-source come il codice per il movimento dei tag di testo e quello per le icone feather nel testo.

awesome
Tag con testo mobile, che può essere disabilitato per ragioni di accessibilità
Screen-Shot-2021-12-17-at-22.05.37
Le icone feather sono fantastiche per creare interfacce grafiche semplici e vivaci

Mi trattengo dal tuffarmi nel codebase (perché poi non saprei quando fermarmi 😆). Tanto per avere un'idea della quantità di codice sia per la logica che per l'interfaccia grafica, dai un'occhiata al report del linter di Ren'Py qui sotto.

Fiuuu... Possiamo tornare a qualcosa di più visivo adesso?

Ren'Py 7.4.8.1895 lint report, generated at: Fri Dec 17 22:11:43 2021
Statistics:
The game contains 1,335 dialogue blocks, containing 15,390 words and 85,105 characters, for an average of 11.5 words and 64 characters per block.
The game contains 40 menus, 20 images, and 49 screens.

L'indicatore dei progressi

Persino un progetto di una sola persona ha bisogno di un project manager, quindi perché non essere il manager di me stessa?

Ho usato Trello per tracciare i miei progressi e collaborare con gli altri. Ho anche creato un codice colore per le diverse categorie di attività come programmare, UI/UX, scrittura e via dicendo, come mostrato nell'immagine qui sotto nella prima scheda della colonna Backlog.

E wow, non è una bella lista di cose fatte? 😤

trello
My Trello board

Tutto quello che era nelle colonne TODO e Doing è finito in Done, e questo ci porta a...

La mia conclusione

Urrà! Dopo otto mesi (quattro per lavorare sulle idee e quattro di intensa programmazione, scrittura e creazione artistica), ecco a voi Learn to Code RPG. 🥳

In quattro mesi nel gioco, Lydia è passata da essere un aspirante ingegnere a un ingegnere con un lavoro da sviluppatore. 🎯

In quattro mesi nel mondo reale, sono passata da essere una aspirante game developer a essere una game developer che ha davvero creato un gioco. 👾

Naturalmente adesso arriva la domanda da un milione di dollari: qual è la mia conclusione dopo tutto questo processo?

Come ogni processo creativo, lo sviluppo di videogiochi non è semplice. Sono estremamente fortunata ad avere un team che mi supporta: il nostra artista Noa che ha creato i disegni dei personaggi, Quincy che ha creato della fantastica musica originale e i revisori e playtester delle staff di freeCodeCamp.

Screen-Shot-2021-12-17-at-22.26.07
La mia attività su GitHub permette di distinguere i giorni in cui mi sono occupata del codice e i giorni in cui ho raccolto le idee o disegnato 🤪

Sono cresciuta in termini di abilità tecniche (trovando modi creativi per costruire le cose in Ren'Py), non tecniche (gestendo da me il progetto) e altro (gestendo le attese, superando la sindrome dell'impostore e trovando l'equilibrio tra vita e lavoro).

Screen-Shot-2021-12-18-at-12.33.25
Sai cos'è la sindrome dell'impostore? 👻 Io sì, fidati!

Non è stato assolutamente un percorso in discesa, ma il risultato vale ogni secondo di duro lavoro. E soprattutto, non vedo l'ora che tu giochi al videogame dando dei feedback, in modo da migliorare il gioco nelle prossime versioni.

Spero che ti piaccia giocare a Learn to Code RPG tanto quanto mi sono divertita a crearlo! 🙌

Puoi trovare il gioco su itch.io qui:

E7o8zJ

E qui c'è il repository GitHub con tutto il codice.

Puoi anche guardare il trailer su YouTube e condividerlo con i tuoi amici:

Vuoi vedere com'è il gioco? Dai un'occhiata a questo video.

Ed ecco il press kit ufficiale del gioco.

Se sei interessato a creare un videogioco visual novel, dai un'occhiata a questo mio articolo:

favicon