Science-fictional User Interfaces from the O’Reilly Strata Data Conference 2019, in London.
⚠️ At OSCON, attending our tutorial? 🔗 Also open the docs!
Want to explore the Unity Machine Learning Agents Toolkit (“ML-Agents”)? Here’s the easiest way to get up and running on Windows or macOS.
Unity ML-Agents is a great way to explore machine learning, whether you’re interested in building AI for games, or simulating an environment to solve a broader ML problem, why not try Unity’s ML-Agents?
We’ll be posting a variety of guides and material covering various aspects of Unity’s ML-Agents, but we thought we’d start with an installation guide!
Interested in a quick introduction to Unity and ML-Agents? Check out the video of the talk we delivered at The AI Conference in New York City!
To use ML-Agents, you’ll need to install three things:
- Python and ML-Agents (and associated environment and support)
- The ML-Agents Unity project
Installing Unity is the easiest bit. We recommend downloading and using the official Unity Hub to manage your installs of Unity.
The Unity Hub allows you to manage multiple installs of different versions of Unity, and lets you select which version of Unity you open and create projects with.
If you don’t want to use the Unity Hub, you can download different versions of Unity for your platform manually:
We strongly recommend that you use the Unity Hub to manage your Unity installs, as it’s the easiest way to stick to a specific version of Windows, and manage your installs. It really makes things easier.
If you like using command line tools, you can also try the U3d tool to download and manage Unity install’s from the terminal.
Python and ML-Agents
Our preferred way of installing and managing Python, particularly for machine learning tasks, is to use the Anaconda Environment.
⚠️ Anaconda’s environments don’t quite work like virtualenv, or other Python environment systems that you might be familiar with. They don’t store things in the location you specify, they store things in the system-wide Anaconda directory (e.g. on macOS in “/Users/USER/anaconda3/envs/”). Just remember that once you activate them, all commands are inside the environment.
Anaconda bundles a package manager, an environment manager, and a variety of other tools that make using and managing Python environments easier.
Once you’ve installed Anaconda, following these instructions to make an Anaconda Environment to use with Unity ML-Agents.
➡️ First, download 🔗 this yaml file, and execute the following command (pointing to the yaml file you just downloaded):
conda env create -f /path/to/unity_ml.yaml
➡️ Once the new Anaconda Environment (named UnityML) has been created, activate it using the following command in your terminal:
conda activate UnityML
The yaml file we provided specifies all the Python packages, from both Anaconda’s package manager, as well pip, the Python package manager, that you need to make an environment that will work with ML-Agents.
Doing it manually
You can also do this manually (instead of asking Anaconda to create an environment based on our environment file).
⚠️ You do not need to do this if you created the environment with the yaml file, as above. If you did that go straight to “Testing the environment”, below.
➡️ Create a new Anaconda Environment named UnityML and running Python 3.6 (the version of Python you need to be running to work with TensorFlow at the moment):
conda create -n UnityML python=3.6
➡️ Activate the Conda environment:
conda activate UnityML
➡️ Install TensorFlow 1.7.1 (the version of TensorFlow you need to be running to work with ML-Agents):
pip install tensorflow==1.7.1
➡️ Once TensorFlow is installed, installing the Unity ML-Agents:
pip install mlagents
Testing the environment
➡️ To check everything is installed properly, run the following command:
You should see something that looks like the following image. This shows that everything is installed properly.
The ML-Agents Unity Project
The best way to start exploring ML-Agents is to use their provided Unity project. To get it, you’ll need a copy of the Unity ML-Agents repository.
➡️ Clone the Unity ML-Agents repository to your system (see the note below if you’re coming to our OSCON tutorial!):
git clone https://github.com/Unity-Technologies/ml-agents.git
⚠️ If you’re coming to our OSCON session, please clone this repository instead: https://github.com/thesecretlab/OSCON-2019-Unity-ML-Agents
You should now have a directory called ml-agents. This directory contains the source code for ML-Agents, a whole of lot useful configuration files, as well starting point Unity projects for you to use.
➡️ You’re ready to go! If you’re coming to our OSCON tutorial, you’ll need a slightly different project which we’ll help you out with on the day!
We’ll have another article on getting started (now that you’ve got it installed) next week!
In Portland? At OSCON?
Attend our OSCON 2019 session on 15 July 2019 to learn more!
Game engines and machine learning from the O’Reilly Artificial Intelligence Conference 2019, in New York City.
On-device Neural Style Transfer from the Reinforce AI Conference, in Budapest.
Entity Component Systems (ECS) and You: They’re Not Just For Game Developers from the O’Reilly Software Architecture Conference 2019, in New York City. We’re scheduled to give an updated version of this talk at the Software Architecture Conference 2020, also in New York City.
Below are some of our favourite links relating to ECS. We hope you find them useful!
- Catherine West’s RustConf closing keynote on Rust for Game development
- Entity Systems are the future of MMOG development by Adam Martin
- ECS and DoD slides by Aras Pranckevičius (Unity)
- Data Oriented Design and C++ CPPCon talk by Mike Acton
- Machine Architecture: Things Your Programming Language Never Told You talk by Herb Sutter
- What Every Programmer Should Know About Memory paper by Urlich Drepper
- The amazing talk on Blizzard’s implementation of ECS in their popular game, Overwatch, from GDC 2017
- ECS Back and Forth Part 1, Part 2 (plus Part 2 insights), Part 3, Part 4 (plus Part 4 insights), Part 5, Part 6, Part 7, and the slides from an ECS talk at the Italian C++ conference 2019
Making Tools for Night in the Woods from the Unite Melbourne 2018.
Learning Swift with Playgrounds from the OSCON 2018, in Portland.