Game client

Last updated
A computer network diagram indicating what happens to the server and the clients after an individual client send information to the server Game client server diagram.png
A computer network diagram indicating what happens to the server and the clients after an individual client send information to the server

A game client is a network client that connects an individual user to the main game server, used mainly in multiplayer video games. It collects data such as score, player status, position and movement from a single player and send it to the game server, which allows the server to collect each individual's data and show every player in game, [1] whether it is an arena game on a smaller scale or a massive game with thousands of players on the same map. Even though the game server displays each player's information for every player in a game, players still have their own unique perspective from the information collected by the game client, so that every player's perspective of the game is different, even though the world for every player is the same. The game client also allows the information sharing among users. An example would be item exchange in many MMORPG games where a player exchange an item he/she doesn't want for an item he/she wants, the game clients interconnect with each other and allows the sharing of information, in this exchanging items. Since many games requires a centralized space for players to gather and a way for users to exchange their information, many game clients are a hybrid of client-server and peer-to-peer application structures.

Contents

History

The World Wide Web was born on a NeXTCube with a 256Mhz cpu, 2GB of disk, and a gray scale monitor running NeXTSTEP OS. Sir Tim Berners-Lee put the first web page online on August 6, 1991 while working for CERN in Geneva Switzerland. [2] Online gaming started in the early seventies. At that time Dial-up bulletin boards provided players with a way of playing games over the internet. In the 1990s, new technologies enabled gaming sites to pop up all over the internet. [3] The client-server system provided online gaming a way to function on a large scale.

Functions

A game client has 4 primary functions: Receive inputs, Analyzes data, Gives feedback, Adjust system

Receives input

A game client receives input from an individual user. In an FPS game, for example, a player does many different actions such as move, shoot and communicate. Each of them will require the player to control the input devices. After receiving those inputs, the game client will send it back to the server. [4]

Analyzes data

The game client decodes and displays information that makes up the game world, including objects stored in the computer and action results made by players, and then translate these information onto the user interface and the output devices.

Gives feedback

The server process the information and send it back to the client. The client will display the processed information to the player according to the player's point of view, so that each player will have a different perspective of the screen due to their private clients.

Adjust system

The client will also detect any changes made according to the players during the gaming session, including layouts and settings. Since a game is real-time and players are constantly sending actions, the client is constantly processing information and adjusting the system accordingly.

Example application

Here is an example of how the game client works, using the game League of Legends. In this example, a player named 7Turtle7 is using the character Kha'Zix to attack a neutral character known as the "Red Brambleback". Multiple things are happening from the client's perspective.

1. The client pulls data stored in the computer archives. That includes the player's statistics, map objects, mobs, artworks, character behaviors and other static data to create the player's surroundings.

2. 7Turtle7 attempts to attack Red Brambleback. The client send data of 7Turtle7's and Red Brambleback's data on statistics like position, health, mana, damage, defense and many other data to the server and allows the server to calculate the new world state after 7Turtle7 strikes Red Brambleback. 3. The server process the data and send it back to all other player's clients, informing what 7Turtle7 just did and how the client should give feedback on it. After 7Turtle7's client receives this information, it creates the output and sends it back to 7Turtle7. In this example, we can see that a red number indicating damage done on Red Brambleback appeared and a 3 appeared on the abilities panel indicating the cool-down time of the ability 7Turtle7 just used. Character behaviors, in this case the Red Brambleback, also changes due to the attack. It now becomes a hostile create that will attack 7Turtle7 according to in-game programming since 7Turtle7 attacked the Red Brambleback first. Artwork outputs such as the attack animation, health bar and mana bar also changes.

4. The other game clients are also aware of the attack made by 7Turtle7, but depending on their perspective, their clients determine whether this information is displayed to them or not. A player's client on the opposing team, for example, is aware of the attack, but it would not display the changes to that player since the game sets it so that one has to discover 7Turtle7 doing such a move, only then it will be displayed on their outputs.

5. Even though the client sends and receives data from an individual's perspective, there is data that is shared with everyone in a game or doesn't share at all. Take the top-right corner of 7Turtle7's perspective, for example, there is a time indicator, and that time is the same for everyone inside the game. There is also the FPS and Ping indicator, which is exclusive to 7Turtle7 and not shared through the client.

Usage

