antumbral

programmer / game designer / writer

anime


mcc
@mcc

Google Stadia officially launched in November of 2019, and it shut down this past Wednesday. So that's 3 years and 2 months of life. Over that time, Stadia managed to build up a stable of exactly five exclusive games, per this Kotaku writeup. And then the Friday before shutdown, see IGN article here, they revealed a sixth: "Worm Game", which was actually developed internally by the Stadia team at the very beginning of the Stadia project's life and used to test the service itself during the pre-beta Google-internal tests. In Stadia's final few days, Google made Worm Game available to Stadia users at large. Oh my God, I thought incredulously, when I saw the screenshots in this article, it's like a 90s shareware game for Macintoshes. My incredulity then immediately turned to delight as I remembered 90s shareware games for Macintoshes are the only games I like.

When Stadia launched, I wrote a long analysis on a website I no longer use, in which I argued:

  • There is no good reason for Stadia to exist (the visually rich games where the benefits of rendering on a remote server outweigh the heavy costs of streaming will tend to be games where streaming latency breaks the experience)
  • Ethically speaking, Stadia should not exist (Stadia, Apple Arcade, GamePass represent a movement to take one of the final mediums— games— where an artist can sell a product directly to a consumer, and bring it under a publisher system where infinite power is held by the platform owner)

I sincerely believed this second thing— that using and thus normalizing Stadia was actively destroying the world myself and every other indie game developer live within— so I avoided it like the plague. But once Stadia was already shutting down, it was no longer a threat, so in Stadia's final hours I decided to boot Stadia up for my first, and last time and try out "Worm Game".

That was Wednesday. You can no longer play "Worm Game"; Stadia no longer exists, so Worm Game no longer exists. Here's my impressions of "Worm Game"; I will do my best to evaluate it as a game by itself rather than as a proxy for Stadia.


This is Worm Game

A screenshot of a video game. A long worm made of tiny rainbow balls snakes around a plain mud-colored enclosure littered with apples.
(All images in this post are extremely large 1080p PNGs, so that compression artifacts are preserved accurately. My apologies to ASSCLUB; consider, this is for History. I invite you all to Open Image In New Tab and appreciate the truly horrible effect the Stadia compression has on that dirt texture and rainbow-worm segment sprite.)

The first thing you find, playing Worm Game, is that it's impossible to evaluate it as a game by itself rather than as a proxy for Stadia. The very first thing you see once you get the game open is very intense JPEG-style compression artifacts on the title screen; the first thing you notice once you're playing it is the horrible, gamebreaking effect Stadia's lag has on the experience. The combination of visual style (solid, immediately-contrasting colors or Win3.1 textures, where the compression favors photoreal rendering) and gameplay (Worm Game is basically "Snake", meaning the core of the gameplay is very precise timing on single inputs) make Worm Game if anything the exact game that Stadia will do worst at streaming; I spent most of the stream trying to figure out whether they had done that on purpose. (It makes sense if you're designing a test case, the test case would focus on areas your product is likely to fail).

So let's talk about the Stadia experience. I streamed my entire play session on Twitch, so you can watch that VOD if you want to see the entire process (check out me forgetting the current year in the first minute of the video). After clicking through the agreement for the 180 minute Stadia trial, it presented me with a pleasant and helpful controller setup screen which successfully recognized my Dual Shock 4 gamepad (meaning at this point, Stadia is a superior experience to the Epic Game Store). This screen also had a small notice:

Streaming this game may use 12.6 GB/hour of Internet data (a high-def movie is about 3 GB/hour).

Okay.

