Schedule

Lecture Topics

The following topics will be introduced in lectures through-out the term:

  • High-Quality Software

    • Code Smells

    • Refactoring

    • Technical Debt

  • Programming Environment

    • C# Primer

    • MonoGame

    • Visual Studio

  • Version Control

    • Git and GitHub

  • Agile Development

    • Requirements Gathering

    • Sprint Evaluation

    • Sprints

  • Design Patterns and Fundamentals

    • Amdahl’s Law

    • Anti-Patterns

    • Builder Pattern

    • Command Pattern

    • Decorator and State Interaction

    • Decorator Pattern

    • Factory Pattern

    • Flyweight Pattern

    • Memento Pattern

    • Null Pattern

    • Object Pools

    • Singleton Pattern

    • State Machine

    • State Pattern

    • Strategy Pattern

  • 2D Game Fundamentals

    • 2D Coordinate Systems

    • Audio

    • Cameras and Camera Controls

    • Collision Detection and Response

    • Heads-Up Display

    • Input Handling

    • Levels and File I/O

    • Physics and Movements

    • Separation of Sprites from Game Objects

    • Testing

    • Textures and Sprites

  • Teamwork

    • Conflict Resolution

    • Peer Review

Class Schedule

The schedule is subject to change based on class needs. It is your responsibility to catch up with any missed lecture material.

Date

Topic

Jan 6

Class Introduction; High-Quality Software

Jan 8

C# Introduction

Jan 10

Visual Studio [Code]; MonoGame; User Input Handling

Jan 13

2D Coordinate Systems; Textures; Sprites

Jan 15

Sprint 0 Design Comparisons; Sprint 0 Q&A; Teamwork; Group Project Aspirations; Requirements Gathering; Project Layout

Jan 17

Design Patterns; Command Pattern; Agile

Jan 20

No Class

Jan 22

Version Control; Git and GitHub

Jan 24

State Machine; State Design Pattern; Separation of Sprites from Game Objects

Jan 27

Decorator Pattern; Interaction Between Decorators and States; Link Decorator for Zelda

Jan 29

Factory Pattern; Singleton Pattern; Sprint Evaluation; Peer Review / Team Topics

Jan 31

Amdahl’s Law; Code Smells; Sprint 2 Object Diagrams

Feb 3

Sprint Deliverables; In-Class Code Review Meeting Structure; Levels; File I/O

Feb 5

Strategy Pattern; Null Pattern; Anti-Patterns; Refactoring; Technical Debt

Feb 7

Movement; Collision Response; Software Organization for Game Physics

Feb 10

Group Code Review

Feb 12

Group Code Review

Feb 14

Group Code Review

Feb 17

Cameras; Camera Controls; Quality Assurance (QA); Unit Testing

Feb 19

Playtesting; Planning For End Product

Feb 21

Entity Component Systems; Mid-Semester Feedback

Feb 24

Group Code Review

Feb 26

Group Code Review

Feb 28

Group Code Review

Mar 3

Audio; Heads-Up Display

Mar 5

Real-World Code Examples

Mar 7

Flyweight Pattern; Object Pools; Builder Pattern; Memento Pattern

Mar 10

Spring Break

Mar 12

Spring Break

Mar 14

Spring Break

Mar 17

Group Work Time and Code Review

Mar 19

Group Work Time and Code Review

Mar 21

Group Work Time and Code Review

Mar 24

Group Work Time and Code Review

Mar 26

Group Work Time and Code Review

Mar 28

Group Work Time and Code Review

Mar 31

Group Work Time and Code Review

Apr 2

Group Work Time and Code Review

Apr 4

Group Work Time and Code Review

Apr 7

Group Work Time and Code Review

Apr 9

Group Work Time and Code Review

Apr 11

Group Work Time and Code Review

Apr 14

Group Work Time and Code Review

Apr 16

Group Work Time and Code Review

Apr 18

Group Work Time and Code Review

Apr 21

Last Day of Class

Apr 23

No Class

Apr 25

Final Presentations

Sprint Schedule

Jan  6 - Jan 10   Sprint 0 Assigned (Mon)
Jan 13 - Jan 17   Sprint 1 Assigned (Mon); Sprint 0 Early Submission (Fri)
Jan 20 - Jan 24   Sprint 0 Due (Wed); Sprint 2 Assigned (Wed)
Jan 27 - Jan 31
Feb  3 - Feb  7   Sprint 2 Check-in (Mon)
Feb 10 - Feb 14   Sprint 2 Due (Mon); Sprint 3 Assigned (Mon)
Feb 17 - Feb 21
Feb 24 - Feb 28   Sprint 3 Check-In (Mon)
Mar  3 - Mar  7   Sprint 3 Due (Mon); Sprint 4 Assigned (Mon)
Mar 10 - Mar 14   Spring Break
Mar 17 - Mar 21
Mar 24 - Mar 28   Sprint 4 Check-In (Mon); Sprint 5 Proposals Due (Fri)
Mar 31 - Apr  4   Sprint 4 Due (Mon); Sprint 5 Assigned (Mon)
Apr  7 - Apr 11
Apr 14 - Apr 18   Sprint 5 Check-In (Mon)
Apr 21 - Apr 25   Final Class (Mon); Final Presentations (Fri)