This is a draft repository for the Gator AI Summer Camp 2025 program. The camp will teach students the basics of AI and how to apply AI to solve real-world problems.
- Week 1: Introduction to Python programming using game development
- Week 2: AI concepts and their application to real-world problems
The project features a top-down adventure game, similar to The Legend of Zelda. Players will be able to:
- Move around the map
- Collect items
- Interact with NPCs
All code in this project should be:
- Well-documented with clear comments and docstrings
- Follow Python best practices for clean, maintainable code
- Organized logically to teach coding principles in order (variables → functions → classes → objects)
Duration: ~4 hours per day
Schedule: 1 hour morning session + 2 hours afternoon + 1 hour evening with TAs
Objective: Set up programming environment and begin coding fundamentals.
- Install & Run IDE: Explain what IDEs are and set up development environment
- Install Python: Walk through Python installation (if not already installed)
- GitHub Setup: Sign-in or sign-up for GitHub account
- Download Project: Clone from Ian's GitHub Repository
- Hello World: Demonstrate running "Hello, World!" in a Python script
- Basic Python Syntax
- Simple print statements and comments
- Indentation rules in Python
- Libraries and Importing: Explain how to import and use external libraries
- Game Environment Overview
- Introduce existing game framework
- Show game file locations and how to run the game
- Variables & Data Types (Basic)
- Integers, floats, strings
- Assign simple values (character names, positions, etc.)
- Modify "Hello, World!" splash screen to display welcome message
- Use variables to store player name or game title
- Deliverable: Push project to personal GitHub repository
Objective: Explore game mechanics and make active changes to game code.
- Loading Character Sprites
- Import image files (PNGs, JPGs) into game code
- Position sprites on screen
- Basic Conditionals
ifstatements for simple conditions- Examples: button presses, health checks
- Simple Functions
- Create functions like
move_character() - Demonstrate code organization benefits
- Create functions like
- Add a single character sprite to the game
- Use Piskel to create unique sprites
- Experiment with character position and appearance
- Deliverable: Push project to personal GitHub repository
Objective: Create branching conversations and interactive dialogue systems.
-
Introduction to Dialogue Trees
- Branching conversation options
- Store dialogue in data structures (lists/dictionaries)
-
Using Lists or Dictionaries (Basic)
Example dictionary approach:
dialogue = { "greeting": "Hello, traveler!", "option1": "Where am I?", "option2": "Who are you?" }
-
Loops for Navigating Dialogue
forloops to cycle through dialogue options- Conditionals for conversation branching
- Give newly added sprite a short conversation
- Use
input()for dialogue selection and response branching - Deliverable: Push project to personal GitHub repository
Objective: Enhance dialogue systems, add sprite interactions, and learn debugging techniques.
- Refining Dialogue Trees
- Multi-step dialogue structures
- Explain this as the original "AI"
- Sprite Interaction
- Tie sprite actions to dialogue choices
- Change expressions based on conversation branches
- Sprite movement (walking away, disappearing)
- Basic Debugging & Code Organization
- Using
print()statements to track variables - Common syntax errors and how to read error messages
- Organizing dialogue code in separate files/functions
- Using
- Create multi-branch dialogue for character
- Optional: Group brainstorming for final projects
- Deliverable: Push project to personal GitHub repository
Objective: Polish game modifications and present final projects.
- Polish & Personalization
- Add custom sprites, dialogue branches, animations
- Testing
- Test all dialogue paths and sprite interactions
- Use checklist approach: sprite display, dialogue functionality
- Show & Tell
- Demonstrate modified games
- Highlight added characters and dialogue systems
- Reflection & Next Steps
- Group discussion: Python learnings and challenges
- Review group projects (additional characters, scenes, menus)
- Deliverable: Push final project to personal GitHub repository
Objective: Learn AI fundamentals and prepare development environment.
- Show Week Plan: Overview of full week schedule
- What Is AI/ML?
- Differentiate AI, Machine Learning, and Deep Learning
- Real-world applications (image recognition, chatbots, etc.)
- Facial Recognition Overview
- Face detection vs. recognition vs. expression recognition
- Introduction to libraries (OpenCV, face_recognition)
- Setting Up AI Environment
- Install Python libraries (
opencv-python,face_recognition) - Discuss CPU/GPU considerations or use Google Colab
- Install Python libraries (
- Data Gathering & Model Training Basics
- Using images/webcam for training/fine-tuning
- Dataset labeling, data requirements
- Ethical considerations: privacy, consent
- Verify AI library installations (
pip install opencv-python) - Optional: Test script for face detection from webcam/image
Objective: Learn model training concepts and implement expression recognition.
- Model Training Fundamentals
- Training vs. validation vs. test data
- Small dataset of facial expressions (happy, sad, neutral)
- Students capture labeled images
- Implementing Training Pipeline
- Code walkthrough for training/fine-tuning expression models
- Focus on understanding how models learn from data
- Testing & Evaluating Models
- Run model on test images
- Print accuracy and confusion matrix
- Saving Models
- Save trained model to file (
.h5or.pkl) - Loading models for game integration
- Save trained model to file (
- Follow guided notebook/script to train expression recognition model
- Test on personal images or sample photos
- Check and discuss accuracy results
Objective: Understand LLMs and integrate them via API calls.
- Overview of Large Language Models (LLMs)
- What LLMs are and how they're trained
- Natural language response capabilities
- Common providers (OpenAI, Hugging Face, etc.)
- API Setup
- Obtain API keys (instructor-guided)
- Basic Python script for LLM endpoint requests
- Using
requestslibrary or official client libraries
- Handling LLM Responses
- Parse JSON/text responses
- Understanding token usage and limits
- Write Python script to send prompts to LLM
- Print console responses
- Generate dialogue lines or short stories
- Use original dialogue as context pre-prompts
Objective: Combine facial recognition and LLM technologies in the game.
- Loading Facial Recognition Model
- Load saved model from Day 2 into game code
- Integrate webcam/image capture for real-time analysis
- Snapshot-based approach (keypress to check expression)
- API Calls from In-Game
- Combine LLM API script with game logic
- Dynamic prompts based on recognized expressions
- Example: "User is smiling. NPC responds with friendly greeting."
- Designing Interaction Flow
- Craft LLM prompts with contextual info
- Map expressions to conversation branches (happy → friendly, sad → consoling)
- Error Handling & Debugging
- Handle API downtime or recognition failures
- Use
print()statements for debugging
- Incorporate model + LLM calls into game dialogue function
- Group testing: one person as "player" (webcam), other monitors code
Objective: Complete AI-enhanced projects and present to group.
- Polish & Prepare
- Refine dialogue flows and sprite reactions
- Add more expression-to-prompt logic
- Presentation of AI-Enhanced NPCs
- Demonstrate expression recognition (smile, frown, etc.)
- Show LLM-generated dialogue responses
- Discussion & Troubleshooting
- Group discussion: successes, challenges, real-world AI considerations
- Topics: scale, bias, privacy, ethics
- Next Steps & Further Learning
- Areas for exploration: reinforcement learning, advanced computer vision, complex game design
- Work on group projects as time allows
- Final Reflection
- Share one AI learning, one challenge, one future interest area
- Optional: Feedback forms or understanding quizzes
- Python Documentation
- Sprite Sheet Editor: Piskel
- OpenCV Documentation
- GitHub Desktop (for easier Git management)
pip install pygame
pip install opencv-python
pip install requests
# Additional libraries as needed for specific AI frameworks- Minimum: 4GB RAM, integrated graphics
- Recommended: 8GB+ RAM, dedicated graphics card for AI processing
- Webcam: Required for facial recognition exercises
- Game art assets from OpenGameArt.org, licensed under CC0 1.0 Universal (CC0 1.0) Public Domain Dedication. Author: ArMM1998
- Educational framework inspired by game-based learning methodologies
This is an educational repository. Contributions should focus on:
- Improving code clarity and documentation
- Adding beginner-friendly examples
- Enhancing learning progressions
- Fixing bugs or compatibility issues
This project is intended for educational use. Please respect the licensing terms of all included assets and libraries.