The apple-strewn field again, but now it has the title "Worm Game" over it in a crude cursive font.
(This one image is a Twitch capture; I didn't get a screenshot at the time. I want to stress the green-on-yellow looked bad and extremely artifacted even in the original Stadia compression.)

Worm Game is "Snake". Actually, it's a very good version of Snake. Not the best version of Snake I've ever played¹ or anything, but pretty good. It's got a few interesting innovations: If you collide with yourself you chop off that part of your tail rather than instantly dying, with a cute "poof"ing animation and a corresponding reduction in your tracked length. You have a life meter, and you can replenish your original three hearts by picking up hearts on the playfield, but this doesn't count for much because you're much more likely to collide with a wall (which is an instakill) than something which only eats hearts (like your own tail). There are coins, which I avoided almost until the end of my play session because I assumed they were obstacles, and I still don't know what they do. The best thing about Worm Game by far is the soundtrack; there are quite a few different songs, and they're all bouncy, catchy, and fun. Stadia's painful struggle to stream video did not seem to extend to problems with the audio.

Stadia, again, struggles. Think for a moment about how you play "Snake". You aim your snake at the next piece of fruit or whatever your goal is, then you wait several seconds, then you turn again. Turning usually involves a tight window; you want to turn on the exact square that aligns with the next piece of fruit, and if you're approaching a wall, you have to turn before you hit it (and usually, you want to turn at the last second so you don't waste space). I go into this level of detail to emphasize that lag is completely fatal in this particular game. Worm Game is relatively slow paced, so the entirety of the challenge comes in timing your turns given you want to turn not when you hit the correct square, but about a second or two before.

I should probably note somewhere in here that I was not using the Stadia's special controller, which would have decreased my lag (Stadia's controller actually connected directly to your wifi and sent inputs directly to the server, in order to remove the entire lag-adding steps of of USB, your OS, and your ethernet card), but I do not think this actually would have helped because the problem wasn't that the lag was long but that it was inconsistent. I played for over half an hour; I never got a good timing on how far ahead of a turn to press the button. Again, the nature of "Snake" exacerbated this. Imagine a platformer where you're jumping frequently, or a third-person adventure where you're constantly firing a gun or swinging a sword. If your inputs are coming once a second or more, you'll have a constant stream of feedback on lag amount and you'll be able to adjust yourself in realtime. But many seconds pass between each turn in Worm Game, more than enough time for the lag amount to change. And if you're close to a wall, messing up your lag adjustment can end your game instantly. Every single turn of the worm was terrifyingly anxiety-inducing, and not in any way the designers intended.

Campaign mode

Worm Game has six builtin levels:

A level select screen drawn against a distracting brick background. The levels "Open Spaces", "Walled Garden", and "Labyrinth", are unlocked; "Laser Box", "The Heist", and "Gluttony" are grayed out.
(This background is definitely not attractive, but wow did the Stadia compression ever struggle with it.)

In each level your goal is to reach a length of 150, at which point a golden apple appears that ends the level. "Win" a level by collecting the golden apple to unlock the next level in the "campaign", and also unlock the completed level in the "arcade mode". Each level introduces some legitimately interesting complication; I was actually impressed how Worm Game was able to find ways to make levels feel different while keeping close to the original, very basic premise. For example "Walled Garden" has an area you must enter, but which is surrounded by breakable boxes; hitting these boxes costs you a heart, so you effectively are only able to create only a limited number of holes in the box barrier. (There are hearts in the level, but they're in corners, so you can't replenish without risking a death, another small design decision with a notably interesting effect on gameplay.) "Labyrinth" changes the field from an open configuration to a twisty maze:

The worm in the dirt field, but now there are walls of two different textures forming a complicated maze.

The light brown boxes here are the breakable ones, so again the player can make a strategic decision to make two shortcuts in those tiles by spending hearts. Incidentally, if you're wondering how the tight, frequent turns in this level interact with the lag, the answer is very badly.

I found myself seriously curious what complications those last three levels would introduce; based on a screenshot I found, I imagine "The Heist" to introduce a mild adventure-game structure where you must break into boxes to get fruit, and each box contains enough hearts to break into the next box. Unfortunately, I never made it past "Labyrinth". This is where I have to talk about Worm Game's biggest design issue: Replaying levels is extremely unfun. Reaching length 150 takes a really long time, and since Worm Game doesn't speed up over time like some Snake variants, and since the game board is very large compared to a typical worm length, it gets legitimately monotonous after around length 100. The unforgiving nature of death in this game means your game could come to a stop at any time, and because of the lag problem, it probably will. If I could have made one change to this game, it would be to unlock two levels at any one time; IE, unlock two at the start, and each time you complete one level it unlocks one more. This would mean that if you get to length 125 and die, you could switch to the other level you're working on for variety instead of having to jump back into the slog you just played (eg, the slog wouldn't be so bad if the game hadn't allowed me to realize it was a slog). I ultimately ended my stream not because I felt done with the game but because I didn't want to play fricking Labyrinth again.

