# Setup

### Introduction

This tutorial begins with the creation of a new project in FlatRedBall. We'll make a new **Desktop GL .NET 6** project.

### Creating a new project

To create a new project:

1. Select **File** -> **New Project** or click the **New Project** button in the **Quick Actions** tab if you do not have a project open already
2. Enter the name **RockBlaster** (no spaces) as your project name
3. Click **Create Project!**

![Name your project RockBlaster then click Create Project!](https://951240982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_fye9Ufg3vzJxwX5Hk%2Fuploads%2FRKxVmfboj7mH7gviqKcA%2F30_06%2017%2045.png?alt=media\&token=bb3e4e26-a84a-49c0-9d8a-a077a2e80905)

Wait for your project to finish downloading and the Project Setup Wizard automatically opens.

Check the **Custom (Advanced)** option.

<figure><img src="https://951240982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_fye9Ufg3vzJxwX5Hk%2Fuploads%2Fgit-blob-6b9c9baed29133b7fb1c3d010ca6fa9fe5e986f0%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Select Start Wizard from Scratch.

<figure><img src="https://951240982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_fye9Ufg3vzJxwX5Hk%2Fuploads%2Fgit-blob-fca4bde747822eedade933e6eeb4ef95672bd981%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

We will change a few of the default options. Follow along with these images and make your options match.

![](https://951240982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_fye9Ufg3vzJxwX5Hk%2Fuploads%2Fgit-blob-1e6fd4fa996de0b326b97ba6065932be4b411ff8%2F15_07%2055%2056.png?alt=media)

Our game will not use **Tiled Map** files. **CloudCollision** is only used for platformer games.

![](https://951240982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_fye9Ufg3vzJxwX5Hk%2Fuploads%2Fgit-blob-9326771886245dc5e863aa0becccd20c889466b0%2F15_07%2056%2054.png?alt=media)

Our player will not use default control types like **Top-down** or **Platformer**. We will be implementing our own custom controls, so select the **None (controls will be added later)** option. Our player will rotate, so **Circle** collision is preferred to Rectangle collision. Also, our player is not a platformer character, so uncheck **Add Player vs. cloud collision**.

![](https://951240982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_fye9Ufg3vzJxwX5Hk%2Fuploads%2FkRit1wm3LKu8pxJXxmBd%2F30_06%2021%2004.png?alt=media\&token=ca615598-974f-480f-a6d0-a56acb2983f4)

Change **Number of levels to create** to **1**. Uncheck the other options since our game does not have any **Tiled Map** files.

![](https://951240982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_fye9Ufg3vzJxwX5Hk%2Fuploads%2Fgit-blob-41726592226da65528db9b28f27e4f86b62c7bd4%2F15_07%2058%2022.png?alt=media)

Leave UI options unchanged. We will use Gum to display game HUD.

![](https://951240982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_fye9Ufg3vzJxwX5Hk%2Fuploads%2FM3I0fHTTGgw7eOK5OB9U%2F30_06%2022%2011.png?alt=media\&token=c91a033e-90f2-4b8b-b83d-25d5536e12a4)

Set the Game Resolution to 800x600 and the Game Scale% to 100. Uncheck all other **Camera** options. Our game will not have a Camera which moves.

<figure><img src="https://951240982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_fye9Ufg3vzJxwX5Hk%2Fuploads%2Fgit-blob-9d3ef224f2da2d1383a87ff78afee3a0a373cccb%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Skip the option to Download/Import screens by clicking **Next**.

<figure><img src="https://951240982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_fye9Ufg3vzJxwX5Hk%2Fuploads%2Fgit-blob-db6a9d7a665ea7a77f5580959b4fd3fe89e3bce6%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Skip the option to add additional objects by clicking **Next**.

![](https://951240982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_fye9Ufg3vzJxwX5Hk%2Fuploads%2Fgit-blob-6dd6b64150f34247bc5d2ae1944fdf7685d7526a%2F15_08%2001%2000.png?alt=media)

Click **Done**. Wait a moment and your project will be all set up.

![](https://951240982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_fye9Ufg3vzJxwX5Hk%2Fuploads%2Fgit-blob-ef9855f83b468ab2e924b4f09253a275b30faf47%2F15_08%2003%2020.png?alt=media)

If we run our game now we will see our player which is a white circle.

![](https://951240982-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_fye9Ufg3vzJxwX5Hk%2Fuploads%2Fgit-blob-b10da12a32b6c3e16f3da4439c0e4508bd8353a9%2F2021-03-img_604cda3d3d060.png?alt=media)

### Conclusion

That was easy! You now have a project that we will use in the following tutorials. Next we will set up the skeleton (the general structure) of our game.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.flatredball.com/flatredball/tutorials/rock-blaster/tutorials-setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
