## Week 1: Setting up the Environment, Major Concepts

### Description:
Get familiar with the Godot game engine, and why we would use this engine. Become familiar with the interface and set up a first project in 2D.

Install the Godot game engine
Get familiar with the environment
Learn each panel and what they are used for
Understanding hierarchy - scenes, nodes

Design Exercises - Game Design
Learn the main types of game objects and how they relate to game design:

* Static Bodies
* Rigid Bodies
* Character Bodies
* Area Triggers

Development Exercise - Minimal Game
Create a ground plane. Understand rigid bodies, gravity, and colliders. Create a keyboard based player controller to move around with.

### Create Walls

Using Static Bodies, create walls and boundaries to form some basic world interaction.

### Create Physics Based Objects

Using RigidBodies, create some elements of the world that use physics interactions. You can test these against your StaticBodies.

### Create AreaTrigger

Create a trigger via Area2D. Create in a way that it can be used to trigger multiple effects. Turn the AreaTrigger into its own Scene for reuse.

### Create Game Character

Make a playable character that uses the CharacterBody2D template.

## Architecture

It is not too soon to start thinking about how to organize a game! Through this project, we will be creating a project architecture that is good for small to mid-sized games.

Creating a predictable architecture is about making a 'separation of concerns' in your code. Our architecture will be broken up into three concerns.

1. Game Controller
This tier keeps track of all data and logic rules.
2. SceneManager
The scene manager keeps track of everything that is on the screen at any given time.
3. View
This tier is where all of our game assets (in Godot "scenes" and "nodes") are kept.

-----------------

