YouSaid · the spoken record

Tim Sweeney

lines on the record
296
first
2025-04-30
most recent
2025-04-30
sittings or episodes
1
sources
podcast

Every line below is reproduced as it was said and linked to the record it came from. Nothing here is summarised or generated. Directory · Search · Corrections

  1. Can change a company's economics for the worse enough to deter almost any public company. And, you know, Epic is in the fight because I firmly believe that something like the metaverse will only arise, it's something like a billion plus user, you know, real-time 3D social ecosystem that grows to encompass potentially all or most major games by all major developers tied together into an open economy where they all participate as peers and they all compete to give developers the best deals and they grow and do business with their customers directly. Thing can only exist if the Apple and Google gatekeeping monopolies are lifted. And it's not just the 30% fees. The 30% fees are economically ruinous, but they impose other levels of control. Apple prevents all web browsers on iOS from implementing web standards better than Apple does. So Apple has really

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  2. That took a bit of discipline, which I think is also calculation by Apple that they couldn't survive being seen as the company killer. If you criticize this, we'll crush your company. But the other thing Apple has that they can and well readily deploy against every developer is soft power. When they take 30% and advertising is so expensive, soft power by Apple, like approving your updates faster or slowing down all of your updates by a couple of weeks can also have a dramatic effect on your ability to compete successfully. Apple has a very long history of playing cat and mouse games with developers. It's like a developer isn't an Apple's good graces, so just slow now in the updates. So they've been slowing down updates for several major tech companies sometimes for weeks, sometimes for months, without all going under the radar because everybody's afraid to challenge them publicly. And so Apple is wielding a softball.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  3. Clear with developers that they're willing to deprive all users of access to any app if they get in a fight. And if you look at how they dealt with Epic, they were not just legally maneuvering with the intent of winning the court case against us. They were also sending a message to all developers in the world. We will destroy your business or we will try our best if you fight us. And a very small number of vocal developers have been willing to speak up. Apple was actually refrained from crushing their businesses when they weren't violating any Apple policies.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  4. All companies are terrified of Apple because Apple can destroy their business. Epic was in a unique position with Fortnite, first of all, having the biggest game in the world at the time we started the fight with Apple. And second of all, having a majority of our users playing on PC and console meant that if we lost access to iOS during a fight, then we would still be able to survive. That setup took apart... Spotify, Facebook, you name the top 10 mobile apps. I think none of them would be able to survive without Apple. Like literally, their business would be destroyed if Apple blocked access to them. And Apple is incredibly...

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  5. The first result always because steam's not getting anchitified with advertising, Apple is And, you know, they do that so they can make even more than 30%. So if you want to be the first search result for your game, you're probably paying more like 45%. If you want to reach users on social media, you're paying another 20%. So literally something like 70% of the revenue for your game is just going into junk fees to acquire users and get them in your game. And the money that's left over is only enough to fund these games with rather abusive practices that do not look to normal gamers like games for the most part. Now, there are some exceptions. There are some great games on iOS, and there are some games with good practices. But the engine has been really corrupted in a way that computation would fix if you unleash lots of competing stores on iOS, then you'd have lots of awesome options, and you'd have much better deals and much better prices.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  6. And it's very hard for the fund based games to actually succeed there. And the cost of operating these online games now are enormously high. So you have a game that's based on fun. It's not lootbox heavy. You have to pay 30% of your revenue to Apple in order to just get access to the platform. And 30% is way, way, way more than most game companies make in profits right now. And so if that fee is more than the profit from a natural company, then they can only stay in business by raising prices. So these 30% fees are raising prices of all digital goods. It's just inflationary as a force in the economy. That's just the first drag tax, but then to reach users, when a user searches for before Apple blocked Fortnite on iOS, when a user searched for Fortnite, the first result was always some competing game. It's utterly anti-user. You search for Steam for a game, and if that game's on Steam, it's...

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  7. Best console games you see listed in the storefronts, the best console games that you see reviewed are awesome games that really have a lot of creative merit. The ones that sell the best are really enormous values for their money and are their product of an immense amount of work. You don't see that on iPhone. The top apps on iPhone, the top games on iPhone at almost all times are these ridiculously greedy, high monetizing whale games, which are pervaded with pay-to-win and loot box practices. They have a sort of a legalized form of gambling. And these games are not driven by fun. They're driven by manipulation of the players to greedy ends.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  8. A much better app store than the iOS App Store, and a lot of people would use it, and that Apple would be forced to build a better app store in competition and that everybody would improve their products as a result. But Apple and Google shutting down the competitive engine that drives the software economy has massive implications for everything. And one of them is reshaping the nature of mobile apps to be really offensive to game or sensibilities. If you call on console,

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  9. And running them yourself without having become a developer account, without having to go through their bureaucracy. And there's no reason that any consumer who gets an app shouldn't be able to do business directly with the developer of the consumer. You already bought that phone. Why should Apple be adding a 30% junk fee to all commerce you do? And why do they selectively apply it to some things and not others? I've always viewed this as deeply abusive and that it shuts down the competitive engine that once fueled the app and software economy. It's still a vibrant competitive engine on Windows and on the internet, but it's no longer with mobile apps because these stores have popped up and they don't provide any useful value to the user. Yes, they're a search function defined software, but there's no reason other companies couldn't build a better one. And I bet if you had Steam or if you had Valve build Steam for iPhone, I bet Steam for iPhone would

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  10. And yeah, so it's really been firmly implanted in my mind that this was a magical and wonderful time of unmatched economic progress for technology in the entire world. And over time, big companies have realized that they could shut down and just block software makers from releasing software on their own and block software makers from doing business with customers directly. And I've always viewed this practice as terribly abusive because when you buy a computer you spend or a phone, you spend good money on it. It's your money you spent on that phone and now you own that phone. And there's absolutely no reason that Apple should block you from installing apps from other developers directly if you want, going to their web page or writing your own apps without their permission.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  11. Let's start from a very basic principle of computing. The first computer I owned was an Apple II Plus, designed by Steve Wozniak and marketed by Apple and then an IBM PC. And in those days, anybody could write code. Your computer literally turned on with a programming language prompt in front of you. You had to actually do work to not write a program and to instead run somebody else's program. That was incredibly empowering. And anybody could write a program. Anybody could put a floppy disk. Anybody could share it with their friends. Anybody could make copies of that, put it in a store. They could sell it. They could build a business around it. And they were completely able to, without seeking any big tech corporation's permission, do whatever they want. Even from IBM. Remember, IBM was the dominant computer company on Earth at the time that they released IBM PC as an open platform.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  12. And over time there'll be more and more. There's also a lot of Indie developers living as content creators. They'll be releasing content on Fab Marketplace or the Unity Asset Store and earn a living for that. But specialization of labor is a really, really valuable thing in their early days pretty much one person would build one game. That's how a lot of the games were built in the 1980s over time you had a separation where artists became specialized and then programmers. And then gameplay programmers and engine programmers. Now you have technical artists and you have dozens of different specialties contributing to a AAA 3D game now. And the more we can modularize those bits of content so you could get something off the shelf rather than having to build it or have the engine synthesize it for you the more we can enable creators to create stuff fast and successfully.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  13. That's really about productivity. To be successful with a game, you have to have a great game. If you're targeting, if you're building a type of game that nobody has ever built before, you might be able to build a smaller, simpler game than if you're competing in a massive genre that has huge expectations. But it's all about enabling somebody to do that in a reasonable amount of time that they can spend and to be able to finish it and chip it and maintain it successfully. The tools are a big part of that, having the tools be as productive as possible. But there are a lot of other facets as well. Like having a content marketplace is a big thing. Just off the shelf piles of content, some free, some paid, built by other creators can enable a small indie team to build a big game and just be able to focus on the unique content of the game, being able to rate their gameplay and lay out their environments the way they want, but not have to build every tree and rock. Yeah, because somebody's already built one and theirs is probably perfectly suitable for your game.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  14. It can build a game once and then ship it anywhere. The ultimate version of this enables a game developer to build a game of any sort, either or simultaneously both ship it into Fortnite as a Fortnite island that players can go into, bring their Fortnite items and cosmetics and interoperate properly, or ship as a standalone game or both. And if they ship as a standalone game, they shouldn't be missing out on the open economy either. Because in this timeframe, we'll have opened up the Fortnite item economy to third-party developers of all sorts. Hopefully there's a standards body, but there might be multiple phases of it so that if you choose to ship a standalone game, you can still choose to have fortnight items work in your game and have your game items work in Fortnite and have your item economy integrated with the overall metaverse economy and make

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  15. The aim for U6 is to bring the best of both worlds together. Much easier gameplay programming for the Fortnite community and for licensees, more scalability to large-scale simulations of all sorts, greater ease of use, meaning it will be easier to hire programmers who are familiar with and experienced with a thing, but also ensure that every game developer has the full deployment capabilities.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  16. Come together is on your own gen 6. And it's a few years away, we don't have an exact time frame, but we could be seeing preview versions of it perhaps two to three years from now, and we're making continuous progress towards it.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  17. More, and everything we add makes the world a much better place for Fortnite creators, and we're adding major, major new APIs every few months throughout the course of this year. Whereas Unreal Engine licensees who are building standalone games already have access to the full engine through C++, they have massive, massive expectations of an API. And so we can't release this to them until we've built up all of the essential features that they'll need for building their gameplay in the future. And so we have these two different tendrils of progress. There's Unreal Engine 5 for game developers, and there's Unreal Engine 5 targeting the Fortnite community. And there's different bits of development that are only in one area of it that aren't applied to both. Not all of the Unreal Engine 5 features are actually available in Fortnite because some of them we haven't figured out or haven't gotten to the point where we can deploy them to all seven platforms and a platform independent way. And so the place where all these different threads of dollars

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  18. There's a lot going on in parallel. The key thing with verse is that we have been specifying what we think is the ultimate version of the language with all the features we want, whereas we've been shipping more modest versions of language over time. And we've released dozens of updates to it over the past year and a half. And the idea is that the shipping version that gains more and more features over time, but each maintaining backwards compatibility with old versions and each continuing to improve and approach the ultimate version of it as we go. And we've been doing this experiment entirely within the world of Unreal Editor for Fortnite for now. We want to test this and iterate with Fortnite creators in just the metaverse usage case before we make it available to all of our partners using Unreal Engine for all of their projects. And the idea is to iteratively improve it and build it out because right now UEFN has relatively few features for programming. It needs a lot.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  19. And we're moving a vast amount of pain that would be imposed on a million people instead to a vast amount of pain imposed on a small number of people have to actually make this work.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  20. Yeah, exactly. And the key is that you're running these updates speculatively and you're not committing their changes to memory until you're sure that they're free of conflict. So you might update 10,000 objects. You might find 9,000 of them were conflict-free. So you apply those 9,000 objects updates to memory. And they could have run in any order and it wouldn't have changed the result. Now there's a thousand objects left over. Now you have to run those again, try them interleave in a different way to... Get them to eventually commit to memory. And in the meantime, you just throw all of their computations away and redo them later. And by doing this, like removing this from being a programming problem for the programmer to deal with to being a language problem for us language designers to deal with.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  21. It we're going to All of our rights locally. We're not going to write data. We're not going to write changes out to global memory. We're going to keep track of it in a buffer that's just for that one transaction. So we're going to be, it's going to look to that code exactly as if it's running on the global system affecting global game state, but it's going to be isolated to just that one transaction. And it's going to be set aside and buffered up for consideration later. We're going to run tens or hundreds or thousands of the updates concurrently. We're going to see which ones had read write conflicts. Because if two transactions don't read and write any of the same data, then you could have run them in either order or simultaneously and it wouldn't have changed the end result.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  22. That's done single threadedly in each game session. This is why Fortnite is 100 players limitation. If you absolutely maxed out our server, maybe today, You know, it's not going to thousands or millions or billions. And so, what we need is a technique for magically automatically scaling our code to that. And transactions of the idea. And the idea is a transaction is a granule of code that runs its entirety. And so the idea of this transactional memory concept is that we're going to have programmers write completely ordinary code that reads and writes variables in a completely ordinary way, and they're not going to have to worry about concurrency at all. And then the system. Like today, a program, a computer just runs your program. There's no amount of speculation going on at the programming language level. The idea of transactions is since we have a bunch of operations, we need to know we apply, we apply a large set of them concurrently, but instead of each one reading and writing from global memory shared by all, in which case they might be reading and writing and contending with each other for the same data and might be doing contradictory things.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  23. So, the idea of transactions is its way of dividing an entire program into updates, self-contained updates that do an arbitrary amount of computation, but must run in a single threaded manner. And in the case of a game engine, that's a gameplay object update. When you're playing Fortnite, you see gameplay objects. Every other player is a gameplay object. Every enemy is in the gameplay object. Every rocket and projectile and car and thing you see moving around and interacting. It's not just a fixed static part of the world. That's a separate game object. And each of those objects is updated at a rate of one update per frame at 60 frames per second. And so then in the course of Fortnite Battle Royale gameplay, you have tens of thousands of object updates happening every frame with 100 players. A simulation with billions of players, you'd have a whole lot more than that.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  24. A transaction is a block of code that does a bunch of operations on memory, might read, might write, it might process an order, it might accept an order or reject an order. It might transfer money between one bank account and another. It might make conditional decisions like, oh, you asked to transfer $100 from your account to this guy's account. We're going to see if you have $100. If you don't, we're going to reject it. And if you have $100, we're going to take $100 out of your account and add it to this other guy's account. Without transactions, if everybody's just randomly adding and subtracting each other's bank balances, then you might have somebody read a bank balance, subtract 100, and ride it out. But in the meantime, somebody has written something else in the meantime. And so you might get inconsistent bank balances arising if you don't have a way of ensuring that these all run in a specific order.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  25. The metaverse, where you have millions of programmers who are mostly not going to be computer scientists, they're mostly going to be hobbyists and enthusiasts and first-time programmers doing stuff for fun. That's never going to work for them because they'll never be able to envision all the different dependencies between different computations they're running in parallel. But it turns out that there was some amazing foundational work done in the 1980s that was made very real by a paper on Haskell concurrency composable memory transactions is the name of the paper. And it describes a system for transactional updates to programs. And the idea of a transaction is

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  26. Incredibly hard. It's so hard that we've in five generations of Unreal Engine, every single generation decided we're not going to try to scale up all of our gameplay code to multiple threads manually. It's just much, much, much too likely to go wrong, not only for ourselves, but for every partner company who licenses on Real Engine and tries to use it for building a game. It's just a massive foot gun. There's a variety of solutions to concurrency that are all rather suboptimal. One attempted solution was like, just don't try to solve this problem at all. Let's break our program down into microservices. And almost all online websites have massive scale, like Amazon's dot com, work with hundreds of microservices for different servers, negotiate with each other by sending messages to each other. And by programmers writing those things very carefully, they eventually get to being able to take your orders and not make a mess of them reliably. But this is totally not scalable to...

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  27. This is the one biggest technical problem that we're working to solve in this generation, and that is taming concurrency so that any ordinary programmer can achieve it by just writing ordinary code. Programming on a single threaded computer is hard enough, but it is completely predictable. If you have a language that's deterministic and you run the same code over and over, it's always going to do exactly the same thing, and there's no unpredictability about what might happen, right? You're reading and writing variables in some order, and you're always going to see it behave the same. The problem is when you introduce multiple threads or multiple nodes in a data center all working together on a single problem, is that they each want to read and write different pieces of data and change the state of the world as they go. And still almost all concurrency in real world programs today is achieved manually. Programmers are writing this code that might run in multiple threads very, very carefully so that they are negotiating among each thread to get access to data in a way that's going to give them predictable results.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  28. There have been massive announcements of horrible vulnerabilities in software and services over the past year. It turns out some nation-state backdoored a bunch of telecos surveillance systems for wiretaps. Huge problem there. But, you know, often when you break it down, it's probably because of some buffer of a run in some C program. These decisions about programming languages have long-term implications.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  29. Only like seven laws, you can construct all of mathematical logic in a type system. And one of the important things for programming language is it hasn't been given enough attention is Aspects of programming languages are just subjective, they're just machinations of the programming language designer. Guido van Russum decided that Python should support indentation in a certain way. And as long as you're doing with things like human notation and naming of things, there's always going to be that subjective layer. But there are other parts of programming languages that are not subjective but should be fundamental. And when you look at type systems, there is a way to do type systems that gives you mathematical proofs. And every other way of type systems that doesn't give you mathematical proofs is just worse and should ultimately be rejected. And so I think one of the jobs of computing is to identify what have we actually done right in the past and what have we done wrong. And for everything we've done wrong, actually going back and fixing it. Otherwise, we just keep accumulating so much crust that our systems eventually are crushed under their own complexity.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  30. You know, if you break down what is a proof? Well, a proof that integers exist is some integer. Like five is a proof that integers exist. So when you have something like var xint and you say x equals 5, well, you're proving to the compiler that 5 is an integer. That comes as secondhand nature, but you can prove more advanced things. If you want to prove that a pair of things are true, that like theorem A is true and theorem B is true, then you need to provide a pair of values, one that proves theorem A and one that proves theorem B. And that's the conjunctive law of proofs. And there's a disjunctive law too. And then there's an implication law for proofs. And it turns out that that's really satisfied by functions. When you write a function in a programming language, you're saying, if you give me this thing, I will give you that thing. If you give me a parameter of type something, then I'll give you a result of some other type. And if you write that by writing that function, you're proving

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  31. Right, this is a result from the 1930s. It's one of the most important results of computer science that almost nobody knows about. But they did this rigorous breakdown of type systems and the 1930s formulation of programming and established that everything you can prove in mathematical logic, you can prove within a type system if it has certain features.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  32. Could if the compiler didn't beep with it, you could trust it was actually sorting the ray. And otherwise, you could go back to the AI and say, whoa, that didn't work. But getting to the point where we know our programs do what we say they're going to do or think they're going to do is a very important thing.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  33. We shouldn't see this as scary. Everybody working in a typed language like C or C sharp or Java is proving theorems all the time. If you have a variable of type integer and you assign some value to it, you've proven to compile compiler that that value was an integer because otherwise it would have rejected it. And so as we add more and more advanced proofs, we'll get compositional properties flying out of our systems that are easy to use and people prefer to use. And we might think in a future where we have AI helping us write certain kinds of code. The big problem with AI is you ask it to do something, ask you to write a fragment of code that does something. It might give you a perfectly valid fragment of code that compiles but does the wrong thing. And if we had languages where you could say write a function that sorts this array and prove that it did that, it could actually write the proof.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  34. You should be able to adopt these capabilities gradually and apply it where you really need it. Like if you're writing something like a cryptography algorithm, that's a good place to prove stuff. If you're writing a data decompressor that's going to be used by an entire ecosystem, like proving that that doesn't overrun memory is actually really important. And a lot of the reason that security vulnerabilities happen today is because in a different language a compiler could have caught, we're not caught in C because it just doesn't have this feature.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  35. Improving things becomes commentarily harder as they get larger, right? And so the really important thing about this whole field is that

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  36. And that becomes extremely important in the metaverse. The cost of fixing a bug that's made it through to runtime and is in users' hands. The cost of fixing a bug in a shipping program is hundreds of times higher than fixing a bug that you've just observed as you're running your code yourself. When it's running on your computer, you just fix a line of code and your bug's fixed. When you have to fix it live, you have to release a patch. You have to release patch notes. You have to test the patch. You have to check for all the other bugs that might have been introduced and everything becomes vastly, vastly more expensive. So the real aim of the verse program and approach is to catch all of these errors at compile time and make the metaverse a very reliable place.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  37. Incorporated in the types of variables. The property you want of a programming language is that if your compiler accepts your program and doesn't beep and tell you there is an error, then your program should work. Now... There are all kinds of ways humans can make mistakes there, so that we'll never achieve that ideal. But we can get closer and closer to it by having more and more language features that enable the compiler to catch more human coding errors and tell the user what went wrong.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  38. Of steps that can be mechanically verified or proving things. And when mathematicians say they've done a computer proof of a theorem, what they really mean is they've written the program in a proof language, like lean as a theorem prover, a COQ is a theorem prover, and there are several others. It means they've written a mechanical proof in that language that a computer is checked so that it's impossible to lie. If you say that you've proven a thing and the computer verifies it, then it's definitely true. And this is a feature of mathematical proof languages, but it's also a way an idea that's making its way into programming language gradually over time. And our aim for verse is to be the first mainstream programming language that fully adopts that approach and that technique. So you don't have to do that. And the idea of this is that you want gradually more information to be

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  39. This function takes an array of integers and returns an array of the same integers, but the result is sorted. If you express that as a theorem and you follow this system of type theory, then you can actually require that anybody who writes that sorting function to prove that it has actually sorted its result. And so you have types or theorems and values constructed a certain way can be proofs of those theorems. Nowadays in mathematical literature, you see more and more theorems are being proven mechanically. Mathematicians are proving theorems in a way that is verified by computer to be a correct proof. In the old days of math, people would write down like language. If you look at all of Euclid's theorems, it was just language. It was just writing in ancient Greek to say the steps of proof to convince the reader that the thing is true. Starting in the 1930s, mathematicians moved towards rigorous formal proofs in which there's a series of

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  40. One set of types today, then what changes can you make to that module for your future updates to it that don't break backwards compatibility? And that's a problem for type checking. Say you have a function that promises to return some integer. Well, in the future, you could say that returns some natural number because every natural number is an integer. So that's a backwards compatible change. But you can't say it returns a rational number because some rational numbers are not integers. So the system ought to reject that kind of change. But the much, much, much more interesting thing about type checking was the realization it was actually made in the 1930s. If you design a programming language type system in a very particular way, then it's not only useful for expressing types of variables. A traditional thing every type system does is say like variable x is of type integer. But if you design a type system in a certain way, then your types can express theorems, like mathematical theorems, you know, the Pythagorean theorem is a cool one. One theorem you might set of a program is like the theorem that

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  41. Release an update to something you've already published and be sure that it's backwards compatible with the one that you've already released. And that's essentially a type checking problem, checking that your new interface is backwards compatible with your old one. And that comes down to the type system of the language. There's been a lot of very interesting research on type systems over the years, most of which hasn't ever made it into the C++ programming language, unfortunately. But you see several branches of that whole field. One of the really interesting things that Java and C sharp did in the early days and then later abandoned and didn't bother update was defining a very rigorous set of rules for if you publish

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  42. Yeah, right. So the challenge with the metaverse is, first of all, there's a huge base of code that's evolving over time and written by many authors. So you might see every second a new module is updated somewhere, and you expect in this live ever-running simulation that never shuts down, for everything to upgrade live in place. And so one critical component that is the ability to

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  43. Really fascinating. You see, these users are learning this kind of as it's, it becomes their intuition. They just assume programming works this way and they write, they're writing way more advanced and interesting for loops and conditions than we're often writing internally because they've kind of grocked the core concepts.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  44. Or no, and you can combine these together into arbitrary queries. And if you'd like, The funny thing is this is not how C works. And so when we have Epic programmers moving over from C++ and writing their first verse code, they try to write C++ code in verse style and it actually ends up being kind of convoluted code that's worse than good C++ or good verse. When we see, but after a few months they get up to speed and they're writing really awesome code that's tighter and more compact than before. And with users who've never programmed before but are learning programming for the first time in the context of Fortnite.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  45. Values, you go through zero iterations and it produces a bunch of values. You go through all of those as zero iterations. Rather than having a bunch of nested loops, you can write arbitrary things that look like SQL queries in a condition or in a for loop that bind a bunch of variables, do a bunch of tests, produce a bunch of a series of results, and in some order that you're iterating over, and then you can handle all of them and produce a result. So you kind of gain the power of SQL queries, you know, large complex queries over data structures in a language that is much simpler in which your code is just performing simple iterative operations. And so kind of gives you the best of databases and of regular programming in a much more uniform way. And the power of this is now users can write functions that not only produce a value, you can write functions that might fail. And so you can write a function that answers a question. The answer can be either yes and my value is this.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  46. Operate, you know, running this one batch of code. And if your expression failed, then you go to the else branch. But the exciting thing about that is your expression that succeeds or fails can produce values and bind variables that are then accessed by then branch. So you can write a conditional where you can only get to the inside of the condition to the then if a bunch of variables have successfully been bound to variables. So it lets you test if some conditions hold and then use the results of those tests. And that gives you a much higher level of reliability. And then a for loop. In a traditional language, it's just a bunch of imperative code that's woven together to produce a bunch of values iteratively. It's rather awkward to do complicated things in for loops and see often end up with ever more complicated constructs built to work around that like iterators and other things. The idea of functional logic languages is your for loop can just produce multiple values. And if it produces zero,

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  47. And so there are a bunch of features in today's programming languages that were defined in an ad hoc way without really thinking this through, this 0, 1, or many values way. And that's the problem that functional logic languages address. The most basic example was an if statement in a programming language. If some condition holds, then do this thing, otherwise do that thing. And in a language today, this is done with variables of type boolean or expressions that produce Booleans. We have Boolean variables that are either true or false. We have expressions that evaluate to Booleans. And so you can express a condition as a bunch of these features together, but you've lost any computation you've done in doing that Boolean expression evaluation. So in a functional logic language, your condition wouldn't do that. It would either succeed and produce a value or it would fail if it succeeds it goes to the then branch. Your operation succeeded.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  48. Language, expression can produce zero, one, or multiple values. If it produces zero values, we might say it fails. If it produces one value, we say it succeeds. If it produces multiple values, it's kind of providing a set of values you could iterate over.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  49. The real knowledge comes as you learn ways to combine them to achieve bigger and bigger programs. And so there's long history to the field of programming languages, but in the 1950s, the first programming language designers got together in the first standardized language called ALGOL. And there was this meeting in 1956. Very few people even know about, but it's where all the major foundations of modern programming languages were decided on. The C family of languages inherited. And so we're very much living in a world that was defined by them. And thankfully, they got a whole lot of things right. They defined how functions should work, how variables should work, and how recursion should work. And thank God they got those things right. But they got a few things wrong. And versus trying to fix those. And that's the functional logic part of it. The interesting thing about functional logic languages is that in an old school language, an expression produces a value. In a functional

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source

  50. Versus a functional logic language because we think that that's the way to make the most simple and powerful language simultaneously. Back in the 1970s, the programming language designer who built Pascal, one of the early programming languages, Nyklaus Virth or Nicholas Worth, Americans might call him, stated this principle, the programming language should achieve a high degree of power, not by having a lot of features, but by having a small number of features that work together and can be composed together arbitrarily so that you have to learn a relatively small set of things.

    2025-04-30 · Lex Fridman Podcast · #467 – Tim Sweeney: Fortnite, Unreal Engine, and the Future of Gaming · IDENTIFIED FROM THE TRANSCRIPT · source