Qual è il linguaggio più popolare nella codifica dei server di gioco?
Totalmente dipende dalla vostra definizione di Game Server.
Se si tratta di un gioco multiplayer in tempo reale come Call of Duty, League of Legends, ecc... allora ogni client manterrà una connessione stateful pesante e ad alta frequenza ad un singolo server, e probabilmente comunicherà tramite un'interfaccia socket grezza con un protocollo binario terso. In questo ambito è probabile che un linguaggio a livello di sistema come il C o il C++ sia il più popolare, anche se non necessariamente il più appropriato.
Se si tratta di un gioco multiplayer asincrono o di un gioco in cui i 'server'sono in realtà solo la memorizzazione dello stato del metagame (es.) come Clash of Clans, Words With Friends, ecc... allora ogni client comunicherà tramite un protocollo stateless a bassa frequenza come HTTP o Thrift ad un cluster di server applicativi. In questo caso, che è molto più vicino ai tradizionali server di applicazioni web, è molto probabile che venga utilizzato un linguaggio di livello superiore progettato per la manutenzione e la portabilità. Ancora una volta il 'più popolare' in questo dominio potrebbe essere Java o PHP, anche se non sono necessariamente i più appropriati.
Un altro fattore motivante nella scelta del linguaggio potrebbe essere il client e il server che condividono una parte della logica di gioco. Questo è molto comune nel dominio sincrono in tempo reale dove la maggior parte delle architetture si sono evolute dall'architettura Unreal di Tim Sweeney e quindi usano un modello di server autorevole dove sia il server che il client eseguono simultaneamente la logica di gioco (C++). Un altro esempio di questo potrebbe essere un gioco per Android che condivide alcune logiche di gioco fondamentali tra il client e il server, entrambi scritti in Java.
Anche se C++, Java e PHP sono probabilmente i più popolari, la maggior parte dei buoni sviluppatori sarebbe ugualmente capace di costruire tali sistemi in linguaggi più moderni, come Rust o Go per le opzioni a livello di sistema, o Scala, Erlang o C# per quelle di livello superiore.
Articoli simili
- Qual è la differenza tra linguaggio macchina, linguaggio assembly e linguaggio di alto livello nei computer?
- Qual è il linguaggio di codifica più facile per fare un gioco in 3D?
- Quanto tempo ci vorrebbe per imparare a codificare un gioco come Clash of Clans (con Unity C#) come un principiante nella codifica?
- Qual è la differenza tra un linguaggio assembly e un linguaggio ad alto livello?