Features

Worm Game is actually weirdly packed with features. There's an excessively detailed help screen with five sub-sections (including an entire section explaining how to use the main menu), which the game drops you directly into from the title screen. There's an extensive options section, including quite a lot of different worm "skins" you can choose between, of which the best was probably "Angry":

The worm is now red, scowling, and has little devil horns.
(The worm is so angry!!!)

I picked "Rainbow", which turned out to interact very badly with Stadia compression, and did not realize until later the effect this would have on my screenshots.

Worm Game also has an online multiplayer mode, a fully-featured level editor, and a global high score board that pops up each time you die:

The game's dirt field with a high score screen on top. "Player10632255", with rank 18953, is highlighted.

"Player10632255" was the name they assigned me as a user of the three-hour trial; if I'd made a Stadia profile I probably could have picked a name, but that didn't seem to be available to trial users, and anyway my understanding is new signups had already been shut off ahead of the general service shutdown.

Worm Game's feature richness feels typical of the 90s shareware it visually resembles, as indie and shareware game makers often compensate for limited resources by excitedly tricking out what parts of the game experience they can. I assume however that Worm Game got this way because of its status as a test game. The overbearing, multipart help menu might just be what happens if you ask corporate web support staff to write help files for a game, but more likely they needed something that tests whether the Stadia streaming can render dense text. The options probably are as extensive as they are to test persistence. The scoreboard tests scoreboards and profile features, the level editor probably exists to test content-sharing features (or so I assume, I didn't find any) and the multiplayer exists because that's probably one of Stadia's banner features, or would have been in a world where people were excited about Stadia.

Multiplayer

