ECS 179: Gameplay Programming

Subject
ECS 179
Title
Gameplay Programming
Status
Active
Units
4.0
Effective Term
2024 Winter Quarter
Learning Activities
Lecture: 3 hours
Discussion: 1 hour
Description
Developing gameplay systems in the context of game design and software engineering. Aspects of technical game development that depend on the genre or details of a specific game design, thus making them difficult to abstract and engineer into game engines.
Prerequisites
ECS 032B or ECS 036C; extensive programming experience recommended
Enrollment Restrictions
Pass One restricted to Computer Science and Computer Science & Engineering majors; Pass Two restricted to undergraduates.

Summary of Course Content

A detailed syllabus including schedule, readings, assessments, and activities can be found here:
  GitHub - dr-jam/GameplayProgramming: Gameplay Programming

  1. Orientation:
    1. Game engines and game creation technology
    2. Ontology and structure of game development
    3. Practice-based introduction to Game Engines
    4. Understanding game design as a developer
  2. Software Engineering for Game Development
    1. Structuring gameplay systems
    2. Code style guides, best practices, and software code support
    3. Design Patterns
    4. Peer Code Reviews
    5. Versioning Systems
    6. Project and group organization
  3. Game Design and Production
    1. Game Mechanics, Rules, and Systems.
    2. Interactivity and UI/UX.
    3. Game Design Documents
    4. Play Testing
    5. Gameplay System Design and Analysis
    6. Structure of game studios from indie to AAA
  4. Employed Technologies
    1. Game engine and related programming language.
    2. Versioning Systems and Source Code Control
    3. Asset Creation Tools
  5. Current and Advanced Topics
    1. AI for Games
    2. Procedural Content Generation
    3. Design and Development Support Tools

Illustrative Reading

Game Programming Patterns by Nystrom

Rules of Play by Salen Tekinbas and Zimmerman: [UCD Library] [pdf]

Game Feel by Swink: [UCD LIbrary] [pdf]

The assigned and supplementary readings are curated from well-known game design and development resources: https://github.com/dr-jam/GameplayProgramming#learning-the-basics

Potential Course Overlap

ECS 160: Software Engineering - While not stated directly in  ECS160’s Summary of Course Content, there may be overlap in learning the use cases and implementation of several software design patterns. There may be coincidences between the learning and using team software development tools and methodologies between the classes.

 

ECS 161: Modern Programming Tools - Integrated Development Environments - Game engines interface with IDEs and will both be extensively used by students.

 

ECS 164: Human-Computer Interaction - Concepts and Principles of Interaction Design - There may be an overlap of basic concepts between HCI-based and game design-based design philosophies; Prototyping; Design Criticism and iteration - Both are part of the game development cycle for the class project.

 

ECS 170: Introduction to Artificial Intelligence - A* and Pathplanning - Part of the AI module is learning the basics of A* and one of the projects features the use of a navmesh system for pathplanning.

 

CDM176 Game Platforms - Both classes cover discussion related to game design and basic game development literacy including game design documents, the indie game development process, and an overview of game engines.

Course Category