Daily Archives: April 24, 2021

The Allure of the Thin Client

For a couple of decades various companies have been trying to get us back to the thin client model of computing.  Oracle has suggested this loudly more than a few times and Google ponders it now and again, with things like Stadia being based on the idea.  Also, if you work for a big company I assure you that your IT department has wet dreams about taking away all your laptops and desktops and making you work on some sort of thin client appliance.  IT at my company keeps pushing Citrix virtual desktops as the solution to every problem.

I say “back to” because I am old enough to remember when dumb terminals and terminal emulators were a mainstay of computing.  In addition to my time spent in the computer lab in college, the online games I played back in the 80s and into the mid-90s, things like Stellar Emperor or Gemstone on GEnie, MegaWars III on CompuServe, and Sonjourn/Toril MUD, were all built on that model.

Star Trek in vt52 emulation

As personal computers came along and started growing in computing power, much of the heavy lifting was put on that end of the equation.  Air Warrior rendered its very primitive visuals on the player end, and shooters and action games like Marathon and Diablo made the user’s system do the graphical work while just data about inputs and positioning were shared.   This meant that in the low bandwidth of the time… I played Air Warrior on a 2400bps modem… the back and forth between client and server was kept to a minimum.

So the end user client became fat.  Eventually so much data was stored at the user end by the late 90s that EverQuest had a little test module app that let you run around a mini-zone to test your 3D card, but you could rename many of the game maps and run around the main, if empty, world if you knew what you were doing.  You couldn’t zone or do much, but if you wanted to explore it was a boon, and you were not even connected to Sony while you did it.  And that is the way that many MMORPGs and other online games went, keeping data on the server and letting the end user machine do the graphical work.

For video game developers there are many benefits to going with a thin client, of keeping all that data on their servers.

For starters, the downloads and patching at the user end are kept to a minimum.  This has often been viewed as a point of friction that keeps players from trying out new games.  The holy grail is for a player to just be able to play without any sort of download, something CCP has been experimenting with recently with EVE Online and their EVE Anywhere browser beta.  If you can just play the game on any computer, then your potential market is greatly expanded.

It also makes updates easy, since things only have to get pushed as far as the servers.  Very little need be pushed to the player’s machine.  New content just appears or is unlocked without a download.  You also get all your settings and configurations as you move from device to device.

It is also a major boon for security.  If all the key files are on the company’s secure servers, then secrets can be kept.  We are familiar with every new pet, item, mount, or NPC being spoiled for us in WoW by the race to datamine any pre-patch update.  And, of course, addons, illicit or benign, and hacks are kept at bay.  This all falls under Raph Koster’s admonishment that “the client is in the hands of the enemy.”  Overall the environment is more secure.

Finally, all the end user issues that come from the wide variety of PC configurations, a huge problem for many applications, are largely eliminated.  A thin client stops caring about processors and video cards and operating systems and the like.  Your game can theoretically run on somebody’s TV or refrigerator.

All in all there is a lot of upside.  Control! Security! Ease of access!

Sign me up today!

So why isn’t every new online game in a thin client in the cloud?

Since I used the word “cloud” there, I am going to take a moment to point out that cloud computing is not the same thing, or required for, a thin client, though when people who should know keep conflating the two things I get how you might be confused on that.  Thin clients are as old as computing.  See my reference to dumb terminals at the top of this post.  And cloud computing is, simply put, a scalable server architecture with redundancy built in… though, again, some things that get referred to as “the cloud” are better labeled “somebody else’s computer” and not used as examples of the technology.  Talking about cloud computing as though that means any remote computer is a simplification that renders the term meaningless.  If that is your frame, then every online game is “cloud” and there is nothing special about it.

Anyway, why is Google’s Stadia something of an outlier rather than the norm for the industry, at least when it comes to 3D rendered world-based games?  (Because you kind of have to count early RuneScape, Club Penguin, Star Wars: The Clone Wars Adventures, Nation Geographic Adventures, and all those Cartoon Network games if you don’t put a barrier somewhere.  So I am speaking of high end games where some level of realistic graphic fidelity is a requirement.)