I was actually very excited about the Worm Game multiplayer once I saw how it works. Up to four players, works on any map, multiple rulesets with different win conditions. I spent an incredible amount of time playing BeamWars (think Tron lightcycles) on my Mac as a kid anytime we could get four people together to play it, and Worm Game multiplayer in the Deathmatch ruleset promised to basically be BeamWars but more interesting and online. Unfortunately, here as in every other part of the experience, Stadia let me down. Although this final day of Stadia was probably the height of global interest in Worm Game, searching for an opponent to play against took a really long time and gave up after finding just 1. (My 1v1 opponent was "Cynthia". I assume she'd been practicing more than I had, because she handily kicked my ass twice.) There didn't appear to be a way to direct Stadia to wait until we had a full four-player complement. Two-player BeamWars is of course much less interesting, and I really wish I could have tried it once in 4P mode.

This leads naturally to a subject I haven't broached until now. You may notice I streamed my Worm Game session on Twitch. Why not stream on YouTube Gaming, since after all YouTube integration was meant to be one of the main selling points of Stadia? The reason was I couldn't. I was never given an option to connect to my YouTube account or restream the experience in any way. Possibly this was because I was playing on the trial plan, but if Google had ever actually intended for Stadia to succeed, you'd think that letting streamers hop on Stadia to try the trial experience and stream their experiences as they went would be the best possible way to raise massive, widespread interest in both Stadia and YouTube Gaming itself. As I say in the 2019 Twitter thread I link above, the product thinking in Stadia is severely lacking, and the sense one gets is that it wasn't intended to succeed, it just needed to exist for a while to satisfy some strange internal manager politics within Google.

When Stadia first launched, Google repeatedly bragged in the press about the cool unique experiences Stadia would make possible. One they pointed to was the idea that while watching a Stadia stream on YouTube Gaming, you could press a single button to join the game along with the streamer. In the general case this sounds like griefer heaven, but in the specific case of my Twitch stream last Wednesday, this was exactly what I wanted. After my games against "Cynthia", I found myself thinking: I don't have anyone to play Worm Game against, but I have a good forty people watching this Twitch stream, and it would be fun and participatory if I could pull them into playing multiplayer with me while the other viewers in the chat watched. I couldn't figure out how to make this happen. The best-case-scenario version of how this would work were if I were streaming on YouTube gaming (which it didn't let me do) and I could have just right-clicked on a user in the chat and invited them to the game, or if users in chat could have pressed a button to request a multiplayer invite and I could have picked three at a time to play against. No version of this feature exists. The basic "jump in!" feature Google was workshopping in the press in 2019 did not exist at the time, and still did not exist on Stadia's last day. If Google had implemented the basic feature in 2019 they probably would have evolved it to the best-case version I daydream about here by 2023, but they didn't. And Worm Game, specifically, lacks a way even to play against a specific user. There was only random matchmaking. So the only option I had seemed to be to try to coax chat members into walking through the Stadia trial process, entering Worm Game, and then after several minutes of setup we could all try to start a multiplayer game at once and because there were so few players maybe we'd get assigned to the same board? This didn't sound like it would work and I didn't try.

Logout

When I booted up Worm Game last Wednesday I was really excited. I thought that one of two things would happen: Either this would turn out to be a creative hidden gem of a game and I'd be entertained, or it would turn out to be a horrific mess and I'd get to enjoy laughing at Google and their perpetual executive ineptitude. To some extent both of these things happened. But by the time I was done playing Worm Game, all I felt was sadness, a deep, real sadness. I'm not sure even exactly why I felt this.

Worm Game is a legitimate labor of love, and it shows. Someone in the Stadia team had a lot of fun making this. If Worm Game were a game I downloaded on Itch, I'd have found the graphics ugly but charming, been surprised and impressed by the music, laughed at the angry worm, and come back to it maybe once a week until I finished it. I wouldn't have minded the levels dragging a little, because I'd have been able to space out my play instead of having one single day to play it (or— if I'd used Stadia normally instead of hopping in as it was closing— instead of feeling pressured to finish because I'm paying a monthly fee to access the game at all). This hypothetical version of Worm Game would have been much more enjoyable, due to the removal of lag making it actually playable, and it would have actually made more money, because this Itch game would have made probably between zero and several hundred dollars, and zero dollars is more money than Stadia made (according to one person in my Twitch chat, by its end the Stadia project was losing a hundred thousand dollars a month).

There were creative people working on Stadia. Worm Game shows that. They could have made a cool video game if given the resources to do so, and possibly could have done something compelling or even useful with streaming tech if given some direction for their energies. Instead these people, whoever they were, spent years of their lives creating an overly complicated, dubiously practical, ethically disturbing service which the world reacted to with no emotion stronger than "yeah, countdown until Google shuts this down" and which Google subsequently shut down. Stadia isn't completely dead now; Google will be offering the tech as a hosted service to gamedevs who want to offer limited-time demos (and, I guess, don't mind their game being presented with ugly compression artifacts and mechanic-breaking lag). But I doubt the people who worked on Stadia dreamed at its start of making a painfully expensive marketing exercise and public beta for a whitebox streamed-demo service.

What Google as a system did was take these developers creativity and time, chew it up, and burn it as fuel for absolutely nothing but some manager's promotion for having successfully "launched a product". Playing Worm Game— the embodied, distilled form of those same developers' creativity— I got to watch this process happening literally before my eyes. Worm Game itself was chewed up and ruined by those same corporate forces, with Stadia transforming a fun, slightly pointless indie game into an unplayable hassle. And in the end this was really depressing.

At the end of my stream, I picked the "Quit" option in the main menu, and was presented with a survey.

"Help us improve your experience. How was your game session? • Excellent • Good • Fair • Poor • Bad"

I described my experience with Worm Game as "Fair", and said the main factor influencing my answer was input lag.

"What influenced your experience the most?" Five options are listed, from which "Input lag" is selected.

After completing the survey, I was presented with a black screen and a frozen cursor. This was really weird, so I want to be clear what I mean by this. My browser window was painted black with a single frozen image of a Windows mouse cursor drawn on it. I still also had a regular mouse cursor, so there were just two mouse cursors visible, one frozen.

A blurry photograph of two mouse cursors.

Look well, for this is the final transmission of Google Stadia.


EDIT: As of March 11, 2023 (a mere six weeks after this post), the above-mentioned whitebox "hosted demo" service Stadia was transitioning into has also been shut down, and the existing Batman and Resident Evil demos that were using that service no longer load.

¹ Thank you to Leon Arnott for this video.


You must log in to comment.

in reply to @mcc's post:

so my partner has been a very heavy user of stadia since launch and really bought into it with the founders kit and stuff and all those missing features arent hidden or anything they just never came. it was super dissapointing! they were so so so slow to deliver on promises and half never came. in fact stadia got worse over time, new glitches with audio emerged and were never fixed! but!!! the one thing i will say for it is that mmo's are home to cloud services. not having to install 80+gb onto your hard drive to pop into a really kinda mechanically basic game (eso in this case) and being able to play it on your tv or phone or laptop or whatever with synced saves, dropping in for a quick quest then going back to work, THAT is what stadia was about for us. RDR2 online worked great too!

Okay feel free to disregard this question if it's rude but: Do you mind if I ask what city, in the world, you live in? Because the lag problem was so bad I found myself wondering if part of the problem is that I'm in Toronto and this just happens to work better in San Francisco or Seattle or someplace.

(Of course, if it did turn out Stadia works well in San Francisco but badly in Toronto, this would be kind of embarrassing, since one would think one of Stadia's biggest selling points would be that it could theoretically run in any local Google edge-server/NOC)

The stadia experience really depended on round trip time to the server you play on. I'm in that weird spot where I've played on stadia datacenters far and wide due to my dev work. I live in Dublin, Ireland and playing from the London, UK servers was pretty good. Input roundtrip times of 20-25ms were basically the average, and was... playable - its like having a slightly old bad tv. I got pretty used to that tho. playing on central EU servers when you start to his 50ms round trip sucks. anything worse than that was impossible to play. A end user actually playing your game on retail stadia has no way of telling where they are actually playing a game though, so there was absolutely no transparency on how good or bad your experience is.

The best stadia experience was playing off the local devkits - imagine if they put the hardware in your house! basically no lag then. what a novel idea

Funnily enough they sent us a devkit and I don't think we ever used it. Uploading builds to their dev cloud was actually a pretty good workflow.

(Most of the real Stadia work for us was wrestling with various in development back ends and having various 4 way discussions between us, our publisher, Google, and Unity about why it was stupid that we were trying to render 4k video signal that was not in any meaningful way better than 1080p, and that no we didn't really master the game for HDR but if they wanted it I guess we could do it, but really, this is the thing you're not going to waiver?)

it feels like the places stadia would excel is compute-heavy games on phones.

late-game civ6 with a huge map, lots of opponents, and every city-state.

Planetside 2-style things where even with a good graphics card, your CPU limits you. etc

But what I don't get is like... the killer app here could have been "So what we do is basically everything written for our platform transmits it's player data etc to the remote client as if it was a quake replay, and then all the rendering is done at the client level (With a level appropriate to the device), with some level of ML speculative prefetch' but it seems like they were too deep in a Business Plan to figure out they couldn't just brute-force remote rendering. Input lag's a problem either way, and the plan already seemed like ML prefetch was their goal... except my understanding is it was for brand new frames instead of just recreating it on the other end or upscaling them.

(And I get that what I described is also a hard problem, but it's xbox-hard and not necessarily google-hard)

Honestly Unciv runs fine on my phone with a pretty big map, and even if it had to think a bit at the end of every turn it still wouldn't be as long as I have to think at the start of each turn

civ6 slows to a crawl on my somewhat-recent mid-tier ryzen, which admittedly is because it probably only uses one core, but it's still got A Lot of Thinking at the end of my plodding grand strategy games even with instant-move on <_<

I timed one endgame move at 15 minutes. But maybe that's an argument for playing a civ other than 6

many mobile and switch games already stream the game from a server somewhere! it's not that uncommon. lets you ship games that would be too hard to port to low power devices, and also to avoid turning your mobile device into a toaster while playing.

the reason that sending the data as a replay isn't really a good idea, is that you don't actually solve any problems there. the gameplay aspect is generally the "easy" part, where rendering eats all the power. (and also, this is how every game with a server that runs sim works already, see MMOs for example)

of course regardless there, you have to figure out who's paying for the server, and why they'd want to keep doing that indefinately. which imo has been the trickiest part of any "we'll do it in the cloud" pitch.

all the machine learning hand wave stuff was just hopes and dreams, nothing that actually existed in a concrete sense.

The weird thing with Worm Game is that is was noticeably worse than other Stadia games for input lag, at least as far as I can tell.

I played though most of Celeste, and I didn't really notice a difference with input lag versus running it locally. The round-trip time for our Stadia connection was 30ms.