MultiVersus

MultiVersus is fantastic. If you haven’t heard of it yet because you exclusively read Gametrodon and literally nothing else, thank you for your loyalty! You’ll be given a ranking position in the new regime. If you have already heard of MultiVersus (because you don’t live under a rock), and haven’t played it, or were on the fence about playing it, stick around and maybe I can convince you to try it.

MultiVersus is a platform fighter developed by Player First Games, and published by Warner Brothers. If you’re wondering why I’m mentioning the publisher, don’t worry. It’s relevant. But first let’s quickly talk about platform fighters as a genre. Platform fighters are, for better or worse, defined by Super Smash Brothers. If you’ve never played a platform fighter, there are few things that differentiate them from traditional fighting games.

Platform fighters, like traditional fighting games are 2D games where you use your character’s moves to hit your opponent. As someone who plays both traditionally fighters and platform fighters casually, there are two big differences. The first is that platform fighters are far more open, with mobility much closer to a platforming game. The second is the win condition. In most platform fighters, instead of each character having a set amount of HP, they have a percent value. When you get hit, your percent goes up. The higher your percent, the more knockback you take when you get hit by an attack. But no matter your percent, you don’t actually die until your opponent can knock you off the stage. Finally, platform fighters often have more characters on stage than just the traditional 1v1, and MultiVersus leans into this. The game’s primary game mode is actually 2v2, with many of the characters having abilities that buff or somehow interact with their allies.

Speaking of which. Characters!

The other thing a platform fighter needs to be good is good characters. That’s easy for Smash Bros, which might as well just be the Nintendo “Who’s Who” list for video games even if the list does have some washed up entries. (Seriously, I’m pretty sure Falco and Fox are more relevant as Smash Bros fighters than their series is. And there hasn’t been a new F-Zero game in a million years.)

This is great if you’re Nintendo, but if you have to invent your own characters, like Brawlhalla, or Rivals of Aether, or anyone else in the genre it can be rough. After all, it’s not like you can just go dig up a treasure chest of intellectual property from the 40 years.

Hey, remember how I mentioned this was being published by Warner Brothers, and said the publisher would be relevant later?

Turns out, Warner Brothers has the rights to a lot of stuff.

A lot of stuff.

MultiVersus currently has a seventeen-character roster, which isn’t huge, but let’s look at a few folks in that roster. You have Batman and Superman. You have Shaggy and Velma. You have Bugs Bunny, Tom and Jerry, and Wonder Woman. You have Arya Stark, and Lebron James. You have Stephen and Garnet from Stephen Universe, and you have Jake the Dog and Finn the Human from Adventure Time.

If you can read that entire list without going “Wait what” or getting a least a little excited for a moment about the idea of Shaggy absolutely thrashing Batman in hand to hand combat, then please come to my apartment so I can give you your “Least Exposed to Pop Culture” gold medal. I grew up without TV, I still barely watch TV, and I know who these folks are.

Unlike Smash Brothers, though, these characters aren’t from a video game, so it raises the question “How well were they adapted?” Personally, I think they’ve done a pretty good job. Shaggy is this kinetic bruiser, dashing around the stage, doing that funky little leg zoom walk, and tossing sandwiches. Finn is an assassin, charging up these big swipes of his sword and leaping around. From the characters I’ve played, they’re all fun, with their own tricks and traps.

But this does bring up a point I want to cover: I haven’t played everyone, because MultiVersus is F2P, and that means you don’t actually get all the characters. It’s the League of Legends model, where there’s a free rotation of characters, but if you want to unlock a character permanently, you have to buy them with either in game gold, or the premium currency.

This isn’t a particularly evil implementation of F2P, but it does commit a lot of the traditional sins of the model. I don’t want to put too much energy into calling them out here, so instead I’ll give you a quick list of why I don’t like it much:

  1. Premium Currency can only be purchased in specific increments. This means you can only purchase say 1000/2000/3000 of it, but all the characters and skins cost different amounts. So you’ll always have some left over, and if you want to buy more stuff, you’ll have to buy more currency. It’s like the evil video game version of the XKCD nacho cycle.
  2. Skins are expensive, like 15-20 bucks a pop.
  3. There’s a battle pass/daily quest system, so you have that whole FOMO structure, and since a lot of your gold generation is linked to leveling up characters, it’s easy to tell the flow of gold will shut off pretty quickly.
  4. Perks are a gold sink for F2P players.

