SRJC Course Outlines

6/20/2018 6:05:41 PMCS 74.42A Course Outline as of Fall 2017

Changed Course
CATALOG INFORMATION

Discipline and Nbr:  CS 74.42ATitle:  GAME DEVELOPMENT 1  
Full Title:  Game Development 1
Last Reviewed:3/24/2014

UnitsCourse Hours per Week Nbr of WeeksCourse Hours Total
Maximum3.00Lecture Scheduled3.0017.5 max.Lecture Scheduled52.50
Minimum3.00Lab Scheduled08 min.Lab Scheduled0
 Contact DHR0 Contact DHR0
 Contact Total3.00 Contact Total52.50
 
 Non-contact DHR0 Non-contact DHR Total0

 Total Out of Class Hours:  0Total Student Learning Hours: 0 

Title 5 Category:  AA Degree Applicable
Grading:  Grade or P/NP
Repeatability:  00 - Two Repeats if Grade was D, F, NC, or NP
Also Listed As: 
Formerly: 

Catalog Description:
Untitled document
An introduction to game development for students interested in the technical aspects of making video games. This course provides the technical and mathematical background to develop a 2D arcade game using JavaScript and HTML 5, with brief introduction to other high-level languages and their applicability to game development. During the course, students will be introduced to modern game platforms, and the effect of their differences, evolution, and limitations, on game programming. In addition, students will learn the rudiments of game design and the common work flow practices within the industry.

Prerequisites/Corequisites:


Recommended Preparation:
Course completion of CS 110A and/or programming experience

Limits on Enrollment:

Schedule of Classes Information
Description: Untitled document
An introduction to game development for students interested in the technical aspects of making video games. This course provides the technical and mathematical background to develop a 2D arcade game using JavaScript and HTML 5, with brief introduction to other high-level languages and their applicability to game development. During the course, students will be introduced to modern game platforms, and the effect of their differences, evolution, and limitations, on game programming. In addition, students will learn the rudiments of game design and the common work flow practices within the industry.
(Grade or P/NP)

Prerequisites:
Recommended:Course completion of CS 110A and/or programming experience
Limits on Enrollment:
Transfer Credit:CSU;
Repeatability:00 - Two Repeats if Grade was D, F, NC, or NP

ARTICULATION, MAJOR, and CERTIFICATION INFORMATION

Associate Degree:Effective:Inactive:
 Area:
 
CSU GE:Transfer Area Effective:Inactive:
 
IGETC:Transfer Area Effective:Inactive:
 
CSU Transfer:TransferableEffective:Spring 2011Inactive:
 
UC Transfer:Effective:Inactive:
 
C-ID:

Certificate/Major Applicable: Both Certificate and Major Applicable



COURSE CONTENT

Student Learning Outcomes:
Untitled document
Students will be able to:
1. Utilize fundamental practices of contemporary software development, such as object-oriented
    programming and the purpose and implementation of various design patterns.
2. Discuss the theory of developing a real-time application such as a game.
3. Independently develop 2D arcade titles of the approximate complexity of Space Invaders,
    Pac-Man, or similar.
4. Through an overview of contemporary development practices within the games industry,
    determine an appropriate career path (Art, Design, Engineering, Production, and Quality
    Assurance).

Objectives: Untitled document
Upon completion of the course, students will be able to:
1. Discuss the history of computer programming languages, in particular the trend of managed
    code as a safer alternative to native code.
2. Practice the rudiments of Linear Algebra, using vectors and matrices to solve numerous
    analytical/scientific problems.
3. Create 2D arcade-style game simulations such as Space Invaders or Pac-Man.
4. Identify best practices for memory-constrained devices such as gaming consoles and discuss
    the particular issues of developing software for a console as opposed to a personal computer.

Topics and Scope
Untitled document
I. JavaScript Language Fundamentals
    A. Introduction to JavaScript and HTML5
         1. History
          2. Interpreted vs. Native code
         3. Important JavaScript frameworks
    B. Project design and organization
         1. Creating project file and directory tree
         2. Implementing a simple JavaScript application
         3. Running and debugging in Firefox and Firebug
         4. Statements      
    C. Programming language fundamentals
         1. Data types
         2. Variables
         3. Operators
         4. Functions
         5. Garbage collection
         6. Strong vs. weak typing
    D. Object-oriented programming (review)
         1. Class definitions
         2. Object instantiation
         3. Inheritance
         4. Encapsulation
         5. Polymorphism
     E. Containers
         1. Arrays and lists
         2. Loops and iterating
     F. Exceptions
     G. Delegates and Events
     H. String manipulation      
