The Next Game Engine Won't Have a Manual — Arturo Nunez, Nereu

AI Engineer · 19 min · 192 sentences · from YouTube's caption track

Each timecode opens YouTube at the start of that sentence. Line anchors (#s42) are the cue ids in the WebVTT, and every line carries its start and end seconds. All transcripts has every talk, and the whole corpus as one file.

  1. 00:01[music]
  2. 00:12Hello.
  3. 00:14Hi everyone.
  4. 00:14Thank you for being here.
  5. 00:16Um let's start the presentation.
  6. 00:19Uh I really appreciate you having interest in in learning more about uh game development.
  7. 00:23So, today I'm going to talk about how I think the next game engine won't have a manual and uh at the end you'll see what I mean by by this.
  8. 00:33My name is Arturo.
  9. 00:34I'm uh working on this tool called Nereo and uh first I want to show you kind of like how it works today.
  10. 00:43Uh so you get a glimpse of what I mean by all this.
  11. 00:47Um So, we we we we can start asking for what we want and describing something like, "Okay, I want to add a robot."
  12. 00:58Um okay, so I ask my assistant to help me add a robot.
  13. 01:06It found some assets that are robots or having tagged as robot or the description are uh a robot.
  14. 01:13In this case, I want to have a character.
  15. 01:16It's going to be the character that I will be controlling.
  16. 01:19Um if I try to play right now, it won't do anything.
  17. 01:22I still need to tell what I want.
  18. 01:24I need to describe, "Oh, okay.
  19. 01:26I I want this to be uh to move with WASD and I want it to be animated uh have some sort of animation."
  20. 01:34So, I will describe that to my um assistant uh which is called Bibi, by the way.
  21. 01:40And I'm saying, "Make this robot move with WASD and animate it as I as I mentioned."
  22. 01:47These descriptions are pretty common if you know or if you've played games.
  23. 01:53You just describe what you want the the thing to to do.
  24. 01:57And it's language that uh people who play games kind of understand.
  25. 02:01So, you don't need to to code or you don't need to learn about importing models or anything like that.
  26. 02:07The focus is on making the game.
  27. 02:08So, now we have our character moving.
  28. 02:11I want to continue describing my game, building my game.
  29. 02:14So, I want to add some buildings.
  30. 02:17In this case, we have like a library of assets that might match the description of a building.
  31. 02:24We could have like futuristic buildings, something like this warehouse or or store.
  32. 02:31Maybe we can use a a castle.
  33. 02:34The idea here is that we can let our imagination go wild.
  34. 02:39It doesn't need to be you know, like the the the the the perfect game or anything.
  35. 02:45It's kind of like playing a game, playing with toys, playing with with Legos or or something like that.
  36. 02:51I'm saying I want it to to to to have some rain.
  37. 02:55So, I just described the rain and it will spawn a particle system that's set up or configured as as as rain.
  38. 03:03The last thing is I want a camera to follow my character.
  39. 03:08Because if I move around, it will go out of the of the of the view and I won't be able to to see it.
  40. 03:14So, it added a camera, it configured it, it's looking at my main character and I have a game without knowing how to code or import assets or anything besides just knowing
  41. 03:27what I want because I I know the the language of of building building games.
  42. 03:31That's the idea.
  43. 03:33So, making games or getting to this point with a a regular tool is very difficult.
  44. 03:41I I recorded this demo, but you could do this in just a couple of minutes without knowing anything.
  45. 03:47Just describing.
  46. 03:49All the assets are there for you.
  47. 03:51But if you were to follow the traditional workflow, you you will need to know other things.
  48. 03:57Sorry.
  49. 03:58Before jumping continuing, I I want to mention why am I speaking here and you can decide if you you want to to pay more attention or less attention to to myself.
  50. 04:09I worked at Unity, a game engine company for almost 10 years.
  51. 04:14So, I saw a lot of people building games and struggling with the same things over and over.
  52. 04:19At first, it was fun.
  53. 04:20The challenges were fun, but after seeing them thousands of times, it was like, "Okay, this is not fun.
  54. 04:26I don't think people should spend their energy and and and time uh reinventing the same wheel."
  55. 04:33So, then I I I was part of MongoDB.
  56. 04:35Then I was learning about more AI topics and how to you know, manage data and all that stuff.
  57. 04:43And I was helping a startup to manage and handle a version control of assets of of games.
  58. 04:49So, as I said, I've been I've seen people make games.
  59. 04:53I've made games and I think I want to to to to to let more people have fun and and experience the joy of making games without getting frustrated and without
  60. 05:07you know, spending two three years releasing something, realizing that it's difficult to to to to sell a game.
  61. 05:14There's a lot of competition.
  62. 05:16And of course, if you want to do that, I'm not preventing you from doing that, but a lot of people I think it's it's just an a creative outlet making games and the game itself should be the the the thing, right?
  63. 05:28Like enjoying the process rather than the end product.
  64. 05:33Okay.
  65. 05:33So, as I was I was saying before, making a game requires a lot of skills, a lot of knowledge.
  66. 05:40It's very it's very difficult.
  67. 05:41You need to know programming, 3D modeling, rendering, music, animation, and so many other things, you either have a huge team that complement each other, or if it's just you, or you have a small team,
  68. 05:56people need to wear multiple hats.
  69. 05:59And honestly, it's very difficult to find someone that's great at game design, and also great at rendering, and great at composition of cameras in real time.
  70. 06:08So, on top of that, the game has to be fun, right?
  71. 06:14If If it works and technically works, if it's not fun, honestly, people won't play it.
  72. 06:21And I think fun should be for the player, but also for the developers.
  73. 06:25In recent years, I think it's become more about producing more and trying to sell more, rather than than than the the craft of making games.
  74. 06:36And I don't think you need to be a a professional game developer to be able to to make games.
  75. 06:42The same as with with AI assistants to write code, now you don't need to be a programmer to to build whatever you want.
  76. 06:50The same for for games.
  77. 06:51There are other challenges, but that's my my thought.
  78. 06:55Now, there are powerful engines, Unreal, Unity, and there are powerful LLMs and agents, but I think still it's hard.
  79. 07:04It's hard because I think we're just building a bridge between two worlds, and it's not optimal, and you still need to know kind of like what to ask in vocabulary
  80. 07:15of an engine, in the vocabulary of of code.
  81. 07:19Otherwise, the the the the the LLM goes rogue and does stuff, and reinvents the wheel over and and over.
  82. 07:28This is the the point, right?
  83. 07:29Like, if I say, "I want a camera that follows this character," I've seen the the demos, and the LLM reinvents the wheel every single time.
  84. 07:38Well, when the result is going to be essentially the the same.
  85. 07:41Uh, by default, the context is on the game engine uh rather than on the game design part, and I think we should flip that idea.
  86. 07:51So, in a current engine, if you want to control a character, you need to have a mesh uh uh import a mesh and think about uh so many things, a renderer,
  87. 08:01an animator, a rigid body, and collider for physics, an audio source, and then you add your movement logic and your game rules.
  88. 08:09Uh most of that is just boilerplate that every single game out there has or every character in every single game out there has, but somehow developers need to understand
  89. 08:20and read the descriptions of those components and what the hundreds of of of of sliders do uh in in in a game.
  90. 08:27So, I think the the the the the goal should be just to think, "Okay, everything is just an asset.
  91. 08:35Everything has to be rendered on screen.
  92. 08:38Everything has physics most of the time uh and you just add tags to describe the intent of those those assets in your game.
  93. 08:47So, I want this to be a character, to be animated, to double jump."
  94. 08:51And this is the language of that we use when we play games, right?
  95. 08:55Like uh the tutorial tells you, "Oh, press A to jump and press A again while you're in the air to do a double jump."
  96. 09:03That's that's the language that we should be using.
  97. 09:06And uh also defining what happens when when a an event occurs.
  98. 09:10Like in this case, "Oh, when you collect a coin, I want you to increase the score."
  99. 09:14And uh of course, the physics and the rendering still happen, but uh we're we're we're building uh on a layer on top to make it more accessible for more people to to build uh games.
  100. 09:28Um and the engine knows what to do with these tags because these these systems.
  101. 09:35And this system comes from something that we're calling the ATS or asset tax system.
  102. 09:41Comes from the idea from game development called the entity component system data oriented design, which means we just describe objects with with components or in this case with tags.
  103. 09:55And then there are systems that query for all the assets in the in the world and say, "Okay, this I'm going to move all the objects that have the vehicle,
  104. 10:08the player, and the drivable tag."
  105. 10:10So, that's how how it works and all the games can recycle this.
  106. 10:14In the on the on the right, you see that there's a building.
  107. 10:17It doesn't have tags, so it's not going to move.
  108. 10:20But nothing prevents you from adding the the vehicle and drivable tag to your building and then you have a a building that you can put in a Mario Kart style of game.
  109. 10:30Nothing prevents you from from doing that and as I said like letting your imagination go wild.
  110. 10:36Uh the assistant the AI assistant essentially helps you get unstuck.
  111. 10:40Like if I don't know how to make the car moves, I just ask it and it knows understands like what are the tools available, what are the tags available,
  112. 10:48and then it applies them to to the to the to the asset that I'm talking about.
  113. 10:54Uh how it is driven and this is this is pretty common concept from from um agents.
  114. 11:01You just type your query.
  115. 11:03You well, we build the the the prompt using context from the scene, but also some extra context based on for example, what type of assets are on your game.
  116. 11:16If you're using robots, if you're using something like medieval, etc. We we append that to the to the to the context.
  117. 11:24We also allow the the user to describe the type of game that they want to to make.
  118. 11:30So, that's also part of what is is appended into the into the the context.
  119. 11:35And then the agent just performs calls and appends or removes the the tags.
  120. 11:41All these tags and all these systems are built into the the the the engine.
  121. 11:48We don't have a scripting system in there.
  122. 11:50That's on purpose.
  123. 11:52But it's just JavaScript and runs on the on the browser.
  124. 11:55So, whoever wants to extend, they can.
  125. 11:58Nothing prevents them from from doing that.
  126. 12:00But for most users that shouldn't be the the case.
  127. 12:05Yeah, all the updates to the scene happen and that's how how it works.
  128. 12:09Honestly, it's the the the challenging part is the composing games into these tags and into these systems.
  129. 12:18Because there are a lot of genres, there are a lot of ways to describe the same game, there are things like the mood of the game.
  130. 12:26Like I want to make a platformer but that feels like scary.
  131. 12:31Well, that also touches on things like like the post-processing effects and things like the lighting, etc. So, those those things are the things that we're decomposing to to to
  132. 12:43drive the the engine.
  133. 12:45How I'm building this?
  134. 12:47Well, it's it's the first time that I built something of this scale at this speed and using you know, mostly working with with an AI daily.
  135. 12:59And I'm sure everyone who uses Cloud Code or something similar.
  136. 13:02The way it works is I bring all this stuff that is on my mind and I talk to the to to Cloud and we discuss that part and I go to let's say if I'm focusing on something related to to to
  137. 13:16lighting, I talk to some friend on the industry who focuses on that and I ask questions and then I bring that in and then we build those tools and I kind of like say I don't think we need this setting.
  138. 13:29I don't think we need this feature.
  139. 13:30I haven't seen a lot of users using those things.
  140. 13:33So, let's get rid of them in order to simplify the the engine.
  141. 13:37Uh we build it.
  142. 13:39Then, as we build, we give uh the definition of the tools to the to the assistant.
  143. 13:44So, every time uh we add new tools, the assistant knows the the tools that we're we're adding.
  144. 13:50And um yeah, right now it's it's kind of like still in closed alpha.
  145. 13:56I don't even know how to call it at this point.
  146. 13:58But, some people are using it, giving feedback, and uh then we go back to square one.
  147. 14:04Um one thing that I I think it's worth sharing also in in in in this presentation is the the way of assembling these contexts because yeah, we're using an LLM mostly.
  148. 14:16Uh I've used uh also vision models mostly to tag the the assets that we have because it's like six or 7,000 assets.
  149. 14:25I could not manually tag them all and explain like, "Oh, this is a an astronaut and this is a a knight and this is a castle and this is whatever."
  150. 14:34I just have the names and the and the and the 3D file.
  151. 14:38So, I took a screenshot and ran a a vision model to describe the those.
  152. 14:43But, it's mostly an an LLM what's uh what we're using.
  153. 14:48And if we feed the entire scene to the LLM, the context grows a lot.
  154. 14:54Let's say in this in this scene I think I had like 100 assets at 100 things uh being there.
  155. 15:00But, most of them are like grass that we could ignore.
  156. 15:04It doesn't really make sense.
  157. 15:06But, uh this is simple like like scene.
  158. 15:09But, what we're using here to to assemble the context is something that's very well known in in the in the game dev world, which is called level of details,
  159. 15:18uh which means if I'm close to an object uh or or it's close in inside to to myself, I'm going to render it with a higher quality texture, with a higher quality material,
  160. 15:30with a higher quality model in many cases.
  161. 15:32Something that's too far away from the camera, I'm just going to maybe just put a cube and the user won't be able to to tell because it's so far away.
  162. 15:42So, we're using something similar to assemble the context.
  163. 15:45In this case, if the user is editing the game, you can see that maybe well, it's it's it's clicking on the on the knight, right?
  164. 15:54So, the things that are around it might have a higher priority, so we feed them information about the tags that they they have and the the values of the of the settings on on those tags.
  165. 16:06Things that are nearby, we just say, "Okay, there's a something that's a player here at this position, but I'm not going to send you the entire entire context in there."
  166. 16:18Okay?
  167. 16:19And as as a user keeps moving around and modifies things, then we update that and feed the the assistant with more relevant information about about the game.
  168. 16:33Okay, so just to start wrapping up, I I I think this assistant called Weeby should be kind of like the the something that gets people unstuck from making the game.
  169. 16:49I don't want us to one-shot games that nobody is going to play and I don't see the point in in that.
  170. 16:56There's in the industry, of course, the need for for games that are one-shotted, but here the idea is that we allow people to make games and experience that and have fun
  171. 17:07and share that those games with their families and friends and and and that.
  172. 17:11And of course, that they learn along the way the language of making games, the language of game design, not necessarily the coding or programming.
  173. 17:20Although people have used it this and say like, "Oh yeah, I can understand now concepts that I didn't understand before of programming."
  174. 17:28But that was not the the the initial goal.
  175. 17:32Um there's another kind of like branch of of engines or tools that are are being used called world models, which are being generated on the on the fly and and some people I think there's another session later talking about these and how games can be achieved with world models.
  176. 17:50I think that's going to be a different medium even if we call them video games.
  177. 17:54Uh there are many challenges.
  178. 17:56Games for instance in these days they have to render 60 frames per second.
  179. 18:01And doing that at 4K resolutions in real time uh with a with a world model, I think it's still far away.
  180. 18:10And on top of that rendering physics and on on well sorry, simulating physics and stuff, it's very difficult, but I think it's exciting what's going on.
  181. 18:20Um so that's it.
  182. 18:23If you want to play around, if you want to share this with your kids or friends or or whoever, uh I I can add you to the to the wait list.
  183. 18:33Um it's honestly it's been very fun to make, but also whenever I want to test something and I just play around and and and bring in uh an astronaut
  184. 18:44and bring in a dinosaur and make them just walk around, it's it's so much fun.
  185. 18:48It's uh it's it's kind of like what got me into game development I think like 20 years ago.
  186. 18:55And I progressed throughout my career.
  187. 18:57I started getting like kind of disappointed like, "Oh I don't This is not fun anymore."
  188. 19:02So I'm having fun again and I want to share that with uh more people.
  189. 19:06So thank you so much and I'll be outside if you have questions, want to chat more about games or whatever.
  190. 19:12Thank you so much for your time.
  191. 19:14[applause]
  192. 19:30[music]