Week 9 Thursday: GDD Work Session & Project Setup

💻 GDD Work Session

Week 9 Thursday: Project Setup & Planning

Game Programming - CSCI 3213

Spring 2026 - Week 9 Thursday

Oklahoma City University

📚 Today's Objectives

  • Finalize your Game Design Document
  • Set up your Unity project structure
  • Initialize Git repository
  • Create basic project scaffolding
  • Begin implementing core systems
  • Schedule and plan your development timeline
Goal: Leave today with a solid GDD and a working project foundation

📝 Refining Your GDD

Based on Tuesday's Feedback:

  • Scope Adjustments:
    • Did peers suggest your scope was too large/small?
    • Revise feature list accordingly
    • Be honest about 7-week timeline
  • Clarity Improvements:
    • Were your mechanics clear?
    • Add diagrams or flowcharts if needed
    • Explain the "why" behind design choices
  • Technical Planning:
    • List specific design patterns you'll use
    • Identify technical risks and mitigation plans
    • Document third-party assets needed
  • Milestone Detail:
    • Break down what you'll deliver each week
    • Be specific (not just "work on game")

🎮 Unity Project Setup

Step 1: Create New Project

  • Open Unity Hub
  • Click "New Project"
  • Choose template (2D or 3D based on your game)
  • Name it clearly (e.g., "TowerChaos" not "Game1")
  • Choose appropriate save location

Step 2: Configure Project Settings

  • Edit → Project Settings:
  • Set Company Name and Product Name
  • Configure target platform (PC, Mac, WebGL)
  • Set screen resolution and aspect ratio
  • Configure quality settings if needed

Step 3: Organize Folder Structure

Assets/
├── Scenes/
├── Scripts/
│   ├── Player/
│   ├── Enemies/
│   ├── Managers/
│   ├── UI/
│   └── Patterns/
├── Prefabs/
├── Materials/
├── Sprites/ (for 2D) or Models/ (for 3D)
├── Audio/
│   ├── Music/
│   └── SFX/
└── Resources/

🔧 Git Repository Setup

Step 1: Create .gitignore

Unity projects need a special .gitignore file

  • Visit: github.com/github/gitignore
  • Download Unity.gitignore
  • Place in project root (outside Assets folder)
  • Rename to .gitignore

Step 2: Initialize Repository

# In terminal/command prompt, navigate to project folder
cd path/to/your/project

# Initialize git
git init

# Add all files
git add .

# First commit
git commit -m "Initial project setup"

Step 3: Create GitHub Repository

  • Go to github.com and create new repository
  • Name it same as Unity project
  • Don't initialize with README (you already have commits)
  • Link local repo to GitHub:
git remote add origin https://github.com/yourusername/yourproject.git
git branch -M main
git push -u origin main

🏗️ Creating Project Scaffolding

Essential Scripts to Create Today:

  1. GameManager.cs (Singleton):
    public class GameManager : MonoBehaviour
    {
        public static GameManager Instance { get; private set; }
    
        void Awake()
        {
            if (Instance != null && Instance != this)
            {
                Destroy(gameObject);
                return;
            }
            Instance = this;
            DontDestroyOnLoad(gameObject);
        }
    
        // Game state management
        public void StartGame() { }
        public void PauseGame() { }
        public void GameOver() { }
    }
  2. PlayerController.cs (Basic Movement):
    • Create placeholder movement
    • Test controls work
    • Will refine later
  3. Basic Scene Setup:
    • Create MainMenu scene
    • Create Game scene
    • Add placeholder UI canvas

✅ First Commit Checklist

Before Your First Work Commit:

  • ✅ Project opens without errors
  • ✅ Folder structure created
  • ✅ .gitignore in place
  • ✅ GitHub repository linked
  • ✅ GameManager created
  • ✅ At least one scene created
  • ✅ Basic player object or placeholder in scene

Commit Message Best Practices:

# Good commit messages
git commit -m "Add GameManager singleton"
git commit -m "Implement basic player movement"
git commit -m "Create main menu UI"

# Bad commit messages
git commit -m "stuff"
git commit -m "fixed it"
git commit -m "asdf"
Commit Often: Daily commits minimum. More is better!

📅 Your Development Timeline

Break Down Your Next 2 Weeks:

Timeframe Goals
This Week
(Days 1-3)
• Player controls working
• Basic scene setup
• One core system started
Next Week
(Week 10)
• Core mechanic functional
• Basic game loop working
• Placeholder art in place
Week 11
First Playable
• Game playable start to finish
• Win/lose conditions work
• Ready for playtesting
Add to GDD: Document your weekly goals in detail

🏗️ Design Patterns Planning

Required: Implement at least 3 patterns

Pattern Implementation Schedule:

Pattern When to Implement
Singleton Week 9 (Today) - GameManager
Object Pool Week 10-11 - When you have repeating objects
Observer Week 11-12 - For events and UI updates
State Week 10-11 - Player or enemy states
Command Week 11-12 - Input or undo systems
Strategy Week 12-13 - AI behaviors or difficulty
Document in GDD: List which patterns you plan to use and where

💻 Work Session Begins!

Next 60-75 Minutes - Work on:

  1. Finalize GDD (30 min):
    • Incorporate Tuesday feedback
    • Add technical details
    • Document patterns and milestones
  2. Set Up Unity Project (15 min):
    • Create project
    • Organize folders
    • Configure settings
  3. Initialize Git (10 min):
    • Add .gitignore
    • Create GitHub repo
    • Make initial commit
  4. Start Coding (30+ min):
    • Create GameManager
    • Build basic player controller
    • Set up scenes
Instructor Available: Raise hand for help with Git, Unity setup, or design questions

⚠️ Common Setup Issues

Git Issues:

  • Problem: "Permission denied" when pushing to GitHub
    • Solution: Set up SSH keys or use HTTPS with personal access token
  • Problem: Repository too large
    • Solution: Make sure .gitignore is correct (excludes Library folder)

Unity Issues:

  • Problem: Scripts not compiling
    • Solution: Check console for errors, ensure namespace is correct
  • Problem: Missing references
    • Solution: Use using UnityEngine; at top of scripts

Project Organization:

  • Problem: Can't find assets
    • Solution: Stick to folder structure, name files clearly

📚 Resources

Unity Project Setup:

  • Unity Learn: "Create with Code" - Project setup module
  • Unity Documentation: docs.unity3d.com

Git & GitHub:

  • GitHub Unity .gitignore: github.com/github/gitignore
  • Git basics: git-scm.com/doc
  • GitHub for Unity: unity.com/solutions/github

Design Patterns Reference:

  • Course lecture slides (Weeks 2-8, 11-15)
  • Game Programming Patterns: gameprogrammingpatterns.com

Getting Help:

  • Office Hours: Monday/Wednesday 2:00-4:00 PM
  • Email: bobby.reed@okcu.edu
  • Discord/Slack: [if applicable]

📝 Homework for Week 10

Due by Next Tuesday:

  1. Submit Final GDD:
    • Complete with all feedback incorporated
    • Shared Google Doc link to Canvas
  2. Share GitHub Repository:
    • Submit repo link to Canvas
    • Ensure repo is public or professor has access
    • At least 3 commits by next class
  3. Development Progress:
    • Player controls functional
    • Basic scene with game world
    • One core system started (movement, combat, puzzle, etc.)

Week 10 (No Class Meeting):

  • Independent work week
  • Focus on core mechanic implementation
  • Office hours available for help
  • Goal: Be ready for First Playable in Week 11

✅ End-of-Class Progress Check

Before You Leave Today:

  • ✅ GDD finalized (or nearly done)
  • ✅ Unity project created and organized
  • ✅ Git repository initialized
  • ✅ GitHub repo created and linked
  • ✅ At least one script created (GameManager)
  • ✅ Project runs without errors
  • ✅ First commit pushed to GitHub

Show Instructor Before Leaving:

Quick check that you have:

  • Unity project opening correctly
  • GitHub repository set up
  • GDD in good shape
Stuck? Don't leave without asking for help!

📝 Summary

Today's Accomplishments:

  • ✅ Refined Game Design Document
  • ✅ Set up Unity project structure
  • ✅ Initialized Git and GitHub
  • ✅ Created project foundation
  • ✅ Began core development

Next Steps:

  • Week 10: Independent development
  • Week 11: First Playable demos
  • Keep committing to Git daily
  • Use office hours if stuck

Your game development journey begins now! 🚀