What is the most popular language in game server coding?
3 Answers
Rob Minson,
Views • Upvoted by Phil Darnowsky, I have learned a great many programming languages over the past 30-odd years
Totally depends on your definition of Game Server.
If it's a realtime multiplayer game like Call of Duty, League of Legends, etc... then each client will maintain a heavyweight, high frequency stateful connection to a single server, and will likely communicate via a raw socket interface with a terse binary protocol. In this domain it's likely that a systems level language like C or C++ would be 'most popular', though not necessarily most appropriate.
If it's an asynchronous multiplayer game or a game where the 'servers' are really just storing metagame state (e.g. for leaderboards, guild play, etc...) like Clash of Clans, Words With Friends, etc... then each client will communicate via a low-frequency stateless protocol like HTTP or Thrift to a cluster of application servers. In this case, which is much closer to traditional web application servers, it's most likely that a higher level language designed for maintainability and portability would be used. Again the 'most popular' in this domain might be Java or PHP, though they're not necessarily the most appropriate.
Another motivating factor in language choice might be the client and server sharing some portion of the game logic. This is very common in the synchronous realtime domain where most architectures have evolved from Tim Sweeney's Unreal Architecture and so use an authoritative server model where both the server and the client simultaneously execute the (C++) game logic. Another example of this might be an Android game sharing some core game logic between the client and server, both written in Java.
Although C++, Java and PHP are likely the most popular, most good developers would equally be capable of building such systems in more modern languages, such as Rust or Go for system-level options, or Scala, Erlang or C# for the higher level ones.
If it's a realtime multiplayer game like Call of Duty, League of Legends, etc... then each client will maintain a heavyweight, high frequency stateful connection to a single server, and will likely communicate via a raw socket interface with a terse binary protocol. In this domain it's likely that a systems level language like C or C++ would be 'most popular', though not necessarily most appropriate.
If it's an asynchronous multiplayer game or a game where the 'servers' are really just storing metagame state (e.g. for leaderboards, guild play, etc...) like Clash of Clans, Words With Friends, etc... then each client will communicate via a low-frequency stateless protocol like HTTP or Thrift to a cluster of application servers. In this case, which is much closer to traditional web application servers, it's most likely that a higher level language designed for maintainability and portability would be used. Again the 'most popular' in this domain might be Java or PHP, though they're not necessarily the most appropriate.
Another motivating factor in language choice might be the client and server sharing some portion of the game logic. This is very common in the synchronous realtime domain where most architectures have evolved from Tim Sweeney's Unreal Architecture and so use an authoritative server model where both the server and the client simultaneously execute the (C++) game logic. Another example of this might be an Android game sharing some core game logic between the client and server, both written in Java.
Although C++, Java and PHP are likely the most popular, most good developers would equally be capable of building such systems in more modern languages, such as Rust or Go for system-level options, or Scala, Erlang or C# for the higher level ones.
Many MMO games in Korea were using C++.
Anyway, C++ are strongly popular for PC MMO games.
- Game clients takes 90% of processing time for rendering in C++ so script language such as Lua is not painful. However, MMO or FPS games does not allow time delay C++ so even the garbage collection in game server are bothering. C++ is a good middle point between performance and productivity.
- Portions of data structures and code have to be shared between game server and client. So unifying to one programming language is convenient. Years ago, most games were written in C++ with Unreal Engine or Gambryo so game server followed C++ too.
Anyway, C++ are strongly popular for PC MMO games.
Really, there isn't enough of a population to answer this in any meaningful way.
A variety of languages have been used in the game community. Sometimes for good reasons. Sometimes for bad reasons. Most often really just because of personal preference of the server architect. These include:
C/C++,C#,Java,Javascript,Python, PHP, and probably some others I'm not thinking of right now...
A variety of languages have been used in the game community. Sometimes for good reasons. Sometimes for bad reasons. Most often really just because of personal preference of the server architect. These include:
C/C++,C#,Java,Javascript,Python, PHP, and probably some others I'm not thinking of right now...
Rust도 가상머신 없다면서
그걸로 만들면 어떄?
댓글 0