II. Mathematics
    A. Cartesian Coordinate Systems
    B. World space, object space, camera space
    C. Vectors
          1. Addition and subtraction
          2. Dot and cross product
          3. Normalization
          4. Distance formula
    D. Matrices
          1. Matrix dimension and notation
          2. Transposition
          3. Scalar and matrix multiplication
          4. Row vs. column matrices
          5. Linear transformation
              a. Rotation
              b. Translation
              c. Scale
              d. Orthographic projection
    E. Physics simulation
         1. Numerical representation and inaccuracy
         2. Fixed vs. variable time step
         3. Performance considerations
III. Game Design and Development
     A. Cultural and function definition of games
         1. Serious game development
         2. Game vs. puzzles vs. play
    B. Rudiments of game design
         1. History                                
          2. Player feedback
         3. Risk vs. Reward
         4. Game vs. Simulation
    C. Development processes
         1. Scrumm
              a. User stories
              b. Tasks
              c. Prioritization
         2. Iterative design of game mechanics
    D. Documentation
         1. Concept document
         2. Game design document
         3. Technical design document
IV. Game Development Technical Aspects
    A. User input
         1. Gamepad
         2. Keyboard
         3. Mouse
         4. Filtering and other forms of signal processing
    B. Graphics
         1. Digital image representation
         2. Sprites and movement
    C. Audio
         1. Digital audio representation
         2. Streaming audio
         3. Audio event prioritization
    D. Game Engine Architecture
         1. The game loop
              a. Fixed
               b. Variable time step
         2. Separation of simulation and presentation
    E. Collision Detection
         1. What is collision detection
          2. Responding to collision detection
    F. Publication
         1. PC publication
         2. Publication on consoles
    G. Lessons from the Underground: DIY/Indie techniques
         1. Agile methodologies for content generation
         2. Intellectual property and copyright issues
         3. Free resources
    H. XNA Content Pipeline
         1. What are assets
         2. Importing assets into applications

Assignments:
Untitled document
1. Read approximately 25-30 pages a week
2. Prepare three written documents that closely mirror the documentation process used in the
    games industry: a concept document, game design document, and technical design
    document. (3-7 pages each)
3. Weekly programming assignments that solve particular technical challenges
4. Midterm
5. Final Project: a working 2D arcade game simulation that demonstrates the use of the
    techniques developed in this class

Methods of Evaluation/Basis of Grade.
Writing: Assessment tools that demonstrate writing skill and/or require students to select, organize and explain ideas in writing.Writing
10 - 20%
Concept document, game design document, technical design document
Problem solving: Assessment tools, other than exams, that demonstrate competence in computational or non-computational problem solving skills.Problem Solving
20 - 40%
Programming assignments -- technical challenges
Skill Demonstrations: All skill-based and physical demonstrations used for assessment purposes including skill performance exams.Skill Demonstrations
30 - 60%
Programming assignments with C#; Final project
Exams: All forms of formal testing, other than skill performance exams.Exams
10 - 20%
Mid-term exam: multiple choice, true/false, matching, short answer
Other: Includes any assessment tools that do not logically fit into the above categories.Other Category
0 - 0%
None


Representative Textbooks:
Untitled document
Hall, Joseph. XNA Game Studio Express: Developing Games for Windows and the Xbox 360. Course Technology PTR, 2007. (classic)
Lobao, Alexandra Santos. Beginning XNA 3.0 Game Programming: From Novice to Professional. Apress, 2009.
Nitschke, Benjamin. Professional XNA Game Programming. Wrox, 2008. (classic)
Reed, Aaron. Learning XNA 3.0: XNA 3.0 Game Development for the PC, Xbox 360, and Zune. O'Reilly Media, 2008. (classic)
Instructor prepared materials

Print PDF