Build a self-driving car without a car: ML problem-solving with a game engine





Who is this presentation for?
- Programmers and team leaders
- Those who want to do AI projects who can't afford to (or don't want to commit to) building a whole car
Level
IntermediateDescription
Whether you’re a data scientist who wants to test a research problem without building costly and complicated real-world rigs, a self-driving car engineer who wants to test your AI logic in a constrained virtual world, or a data scientist who needs to solve a thorny real-world problem without a production environment, simulation-driven ML problem solving with a game engine might be the solution to your problems. Imagine you’re building a high-volume, expensive, robot-driven warehouse. Your pick, place, and packing robots need to get to the right place quickly, find the right item, and sort it to the right place without colliding with each other, the shelves, or people. But you don’t have any robots yet, and you need to start writing, or training, the behavior.
A game engine is a controlled, self-contained spatial, physical environment that (can) closely replicate (enough of) the real world (to be useful). Paris Buttfield-Addison, Tim Nugent, and Mars Geldard explore how you can use game engines to explore and solve problems—such as the aforementioned warehouse—in a simulated environment without building costly and complicated real-world rigs. They detail how to solve AI and ML problems using the Unity game engine and TensorFlow for Python. Learn how you could use a game engine to train, explore, and manipulate intelligent agents that learn, explore, and help you understand a problem space.
Game engines are a great place to explore ML and AI. They’re wonderful constrained problem spaces, tiny little ecosystems for you to explore a problem in. Here you can learn to use them, even though you’re not a game developer.
Outline:
In this tutorial, you’ll look at
- How video game engines are a perfect environment to constrain a problem and train an agent
- How easy it is to get started using the Unity engine and Google’s TensorFlow for Python
- How to build up a model, and use it in the engine, to explore a particular idea or problem
- Proximal policy optimization (PPO) for generic but useful machine learning
- Deep reinforcement learning and how it lets you explore and study complex behaviors
Specifically, Paris, Tim, and Mars will
- Teach you the very basics of the Unity game engine
- Explore how to design and set up a scene in Unity for both training and use of a ML model and how to pick the right actions, observations, and rewards for training
- Show you how to train a model using TensorFlow and using the Unity scene; the difference between imitation learning, reinforcement learning, and other approaches; and how to train AI agents in complicated scenarios and make the real world better by leveraging the virtual
- Discuss the use of the trained model and potential applications
You’ll explore fun, engaging scenarios, including virtual self-driving cars, bipedal human-like walking robots, disembodied hands that can play tennis, and packing a warehouse efficiently using robots.
Non-game developers can learn how to use game technologies to further their understanding of machine learning fundamentals and solve problems using a combination of open source ML tools and game engines. Deep reinforcement learning using virtual environments is the beginning of an exciting new wave of AI, and game engines are on the leading edge. You’ll learn how to approach your ML work in a totally new way.
You’ll be using Unity, TensorFlow, and related tools, but all the principles and skills are general and transferrable to other game engines or simulation platforms (e.g., Open AI and the like).
It’s a bit technical, a bit creative, and you’ll leave with brand-new skills and an enthusiasm for using them. You’ll get your their own trained virtual robot (or car, or animal, or…anything you can imagine).
Prerequisite knowledge
- A basic understanding of ML concepts, Python, and Unity (useful but not required)
Materials or downloads needed in advance
- A laptop with Windows, macOS, or Linux and Unity (free download) and TensorFlow (available from common package managers) installed
- Complete the setup instructions in advance.
What you'll learn
- Learn basic Unity, TensorFlow, and advanced Unity ML
- Discover how to combine Unity and TensorFlow for amazing ML- and AI-powered explorations, training, and testing
- Understand how to use a game engine (Unity and Python TensorFlow are used, but principles are generally applicable) to test out and explore ML and AI problems that have a visual or physical component (e.g., self-driving cars, real-world interactions, etc.)

Paris Buttfield-Addison
Secret Lab
Paris Buttfield-Addison is a cofounder of Secret Lab, a game development studio based in beautiful Hobart, Australia. Secret Lab builds games and game development tools, including the multi-award-winning ABC Play School iPad games, the BAFTA- and IGF-winning Night in the Woods, the Qantas airlines Joey Playbox games, and the Yarn Spinner narrative game framework. Previously, Paris was a mobile product manager for Meebo (acquired by Google). Paris particularly enjoys game design, statistics, blockchain, machine learning, and human-centered technology. He researches and writes technical books on mobile and game development (more than 20 so far) for O’Reilly; he recently finished writing Practical AI with Swift and is currently working on Head First Swift. He holds a degree in medieval history and a PhD in computing. Paris loves to bring machine learning into the world of practical and useful. You can find him on Twitter as @parisba.

Tim Nugent
Lonely Coffee
Tim Nugent pretends to be a mobile app developer, game designer, tools builder, researcher, and tech author. When he isn’t busy avoiding being found out as a fraud, Tim spends most of his time designing and creating little apps and games he won’t let anyone see. He also spent a disproportionately long time writing his tiny little bio, most of which was taken up trying to stick a witty sci-fi reference in…before he simply gave up. He’s writing Practical Artificial Intelligence with Swift for O’Reilly and building a game for a power transmission company about a naughty quoll. (A quoll is an Australian animal.)

Mars Geldard
University of Tasmania
Marina (Mars) Rose Geldard is a researcher from Down Under in Tasmania. Entering the world of technology relatively late as a mature-age student, she’s found her place in the world: an industry where she can apply her lifelong love of mathematics and optimization. When she’s not busy being the most annoyingly eager researcher ever, she compulsively volunteers at industry events, dabbles in research, and serves on the executive committee for her state’s branch of the Australian Computer Society (ACS). She’s currently writing Practical Artificial Intelligence with Swift for O’Reilly.
Comments on this page are now closed.
Presented by
Elite Sponsors
Strategic Sponsors
Diversity and Inclusion Sponsor
Impact Sponsors
Premier Exhibitor Plus
R & D and Innovation Track Sponsor
Contact us
confreg@oreilly.com
For conference registration information and customer service
partners@oreilly.com
For more information on community discounts and trade opportunities with O’Reilly conferences
Become a sponsor
For information on exhibiting or sponsoring a conference
pr@oreilly.com
For media/analyst press inquires
Comments
Hi everyone!
Unity has made some updates LITERALLY TODAY.
If you had already followed the instructions, then you need to also execute the following command inside your Conda environment:
pip install mlagents -U
If you have not already followed the instructions, then they are now updated. So please follow the instructions.
If you’re curious, you need mlagents version 0.9.3 and Unity version 2019.2.4f1.
We’re looking forward to meeting you tomorrow!
Paris
Just a reminder for everyone to complete the setup!
https://secretlab.institute/2019/09/09/installing-unity-ml-agents-2/
If you need help just reply here! If you can’t get it done beforehand, try and be in the tutorial room in advance of the start time and we’ll be around to help you get set up.
Thanks!
Er, sorry this is the correct link:
https://secretlab.institute/2019/09/09/installing-unity-ml-agents-2/
The setup instructions to complete before attending can be found here:
https://conferences.oreilly.com/artificial-intelligence/ai-ca/public/schedule/detail/78681
If you have any questions, just post here and we can take a look.