Posso fare un gioco per cellulari come Clash of Clans usando JavaScript?
Sì e no. È possibile, ma JavaScript da solo sarebbe un approccio molto difficile.
Clash of Clans (CoC) ha una serie di problemi molto difficili. Ci sono molti strumenti e tecniche che sarebbe meglio combinare se si vuole davvero costruire un CoC. Detto questo, se si facesse una versione locale per due giocatori sarebbe molto più facile che se si facesse quello che fa Supercell: milioni di utenti concorrenti.
Il primo problema sono le truppe, le costruzioni e i paesaggi. Usare un motore di gioco renderà questo molto più facile che codificare direttamente in qualsiasi linguaggio. Strettamente collegato è il fatto che CoC funziona su più di un sistema operativo mobile. Un motore di gioco cross platform sarebbe meglio di qualsiasi motore di gioco a piattaforma singola. Uno dei più usati è Unity. Per usarlo, sarà necessario C#, dato che presto termineranno il loro supporto per JavaScript. Ci sono motori di gioco basati su JavaScrpt.
Il prossimo problema è il "backend", i server che mantengono tutti i dati dei giocatori. Gestiscono anche il "matchmaking", scegliendo i giocatori che si scontrano tra loro. Questo è un problema di database di grandi dimensioni, un problema di "adattamento" del matchmaking. I grandi database richiedono di considerare molte cose per mantenerli veloci (specialmente quando sono distribuiti in tutto il mondo come CoC.) I problemi di matchmaking possono facilmente diventare NP-completi - Wikipedia in difficoltà se non si sta attenti a come li si ingegnerizza. Questi due problemi possono essere semplificati notevolmente utilizzando un backend mobile come servizio - Wikipedia. Unity ne ha uno che è più nuovo di alcuni degli altri. Supercell probabilmente ha scritto il proprio - non in JavaScript. Anche con un BaaS utilizzarlo bene non è banale.
Una parte molto importante del backend è più facile in CoC che in Clash Royale (CR). In CoC le battaglie possono avvenire in modo asincrono quindi una connessione ad alta velocità e bassa latenza non è così critica come in CR dove i giocatori combattono in tempo reale richiedendo una connessione sincronizzata.
Ora arriva l'intelligenza artificiale (AI), anche se in termini di AI le truppe di CoC non hanno esigenze AI veramente complesse. Tuttavia ci sono molti tipi di truppe che hanno bisogno di un minimo di cervello.
Infine c'è l'equilibrio. Questo non è un problema di tecnologia di codifica, ma è difficile. Ottenere che tutte le truppe e le cose abbiano un insieme ben bilanciato di attributi è difficile! Supercell raccoglie una montagna di dati dalle partite giocate ("analytics") per aiutarli a regolare e modificare il bilanciamento nel tempo. Unity e molti altri offrono strumenti analitici per aiutare.
Quindi sì, in teoria si potrebbe essere in grado di scrivere CoC in JavaScript, ma sarebbe un compito talmente mostruoso che potrebbe richiedere una vita intera. No, per scrivere praticamente un gioco come CoC è necessario utilizzare molti strumenti, tecniche e tecnologie. In questo processo avrete probabilmente bisogno di usare un linguaggio principale per il motore di gioco che sceglierete. Potreste aver bisogno di imparare almeno piccole parti di altri linguaggi a supporto di uno strumento o servizio che meglio si adatta alle esigenze del vostro gioco.
Articoli simili
- Quale di questi giochi per cellulari è il migliore e perché, Marvel Contest of Champions, Clash Royale o Clash of Clans?
- Giochi come Clash Royale e Clash of Clans diventano noiosi dopo averci giocato per qualche tempo?
- Che linguaggio ha usato Supercell per costruire Clash Royale e Clash of Clans?
- Clash Royale è davvero meglio di Clash Of Clans?