Oh, that’s right! We haven’t talked about Perks yet. Lets cover them quickly.

Each character in Multiversus has four perk slots, 1 unique one, and 3 generic ones. The unique ones are a non-issue for me. You unlock all unique perks for a character just by playing them. They tend to offer some sort of boost, or change to one of your character’s attacks, but since you can see your opponent’s perk choices before a game, they’re not a big deal.

The generic perks are where I have a problem, not because of what they do, but because of how you acquire them. They tend to offer small buffs to both you and your teammate. As an example, one gives you an additional third jump in the air after you connect a hit. If you and your teammate stack the same buff, you get a better version it. For example, the aforementioned jump perk when stacked just lets you and your teammate have a third jump always available.

But anyway, this isn’t the problem with perks. The problem is that there’s a limited pool of perks you unlock for each character. Then you have to spend gold to unlock the rest, and you have to unlock them on a character by character basis. It’s like a worse version of League of Legends’ old rune system.

The gameplay itself, though, is what carries MultiVersus. And while I might not be a big fighting game person, the friend I played most of my 30 hours with is. To paraphrase his thoughts, while the game is very focused around hitstun and combos, it doesn’t feel super toxic. There’s also a larger focus on mobility, and to quote him directly “The lack of the homogenization of the trinity (grab/shield/stun) and the presence of charged aerials is a significant shift from other platform fighters.”

Personally, I just think smacking folks around in the game feels fun, and even as someone who sucks at fighting, the matchmaking has yet to throw me into a game that I felt like I couldn’t possibly win.

Speaking of matchmaking, let’s talk about the other part of online play: netcode. MultiVersus has some issues, but overall the netcode is far better than, say, Smash Bros online. There are still situations where it feels like your inputs are dropped, but it’s fairly rare.

Overall, MultiVersus is an incredibly fun F2P platform fighter, with a strong (if small roster), and solid mechanics. While it doesn’t commit any special sins of being a F2P game, I feel like it would be better if you could just buy the whole game instead of being hit with the traditional spending traps. That said, I might not have tried it if it cost $40, and that would have been a shame, because I would have missed out on one of the very few games to even try to give Smash Bros a run for its money.

MultiVersus is free to play on PC, PS4/5, Xbox One, and Xbox S.

To preempt the question from the one person I know who will read this article: it’s not available for Switch, and it’s not clear if it will be. Just go grab it for PC. C’mon, it’ll be fun!

Fore Score

Fore Score is a multiplayer minigolf game where you and your fellow players build out the hole by placing extra obstacles and items onto it. If you’ve ever played Ultimate Chicken Horse, the concept will seem pretty familiar. You start with a simple and plain course. After each round you and your friends are given a selection of objects to choose from, and then you place them to make the course harder.

I like a lot about Fore Score in theory, but in practice I have quite a few problems with it. There’s no single thing it does wrong, but none of its mechanics feel super satisfying. I also have problems with the game’s other systems.

Good luck ever making this shot without being ground up by the buzz saw.

Let’s start with the simplest one: the minigolf. Fore Score uses a 2.5d view for most of the golf, and you can’t apply any direct level of lift to the ball when you hit it. However, many obstacles are 3D, or launch the ball into the air. This makes it a sort of awkward hybrid of the two perspectives. The camera is also permanently locked, which again, makes judging certain shots very hard.

Why is the camera permanently locked? Well, it might be because the game doesn’t offer actual networked multiplayer. Instead, everything is a form of couch co-op. The game does support Steam Remote Play, which I have mixed feelings on. On the one hand, it means only person has to own the game. On the other hand, if you aren’t the host, you better hope your connection to the host is stable, or you might miss the critical shot. Because of that limitation, it makes sense that the game wouldn’t want to let every player randomly rotate the camera for everyone whenever they want. If nothing else it would make obstacle placement a confusing mess.

The only good way to describe the obstacles is ‘mediocre.’ There are several obstacles that are just reskins of each other, and boring reskins at that. Of the remaining ones, there just aren’t that many. There are several that will kill your ball and force a respawn with hitboxes that probably aren’t wrong, but are difficult to judge because of the 2.5d view.

There are a variety of blocks similar to the domino block in that they just fill two squares, and don’t do too much else.

