Il Character Controller

Iniziamo subito con un parolaccia oggi eh?:-)

Akhaan soshor cari althaziani!

Questa volta facciamo una deviazione, prima che esca la seconda parte dell’articolo che ho iniziato la volta scorsa sulla direzione artistica (e che potete leggere qui), e parliamo dell’aspetto principe in un gioco platform: il character controller. Prima di tutto però, per i meno esperti, chiariamo cos’è un gioco platform! “Platform” (parola difficilissima da tradurre dall’inglese che significa “piattaforma”) è una definizione di gioco ormai un po’ antica, dove i personaggi che si muovevano in su, giù, destra o sinistra, potevano letteralmente saltare su piattaforme e procedere nei livelli. Se avete mai giocato il classico Super Mario Bros del 1985, sapete di cosa sto parlando. Per gli altri, andatevelo subito a giocare perchè vi siete persi un gioiello!

Fatto? Ok, ora torniamo a noi, il character controller. Si, è una parolaccia, e vi assicuro che non lo è solo per voi. Il character controller è quella parte di codice che permette al personaggio controllato dal giocatore di muoversi. Capirete benissimo da soli dunque quanto in un gioco di tipo platform questa parte di programmazione sia importante; senza un buon character controller, il gioco diventa frustrante, poco divertente, a volte persino ingiocabile (e di esempi che si sono accumulati nel tempo ce ne sono a valanghe sulla rete!).

Gli sviluppatori indipendenti oggi hanno due possibili alternative: fare come ai vecchi tempi, o come fanno gli studi più importanti anche oggi, ovvero “fare tutto in casa“, oppure comprare dei “pezzi” di codice già fatti ed inserirli (tecnicamente, “implementarli”) nel proprio gioco.

Noi, da bravi folli, abbiamo optato come anche per quasi tutto il resto, per scriverlo da zero. Ci abbiamo messo un bel po’ per sviluppare un character controller che potesse permettervi di controllare il personaggio senza frustrazioni, e facendo in modo che facesse quello che volete, quando lo volete. Se pensate che programmare un semplice salto sia….semplice, beh purtroppo vi sbagliate. Come ci sbagliavamo noi! Il salto, l’aspetto fondamentale in gioco platform, è decisamente la parte più delicata (e complessa!) da scrivere in un character controller, perchè prende in considerazione molti più parametri del semplice muovere un oggetto in alto e poi in basso. Il personaggio deve essere leggermente controllabile durante la fase aerea del salto. Ma non solo. Quanto dura un salto? Quanto accelera il personaggio mentre salta? Quanto velocemente riatterra? Come si comporta se si viene da uno stato di “idle” (fermi in piedi) o se si salta mentre si corre? E se sto finendo di scivolare e poi salto? Inoltre, il salto è suddiviso in almeno 3 sotto stadi: salto in alto, salto in aria, salto in basso. Ma possono esserci più stadi di questi, a seconda del tipo di implementazione scelta. Ed ancora, tutto questo deve essere perfettamente sincronizzato con le animazioni del salto! Insomma, un vero casino.

Il character controller, oltre a muovere un oggetto che nel gioco è invisibile, e che è il “vero” personaggio letto dal codice, deve anche sincronizzare i comandi con un’altra cosa brutta chiamata “macchina a stati”, che si occupa di eseguire le animazioni del modello 3D che rappresenta il personaggio.

Dunque il character controller fa due lavori contemporaneamente: 1) Muove un oggetto matematico, che rappresenta il personaggio del giocatore e che non si vede a schermo 2) Comanda la macchina a stati in modo che questa animi il modello 3D del personaggio nel modo e momento giusti (basta un frame per far si che il giocatore noti in disallineamento tra i comandi e le animazioni!).

E’ importante avere un character controller scritto in casa, perché permette la massima flessibilità ed adattabilità al proprio titolo, oltre ad avere il controllo completo di tutti i parametri che servono a far si che il personaggio si comporti proprio come si vuole.

Il nostro character controller ci permette di agire con piccoli ritocchi sui parametri per calibrare la velocità di movimento, l’altezza del salto, le accelerazioni, le gravità in diverse situazioni, le azioni extra come la scivolata, e molto altro.

Per chiudere, vorrei dirvi che abbiamo provato a raggiungere un risultato più simile possibile ai giochi migliori, studiandone i comportamenti a fondo. Abbiamo favorito l’immediatezza di gioco rispetto alla fluidità e fisicità di bellissimi titoli come Dark Souls, proprio a causa della natura primaria del nostro gioco, platform arcade. Fino ad ora, i giocatori che hanno provato il nuovo character controller presente a Milan Games Week 2018 sono rimasti molto soddisfatti di come si comandava il personaggio. Speriamo di aver raggiunto un livello di giocabilità che vi faccia divertire, ce l’abbiamo messa davvero tutta.

Alla prossima!

Andrea

Leave a Comment

Latest Posts
Lo Stum! e lo Stringram
  • 25 febbraio, 2019
Il Character Controller
  • 19 febbraio, 2019
Direzione artistica (parte 1)
Vogan e Selius
  • 25 gennaio, 2019
Lo Xenostain
  • 10 gennaio, 2019
Newsletter
Login
Loading...
Sign Up

New membership are not allowed.

Loading...