NeonArena

Un FPS arena 3D in stile cyberpunk, sviluppato per il browser con bot controllabili e modalità multiplayer, pensato per entrare in partita e iniziare a giocare senza installazioni.

JavaScript Three.js WebGL Multiplayer AI Bots

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.

Gioca a NeonArena →

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.