Technology adoption

To many game developers, adopting technology is the key to their engineering. Standardized platforms such as HTML 5 and JavaScript can allow media integrations and deeper developments. A game client provides the ability to do so. [5]

User experience

Balancing the game is a big issue for the developers. A large number of users on their client connected to the server could cause high resource usage, but at the same time the users need to stay connected to the game. Game clients will provide this type information to a centralized server.

Employees cooperation

As the game develops, new feature will be added. Instead of a small, cohesive team that doesn't require much cooperation at the start of a game, a developed game usually has several departments working together to figure out a solution, and that requires all departments to work in harmony.

Updates

Sometimes the game development team creates new contents or fix previous bugs, which means they need to let every player's clients to synchronize with the server. One way a game developer can fix bugs or add new contents to a game is through patches. The digital distribution platform will alert the user that there is an update is available, and client apply those update patches for the users automatically to ensure every user has the same perspective of the game content when changes have been made. [6] Some examples of a digital distribution platforms include steam, origin and battle.net, which provide the same services when it comes to game clients.

See also

Related Research Articles

<span class="mw-page-title-main">Client–server model</span> Distributed application structure in computing

The client–server model is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients. Often clients and servers communicate over a computer network on separate hardware, but both client and server may reside in the same system. A server host runs one or more server programs, which share their resources with clients. A client usually does not share any of its resources, but it requests content or service from a server. Clients, therefore, initiate communication sessions with servers, which await incoming requests. Examples of computer applications that use the client–server model are email, network printing, and the World Wide Web.

In computing, Common Gateway Interface (CGI) is an interface specification that enables web servers to execute an external program to process HTTP/S user requests.

A massively multiplayer online role-playing game (MMORPG) is a video game that combines aspects of a role-playing video game and a massively multiplayer online game.

<span class="mw-page-title-main">Server (computing)</span> Computer to access a central resource or service on a network

In computing, a server is a piece of computer hardware or software that provides functionality for other programs or devices, called "clients". This architecture is called the client–server model. Servers can provide various functionalities, often called "services", such as sharing data or resources among multiple clients or performing computations for a client. A single server can serve multiple clients, and a single client can use multiple servers. A client process may run on the same device or may connect over a network to a server on a different device. Typical servers are database servers, file servers, mail servers, print servers, web servers, game servers, and application servers.

<span class="mw-page-title-main">Windowing system</span> Software that manages separately different parts of display screens

In computing, a windowing system is a software suite that manages separately different parts of display screens. It is a type of graphical user interface (GUI) which implements the WIMP paradigm for a user interface.

<span class="mw-page-title-main">Cross-site scripting</span> Computer security vulnerability

Cross-site scripting (XSS) is a type of security vulnerability that can be found in some web applications. XSS attacks enable attackers to inject client-side scripts into web pages viewed by other users. A cross-site scripting vulnerability may be used by attackers to bypass access controls such as the same-origin policy. Cross-site scripting carried out on websites accounted for roughly 84% of all security vulnerabilities documented by Symantec up until 2007. XSS effects vary in range from petty nuisance to significant security risk, depending on the sensitivity of the data handled by the vulnerable site and the nature of any security mitigation implemented by the site's owner network.

<span class="mw-page-title-main">Model–view–controller</span> Software design pattern

Model–view–controller (MVC) is a software design pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements. This is done to separate internal representations of information from the ways information is presented to and accepted from the user.

A multiplayer video game is a video game in which more than one person can play in the same game environment at the same time, either locally on the same computing system, on different computing systems via a local area network, or via a wide area network, most commonly the Internet. Multiplayer games usually require players to share a single game system or use networking technology to play together over a greater distance; players may compete against one or more human contestants, work cooperatively with a human partner to achieve a common goal, or supervise other players' activity. Due to multiplayer games allowing players to interact with other individuals, they provide an element of social communication absent from single-player games.

<i>World of Warcraft</i> 2004 video game

