Help Shape the Future of ML Agents!

ML Agents is one of our most downloaded packages and that’s all thanks to you, our incredible community.

As we plan the next phase of development, we want to hear directly from you:

  • What’s working well in your current ML Agents workflow?

  • Where are the pain points?

  • What features or improvements would make the biggest difference to your projects?

We have ideas on what to build next, but your feedback will help us prioritize the features and fixes that matter most. Whether you’re training agents in games, simulations, or research. We want to understand your real-world use cases so we can build tools that truly support them.

Drop your thoughts below! We’re all ears.

5 Likes

version 6000.x
assets: AI ML integration tools

assets: SDKs

assets: PRO labeled assets

assets: tools and utilities category

assets: frameworks

assets: Databases integrations

distinction between EDITOR AI Modules and RUNTIME AI MODULES could be maybe possible further if Unity Roadmap and Product distill could advance into more related products and relations with industries.

assets sales window home landing page could vary

I believe the original intention of ML-Agents is truly commendable. However, during my usage, I found it exceptionally challenging for most Unity programmers like us who lack extensive AI knowledge. ML-Agents essentially requires us to configure training files, but we struggle to set them up to meet project requirements. Often, when training slightly complex AI, prolonged efforts yield no visible progress—we don’t even know how to adjust the reward mechanism.

If ML-Agents could automate training file configuration and visually highlight problematic reward settings, it would be tremendously helpful. Moreover, its examples are overly simplistic, while most real games demand sophisticated AI behaviors. This gap likely explains why ML-Agents hasn’t gained wider adoption.

For instance, I’m currently developing an FPS enemy with near-human behavior—similar to real players in CS2. Yet after a month of trial and error, the AI still fails to master basic aiming, let alone learn cover-based combat tactics. Having complex examples at this level would make a significant difference.

10 Likes

Moreover, I’ve noticed that many developers’ questions about ML-Agents in community forums often go unanswered. This lack of support gradually discourages users, causing the tool to gain little traction among developers.

4 Likes

By coincidence, I made a video last week with some thoughts on ML Agents. Check this out, especially between 1:55 and 7:00: Toward Intermediate-Level Unity ML Agents - YouTube

Idea of ML Agents are great, but as someone previously mentioned its very hard for non-ai people to delve into, so it’d be great if you can also offer samples and tutorials, for something as simple as making a tic tac toe ai that work for a grid of 10x10 too
and this will give us a strong foundation
Thanks

Absolutely love ML Agents – it’s been a game-changer for experimenting with reinforcement learning in game environments! :brain::video_game:

What’s working well:

  • The simplicity of integrating agents into Unity scenes is fantastic.
  • The training pipeline with Python + Unity has become smoother over time, especially with the recent stability improvements.
  • Built-in sensors and reward setups are intuitive and flexible.

Pain points:

  • Debugging behavior can still be tricky – better visualization tools or live monitoring (beyond TensorBoard) would be amazing.
  • Handling multiple agents with complex interdependencies needs better support/documentation.
  • Re-training Moto X3M with updated environments often leads to instability; versioning could help.

Wishlist:

  • More sample environments for niche applications (e.g., crowd sims, multi-agent negotiation).
  • Built-in curriculum learning support.
  • Integration with Unity DOTS for higher performance simulations.

Thanks for your input! We’ve logged it on our end for future consideration.

1 Like

Appreciate you taking the time to share this, we’ve now added it to our review list!

Thanks a lot for this! we’ve included it in our ongoing feedback collection.

Cheers for sharing! We’ve captured this internally to review with the team. We agree with a lot of the points made here.

Really appreciate you flagging this! It’s good for us to hear this as it seems to be a concurring issue.

1 Like

I would love most resources for optimizing ml-agents. Unity’s new profiler which shows clearly if the CPU waited for the GPU (or vice versa) is insane, something like that but for training would be a beast.

if I could know what observations were heavily used for the ai (And which observations were useless and I can probably remove)
or just more general statistics from the training or inference in some profiler would be a massive boost for me personally.

Continuing this post I would like to share an old discussion of mine: DOTS ECS Integration as Reinforcement Learning Environment

After some experiments, I ended up recreating the whole training loop from the ML-Agents package in DOTS, but still using their gRPC implementation to connect with PyTorch.

My main flow treats each agent as an entity that goes through different jobs that fulfill the general loop of training:
Observe → Decide Policy (non-parallel connectivity with PyTorch here!) → Act → Reward

My implementation is far from complete and is definitely not a library ready to replace ML-Agents for DOTS. I was mainly focused on research (and messing around, I guess) so the project is still a work-in-progress and a lot of decisions were made to prioritize speed and prototyping, which means there’s a huge amount of tech debt and architectural erosion.

If you are curious about how the development is going, this is the Unity project where I am working on:

3 Likes