Fore Score isn’t unfun, it’s just not as good a golf game as Golf With Your Friends, or as much of a route-builder as Ultimate Chicken Horse. If a game is going to stick with my friend group, it needs to either offer something unique, or be better than other stuff we already play. And Fore Score doesn’t succeed at that.

With that said, there have been some quality of life patches, so perhaps it will get better. If you’re still interested, you can find it here on Steam, and an early alpha here on itch.io.

Garfield Kart – Furious Racing

The bar for franchised game tie-ins is a moving target, but it’s rarely above sea level. Often, it spends time in the Mariana Trench. I’m lucky in that the franchises I love started as games, so the games are usually pretty good (or in the case of Pokémon, “Yes, it’s the same thing, but I bought it and it was okay the last 5 times so I guess I’ll do it again.”)

There are exceptions, of course, coughMagic:Legendscough but on the whole, I don’t actually play many games based on “Things I liked when they weren’t games.” I’m much more likely to buy a shirt because you wrote Undertale on it in comic sans, than I am to buy a game because it has LeBron James, or Rick and Morty in it.

All of this is a lead up to say that my expectations for Garfield Kart – Furious Racing were low. Very low. And while the game does exceed my expectations, the fact that it doesn’t crash constantly and runs on my Ultrawide monitor at all is already miles above what I expecting. My expectations were right next to the funny looking fish with the glowing bulb attached to its head.

Garfield Kart – Furious Racing is a a cart racer based off the Garfield comic strip: the fat orange cat who hates Mondays, loves lasagna, and made its creator Jim Davis a fortune. As a child, I actually liked Garfield if only because a cartoon where the cat actually wins made me happy. A a teenager I thought it was incredibly stupid, and not actually funny. But a stronger understanding of how syndication works, and how easy it is for a comic strip to get kicked from a paper at least makes me respect the effort it must take to tell 20+ years of mildly inoffensive “jokes” and not upset anyone.

Anyway, the theming is skin deep. Garfield Kart is fairly straightforward cart racer. If you’ve ever played any Mario Kart, you’ll pick it up quickly. If you haven’t played any Mario Kart, well, it’s a cart racer, so you’ll pick it up in like 5 minutes tops anyway.

Mechanically, Garfield Kart isn’t hugely technical. Press a button to go forward, toggle your drifts on curves to get a mini-turbo, and hit item boxes for consumables. The consumables range from a lasagna (a single use speed boost), to two variety of pies you can throw at your enemy (one type homes, the other type you have to aim). And it wouldn’t be Mario Kart without an item to royally screw the first place player. In Garfield Kart, that’s the UFO: a trio of three alien spaceships that fly ahead on the course, lay down tractor beams, and grab the first person to pass through.

Strangely enough, the UFO is fairly good for illustrating perhaps my biggest gameplay gripe with the game. Once a player ends up in first place, it’s incredibly difficult to catch them. A lot of the speed loss in Garfield Kart comes from crashing into other carts, and once you get ahead, it’s incredibly easy to just chain mini-turbos. And because of how item rolls work, it’s unlikely that the second place player will get the red shells homing pies they need to close the gap.

Outside of that, we have the actual racing tracks. Garfield Kart has 16 tracks, all of which are fine. There’s a fair amount of asset reuse between them, but that’s not really a big deal to me.

What is a slightly bigger deal to me are the bugs. Garfield Kart is mostly stable, but has a fair number of bugs. In the 10 hours I’ve played, here’s a sampling of what I’ve seen: 1. Item display from item boxes not updating, and showing you as having an item after you’ve used it. 2. Cart collisions acting inconsistently. 3. Netcode resulting in other carts clipping into you, and launching you through the ground. 4. Hitting geometry at weird angles can easily result in carts getting stuck tilted up at 90 degrees, and unable to move. 5. AI getting permanently lodged on rocks.

Garfield Kart isn’t a bad game. It’s effectively just a low budget Mario Kart clone with a more boring theme, fewer tracks, and less polish. And while I would normally say “Just go play Mario Kart,” what sets Garfield Kart apart is its price point and system.

See, Garfield Kart regularly goes on sale for about a $1.50, a price at which you can buy 10 copies, send them to all your friends, and have an amusing cart racer to play with everyone for under $20. Compare to Mario Kart 8, which is $60 for the game alone, and another $50+ for each controller, and all of a sudden Garfield Kart is an absolute bargain.

