#
Quiz

The best way to learn and to avoid the illusion of competence is to test yourself. This will help you to find where you need to reinforce your knowledge.

###
Q1: Which of the following tools are specifically designed for video games development?

Unity (C#) Unreal Engine (C++) Godot (GDScript, C++, C#) JetBrains' Rider JetBrains' CLion Microsoft Visual Studio and Visual Studio Code

###
Q2: What of the following statements are true about Unity ML-Agents?

Unity ´Scene´ objects can be used to create learning environments Unit ML-Agents allows you to create and train your agents using Reinforcement Learning Its `Communicator` component manages the communication between Unity's C# Environments/Agents and a Python back-end The training process uses Reinforcement Learning algorithms, implemented in Pytorch Unity ML-Agents only support Proximal Policy Optimization (PPO) It includes a Gym Wrapper and a multi-agent version of it called `PettingZoo`

###
Q3: Fill the missing letters

- In Unity ML-Agents, the Policy of an Agent is called a b _ _ _ n
- The component in charge of orchestrating the agents is called the _ c _ _ _ m _

Solution

- b r a i n
- a c a d e m y

###
Q4: Define with your own words what is a raycast

Solution
A raycast is (most of the times) a linear projection, as a `laser` which aims to detect collisions through objects.

###
Q5: Which are the differences between capturing the environment using frames or raycasts ?

By using `frames`, the environment is defined by each of the pixels of the screen. By using `raycasts`, we only send a sample of those pixels. By using `raycasts`, the environment is defined by each of the pixels of the screen. By using `frames`, we spawn a (usually) line to check what objects it collides with By using `frames`, we collect all the pixels of the screen, which define the environment. By using `raycast`, we don't use pixels, we spawn (normally) lines and check their collisions

###
Q6: Name several environment and agent input variables used to train the agent in the Snowball or Pyramid environments

Solution
- Collisions of the raycasts spawned from the agent detecting blocks, (invisible) walls, stones, our target, switches, etc. - Traditional inputs describing agent features, as its speed - Boolean vars, as the switch (on/off) in Pyramids or the `can I shoot?` in the SnowballTarget.

Congrats on finishing this Quiz 🥳, if you missed some elements, take time to read the chapter again to reinforce (😏) your knowledge.

Update on GitHub