Unity 3D is a popular platform for creating and operating interactive, real-time 3D content. It is a cross-platform 3D engine and a user-friendly integrated development environment (IDE) which helps in creating games in 3D as well as applications for desktop, mobile, web and more. It consists of a number of tools for programmers as well as artists to create real-time solutions, such as films and automotive, apart from games. The flexible real-time tools of Unity offer incredible possibilities for all industries and applications.
With a vision to maximise the transformative impact of Machine Learning for researchers and developers, Unity released the first version of Unity Machine Learning Agents Toolkit (ML-Agents) in 2017.
The aim of this ML environment is to allow game developers and AI researchers to use Unity as a platform to train as well as embed intelligent agents with the help of the latest advancements in ML and AI.
Sign up for your weekly dose of what's up in emerging technology.
Unity ML-Agents Toolkit
The Unity Machine Learning Agents Toolkit or simply ML-Agents is an open-source project by Unity, which allows games and simulations to serve as environments for training the intelligent agents. ML-Agents includes a C# software development kit (SDK) to set up a scene and define the agents within it, and a state-of-the-art ML library to train agents for 2D, 3D, and VR/AR environments.
The agents can be trained using techniques like reinforcement learning, imitation learning, neuro-evolution and other such ML methods through a simple-to-use Python API. The toolkit includes a number of training options, such as Curriculum Learning, Curiosity module for sparse-reward environments, Self-Play for multi-agent scenarios and more.
Download our Mobile App
The Unity environment also provides implementations of state-of-the-art algorithms, which are based on TensorFlow to enable game developers to easily train intelligent agents for 2D, 3D and VR/AR games.
These trained agents can be utilised for multiple purposes, including controlling NPC behaviour, automated testing of the game builds as well as evaluating various game design decisions prior to its release.
The ML-Agents Toolkit provides a central platform where advances in Artificial Intelligence can be evaluated on the environments of Unity and then made accessible to the game developer communities for wider research.
Unity ML-Agents include a number of intuitive features. Some of them are:
- ML-Agents provide support for multiple environment configurations including training scenarios
- It offers a flexible software development kit that can be integrated into the game or custom Unity scene
- One can train the games using two deep reinforcement learning algorithms, i.e. Proximal Policy Optimisation (PPO) and Soft Actor-Critic (SAC)
- It has built-in support for imitation learning through Behavioral Cloning as well as Generative Adversarial Imitation Learning
- It offers self-play mechanism for training agents in adversarial scenarios
- Train robust agents using environment randomisation
- Flexible agent control with on-demand decision making
- Train using multiple concurrent Unity environment instances
- Unity environment control from Python
- Wrap Unity learning environments as a gym
How Unity ML-Agents Works
Unity Machine Learning Agents (ML-Agents) allows developers to create more compelling gameplay and enhanced game experience. Using the platform, a developer can teach intelligent agents to learn through a combination of deep reinforcement learning and imitation learning.
The steps involved in ML-Agents are:
- First, integrate the ML-Agents Unity package
- Then connect the integrated Unity project and start training the agents in order to learn the right behaviour
- After the training is complete, the trained agent model needs to be embedded back into the Unity project.
Know more here.
Benefits of Unity ML-Agents
The key benefits of Unity ML-Agents are:
- It is open source with a license of Apache 2.0. This allows the developers to modify and implement ML-Agents according to their needs.
- The toolkit has everything that is needed to get started, including ready-to-use state-of-the-art algorithms and robust documentation and example projects.
- It is easier to set up the game as an AI training environment. One can easily create intelligent characters without a lot of coding.
- This platform includes a number of starter environments. This means whether a project is a 2D game, a large game space, or a continuous control system, several starter environments are available to help in getting started.
- Unity ML-Agents has cross-platform inference support. It means using the Unity Inference Engine, developers can deploy their ML-Agents models on any platform, such as PC, mobile or console that is supported in Unity.
- It includes extensible training of agents, access to C#, communication protocol, and a low-level Python API that gives you the flexibility to try different algorithms and methods for training agents enriches your advanced AI and research use cases.