Top 3 Invisible UX Design Decisions That 'Level Up' Player Happiness

DZone 's Guide to

Top 3 Invisible UX Design Decisions That 'Level Up' Player Happiness

We take a look at the three big topics (security, download speed, and server performance) that game developers must keep in mind to create a great (and loved) game.

· Web Dev Zone ·
Free Resource

This article was featured in our first ever DZone Guide to Game Development. Get your free copy for more insightful articles, industry statistics, and more! 

A game’s user experience starts before a player levers a thumbstick or taps their screen. Game developers have gotten the offline, in-game experience down to a science, but increasing dependence on the internet for exceptional gaming experiences has created new opportunities for developers to win... or for “Game Over.”

In the old days, we had unboxings where players could handle the physical components of a game — CDs, cartridges, game guides, maybe even an action figure for special editions — that amped up their excitement.

In the digital era, that’s mostly been replaced by a loading bar (Amiibo aside). Even when players get into the game itself, they often require an internet connection for richer gaming experiences such as multiplayer interactions and special events. Internet-connected games can be either more enjoyable or frustrating in equal measure, depending on how well they are managed.

Many obstacles can hinder (or outright stop) players from the first minute they discover a new game on their favorite site, from finding a trusted platform or distributor, to clicking a button for download and installation. Then it’s time to actually play: the login, the day one patch, regular game updates, micro-transactions, matchmaking, and other game-related issues could arise to complicate your players’ experience. In short, there are many moments and situations that have nothing to do with the game or gameplay itself that can get in the way of someone buying and playing your game.

The goal of any game development team should be to reduce all the points where they can lose players before they get hooked on the game. For this article, let’s take a look at some of the infrastructure decisions game developers can make to level up player happiness and ensure that the game they worked so hard to build runs smoothly.

Optimizing Game Download Speed to Capture Immediate Player Attention

The worst part of downloads is the hair-tearing anticipation as players wonder where their game is coming from and why it takes six hours to get it. Add FOMO (fear of missing out) to the mix on release day, and the odds are stacked against game providers.

Players want to join their friends in being among the first to play. While developers no longer have to worry about stores running out of stock, they do have to worry about server overload. If the initial download rush were to crash their datacenters, the technical team would have some explaining to do.

The key to success on launch day is flexibility. It’s hard to predict where players will be when they download the game, or when exactly they will push the button. Game companies need to be ready by developing a global-ready infrastructure that puts the game files close to the end users. The fewer hops between the game server and the player, the better the download speed and the lesser chance for failed downloads.

Making the investment in the financial, technological, and human resources required to build that kind of global infrastructure is difficult for most companies, especially if they aren't offering large-scale MMOs that require constant player connectivity. Instead, they should they look for a cloud provider with strong server mirroring capabilities that copies key files in locations around the world. That way the files will be closer to their destinations and no single datacenter will feel the full strain of the download requests.

They should also examine the dependencies between their servers and users such as ISPs and DNS providers to make sure they are all prepared for the influx of traffic. Building strong relationships with them can help ensure all players get equal service when they download the game.

Fairly Balancing Game Devliery to Player at Different Distances From Game Servers

E-sports have made consistent and equal gameplay a necessity. Beyond the actual game itself, is a vast and complex network of systems that cooperate to deliver your customers’ gameplay experience. A few microseconds’ difference in lag during a fast-paced FPS can make the difference between a headshot and a miss. Players expect reliable connectivity, even when they are only playing for fun.

Matchmaking systems need to take into account not only the players’ skill level, but also the players’ locations relative to the servers they are using. While last-mile connections— broadband, satellite, 4G — are the player’s responsibility, game companies should work with an appropriate partner to ensure speedy packet delivery through the heart of the internet. While it is easy to dismiss the stuff in the middle that they don’t control or maintain as someone else’s responsibility, the end result of player happiness still belongs to the game developer.

Use the relationships you built to optimize the initial game download in order to understand how the game streaming dependencies differ. When something goes wrong on a network outside of the data center, knowing who to call to fix it can make the difference between loyal gamers and lost customers. Game developers should watch those connections carefully so they can start responding to any connectivity issues before their players notice.

Securing Game Architecture From Crippling DDoS Attacks that Know Players Offline During Prime Gaming Hours

The gaming industry is a constant target of DDoS attacks, with some companies deflecting as many as 2,000 separate attacks in a year. Whatever the reasons for an attack—prestige, ransom, PII exfiltration, or something else — every gaming company needs to shore up their defenses against hackers.

The vast majority of DDoS attacks are volumetric in nature, meaning they employ networks of hijacked devices to send thousands of artificial requests per second to the server. Since the server cannot discern between a human and compromised device, it must spend the same amount of processing power on each request until it reaches the point of ignoring everything and disconnecting legitimate users. It would be impractical for a company to deploy enough computing power to handle a DDoS attack on its own. More cost-effective investments could be made in capabilities that are designed to mitigate these types of attacks and help prevent the server from becoming overwhelmed.

Whatever service they use, it is important to remember that the time and effort spent to establish these defenses will be the same if they ever need to rebuild them again. It can be tempting to go through a quiet period with no threats from DDoS attacks and decide to stop paying extra for a service adding no visible value. However, a DDoS attack can come from anywhere, at anytime, making the ongoing investment worth it.

Building the trust and enthusiasm of loyal fans in the gaming community is the most rewarding experience of game development. But there are a lot of hurdles in the way of that relationship. Players may set out on that journey excited and on your side, but when download speeds slow to a crawl or they can’t connect to the server, their first thought will not be to blame the obscure network provider they never interact with — it will be to blame the game. Positive gaming experiences are the sole responsibility of the game developer. There is a lot of work that goes into building that experience before the player even starts to play, but it is essential to the success of the game.

This article was featured in our first ever DZone Guide to Game Development. Get your free copy for more insightful articles, industry statistics, and more! 

ddos attacks, game dev, performance, ui/ux, web dev

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}