Volevo costruire un FPS
NeonArena nasce dalla stessa curiosità che ha portato alla creazione di Games Hub e Deadblock: volevo capire cosa significa davvero costruire uno sparatutto in prima persona.
Non soltanto creare una scena 3D con un'arma in mano, ma arrivare a una partita completa, con movimento, mira, armi, nemici, obiettivi e abbastanza ritmo da rendere il gioco immediatamente comprensibile.
Il browser rendeva l'esperimento ancora più interessante: se il gioco viene eseguito direttamente nella pagina, la distanza tra il giocatore e la partita praticamente scompare. Niente installazione, niente launcher: apri la pagina e sei già davanti all'arena.
Costruire un'arena in cui si possa entrare e giocare subito
L'obiettivo era creare un FPS abbastanza immediato da poter essere avviato anche durante una breve pausa, ma abbastanza completo da sembrare una vera partita. NeonArena doveva quindi avere:
- movimento in prima persona
- mira e shooting
- più armi
- bot con diversi livelli di difficoltà
- un obiettivo di partita semplice da capire
- movimento rapido e dash
- supporto al multiplayer
- un'interfaccia minima che non interrompesse il gioco
Il principio era lo stesso degli altri videogiochi che ho sviluppato: nessuna preparazione inutile. Scegli come vuoi giocare, entra nell'arena e inizia la partita.
Come funziona
NeonArena è un FPS arena in cui il giocatore entra in una partita e deve raggiungere per primo il numero di eliminazioni richiesto. La versione attuale permette di scegliere il nickname, il numero di bot, il livello di difficoltà e l'obiettivo della partita prima di entrare nell'arena.
Movimento e combattimento
Il giocatore utilizza WASD per muoversi e la barra spaziatrice per saltare. Il tasto Shift attiva il Neon Dash. Il tasto destro permette di entrare in mira ADS mentre i tasti numerici permettono di cambiare arma. Il reload viene gestito con R.
Bot
I bot permettono di giocare anche quando non ci sono altri giocatori. La partita consente di configurare il numero di avversari e il livello di difficoltà, creando esperienze diverse a seconda di come vuoi affrontare l'arena.
Obiettivo chiaro
Il sistema di partita è volutamente semplice: il primo giocatore a raggiungere il numero di kill previsto vince. Nella configurazione predefinita l'obiettivo è di 15 eliminazioni.
Multiplayer
NeonArena non è pensato soltanto per il gioco contro i bot: la versione attuale include anche una componente multiplayer e mostra lo stato dei giocatori e dei bot presenti nell'arena.
Un gioco in cui il client non è l'unico sistema da gestire
In un FPS single player puoi concentrarti soprattutto su rendering e game logic. Quando aggiungi il multiplayer, il problema cambia: il gioco deve ora gestire contemporaneamente:
Input → Game State → AI → Combat → Rendering
E, quando entrano più giocatori:
Client → Network → Shared State → Other Clients
Questo significa che un'azione come sparare o muoversi non è più soltanto un cambiamento visivo: deve essere rappresentata nello stato del gioco in modo coerente anche per gli altri partecipanti alla partita.
Questa è una delle differenze più interessanti rispetto a Deadblock: non basta costruire un buon FPS, bisogna costruire un FPS che continui a funzionare quando più entità devono condividere la stessa partita.
Le parti più difficili
1. Rendere credibile il movimento FPS
In un gioco in prima persona il movimento è una parte enorme dell'esperienza. Camera, velocità, salto, mira e dash devono reagire in modo prevedibile e immediato: se uno di questi elementi sembra lento o poco naturale, tutto il gioco ne risente.
2. Costruire bot che abbiano senso
Un bot deve essere abbastanza autonomo da rendere la partita interessante, ma non così imprevedibile da sembrare casuale. Deve poter individuare il giocatore, muoversi nell'ambiente, attaccare e reagire alla situazione, con una difficoltà modificabile per creare esperienze diverse.
3. Far convivere AI e rendering
Ogni frame non deve soltanto renderizzare la scena: deve anche aggiornare il comportamento dei bot, la posizione degli oggetti, il combattimento e lo stato della partita. Quando aumentano gli avversari, aumenta anche il lavoro da eseguire: la sfida è mantenere il gameplay reattivo mentre il mondo di gioco diventa più complesso.
4. Sincronizzare il multiplayer
Con più giocatori, la simulazione locale non è sufficiente. Posizioni, azioni e stato della partita devono essere condivisi in modo coerente, introducendo sfide legate alla gestione dello stato condiviso e alla rete.
5. Mantenere semplice l'esperienza
Nonostante la complessità tecnica dietro le quinte, il giocatore non deve percepirla: la configurazione iniziale è ridotta a poche scelte e il percorso verso la partita è diretto, permettendo di entrare e giocare subito.
Perché ho scelto questo approccio
1. Il browser come piattaforma di gioco
Il browser permette di distribuire il gioco in modo estremamente semplice: il giocatore apre il link e può iniziare senza installare un client dedicato. Per un progetto sperimentale questo rende molto più facile far provare il risultato ad altre persone.
2. Bot e multiplayer nello stesso gioco
I bot risolvono un problema pratico: se il gioco dipendesse sempre dalla presenza di altri giocatori, sarebbe difficile provarlo in qualsiasi momento. Avere avversari controllati dal gioco permette di entrare comunque in partita, mentre il multiplayer aggiunge la parte più interessante dal punto di vista tecnico.
3. Match brevi e obiettivo semplice
Il sistema di kill rende la partita immediatamente leggibile: sai cosa devi fare, quando stai vincendo e quando hai perso. Questo rende il gioco adatto anche a sessioni brevi senza richiedere un tutorial complesso.
4. Mobilità e ritmo
Il dash e il movimento rapido spostano il gameplay verso un'arena più dinamica invece di un FPS lento basato soltanto sulla mira: volevo che il movimento fosse parte integrante del combattimento.
Un FPS browser che può diventare una vera partita
NeonArena è nato come esperimento sullo sviluppo di uno sparatutto 3D nel browser. Il risultato è diventato un gioco in cui convivono movimento in prima persona, armi, bot configurabili, difficoltà, dash, obiettivi di partita e multiplayer.
La cosa che considero più importante è però la semplicità con cui si arriva al gioco: scegli come vuoi giocare, entra nell'arena e inizia a sparare.
Oltre il browser game
NeonArena mi ha portato a lavorare su un problema più complesso rispetto a un normale gioco single player. Con Deadblock potevo concentrarmi soprattutto sull'esperienza locale; qui ho dovuto ragionare anche su bot, stato condiviso, multiplayer e sincronizzazione, comprendendo quanto cambi la progettazione di un gioco quando la rete entra direttamente nel gameplay.
La parte più interessante è stata costruire un'esperienza che sembri semplice dal punto di vista del giocatore, anche se dietro deve coordinare rendering, input, AI, combattimento e multiplayer nello stesso momento.