I see a few requests for more examples,
Has anyone had a chance to play around with these samples?
If so- what is still missing from these scenarios that we could improve for you?
Would more advanced samples be needed?

1 Like

For context, I did some AI systems research back in college, about 10-ish years ago. Mostly with classifiers and recommenders; Deep Belief Networks in particular. I had to get out of the field for mental health. I finally got back into it with ML-Agents a couple weeks ago. I had to update myself on a lot of things, and I’m no expert with it yet, but I have noticed a few things which could be improved.

The biggest improvement would be to change how the current documentation is set up. At the moment, the docs.unity3d page is exceedingly bare. Sure, it redirects to the github docs, but the landing page is more of a quick and dirty overview, with a sparse quick-link bar on the right. Instead, you have to look for the link to the more comprehensive documentation page, but even that is incomplete, and serves more as a primer for what ML-Agents and RL in general is about. You really have to dig through it to find hyperlinks to more in-depth documentation; links which aren’t even in the Table of Contents panel. A good example of this is the page for Training Parameters used in the .YAML config file.

What users need is a single place to go to for their documentation needs, with a comprehensive and descriptive table of contents. Likely something which supports nesting, to make things easy to locate. As it is, it’s an unpleasant treasure hunt to get to the information one requires.

Another thing I’ve noticed with the documentation is that it’s first and foremost geared towards those with an AI background. Mainly professionals, researchers, and students studying AI. There’s been a great effort made to make it more digestible by advanced hobbyists, and it’s quite commendable. My above recommended change to the documentation layout would help, but I think a good addition would be a glossary page, linked to when more advanced terminology is used. Little things like that would help make the learning process streamlined. Otherwise, they’re expected to either keep multiple tabs open, or navigate around to refresh their memory.

When it comes to the Examples page, you make sure to note key values, such as observation size, reward shaping, and actions. What would really help would be to include the .YAML parameters used, and importantly, why those values were chosen. I’ve seen many people dialing things in by trial and error, using the value ranges listed in the Training Config File documentation. This leads to a lot of wasted time and effort, and much frustration.

Similarly, expanding the TensorBoard page to include how to use the various graphs to troubleshoot and dial in those .YAML parameters would be a godsend.

Another thing that would be nice is a page which gets into multi-environment training. Differences between, and the pros and cons, training multiple environments in-scene, vs multiple environments via the –num-envs CLI argument. Example use cases would be welcome, to drive home when and why a given method is best.

Building on that, a similar comparison for running pytorch on CPU vs GPU would be fantastic (with subsequent analysis for multi-env training on said device). This would be a time where nitty gritty details are welcome, weighing the pros and cons of hardware, as well as the Behavior Parameters of the Agent, if the Agent is utilizing threading (via .Net threading, or Jobs), etc.

For instance: Let’s say you have two machines. One has an Intel i-5 CPU and an RTX 5090 GPU, whereas the other has a Ryzen 32-core CPU, but an RTX 3070 GPU. Naturally, the GPU and the System Memory is an important consideration here, but that’s the general gist of what I’m suggesting.

This also leads into another documentation suggestion; including pytorch+cuda as an installation option, rather than just the cpu version of pytorch.

I’m sure there are other things I can suggest, but those are the main sticking points off the top of my head.

2 Likes
  • DOTS environments and IL2CPP builds support would be a massive improvement. I had to cut off raycasts and physics completely, substituting them with a lightweight approximation, and still 20M steps of this lightweight simulation take ~5 hours on a 9800X3D. A proper DOTS simulation would allow for a way faster and more accurate one.
  • Multithreading? I do not see much of a scaling beyond 4-6 cores. Might be a natural limitation of the Gym, though.
  • PettingZoo API is riddled with bugs. I think we’ve submitted a bunch of pull requests.
  • A custom ONNX format is a real pain in the butt to compare models built with ML-Agents and other algorithms inside a Unity simulation. While we definitely love the clever tricks ML-Agents employ, we also explore other options and approaches. Please make it less stringent, or a better documented.
  • Make Academy properly addressed and documented, and maybe make an explicit component to tweak its behavior in the Editor? We’re utilizing custom environment stepping and custom init; both are great features.
1 Like

This would be infinitely more usable if we didn’t require python and could use C#, or at least the package didn’t need a huge amount of external tools all which could be installed incorrectly with the wrong versions, especially if the docs don’t hint to hard requiring a specific version of X,Y, OR Z

1 Like

Reposting discussion on this thread: DOTS support for ML Agents - [Preview Released!]

This is the first iteration of a custom ML Agents package with full DOTS integration. This package allows you to take advantage of the performance of ECS while still using the existing systems for training with PyTorch.

Currently, this is a preview release, as core functionalities like Inference and Heuristic behaviors have not been implemented yet. However, making the work public at this stage allows for early feedback during development. So please, feel welcome to take a look!

2 Likes