← Back
JetBrains TV October 19, 2026 23m

Agentic Development in Unreal Engine with JetBrains Rider | Alexander Dzerakh | GameDev Day 2026

Read full transcript 20 segments
  1. Okay, we'd like to invite Okay, we'd like to invite our next our next our next speaker. This is Alex, speaker. This is Alex, speaker. This is Alex, he's our he's our he's our product manager for Rider. product manager for Rider. Congratulations, Alex. How are Congratulations, Alex. How are you, Alex? you, Alex? you, Alex? Congratulations. Hello everyone. Congratulations. Hello everyone. Congratulations. Hello everyone. Glad to be here. Glad to be here. Yes, it's great to have you with Yes, it's great to have you with us. us. us. You'll be talking to You'll be talking to You'll be talking to us about Unreal and AI, us about Unreal and AI, us about Unreal and AI, right? right? Yes, that's right. Yes, that's right. This is a very relevant This is a very relevant This is a very relevant topic right now. topic right now. topic right now. Yes, that's right. So, you're Yes, that's right. So, you're Yes, that's right. So, you're ready. Get started. ready. Get started. ready. Get started. Perfectly. So, hello Perfectly. So, hello Perfectly. So, hello everyone. My name is everyone. My name is everyone. My name is Alex. I am a Alex. I am a Alex. I am a product manager at JetBrains, product manager at JetBrains, product manager at JetBrains, responsible for responsible for responsible for game development. game development. game development. Today I want to Today I want to Today I want to talk about talk about talk about agent-based development in agent-based development in agent-based development in Unreal Engine, specifically what Unreal Engine, specifically what Unreal Engine, specifically what happens when happens when happens when we combine AI we combine AI agents with a agents with a agents with a development environment development environment . I'll start with a little . I'll start with a little . I'll start with a little context about Rider, context about Rider, context about Rider, then show where then show where then show where AI fits in, and then we'll spend AI fits in, and then we'll spend AI fits in, and then we'll spend most of our time most of our time most of our time on Rider Kit and on Rider Kit and on Rider Kit and hands-on demos. So hands-on demos. So , before we move on to , before we move on to , before we move on to AI, let me briefly AI, let me briefly AI, let me briefly explain how we explain how we explain how we see Rider for see Rider for see Rider for game development. Our game development. Our game development. Our goal with Rider is quite goal with Rider is quite goal with Rider is quite ambitious. We want ambitious. We want ambitious. We want this to be the perfect this to be the perfect this to be the perfect development environment development environment development environment for game developers, for game developers, for game developers, and game development, as you and game development, as you and game development, as you know, is a complex know, is a complex know, is a complex business. So in Rider you business. So in Rider you business. So in Rider you can work with can work with can work with Unreal, Unity, Godot or Unreal, Unity, Godot or Unreal, Unity, Godot or your own C++ engine.

  2. your own C++ engine. your own C++ engine. You can write in C You can write in C You can write in C ++, C#, GDScript, create ++, C#, GDScript, create ++, C#, GDScript, create shaders, shaders, shaders, build scripts, and then build scripts, and then build scripts, and then release the game for PC, release the game for PC, release the game for PC, mobile, mobile, mobile, consoles, or even XR consoles, or even XR devices. All of this is devices. All of this is devices. All of this is supported in Rider. supported in Rider. supported in Rider. Moreover, for us, Moreover, for us, Moreover, for us, supporting supporting supporting game development is not just about game development is not just about game development is not just about supporting a supporting a supporting a programming language. That would be programming language. That would be programming language. That would be too simple too simple . Rather than . Rather than . Rather than viewing viewing viewing game development as just game development as just software creation, Rider software creation, Rider also understands also understands also understands the environment around the the environment around the the environment around the code. This means code. This means code. This means covering much covering much covering much more than just the more than just the more than just the moment of writing moment of writing moment of writing code. If you look code. If you look code. If you look at a typical at a typical at a typical game development cycle, you are game development cycle, you are game development cycle, you are constantly constantly constantly switching between switching between switching between different types of different types of different types of tasks and tasks and tasks and responsibilities. You responsibilities. You responsibilities. You write code, build write code, build write code, build the project, debug the project, debug the project, debug it, it, it, profile it, profile it, profile it, run tests, and run tests, and run tests, and finally deploy the finally deploy the finally deploy the game to the target game to the target game to the target platform. Rider platform. Rider platform. Rider attempts attempts attempts to maintain to maintain to maintain this entire cycle as a single, this entire cycle as a single, this entire cycle as a single, coherent coherent coherent workflow. And increasingly, workflow. And increasingly, workflow. And increasingly, AI is becoming another AI is becoming another AI is becoming another layer in this layer in this layer in this workflow, workflow, workflow, rather than a separate rather than a separate rather than a separate tool that tool that tool that stands on the sidelines. But the stands on the sidelines. But the stands on the sidelines. But the feature list is feature list is feature list is n't really the n't really the n't really the most important thing. What most important thing. What most important thing. What matters is what it gives matters is what it gives matters is what it gives the developer. It all the developer. It all the developer. It all comes down to three comes down to three comes down to three things. So, first, things. So, first, things. So, first, understanding the project as a understanding the project as a understanding the project as a whole: not just the whole: not just the whole: not just the source files, but also the source files, but also the source files, but also the resources, resources, resources, engine concepts, engine concepts, engine concepts, project structure, and project structure, and project structure, and runtime behavior.

  3. runtime behavior. Second, the Second, the development workflow is interconnected. development workflow is interconnected. Game developers are constantly Game developers are constantly Game developers are constantly switching between switching between switching between code, engine, code, engine, code, engine, debugging, debugging, debugging, profiling, profiling, profiling, build systems, and build systems, and build systems, and different target different target different target platforms. Therefore, we platforms. Therefore, we platforms. Therefore, we want Rider to want Rider to want Rider to retain all retain all retain all context throughout context throughout context throughout this entire this entire this entire workflow. And workflow. And third, faster third, faster third, faster iteration. iteration. iteration. Find problems faster, Find problems faster, Find problems faster, understand understand understand the root cause faster, the root cause faster, the root cause faster, make changes and make changes and make changes and test them with test them with test them with less difficulty. And less difficulty. And less difficulty. And now now now another participant is entering this workflow another participant is entering this workflow another participant is entering this workflow —AI and —AI and —AI and coding agents. I coding agents. I coding agents. I seriously considered seriously considered seriously considered inserting the "and here comes inserting the "and here comes inserting the "and here comes Johnny" meme here, but Johnny" meme here, but Johnny" meme here, but of course I didn't of course I didn't of course I didn't . Jokes aside, AI . Jokes aside, AI . Jokes aside, AI is already part of the is already part of the development workflow. The main development workflow. The main question is how to question is how to question is how to make it truly make it truly make it truly useful for useful for useful for game development. Our game development. Our game development. Our approach to AI at JetBrains is approach to AI at JetBrains is approach to AI at JetBrains is quite open. We quite open. We quite open. We don't believe that don't believe that don't believe that developers should have developers should have developers should have to choose between the to choose between the to choose between the development environment development environment they they they trust and the AI trust and the AI agent they agent they agent they prefer. prefer. prefer. So the idea is that So the idea is that So the idea is that your agent your agent your agent will use will use will use Rider intelligence. There are Rider intelligence. There are Rider intelligence. There are three main components here. three main components here. three main components here. First, the agent itself First, the agent itself First, the agent itself via ACP, the via ACP, the via ACP, the Rider Agent Client Protocol: Rider Agent Client Protocol: Rider Agent Client Protocol: Rider can work with Rider can work with Rider can work with different agents, and different agents, and different agents, and you can choose the one you can choose the one you can choose the one that suits you that suits you that suits you or the specific or the specific or the specific task you task you task you want to perform.

  4. want to perform. Second, Second, Second, Rider tools through MCP: any Rider tools through MCP: any Rider tools through MCP: any agent can agent can agent can access what Rider access what Rider access what Rider already knows how to do. already knows how to do. already knows how to do. For example, For example, For example, code intelligence, navigation, code intelligence, navigation, code intelligence, navigation, inspections, inspections, inspections, debugging, and debugging, and debugging, and design. And for design. And for design. And for game development, we game development, we game development, we add another add another add another layer—engine-specific knowledge and layer—engine-specific knowledge and layer—engine-specific knowledge and tools tools tools . . . For example, the For example, the Unreal-specific skills we Unreal-specific skills we released recently. released recently. released recently. Rider skills for Rider skills for code refactoring and debugging, code refactoring and debugging, agent hooks for agent hooks for code quality checking, etc. So code quality checking, etc. So instead of instead of instead of just giving the agent a just giving the agent a just giving the agent a folder with files, we folder with files, we folder with files, we give it access give it access give it access to a real to a real to a real development environment. development environment. development environment. And Unreal Engine is perhaps And Unreal Engine is perhaps And Unreal Engine is perhaps one of the one of the one of the most striking most striking most striking examples of why examples of why examples of why this is important. Because an this is important. Because an this is important. Because an Unreal project is Unreal project is Unreal project is definitely not just a definitely not just a definitely not just a C++ repository. C++ repository. C++ repository. Your game's behavior Your game's behavior Your game's behavior can be can be can be distributed between distributed between distributed between C++ code, C++ code, C++ code, Blueprints, resources, Blueprints, resources, Blueprints, resources, various various various configuration configuration configuration files, files, files, Unreal Editor state, and Unreal Editor state, and Unreal Editor state, and build targets. build targets. build targets. Additional context Additional context Additional context is contained in the logs and is contained in the logs and is contained in the logs and runtime behavior runtime behavior runtime behavior that that that cannot be seen in the cannot be seen in the cannot be seen in the IDE. A universal IDE. A universal IDE. A universal coding agent coding agent coding agent can can can read and build read and build read and build C++ very well, but if it C++ very well, but if it C++ very well, but if it sees mostly sees mostly sees mostly files in a repository, files in a repository, files in a repository, it only sees it only sees it only sees part of the big part of the big part of the big picture. And then you picture. And then you picture. And then you get familiar get familiar get familiar problems. So, he problems. So, he problems. So, he can change C++ without can change C++ without can change C++ without understanding how it will understanding how it will understanding how it will affect Blueprint. He affect Blueprint. He affect Blueprint. He can give can give can give build advice without knowing the build advice without knowing the build advice without knowing the actual state of Unreal.

  5. actual state of Unreal. actual state of Unreal. He may miss He may miss He may miss something important in the something important in the something important in the execution logs or even execution logs or even execution logs or even make assumptions make assumptions make assumptions about the about the about the project configuration. Then project configuration. Then project configuration. Then the developer compensates for the developer compensates for the developer compensates for this by adding this by adding this by adding more and more more and more more and more context to the request. context to the request. context to the request. So, we all know So, we all know So, we all know this trick. this trick. this trick. Manually patching an agent and Manually patching an agent and Manually patching an agent and overseeing every overseeing every overseeing every step is slow and step is slow and step is slow and reminiscent of that famous reminiscent of that famous reminiscent of that famous quote: "I wanted to quote: "I wanted to quote: "I wanted to automate something that automate something that automate something that normally takes me normally takes me normally takes me an hour to do, but I spent an hour to do, but I spent an hour to do, but I spent 12 hours 12 hours 12 hours automating it." So automating it." So automating it." So we asked another we asked another we asked another question. What if an question. What if an question. What if an agent could work agent could work agent could work where the actual where the actual development in Unreal takes place, development in Unreal takes place, while still remaining while still remaining while still remaining connected to Rider connected to Rider ? And this is the Rider Kit. At ? And this is the Rider Kit. At ? And this is the Rider Kit. At first glance, this is an AI first glance, this is an AI chat right inside the chat right inside the chat right inside the Unreal Editor. But Unreal Editor. But Unreal Editor. But the most important thing is what the most important thing is what the most important thing is what happens behind happens behind happens behind the scenes of this the scenes of this the scenes of this chat. Rider installs a chat. Rider installs a chat. Rider installs a plugin into the Unreal Editor, and plugin into the Unreal Editor, and plugin into the Unreal Editor, and this plugin connects this plugin connects this plugin connects the editor to Rider. One the editor to Rider. One the editor to Rider. One note: we are not note: we are not note: we are not trying to create trying to create trying to create another AI agent or a another AI agent or a another AI agent or a new model. You new model. You new model. You simply connect the simply connect the agent you need via an API, agent you need via an API, such as Codeium, and Rider such as Codeium, and Rider such as Codeium, and Rider Kit enriches this Kit enriches this Kit enriches this agent with information agent with information agent with information about the about the about the development environment. On one development environment. On one development environment. On one hand, you have Rider and everything hand, you have Rider and everything hand, you have Rider and everything it knows about the it knows about the it knows about the codebase, symbols, codebase, symbols, codebase, symbols, usage, usage, usage, inspections, navigation, inspections, navigation, inspections, navigation, debugging, and debugging, and debugging, and most importantly, the most importantly, the most importantly, the project model. On the other project model. On the other project model. On the other hand, you have the Unreal Editor with a hand, you have the Unreal Editor with a viewport, Blueprint, viewport, Blueprint, resources, logs, and the resources, logs, and the resources, logs, and the current state of current state of current state of the editor itself. Rider the editor itself. Rider the editor itself. Rider Kit connects these two Kit connects these two Kit connects these two environments and gives the environments and gives the environments and gives the agent access to the agent access to the agent access to the context of both context of both context of both sides. And thanks to the sides. And thanks to the sides. And thanks to the open approach open approach open approach I mentioned I mentioned I mentioned earlier, the goal is not to earlier, the goal is not to tie you to tie you to one specific one specific one specific agent. You should be

  6. agent. You should be agent. You should be able to able to able to use the use the use the agent you agent you agent you prefer. And, prefer. And, prefer. And, importantly, the interaction itself importantly, the interaction itself happens right happens right here, in the Unreal Editor. That is here, in the Unreal Editor. That is here, in the Unreal Editor. That is , where , where , where many of these many of these many of these tasks and problems actually arise. tasks and problems actually arise. tasks and problems actually arise. So, this changes So, this changes So, this changes more than just the more than just the more than just the list of tasks list of tasks list of tasks we can assign to an we can assign to an we can assign to an agent. This changes agent. This changes agent. This changes where we can work with it where we can work with it where we can work with it , what , what , what context it has, and context it has, and context it has, and what it can influence. And this what it can influence. And this what it can influence. And this opens up significantly opens up significantly opens up significantly more possibilities more possibilities more possibilities for AI-driven for AI-driven for AI-driven workflows in workflows in workflows in Unreal. We group these Unreal. We group these Unreal. We group these workflows into three workflows into three workflows into three main areas: main areas: main areas: understanding, understanding, understanding, implementation, implementation, implementation, research. As for research. As for research. As for understanding understanding , you can ask , you can ask , you can ask questions about the questions about the questions about the Unreal project and analyze the Unreal project and analyze the Unreal project and analyze the game logic within game logic within game logic within C++, Blueprint, resources, and the C++, Blueprint, resources, and the C++, Blueprint, resources, and the project structure. project structure. project structure. When it comes When it comes When it comes to implementation, to implementation, to implementation, the agent can make the agent can make the agent can make changes changes changes using using using knowledge of the project and the knowledge of the project and the knowledge of the project and the Unreal Editor context, Unreal Editor context, Unreal Editor context, instead of instead of instead of treating each treating each treating each task as an task as an task as an isolated isolated isolated code generation. And when it comes code generation. And when it comes code generation. And when it comes to investigation, which is to investigation, which is to investigation, which is especially interesting to us especially interesting to us especially interesting to us , the agent can , the agent can , the agent can reproduce reproduce reproduce the problem itself, check the the problem itself, check the the problem itself, check the runtime state runtime state runtime state and logs, and logs, and logs, use the use the use the Rider debugger, Rider debugger, Rider debugger, find the cause, find the cause, find the cause, fix it, and even fix it, and even fix it, and even check the result check the result . But at the heart of all . But at the heart of all . But at the heart of all three lies the three lies the three lies the same advantage: same advantage: same advantage: more context, more context, more context, deeper understanding deeper understanding deeper understanding of the project, and of the project, and of the project, and the ability to operate in both the ability to operate in both the ability to operate in both Rider and Unreal Editor. And Rider and Unreal Editor. And Rider and Unreal Editor. And this is really the this is really the this is really the advantage of the Rider Kit that we advantage of the Rider Kit that we advantage of the Rider Kit that we are exploring. Actions in Rider are exploring. Actions in Rider are exploring. Actions in Rider and Unreal Editor, not and Unreal Editor, not and Unreal Editor, not just replies in the just replies in the just replies in the chat window. Of course, it's chat window. Of course, it's chat window. Of course, it's much easier much easier much easier to understand when you to understand when you to understand when you see it with your own see it with your own see it with your own eyes. So let's start by eyes. So let's start by eyes. So let's start by demonstrating demonstrating demonstrating understanding of the project.

  7. understanding of the project. understanding of the project. So, I will be showing So, I will be showing So, I will be showing videos and videos and videos and commenting on them, commenting on them, commenting on them, demonstrating how the demonstrating how the demonstrating how the Rider Kit works. One Rider Kit works. One Rider Kit works. One note: Rider Kit is note: Rider Kit is note: Rider Kit is not something artificial. This is an not something artificial. This is an not something artificial. This is an almost finished almost finished almost finished product that we product that we product that we are going to release are going to release are going to release soon as a soon as a soon as a closed closed closed preview. More preview. More preview. More on that later, but on that later, but on that later, but generally this is how it generally this is how it generally this is how it will work. will work. will work. So, in this first So, in this first So, in this first demo, I want to demo, I want to demo, I want to show three show three show three small examples small examples small examples of how an agent can of how an agent can of how an agent can analyze an analyze an analyze an Unreal project, going beyond Unreal project, going beyond Unreal project, going beyond simply reading C++ simply reading C++ simply reading C++ files. Most of the files. Most of the files. Most of the work here is work here is work here is related to related to related to blueprints, blueprints, blueprints, but you'll also see it but you'll also see it transition to transition to transition to C++ when it becomes C++ when it becomes C++ when it becomes appropriate. So let's begin appropriate. So let's begin . We will simply ask . We will simply ask . We will simply ask the agent to find all the agent to find all the agent to find all drawings that drawings that drawings that come from tool come from tool come from tool era types. As you can see, the agent era types. As you can see, the agent era types. As you can see, the agent uses uses uses Rider's knowledge of the project and provides Rider's knowledge of the project and provides Rider's knowledge of the project and provides us with the actual us with the actual us with the actual drawing hierarchy and drawing hierarchy and drawing hierarchy and real real real asset location. The second asset location. The second asset location. The second example is more interesting. In example is more interesting. In example is more interesting. In the second request, we the second request, we the second request, we asked the agent asked the agent asked the agent to create a new to create a new to create a new drawing, and then drawing, and then drawing, and then asked a much asked a much asked a much broader question. Find broader question. Find broader question. Find a reference to an existing a reference to an existing a reference to an existing base drawing, base drawing, base drawing, understand how these understand how these understand how these assets assets assets use it, and use it, and use it, and tell us what might tell us what might tell us what might break if we break if we break if we change it. So change it. So change it. So here we call the here we call the here we call the MCP tools from Rider.

  8. MCP tools from Rider. MCP tools from Rider. The agent is working and The agent is working and The agent is working and performing tasks. I would like to performing tasks. I would like to performing tasks. I would like to stop stop stop here. Please note here. Please note here. Please note that it is not limited to that it is not limited to that it is not limited to simply searching for simply searching for simply searching for links. It links. It links. It looks at what looks at what the blueprint actually contains, tracks the blueprint actually contains, tracks dependencies further, and dependencies further, and dependencies further, and checks how other checks how other checks how other assets assets assets use it. use it. use it. Just look at the Just look at the Just look at the agent's output. agent's output. And so, here is the result. In fact, we see that the In fact, we see that the result is not result is not result is not just a list of just a list of just a list of links. We links. We links. We get get get the relationships and the relationships and the relationships and potential impact of potential impact of potential impact of changes on all the changes on all the changes on all the drawings we have. So, the drawings we have. So, the drawings we have. So, the third task third task third task we gave the agent is we gave the agent is we gave the agent is quite interesting. In the quite interesting. In the quite interesting. In the previous previous previous example, we asked example, we asked example, we asked how the gun asset is how the gun asset is how the gun asset is related to its related to its related to its weapon instance. The weapon instance. The weapon instance. The important point important point important point is that is that is that the answer goes the answer goes the answer goes beyond beyond blueprints. Yes. I'll blueprints. Yes. I'll blueprints. Yes. I'll pause here. As you can see, pause here. As you can see, pause here. As you can see, the agent traces the the agent traces the the agent traces the asset relationship and asset relationship and asset relationship and then passes it to the then passes it to the then passes it to the C++ code that C++ code that C++ code that directly directly directly uses it at uses it at uses it at runtime. Yes.

  9. runtime. Yes. The agent did a good job The agent did a good job and showed us a and showed us a and showed us a comprehensive answer comprehensive answer comprehensive answer about how everything is about how everything is about how everything is connected. Essentially, connected. Essentially, connected. Essentially, he used he used he used Rider MCP, knowledge of the Rider MCP, knowledge of the Rider MCP, knowledge of the Rider project, and Rider project, and Rider project, and Rider search methods without Rider search methods without Rider search methods without constantly resorting to constantly resorting to constantly resorting to full-text full-text full-text search. This is the main search. This is the main search. This is the main conclusion from this conclusion from this conclusion from this demonstration. demonstration. demonstration. Relationships in Unreal often Relationships in Unreal often Relationships in Unreal often span assets, span assets, span assets, drawings, and C++ code, and drawings, and C++ code, and drawings, and C++ code, and Rider can Rider can Rider can use its use its use its structured structured structured understanding and understanding and understanding and project index to project index to project index to trace these trace these trace these relationships, rather than relationships, rather than relationships, rather than treating treating treating the project as a collection of the project as a collection of the project as a collection of unrelated files, unrelated files, unrelated files, as is the case with a as is the case with a as is the case with a typical typical typical IDE search. Next, let's IDE search. Next, let's IDE search. Next, let's combine understanding combine understanding combine understanding of the project with of the project with of the project with implementation in C++. implementation in C++. implementation in C++. Here we ask the agent Here we ask the agent Here we ask the agent to create a new game to create a new game to create a new game ability of jerk in C++ ability of jerk in C++ ability of jerk in C++ using the Unreal using the Unreal using the Unreal game ability system game ability system game ability system . We want to . We want to . We want to set a set a set a strength property for strength property for strength property for this ability and this ability and this ability and create a blueprint based on it create a blueprint based on it create a blueprint based on it . And then we . And then we . And then we want to add that want to add that want to add that ability to the player. ability to the player. The agent first The agent first uses Rider to uses Rider to uses Rider to understand the understand the understand the project structure, and then project structure, and then project structure, and then finds the necessary finds the necessary finds the necessary classes and files to classes and files to classes and files to host this C++ host this C++ host this C++ code. He creates an code. He creates an code. He creates an implementation in C++.

  10. implementation in C++. Importantly, and I'll Importantly, and I'll pause here, the agent pause here, the agent pause here, the agent runs the Unreal build runs the Unreal build runs the Unreal build through Rider, and this Rider through Rider, and this Rider through Rider, and this Rider understands "live coding", so the understands "live coding", so the understands "live coding", so the build through UBT build through UBT build through UBT applies the changes without applies the changes without applies the changes without restarting restarting restarting the editor. After the editor. After the editor. After that, the agent also that, the agent also that, the agent also creates a blueprint, creates a blueprint, creates a blueprint, sets sets sets the property, and the property, and the property, and connects the ability connects the ability connects the ability to the to the to the player's standard abilities. And player's standard abilities. And player's standard abilities. And we can immediately we can immediately we can immediately return to the game in return to the game in return to the game in the editor with the the editor with the the editor with the code and code and code and assets already ready. I also assets already ready. I also assets already ready. I also like one like one like one small detail. If small detail. If small detail. If you zoom in, you zoom in, you zoom in, you can see at the end that you can see at the end that you can see at the end that the agent is not pretending that the agent is not pretending that the agent is not pretending that the function is completely the function is completely the function is completely ready. He notices ready. He notices ready. He notices that nothing triggers that nothing triggers that nothing triggers the dash, and bluntly says the dash, and bluntly says the dash, and bluntly says that the next step that the next step that the next step will be to bind this will be to bind this will be to bind this ability to an ability to an ability to an input action so that it input action so that it input action so that it works. So, works. So, works. So, it also knows how the it also knows how the game ability system works, game ability system works, as we have as we have as we have Unreal knowledge in the core of Rider Unreal knowledge in the core of Rider Unreal knowledge in the core of Rider and then we train and then we train and then we train the agent to perform the agent to perform the agent to perform certain tasks. So certain tasks. So certain tasks. So this is a great example of what this is a great example of what this is a great example of what we mean we mean we mean by a single, by a single, by a single, cohesive cohesive cohesive workflow. Understanding the workflow. Understanding the workflow. Understanding the existing architecture existing architecture , modifying C++, placing , modifying C++, placing , modifying C++, placing files in the right files in the right files in the right place, properly place, properly place, properly building through building through building through Unreal tools, Unreal tools, Unreal tools, creating blueprints, creating blueprints, creating blueprints, and customizing and customizing and customizing the player—it all comes together.

  11. the player—it all comes together. the player—it all comes together. So, the complete package, so to So, the complete package, so to So, the complete package, so to speak. So far, speak. So far, speak. So far, we have covered we have covered we have covered understanding the implementation of understanding the implementation of . Now let's move on to what is . Now let's move on to what is . Now let's move on to what is probably the most interesting probably the most interesting probably the most interesting part for us— part for us— research and research and research and debugging. Here we debugging. Here we debugging. Here we give the agent a give the agent a give the agent a completely completely completely human-level instruction. human-level instruction. human-level instruction. Set a Set a Set a breakpoint on breakpoint on breakpoint on weapon selection, connect weapon selection, connect weapon selection, connect to the game, simulate the to the game, simulate the to the game, simulate the player moving forward and player moving forward and player moving forward and see what see what see what happens. Note happens. Note happens. Note that we don't give it a that we don't give it a that we don't give it a file name, class name, or file name, class name, or file name, class name, or line number. Agent...I'd line number. Agent...I'd line number. Agent...I'd like to take a like to take a like to take a short pause here. The agent short pause here. The agent short pause here. The agent first first first uses uses uses Rider's research and understanding of Rider's research and understanding of Rider's research and understanding of the project to the project to the project to figure out what figure out what figure out what " " weapon selection" actually means in this weapon selection" actually means in this weapon selection" actually means in this project. It project. It project. It finds the finds the finds the relevant code in relevant code in relevant code in shooter pickups.cpp and determines the shooter pickups.cpp and determines the shooter pickups.cpp and determines the pickup path. pickup path. pickup path. It then sets a It then sets a It then sets a breakpoint and attaches the breakpoint and attaches the breakpoint and attaches the native native native Rider debugger to the running Rider debugger to the running Rider debugger to the running Unreal Editor process. It Unreal Editor process. It Unreal Editor process. It reports that a reports that a reports that a breakpoint has been set.

  12. breakpoint has been set. breakpoint has been set. Now it starts Now it starts Now it starts the debugger and the debugger and the debugger and connects to connects to connects to it. It then it. It then it. It then determines that Play determines that Play determines that Play In Editor mode is inactive. Yes, In Editor mode is inactive. Yes, In Editor mode is inactive. Yes, I'll pause here I'll pause here I'll pause here to explain what to explain what to explain what happens next happens next . RiderKit uses . RiderKit uses . RiderKit uses input simulation in Unreal input simulation in Unreal to play to play to play the scenario itself. the scenario itself. the scenario itself. So we are not running the So we are not running the So we are not running the agent at this point. agent at this point. agent at this point. It launches It launches It launches the editor, moves the editor, moves the editor, moves the player forward, and the player forward, and the player forward, and allows the character allows the character allows the character to reach the weapon. And then the to reach the weapon. And then the breakpoint is triggered. Right at the moment of breakpoint is triggered. Right at the moment of selecting weapons. The agent selecting weapons. The agent selecting weapons. The agent doesn't just say that the doesn't just say that the doesn't just say that the breakpoint breakpoint breakpoint has been triggered. It has been triggered. It has been triggered. It reads the reads the reads the debugger state. It debugger state. It debugger state. It reports the reports the reports the relevant variables relevant variables relevant variables at runtime in the at runtime in the at runtime in the chat. And, actually, about the chat. And, actually, about the chat. And, actually, about the state of the debugger. state of the debugger. state of the debugger. For me, this is one of the For me, this is one of the For me, this is one of the most interesting most interesting most interesting RiderKit scenarios. We RiderKit scenarios. We RiderKit scenarios. We started with a very started with a very started with a very general description of general description of general description of the behavior we wanted to the behavior we wanted to the behavior we wanted to test. And then test. And then test. And then the agent turned that the agent turned that the agent turned that into a set of actions, like into a set of actions, like into a set of actions, like finding the location of finding the location of finding the location of the code. He used the the code. He used the the code. He used the Rider debugger, Rider debugger, Rider debugger, reproduced the behavior reproduced the behavior reproduced the behavior in the Unreal Editor, and then in the Unreal Editor, and then in the Unreal Editor, and then returned the returned the returned the execution state to the conversation.

  13. execution state to the conversation. execution state to the conversation. So, debugging So, debugging So, debugging becomes something the agent becomes something the agent becomes something the agent can actively can actively can actively participate in, rather than just participate in, rather than just participate in, rather than just being told where being told where being told where to put a to put a to put a breakpoint. Finally, breakpoint. Finally, breakpoint. Finally, let's take this let's take this let's take this idea even further and idea even further and idea even further and look at look at look at debugging outside of debugging outside of debugging outside of the editor, in a the editor, in a the editor, in a standalone game. So standalone game. So standalone game. So let's let's let's observe the observe the observe the real problem in the real problem in the real problem in the game. We have weapons. We game. We have weapons. We game. We have weapons. We pick up another pick up another pick up another weapon. We click weapon. We click weapon. We click on the weapon change. We on the weapon change. We on the weapon change. We see the see the see the debug log in the window, debug log in the window, debug log in the window, but nothing but nothing but nothing happens. So, happens. So, happens. So, we have a real we have a real we have a real mistake here. So, next we mistake here. So, next we mistake here. So, next we give the agent give the agent give the agent instructions, describe instructions, describe instructions, describe the problem in simple the problem in simple the problem in simple language and ask them language and ask them language and ask them to launch a standalone to launch a standalone to launch a standalone game, connect the game, connect the game, connect the Rider debugger and Rider debugger and Rider debugger and find out what's find out what's find out what's going on. This is a going on. This is a going on. This is a pretty common pretty common usage scenario for usage scenario for developers, developers, developers, right? This time we right? This time we right? This time we will control will control will control the character ourselves to the character ourselves to the character ourselves to recreate the problem. recreate the problem. recreate the problem. So, again, So, again, So, again, the agent first the agent first the agent first uses Rider to uses Rider to uses Rider to find the code find the code find the code responsible for responsible for responsible for switching weapons. We do switching weapons. We do switching weapons. We do not provide it with not provide it with not provide it with any file or the any file or the any file or the exact location of the exact location of the exact location of the file. It finds a file. It finds a file. It finds a suitable suitable suitable implementation based on implementation based on implementation based on the behavior we the behavior we the behavior we described. It described. It described. It sets a sets a sets a breakpoint. Then breakpoint. Then breakpoint. Then it launches the game in it launches the game in it launches the game in offline mode and offline mode and offline mode and attaches the attaches the attaches the Rider debugger to the new Rider debugger to the new Rider debugger to the new gameplay.

  14. gameplay. Now I reproduce Now I reproduce the problem by moving the the problem by moving the the problem by moving the character. The character. The character. The breakpoint is triggered. breakpoint is triggered. breakpoint is triggered. The agent checks the The agent checks the The agent checks the actual actual actual execution state and execution state and execution state and continues its continues its continues its investigation investigation investigation using the debugger using the debugger , stepping through the , stepping through the , stepping through the stack step by step. And here stack step by step. And here stack step by step. And here we have the we have the we have the root cause. Yes. root cause. Yes. root cause. Yes. Eventually, he Eventually, he Eventually, he finds finds finds the root cause. the root cause. the root cause. There is an There is an There is an inverted condition in the weapon selection loop. We inverted condition in the weapon selection loop. We inverted condition in the weapon selection loop. We did this on purpose did this on purpose did this on purpose before. And then, yes, the before. And then, yes, the before. And then, yes, the agent tells us that this agent tells us that this agent tells us that this is the problem. is the problem. is the problem. We also have evidence from the We also have evidence from the real-time debugger. The agent real-time debugger. The agent tells us he tells us he tells us he confirmed this using a confirmed this using a real-time debugger. real-time debugger. Then he offers Then he offers Then he offers us a correction. us a correction. Eventually, he explains Eventually, he explains the problem and offers a the problem and offers a the problem and offers a patch right in the chat, patch right in the chat, patch right in the chat, asking if asking if asking if we want to fix it. We we want to fix it. We we want to fix it. We give the command to give the command to give the command to correct. And in the end, correct. And in the end, he corrects.

  15. he corrects. he corrects. Yes. Yes. Yes. Weapon switching now Weapon switching now Weapon switching now works works works properly. What is also properly. What is also properly. What is also important is that important is that important is that after a code change, the after a code change, the after a code change, the agent collects agent collects agent collects updates via Rider. updates via Rider. updates via Rider. He used the He used the He used the Rider build command and Rider build command and Rider build command and applied Unreal applied Unreal applied Unreal Live Coding again. This was Live Coding again. This was Live Coding again. This was implemented through UBT implemented through UBT implemented through UBT and it brought us back to and it brought us back to and it brought us back to the editor so we the editor so we the editor so we could check the could check the could check the result. That's what the result. That's what the result. That's what the agent did. This is agent did. This is agent did. This is probably the best probably the best probably the best example of what we example of what we example of what we are trying to achieve are trying to achieve are trying to achieve with the Rider Kit. with the Rider Kit. with the Rider Kit. The agent didn't just The agent didn't just The agent didn't just review the source review the source review the source code and suggest a code and suggest a code and suggest a possible fix. possible fix. possible fix. He found the He found the He found the code we needed, code we needed, code we needed, launched the launched the launched the runtime, connected the runtime, connected the runtime, connected the Rider debugger, Rider debugger, Rider debugger, observed the observed the observed the actual behavior, actual behavior, actual behavior, found the root cause found the root cause , suggested , suggested , suggested a fix, a fix, a fix, applied it, applied it, applied it, rebuilt the project, and rebuilt the project, and rebuilt the project, and then helped us then helped us then helped us test everything in the Unreal test everything in the Unreal test everything in the Unreal Editor. This is a direction Editor. This is a direction Editor. This is a direction we are exploring. This is not an we are exploring. This is not an we are exploring. This is not an artificial intelligence artificial intelligence artificial intelligence that simply that simply that simply accompanies your accompanies your accompanies your workflow in Unreal, workflow in Unreal, workflow in Unreal, but an agent that can but an agent that can but an agent that can actively participate in it actively participate in it actively participate in it . And yes, Rider Kit is still . And yes, Rider Kit is still . And yes, Rider Kit is still in its early stages, as I in its early stages, as I in its early stages, as I said, it's not yet said, it's not yet said, it's not yet publicly available, publicly available, publicly available, but we're opening a but we're opening a but we're opening a closed closed closed preview soon preview soon preview soon , in fact, these , in fact, these , in fact, these days, and that's why we're days, and that's why we're days, and that's why we're looking for looking for looking for Unreal developers who are willing to Unreal developers who are willing to Unreal developers who are willing to try it out. So, if try it out. So, if try it out. So, if you are interested, you are interested, you are interested, please scan the QR please scan the QR code and subscribe to the code and subscribe to the code and subscribe to the closed closed closed preview. We would be very preview. We would be very preview. We would be very happy to see you there.

  16. happy to see you there. happy to see you there. You can also find You can also find You can also find our contacts here our contacts here our contacts here if you want to if you want to if you want to contact us contact us contact us directly. Actually, that's directly. Actually, that's directly. Actually, that's all on my part. all on my part. all on my part. Thank you very much for your time, and Thank you very much for your time, and Thank you very much for your time, and I hope you I hope you I hope you enjoyed enjoyed enjoyed the demonstrations. So, the demonstrations. So, the demonstrations. So, we're ready to move on to the we're ready to move on to the we're ready to move on to the question and question and question and answer session. answer session. answer session. Thank you very much, Alex. It's Thank you very much, Alex. It's Thank you very much, Alex. It's very interesting to see very interesting to see very interesting to see what's being prepared there. what's being prepared there. what's being prepared there. Someone asked, Someone asked, Someone asked, you know, who supports you know, who supports you know, who supports Rider Kit, and it's us, it's JetBrains Rider Kit, and it's us, it's JetBrains . So, it's great to see . So, it's great to see . So, it's great to see what's coming in what's coming in what's coming in the future. the future. Yes. Yes, definitely, and Yes, definitely, and we have a few questions we have a few questions we have a few questions in the chat. Michael, do you want in the chat. Michael, do you want in the chat. Michael, do you want to answer the first one? to answer the first one? to answer the first one? Of course. Lazy Indian Of course. Lazy Indian Of course. Lazy Indian asked if asked if asked if these responses could contain these responses could contain these responses could contain dynamic links dynamic links dynamic links to actual drawings to actual drawings to actual drawings or code, so that one could or code, so that one could or code, so that one could switch switch switch between the chat and the actual between the chat and the actual between the chat and the actual code or code or code or drawing node. drawing node. Yes, yes, exactly. The agent uses a The agent uses a real real real project model, real project model, real project model, real assets, and a real assets, and a real assets, and a real index from the project at index from the project at index from the project at any given time any given time . So even if you . So even if you . So even if you change something and then change something and then change something and then ask the agent, " ask the agent, " Hey, can you Hey, can you Hey, can you check this or that?", check this or that?", check this or that?", it it it will use the will use the will use the actual current actual current actual current state. Yes.

  17. state. Yes. Perfectly. And Matt Perfectly. And Matt dropped the link into the dropped the link into the dropped the link into the chat. So if you chat. So if you chat. So if you want to sign up want to sign up want to sign up to find out when to find out when to find out when you can you can you can access the closed access the closed access the closed version of Rider Kit, do version of Rider Kit, do version of Rider Kit, do so via the link in the so via the link in the so via the link in the chat. I already have chat. I already have chat. I already have people who are people who are people who are eager to eager to eager to try it. try it. Oh, yes. Glad to hear that. So how do you feel, So how do you feel, now that you have now that you have now that you have this AI assistant right at your this AI assistant right at your this AI assistant right at your fingertips in chat, how has fingertips in chat, how has fingertips in chat, how has it changed your it changed your it changed your relationship with relationship with relationship with the editor? the editor? Hmm, could you Hmm, could you clarify that? You clarify that? You clarify that? You mean, like mean, like mean, like I probably just… yeah I probably just… yeah , like you were developing , like you were developing , like you were developing before and like you're before and like you're before and like you're developing now with the developing now with the developing now with the AI ​​assistant, what did you AI ​​assistant, what did you AI ​​assistant, what did you discover for yourself? discover for yourself? discover for yourself? What is your biggest What is your biggest What is your biggest discovery with this new discovery with this new discovery with this new tool and the tool and the tool and the possibilities it possibilities it possibilities it gives you?

  18. gives you? Yeah, I would say, Yeah, I would say, in general, how did we, um… in general, how did we, um… in general, how did we, um… realize that we had to realize that we had to realize that we had to create this? Essentially, create this? Essentially, create this? Essentially, we listen to we listen to we listen to our users and our users and our users and how it changes the how it changes the how it changes the entire development cycle. entire development cycle. entire development cycle. Yes, in essence, I would Yes, in essence, I would Yes, in essence, I would say, he say, he say, he shortens it. So, if shortens it. So, if shortens it. So, if you're testing something in the you're testing something in the you're testing something in the Unreal Editor, which you Unreal Editor, which you Unreal Editor, which you certainly do there, and you certainly do there, and you certainly do there, and you want an agent to want an agent to want an agent to help you with help you with help you with debugging, or with a debugging, or with a debugging, or with a certain resource, or certain resource, or certain resource, or with something else, you can with something else, you can with something else, you can give that give that give that task to the agent task to the agent task to the agent right in the Unreal Editor, without right in the Unreal Editor, without right in the Unreal Editor, without leaving it. And leaving it. And leaving it. And then you can either then you can either then you can either continue in Rider or continue in Rider or continue in Rider or stay in stay in stay in the editor. So now the editor. So now the editor. So now you are free to choose where you are free to choose where you are free to choose where to perform your to perform your to perform your tasks. tasks. Yes, that's great. We Yes, that's great. We receive a lot of receive a lot of receive a lot of questions in the chat and questions in the chat and questions in the chat and participate in participate in participate in surveys surveys surveys throughout our event. throughout our event. So it was really interesting So it was really interesting to see how people to see how people to see how people interacted with us interacted with us interacted with us here at Game Dev Day. And I'm here at Game Dev Day. And I'm here at Game Dev Day. And I'm very grateful to you, very grateful to you, very grateful to you, Alex, for Alex, for Alex, for joining us and joining us and joining us and showing us the new products.

  19. showing us the new products. I, uh…I think we have I, uh…I think we have another question from another question from another question from Sweet Beans. Daniel, have you Sweet Beans. Daniel, have you Sweet Beans. Daniel, have you seen him? Do you want to seen him? Do you want to seen him? Do you want to voice it for us? voice it for us? voice it for us? Yes, I can, I can Yes, I can, I can Yes, I can, I can do it. So the do it. So the do it. So the next question is: " next question is: " How well does How well does How well does the agent do at the agent do at the agent do at organizing and organizing and organizing and moving moving moving resources?" Because one thing resources?" Because one thing they have they have they have trouble with is trouble with is trouble with is keeping up with the keeping up with the keeping up with the reorganization of reorganization of reorganization of drawings and other drawings and other drawings and other resources. resources. I would say it does a I would say it does a pretty pretty pretty good job, as does good job, as does good job, as does Rider, as the agent Rider, as the agent Rider, as the agent uses the uses the uses the Rider toolkit Rider toolkit Rider toolkit under the hood through MCP. under the hood through MCP. So, if you So, if you refactored or refactored or refactored or reorganized something in reorganized something in reorganized something in your IDE, and got an your IDE, and got an your IDE, and got an updated state that updated state that updated state that you continue to work with you continue to work with , the same applies to the , the same applies to the , the same applies to the agent. So, essentially, agent. So, essentially, agent. So, essentially, the agent will know about the agent will know about the agent will know about any any any file reorganization file reorganization you have done at you have done at you have done at any point in time any point in time .

  20. . Okay, great. Thank you. Perfectly. Well, Perfectly. Well, thank you very much, Alex, for thank you very much, Alex, for thank you very much, Alex, for talking and talking and talking and demonstrating the new demonstrating the new demonstrating the new capabilities, and we capabilities, and we capabilities, and we appreciate you appreciate you appreciate you joining us joining us joining us today. today. Thank you very much for Thank you very much for inviting me.

Summary

The talk focuses on agent-based development in Unreal Engine, specifically how AI integrates into the Rider development environment. Alex, a product manager at JetBrains, aims to position Rider as the ultimate tool for game developers by supporting various engines, languages, and the entire development cycle. The key takeaway is that AI is becoming an integral part of the game development workflow, enhancing the developer's experience by understanding the project holistically and creating interconnected workflows.

View original episode ↗