So yes, while I do recommend Garfield Kart, it’s a conditional recommendation based on having 3-4 other folks to play it with, and spending about as much as a Snickers bar per person on the game itself.

An Interview with Jongwoo Kim, Creative Director of Lucifer Within Us – Part 3

This interview is part three of a series from an interview with Jongwoo Kim, the creative director of Lucifer Within Us, a unique mystery game. To read our writeup on the game, click here. To read part two, click here.

Technical Troubles of Transforming Time

Fritz Wallace: Lucifer Within Us has an incredibly unique timeline mechanic that allows you replay and see what each suspect claims to have been doing at any given point in time, and to rewind and move around. How does that system work?

Jongwoo Kim: I’m not sure if you’re aware of this, but most games with a replay system won’t let you rewind. For example, if you watch a replay of a game like StarCraft, or an RTS, it’s usually not actually a replay, it’s just a recording of all the button presses.

But for Lucifer Within Us, because the player needs to be able to smoothly rewind, we had to record the animation data for anyone point in time, in addition to recording all the animations and false testimony for any given point in time. And in addition to that recording, we had to make sure all of this was consistent with the audio for any given point in time.

For example, if Gideon says one thing, but is located somewhere else, it won’t be a smooth experience. So you have to be sure when things are going to play, aligning your time cube.

It’s actually a weird technical challenge that isn’t done often. It’s the kind of thing I’m quite proud of, like a very cool toy sort of thing. It’s quite satisfying for me to be able to rewind things back and forth, and see the characters move around.

Fritz Wallace: I’m curious about this, since I’ve done a small amount of work with Unity myself. What made it so difficult?

Jongwoo Kim: So certain parts are Unity specific, but the bigger problems are “How do you make a system where the player can rewind to any point, at any time, and still have it make sense?” And there are quite a few problems.

The first one is logistics. How do you ensure a character’s movements are believable and make sense if the player can watch every moment of what they’re doing? Especially if what they’re doing a lie. The simple solution is to have them idle for a large amount of time once they reach what they’re doing.

Before we implemented rapid scrolling/skipping, it was frustrating for the player experience to watch everything happen slowly, when you have idling like that. But if we’re assuming that the player should be able to navigate at any point in time (which is what you’d want to be able to do as an investigator), there are other weird challenges.

For example, characters say their lines, but that won’t necessarily line up with the length of a given section of movement. Initially we had extensive testimony lines, but we realized players don’t want read paragraphs of text. Also, any text that’s not explicitly describing the actions being taken tended to be misleading, and players wanted to ask questions. There needed to be coherence between what was spoken, what was happening, and what was seen.

But all of this still has to align with the logistics of the case, how the character gets there, and be continuous, because it’s a timeline. So the solution we came up with was that we had an editor built on top of Unity, that would allow us to record the case from beginning to end for every possible variant. And there are additive variants, it’s not like it’s just every single variation. So you’d have the vague testimony for every character, the true timeline for every character, and then every layer in between.

Fritz Wallace: So for example, in the third case, where each of three suspects has to still line up and make sense at any point in their stories.

Jongwoo Kim: So yeah, those three paths have to happen, but you have to keep in mind, sometimes the timing of objects involved in the case changes too. For example, in Gideon’s case, when and how he manipulates the coronet changes the testimony and outcome. The same is true of Abraham and the shovel. So you have to make sure certain objects disappear from the timeline, and only appear when they’re speaking.

The coronets explosion example, she (Alex Bull, 3D Artist) had to make an animation, and then adapt the animation so it’s rewindable, but with the pieces still appearing and being discoverable on the ground.

If you go back and look at everything side by side and where things are, you actually might notice a few small changes. There are some errors, and we tried to be very careful about avoiding them, but it was very tricky. We also discovered during testing that certain players are much more obsessive about certain errors then others. In the first case, the glass door and its position at the start of the case would frustrate players, because the door ends the testimony closed, but if it was open when the player gets there, it raises questions about who opened it, because someone must have.

And so any error like that in the recordings became frustrating to players because it both throws the player off, and breaks that sense of being a detective. The vision of the game was for the player to use everything they see, and figure out the answer themselves. It was damaging and misleading when we made mistakes like that.

