The Obstacle Tower Challenge has launched! Let’s start by submitting an agent that samples a random action. For this, we will follow the guide provided by Unity.

Clone obstacle-tower-challenge Repository

Unity created the obstacle-tower-challenge repository that serves as a starter kit. We need to clone this repository to start developing and submitting agents.

git clone https://github.com/Unity-Technologies/obstacle-tower-challenge.git
git clone [email protected]:Unity-Technologies/obstacle-tower-challenge.git

The first line clones the repository with HTTPS, whereas the second line clones the repository with SSH. Choose whichever method you are more familiar with.

Download Environment

To make sure your agent runs, you also need the Obstacle Tower Environment. Select the correct OS and unzip it to the obstacle-tower-challenge/ repository.

After this step, your directory should look something like this:

+ obstacle-tower-challenge/
    + ObstacleTower/
    - .gitignore
    - LICENSE
    - README.md
    - aicrowd.json
    - apt.txt
    - banner.png
    - build.sh
    - env.sh
    - requirements.txt
    - run.py
    - run.sh

Random Agent

The repository contains a run.py script that has a simple run_episode function:

def run_episode(env):
    done = False
    reward = 0.0
    
    while not done:
        action = env.action_space.sample()
        obs, reward, done, info = env.step(action)
    return reward

The action is sampled randomly until the episode is finished.

Create GitLab Repository

To make a submission, you need to create a private repository on AICrowd GitLab. Name it obstacle-tower-challenge and click Create Project.

To submit, we need to push the obstacle-tower-challenge starter kit in our local computer to this repository. First, let’s add a new remote repository to Git using one of the two commands below. Replace <YOUR_AICROWD_USER_NAME> with your username on AICrowd.

# Add AICrowd git remote endpoint
git remote add aicrowd https://gitlab.aicrowd.com:<YOUR_AICROWD_USER_NAME>/obstacle-tower-challenge.git
git remote add aicrowd [email protected]:<YOUR_AICROWD_USER_NAME>/obstacle-tower-challenge.git

Push to GitLab AICrowd repository. To push, you would need to set up credentials. When you visit the CrowdAI website, there should be a notification banner on setting a password (for HTTPS) of setting up SSH (for SSH). After you set up credentials, you can push.

git push aicrowd master

Submit Agent

To submit the agent, you need to create a tag for your submission and push.

# Create a tag for your submission and push
git tag -am "v0.1" v0.1
git push aicrowd master
git push aicrowd v0.1

Congratulations! You have now submitted your first agent! You should be able to see the status of your submission on the Submissions section of the AICrowd website or on the Issues page of the AICrowd GitLab.

What’s Next?

Now that we submitted a toy agent, the next step would be to train one of the baseline agents (Rainbow or PPO) and submit it!