Weeks 1 & 2 — Getting Started
From installation to your first interactive game environment
Setting up Unity, exploring the editor interface, and understanding the core building blocks of every game.
Game development is the process of designing, building, and publishing interactive experiences — combining art, code, and physics into real-time simulations.
unity.com/download and install Unity Hub — the launcher that manages your Unity versions and projects.Android Build Support + iOS Build Support for mobile deployment.Unity's editor has five key panels. Understanding each one is your first skill as a game developer.
| Panel | Purpose |
|---|---|
| Scene | Visual workspace — build your game world here |
| Game | Preview what the player sees at runtime |
| Hierarchy | List of all objects in the current scene |
| Inspector | Properties of the selected object |
| Project | All your files — assets, scripts, prefabs |
Game Objects are the fundamental building blocks of every Unity scene. Everything in your game is a GameObject — characters, lights, cameras, terrain, UI elements.
Cube via GameObject → 3D Object3 — watch it moveSphere and a Plane to the sceneBring your world to life — apply visual surfaces, paint the ground, grow forests, and run your first playable game environment.
A Material defines how a surface looks. A Texture is the image "wrapped" onto that surface — like putting wallpaper on a box.
| Property | Effect |
|---|---|
Albedo | Base colour / texture map |
Metallic | How shiny/metallic the surface is (0–1) |
Smoothness | Mirror-like vs rough surface |
Normal Map | Fake surface bumps without extra geometry |
Emission | Makes the surface glow (like neon signs) |
Follow these steps to create a material and apply it to any 3D object in your scene.
Metallic and Smoothness sliders. For wood — low metallic (0), medium smoothness (0.3).Tiling X / Y values in the material — higher = smaller, repeating tiles.Unity's Terrain system lets you "sculpt" large outdoor environments — hills, valleys, cliffs — by painting directly in the Scene view, no modelling software needed.
The Terrain system lets you paint trees and grass directly onto the terrain surface — thousands of instances with a single brush stroke.
The Unity Asset Store is an online marketplace of ready-made art, scripts, sounds, and tools. You don't need to build everything from scratch.
Unity's Play Mode lets you test your game inside the editor — no build needed. The Game view shows exactly what the player would see.
A complete 3D mobile-ready game built step by step. By the end you will have a real, playable game you built yourself from scratch.
Create a new 3D Core project. We'll build an enclosed arena — a flat ground and four walls to keep the ball in bounds.
Ctrl+D) and adjust for each wall| Wall | Position | Scale |
|---|---|---|
| West | (-10, 0.5, 0) | (0.5, 1, 20) |
| East | (10, 0.5, 0) | (0.5, 1, 20) |
| North | (0, 0.5, 10) | (20, 1, 0.5) |
| South | (0, 0.5, −10) | (20, 1, 0.5) |
(0, 0.5, 0) — sits on top of the groundScripts give your GameObjects behaviour. Attach this script to the Player sphere to allow keyboard-controlled movement using physics forces.
PlayerControllerspeed in the Inspector while playing to tune feel.
Two of the most important methods in Unity. Understanding when to use each prevents buggy physics and choppy movement.
Runs every rendered frame. If your game runs at 60fps, Update runs 60× per second. At 30fps, it runs 30×. The rate is variable.
✅ Use for: input reading, moving non-physics objects, UI updates, spawning things
❌ Avoid: physics forces — inconsistent results at different framerates
Runs at a fixed rate (default: 50× per second, regardless of framerate). Physics simulation is synced to this.
✅ Use for: Rigidbody.AddForce(), velocity changes, anything physics-related
Result: smooth, consistent physics on any device speed
Right now the camera is fixed. We want it to follow the player smoothly — always behind and above the ball, maintaining a constant offset.
CameraControllerWe'll make one gem, make it spin, turn it into a Prefab (reusable template), then place 12 copies around the arena.
(0.5, 0.5, 0.5) Rotate Y: 45°RotateGem (see code below)When the ball touches a gem, we want to: destroy the gem, increase the score, and check if the player has won. All of this goes in the PlayerController script.
PickUp. Then assign it. This lets code identify gems specifically.
Unity's UI Canvas is a special layer that always renders on top of the game world — perfect for HUDs, menus, and score displays.
Gems: 0using TMPro; and TMP_Text instead of Text if using TextMeshPro — it's higher quality and the modern Unity standard.
Sound makes games feel alive. We'll add a pickup chime when collecting a gem and a win fanfare when all gems are collected.
.wav or .mp3 files into your Project Assets folderaudioSource.PlayOneShot(clip) to play without interrupting other sounds.
A particle burst when you collect a gem makes the game feel juicy. Unity's Particle System handles hundreds of tiny animated sprites.
0.5 · Loop: off0.5 · Start Speed: 40.2 · Start Color: Yellow20 at Time 0
public GameObject gemBurstPrefab field, assign it in InspectorBefore building, swap keyboard input for a joystick using Unity's Input System package (or a free virtual joystick from the Asset Store).
Touchscreen class, or add a Virtual Joystick Asset Store package for a plug-and-play UI stick.
com.yourname.rollcollect