From a very tech point, and this is Unity specific. There’s no built-in system in Unity that supports rewinding animations for the duration of the cases we have. While Unity does have a system that can work for 2 minutes in length, there was no guarantee that our cases would be under 2 minutes. It also has further restrictions: i.e., can only record during run-time. So a player would have to watch full case normal speed 1 before that system was usable.

So we had to figure out another way. I won’t go too much into details, since I’m not sure that’s interesting to anyone who isn’t trying to perfectly recreate the system in Unity. There was an alternative animation system available in the Unity made by the developers that allows you to play any animation arbitrarily. And so by using that system, and then another way to capture either every frame, or however many intervals you wanted, to take a snapshot of a character, their exact animation state, what they were holding. And we’d take snapshot after snapshot, and then using those snapshots, we didn’t have to use Unity’s animation system any more. And using those snapshots, we could interpolate between the states.

It’s a bit strange to say snapshots though, because that makes it seem like it’s an actual film in a way, right? But in reality, it’s still taking place in the physicals space of the game, the characters still are moving around, and have physical properties.

In the ideal world, I would have wanted it so you could just reverse time whenever you wanted. If someone threw an object, you would just have the physics system run in reverse, accelerate it in the other direction. But because the player could skip around to any moment in time, and physics going backward is not something Unity supports, the approach we took was different, by recording at every major interval and interpolating, and taking enough snapshots that it looks smooth.

Fritz Wallace: That’s a pretty intense technical challenge.

Jongwoo Kim: Yeah, I don’t think the studio ever talked much about the technology we built for this project, but it is certainly something weird and unique about the game.

Fritz Wallace: So it seems like a lot of effort was put into both designing these systems and making them work technically, which is fairly impressive.

Jongwoo Kim: Yup.

Fritz Wallace: Would you ever want to make more games using the timeline mechanics? Or more games in that setting?

Jongwoo Kim: Yeah, so if I were given the opportunity to revisit that world, I’d really love to. Would I like to revisit those mechanics, whether it was using that IP or not? My answer would be a careful “Yes”.

While we didn’t milk everything we could out of it, in terms of logistics and mechanics, it’s a very particular setup. In the sense of, not just the implications of the mechanics, as much as the logistics of making a game like that work. In order for that to happen, since I no longer have access to the code base, I’d have to rebuild a lot of things. And that’s the main thing I’d be reluctant to do.

If I could, I’d love to make more cases. I think a timeline based approach has a lot more space to be explored. I also think some of the choices we made for Lucifer Within Us do restrict some future possibilities because of the narrative commitments of that project. I’m very happy with those narrative commitments, but at the same time a digital exorcist needs to exorcise demons. So we have to provide demons, and that narrows the possibilities compared to a traditional investigator. I don’t think that pertains to the timeline though.

This concludes part 3 of the interview. The final part can be read here, and involves the games lore, headcannon, and some of the lessons learned from the project.

Perfect Heist 2

I like Perfect Heist 2. It’s a fantastic asymmetric deception game about robbing, or preventing the robbing of banks. So does that mean the game is as perfect as its name implies? No. It has a lot of problems. But it’s fun, and that’s really all that matters.

Writing the intro paragraph for this article is an exercise in deciding what watch list I want to get placed on. Do I make the joke about how the game is unrealistic because you get punished for killing civilians as a cop? Do I talk about how I love games that let me lie my way to victory? Do I talk about how my favorite thing in games like Project Winter is convincing someone to work with me, only to bludgeon them to death in an enclosed space once they’re out of earshot of the rest of the group and no one can hear their cries for help?

Do I just make all of them?

Oh right, I’m supposed to be writing about a game.

Perfect Heist 2 is a multiplayer deception game about robbing banks. Players join either the robbers or police, with the robbers trying to get as much money out of the bank as possible, while the police try to stop them. If the robbers successfully extract a certain amount of money and make a successful escape, the robber team wins. If time runs out, or all the robbers are killed, the cops win.

You’ll note that I didn’t say, “If the robbers kill all the cops, the robbers win.” It’s technically true, but is incredibly rare. This is because Perfect Heist 2 isn’t a game about running and gunning; it’s a game about being sneaky.