World of Warcraft (WoW) is a massively multiplayer online role-playing game (MMORPG) released in 2004 by Blizzard Entertainment. Set in the Warcraft fantasy universe, World of Warcraft takes place within the world of Azeroth, approximately four years after the events of the previous game in the series, Warcraft III: The Frozen Throne. The game was announced in 2001, and was released for the 10th anniversary of the Warcraft franchise on November 23, 2004. Since launch, World of Warcraft has had nine major expansion packs: The Burning Crusade (2007), Wrath of the Lich King (2008), Cataclysm (2010), Mists of Pandaria (2012), Warlords of Draenor (2014), Legion (2016), Battle for Azeroth (2018), Shadowlands (2020), and Dragonflight (2022).

Client-side refers to operations that are performed by the client in a client–server relationship in a computer network.

<span class="mw-page-title-main">Cheating in online games</span> Practice of subverting video game rules or mechanics to gain an unfair advantage

Cheating in online games is the subversion of the rules or mechanics of online video games to gain an unfair advantage over other players, generally with the use of third-party software. What constitutes cheating is dependent on the game in question, its rules, and consensus opinion as to whether a particular activity is considered to be cheating.

End-to-end encryption (E2EE) is a private communication system in which only communicating users can participate. As such, no one, including the communication system provider, telecom providers, Internet providers or malicious actors, can access the cryptographic keys needed to converse.

<span class="mw-page-title-main">Code injection</span> Computer bug exploit caused by invalid data

Code injection is the exploitation of a computer bug that is caused by processing invalid data. The injection is used by an attacker to introduce code into a vulnerable computer program and change the course of execution. The result of successful code injection can be disastrous, for example, by allowing computer viruses or computer worms to propagate.

In computing, the X Window System is a network-transparent windowing system for bitmap displays. This article details the protocols and technical structure of X11.

A webform, web form or HTML form on a web page allows a user to enter data that is sent to a server for processing. Forms can resemble paper or database forms because web users fill out the forms using checkboxes, radio buttons, or text fields. For example, forms can be used to enter shipping or credit card data to order a product, or can be used to retrieve search results from a search engine.

The X Window System core protocol is the base protocol of the X Window System, which is a networked windowing system for bitmap displays used to build graphical user interfaces on Unix, Unix-like, and other operating systems. The X Window System is based on a client–server model: a single server controls the input/output hardware, such as the screen, the keyboard, and the mouse; all application programs act as clients, interacting with the user and with the other clients via the server. This interaction is regulated by the X Window System core protocol. Other protocols related to the X Window System exist, both built at the top of the X Window System core protocol or as separate protocols.

<span class="mw-page-title-main">HTTP cookie</span> Small pieces of data stored by a web browser while on a website

HTTP cookies are small blocks of data created by a web server while a user is browsing a website and placed on the user's computer or other device by the user's web browser. Cookies are placed on the device used to access a website, and more than one cookie may be placed on a user's device during a session.

<span class="mw-page-title-main">BOINC client–server technology</span> BOINC volunteer computing client–server structure

BOINC client–server technology refers to the model under which BOINC works. The BOINC framework consists of two layers which operate under the client–server architecture. Once the BOINC software is installed in a machine, the server starts sending tasks to the client. The operations are performed client-side and the results are uploaded to the server-side.

<span class="mw-page-title-main">Interaction technique</span>

An interaction technique, user interface technique or input technique is a combination of hardware and software elements that provides a way for computer users to accomplish a single task. For example, one can go back to the previously visited page on a Web browser by either clicking a button, pressing a key, performing a mouse gesture or uttering a speech command. It is a widely used term in human-computer interaction. In particular, the term "new interaction technique" is frequently used to introduce a novel user interface design idea.

In computers, lag is delay (latency) between the action of the user (input) and the reaction of the server supporting the task, which has to be sent back to the client.

References

  1. "Space Crack: Fixing the Turn-based Strategy genre". www.lostgarden.com. 13 June 2005. Retrieved 2016-10-30.
  2. "History Of Servers in Pictures, from 1981 to today | iWeb Blog". blog.iweb.com. Retrieved 2016-10-31.
  3. "The History Of Online Gaming - DigiSecrets". DigiSecrets. 2013-03-11. Retrieved 2016-10-31.
  4. "How World of Warcraft Works". HowStuffWorks. 2007-11-16. Retrieved 2016-10-30.
  5. "The Architecture of the League Client Update". engineering.riotgames.com. 16 May 2016. Retrieved 2016-10-31.
  6. "How World of Warcraft Works". HowStuffWorks. 2007-11-16. Retrieved 2016-10-31.