There’s a lot of discussion around the idea of NFTs in video games. I’ve read a ton of great replies from other game developers, that have ranged from snarky-but-funny to the genuinely-trying-to-explain-the-problem. I still struggle with extended Twitter “threads” as a concept, so even though it feels weirdly old fashioned, I thought a blog post was the right context for my own contribution to the discussion. For some context, technical management and implementation of the Apex Legends economy is my primary responsibility on the team. My actual title is “Technical Designer – MTX Events.” (MTX is the common shorthand for “Monetization.”) So I spend a lot of time thinking about this. Prior to coming to Respawn, I also did a lot of work on the technical implementation and management of Zwift’s “economy” (though it’s quite different – and much simpler – as it’s not a free-to-play game) as a designer and engineer there.
For most of this, I’ll focus on the Apex economy, just because it’s what I work with every day and because it’s both better known and probably more relatable to the concept of NFTs than Zwift’s. Though video game assets and economies are, in general, much more the same than they are different. Digital assets are digital assets…
In Apex, there are a bit more than a dozen different cosmetics, each of which could theoretically be an NFT. They are (currently): character skins, character quips, character emotes, holosprays, quips, skydive emotes, finishers, heirloom (melee) weapons; and then the gladiator card cosmetics – frames, poses, badges, and trackers; and finally weapon skins and weapon charms. There are also loadscreens and music packs, but only you see those, so I’ll leave them out. Ownership of any of these items could be represented by an NFT. It’s important to remember that an NFT is not a “thing.” It’s a record of ownership of a thing – more like a deed to a house than an actual house itself. It’s just a token. So there’s no reason that ownership of an in-game cosmetic could not be represented by such a thing. That’s not the hard part. Or not the really hard part.
Because EA would probably get upset if I delved too much into the technical architecture, I’ll keep this fairly broad. Currently, when you own a cosmetic in Apex, there’s a centralized EA service that has a record of your account UID (unique ID) and a given asset’s UID and then there’s basically a flag that gets flipped as part of some transaction that says, “this player now owns this asset.” That all could theoretically be replaced with a blockchain for record keeping, though there are very legitimate concerns about the costs – energy, latency, etc – involved in replacing a fairly simple transaction record like we have currently with something like a blockchain, but again, those problems are at least theoretically solvable. Currently, this is designed to be lightweight. Apex’s servers ask the EA service what you own via a fairly standard REST API call, and then we cache that until something happens that makes us think maybe we should re-check what you own. The process by which we associate a in-game assets with various UIDs is almost certainly not something I can discuss in depth, but it’s also not really that important for the purposes of this discussion, though it is yet another area of obvious incompatibility between games (and can even be a challenge for the same game across various platforms).
Ultimately, all games – and really all NFTs as they currently exist – are just storing a transactional record. Even if the ledger is decentralized, there’s some authority – either the game server for Apex or OpenSea for many NFTs – that basically translates that record into an actual asset. Like the deed on your house being associated with your actual physical address. Moxie Marlinspike, creator of Signal, wrote an excellent blog that goes very deep on a lot of the issues around ultimately needing some sort of centralized authority/platform. But the key thing to remember is that neither the blockchain nor a traditional game economy service is storing the actual in-game asset; they’re just storing a record – a pointer of sorts – of ownership. This is also theoretically solvable, but that’s a massive technical undertaking, and it’s not yet something I’ve seen much meaningful discussion around.
Once the client – say a browser for your NFT or the game client on your XBox or PC for Apex – gets information from the server about what you actually own, it then renders that thing. Depending on your perspective, it’s at this point that you – or whomever you are sharing “the thing” with – actually “get” the thing you own . And this is where the many layers of complexity really start. When game devs says NFTs in games are currently infeasible, this is really the stuff they are talking about. Everything up to this point could be replaced with blockchain ledgers and NFTs (with varying degrees of effort), but it’s at this point that you run into a brick wall. And this brick wall isn’t just really tall, it’s also super thick. The problems here are also theoretically solvable, but much less easily, and – in a bunch of cases – not even possible with current – even bleeding-edge – tech.
Putting aside all of the work to actual create unique variants of a given asset – which is massive, but people have a lot of free time and this is one area where procedural generation could at least theoretically be leveraged, let’s talk about the technical challenges of actually delivering those assets to players. In pretty much all games currently, assets are shipped on disk. This is why games like Apex are many 10s of GB – or, in some cases like CoD or Red Dead, even 100GB+. As a general rule, games aren’t currently streaming assets from the cloud. Assets are big. Again, theoretically solvable. But it’s a big lift. In order for every game client to render a given asset, it needs that asset. And that currently would mean every client would need to ship with every possible asset it might ever want to show. That’s just not practical. Huge MMOs are not built to have millions of unique assets. Even having thousands of different-but-not-unique (meaning unique per-player) is a big part of why today’s games are so massive. Even if we could create a slightly different variation of each skin – which is a big if, 3D models are massively more complex than JPGs, the process of delivering that asset to every game client is a major technical challenge.
Within a given game, assets are not typically transferrable between characters. A Loba skin cannot just be placed on Bloodhounds character model. Now, this is potentially solvable – and some games are built around a generic character model (in Zwift, for example, any jersey could be applied to any model, but jerseys are way simpler than character skins in Apex and the Zwift character model is much simpler than the Apex character models). But there’s definitely no concept currently of a shared character model within the industry as a whole. Even within a given studio, each game uses its own model – and for good reason. The movement and particulars of a given model are unique to that game. FIFA’s needs in terms of its models are quite different from Apex’s. And they are built on top of very different architectures, even within EA, it would be a massive challenge to make, say, an Apex skin work in FIFA or vice versa. Looking at something like quips, even if you could convince a given voice actor to record thousands or millions of unique quips, audio in games is processed by all kinds of different audio engine. Apex uses Miles. Zwift uses WWise. Both of these engines can convert from standard formats like a WAV, but doing that on the fly is just not practical. Again, theoretically solvable, but I hope folks are starting to sense the sheer volume of unique problems that need to be addressed in order for NFTs to be functional in games.
Now to take it one step further, and to expect assets to be shareable between games made by different studios, especially studios owned by different parent companies. Games are not built with this sort of interoperability in mind. Games are nothing like the web in this regard. Games are, in general, built around bespoke and highly specialized protocols that are entirely specific to the needs of a given game. This is true of control schemas, of rendering, of well… pretty much everything. Again, this is maybe (at least theoretically maybe) solvable, but it’s hard to see what incentives there are. And the cost would be massive. The nature of the web dictates shared protocols (though, as Moxie points out in his piece, that has very real ramifications that are often glossed over in discussions of “web3”); the nature of games dictates unique protocols. There are a few shared protocols – controller and mouse-and-keyboard input processing come to mind, but what a given game actually does with that input is very bespoke.
Any one of these specific challenges would be massive. Taken together, they render NFTs in games a practical impossibility currently (and, I’d argue, for the foreseeable future). “But what if…” Yes, any – all of these problems could be addressed. But to what end? Why? Certainly customization of our digital selves has a certain appeal, in the same way that customization of our actual selves through our choice of hairstyle, clothes, jewelry, body art, etc is basically as old as humanity itself. And I think at some point we may get there. But I’d also say that history provides a lot of examples about the limits of “compatibility.” Whether through language, or currency (and yes, I’m aware that’s one of the great “features” of crypto), or citizenship, or whatever. Even the web seems – at least to me – to be growing more centralized – and more siloed in the process – thanks to Apple, Facebook/Meta, Google, Amazon, and other megaplatforms. Portability of personal data feels like a much more important goal, and also much more feasible. Photos and music and videos are all designed around common formats in a way that games just aren’t and – fundamentally – probably shouldn’t be.
I’ve tried to stay away from the, “what problem do NFTs actually solve?” or “I fail to see how NFTs actually make games ‘better’ (meaning more fun, engaging, immersive, etc.)” because I think that’s much more a matter of opinion than the technical realities that render NFTs in games infeasible, regardless of whether or not they are actually accretive to the experience that a given game actually provides. But this topic – should we have NFTs in video games – along with what exactly that might mean are important discussions to have. I think the industry is still catching up to the very core idea that “free to play” games can be extremely profitable. And I certainly understand why NFTs seem like the (or at least “a”) logical evolution of how that works. Whether or not NFTs are a solution in search of a problem or not, they absolutely represent their own technical problem, and it’s a massive one. I hope that this gives some sense of the scope of that problem.