And maybe Stadia is a bad example in that it is attempting to be a virtual console that can play titles that were not otherwise designed for such an environment, but if you take it off the list we don’t have a lot of other big name examples.  Well, at least no successes.  A few companies have tried to do what Stadia is doing in the past and have ended up failing.  But given that it is common as shit unless you want render a ton of polygons, why isn’t already a common thing?

Part of the issue is likely due to the cost of the infrastructure.

The problem is that if you’re going to take over all the rendering functions of the remote device, you essentially have to do all the processing that the end user’s PC or console was going to do.  If you want to run that all yourself or you want to use somebody else’s data center, that still means a lot of extra hardware.  The company basically has to pay to run your client rather than letting you run it on your own hardware.

For example, EVE Online has a minimum system requirement of a 2.0 GHz dual core processor and a modest GPU.  If it went entirely thin client, if EVE Anywhere was the only way to access New Eden, you would have to have the equivalent of 20,000 minimum spec PCs in processing power on hand just about all the time, scaling up to 35,000 or even 40,000 at prime time on weekends.

You can probably get away with less processing power for most operations, but you would most assuredly want to put more processing power behind GPU support unless you want the whole game to run in potato mode for everybody all the time.

In a modern cloud architecture where you can bring capacity online easily and only pay for what you are using at a given time, you can keep the costs down somewhat, but everybody playing is incurring a cost, and somebody has to pay for it.  I don’t think it will be like my days back in college where your online account had an allocated budget to spend on processing time (which inevitably got squandered on Rogue), but the company is going to have to find some way to pay for using their processing power rather that your own.  Expect to pay more.

And, while the company saves on bandwidth when it comes to things like pushing patches to every client, the need to pipe high quality video at an appropriate resolution and quality will more than offset that.

Meanwhile, latency and connection quality issues will become a much more visible, something that Google’s Stadia demonstrated.  These are issues in current games like WoW, but you often don’t see it because the client with all the assets and world data will keep you walking, running, riding, or flying along while it tries to catch up after any data blip.  But if you lose connectivity for a bit and far end is only routing video to you, everything stutters or stops quite noticeably.  And even when the is able to get to you but the network traffic is slow, you’ll see your video quality degrade.

Also, if you live some place with restrictive bandwidth caps you’ll find streaming all that video might put you in danger of exceeding them.  You need high speed and lots of bandwidth to play a thin client game at the quality level you’re used to with an equivalent fat client title.  But you can play the thin client title on your refrigerator, so there is that.

But, if the game decides to take full advantage of the potential platform independence aspect of a thin client, if they’re going to support your high end desktop PC with the 34″ ultra wide screen monitor AND that refrigerator screen, there is likely going to have to be some sort of compromise on quality and UI.  So even if bandwidth and network hiccups aren’t dragging down your quality, the game itself, optimized to some happy medium, might not deliver the same satisfying, high definition experience that you would get if your own gaming rig was doing the work rather than some standardized system on a remote server.  Oh, and I keep using the term “thin client,” but for most uses you can substitute in “web browser,” though a light app is also possible. (Though with that comes the temptation to fatten it up.)

Finally, if the thin client game shuts down… see MetaPlace… you have nothing left but memories and credit card bills.  All of the major pirate /private server projects to restore online games that have been closed rely heavily on people being able to get a hold of a copy of the fat client.  All the graphics and a lot of the data is stored there, which is how so many of these rudimentary projects get stood up so quickly.  The world is in the client, you just need to get a system with the right responses going to get basic walking around the world functionality running.

The thin client idea is an attractive proposition for the dev side.  It simplifies a lot of things for them, gives them better security, and hands them all the control.  Done right in a cloud environment, it could even solve the first day server load issues if they can scale successfully.

But somebody is going to pay for the additional cost, your experience may be degraded if you do not have an ideal internet connection, if the studio wants to run their title across platforms and devices you may find the experience and interface less than you desire, and the whole thing becomes a virtual world that can disappear, never to be seen again, as fast as any virtual good.