In addition to the human players in a game, there are also dozens of AI-controlled civilians. They generally just meander about, and don’t do very much, but they provide the cover for the robbers to infiltrate the bank. However, there are some things the AI won’t do. They won’t ever sprint, they won’t ever pick up money, and they open doors.

Perhaps most importantly though, they’ll never go into areas they aren’t supposed to be in. There are two general types of AI units: bank employees and civilians. Both types have different clothing patterns, and wearing the wrong outfit for the area you’re in is a great way to get shot in the head.

As a general rule of thumb, cops have more damage mitigation, and better guns, which means that if you, as a robber, get into a fair fight with a cop, you’re likely going to lose.

Secondly, unlike robbers, when a cop dies, they just respawn. There’s a shared a pool of lives for the cop team, and a recently respawned cop now knows where you are and what you look like. Cops can’t just go trigger happy though, because if a cop kills a civilian AI even by mistake, the cop instantly dies and can’t respawn.

Team balance also influences the general sneakiness of the game. The police can never have more players than the robbers, and usually have 2-3 fewer members. As a result, the teams consist of a larger number of players with no individual respawns and generally weaker stats (robbers) against a smaller number of players, with superior firepower and respawns, but a heavy penalty for misusing them (cops).

So let’s talk about how you actually steal money. Maps in Perfect Heist consist of the bank, the area surrounding the bank, and a few generic buildings around the bank that can’t be entered. The bank is the interesting part though, as it contains vaults, where a majority of the gold and cash needed to win is kept, along with jewelry, and secret documents, all of which can also be picked up for cash.

There are also ATMs, which can be hacked once to drop money. While the vaults need to be either blown open with charges, or unlocked with various specific classes, the other valuables can usually just be grabbed, albeit with some risks. For example, jewelry is usually in glass cases, and the sound of breaking glass is great way to broadcast where you are to every cop in a 3 mile radius.

TLDR: there are valuables littered all round the bank, and different classes have advantages for going after various types.

Speaking of which, let’s talk about classes. There are a lot of classes, both for the cops and robbers. Each class has starting weapons, a passive, and an activated ability.

In terms of actual playability, classes vary pretty heavily. Some are straightforward, like the Demo who can carry explosives without them being visible, or the Tech who can open all vaults after hacking three computers, and has a drone that can carry money bags. Some offer alternative playstyles, like the Crypto-Enthusiast, who can hack computers to install crypto miners, and generate passive cash, or the Fed Chairman who can quite literally print money.

Others are situational, like the Sniper. And some are just bad, like the Pickpocket, or Safecracker. It’s a pretty even split between those four groups. There’s enough variety to keep things fun, but some classes just don’t really function.

The same is pretty much true for the cops. Classes like Riot Control and Spy offer straightforward and always-useful mechanics. IT is situational: useful against classes that want to hack computers or ATMs, but doesn’t do much otherwise. Fed Chairman (no, not a typo, both cops and robbers can use this class) can increase the amount of money robbers need to steal in order to win and offers an alternate playstyle. And then there’s the Digital Forensics officer who…. can see how long ago a computer was hacked. It’s pretty pointless.

I do think the classes are part of the reason why I enjoy Perfect Heist 2, though. The different playstyles and options available mean that you’re not locked into a single strategy, and you can switch between rounds if it feels like something isn’t working. It adds a lot of replayability, and there’s also some interesting synergies (though these synergies tend to be more in favor of the robbers than the cops).

With all that covered, let’s talk about what I don’t like about the game. First, the game options menu is practically non-existent. Resizing your screen is advanced technology, so I hope you like playing in permanent fullscreen forever. Second, game balance. As a general rule, the game feels balanced. HOWEVER, the way team selection works means that you can get locked into having two teams of the same players go against each other over and over, with one team just crushing the other. Finally, the guns. The guns kind of suck. They feel slow and laggy. Aiming down sight is buggy and doesn’t always actually aim down sight, and shooting without aiming down the sight results in firing bullets somewhere within an 180 degree radius of where you were pointed.

These aren’t deal breakers. Honestly, if I could change anything about the game, it would be to fix some of the bugs, clarify wording for mechanics for a few abilities, and fix the options menu. If they did all of that, the game would be fantastic, as opposed to the ‘pretty good’ it currently is.

If this sounds fun, and the issues don’t sound like deal breakers, you can grab Perfect Heist 2 for $10 on Steam.