Lab instructor and teaching assistant.
Responsible for leading individual/group discussion sections, technical tutorials, living coding and debugging of 25-50 students, grading assignments, preparing and giving 2-hour lab tutorials once per week throughout the semester.
This course introduces the basics of game mechanics and systems, and Processing‘s programming methods for implementing video games. Students learn how games are structured and designed as well as the translation of the game design document into programmatic code. Students are introduced to the key ideas of event-driven and object oriented programming as well as basic programming practice including systems design, iterative development and evaluation. The course will use the programming language Java/Processing and its IDE to design and develop games of complexity similar to casual, browser-based games
|1 Lec||Overview of course.
Game as a context; Simple shape drawing; Colors.
Simple shape drawing
|2 Lec||Translation, Rotation, Scale; Data types & variables; Methods; Mouse Interaction|
|Lab||Drawing with translation; Mouse interactions|
|3 Lec||Conditionals; Loops; Array; Randomness||Assignment 1|
|Lab||Loops & arrays|
|4 Lec||Classes & Objects
|Lab||Classes and Objects; Boundary & collision detection|
|5 Lec||ArrayList; Boundary detection; Collision detection b/w a point & an object; String & Text messages||
|6 Lec||Inheritance & Polymorphism|
|Lab||Inheritance & Polymorphism|
|7 Lec||Collision detection b/w objects; Motion & Vector; Keyboard; Controlling an Avatar.
|Lab||Vector-based motion; Key-based interaction|
|8 Lec||Motion simulation; Game genres & Mechanics; UML& Software design; Fundamentals on game design||Assignment 3|
|9 Lec||Using images for maps and tokens; Debugging tips||Assignment 4 Proposal|
|Lab||Feedback: check-off Assignment 4 proposal|
|10 Lec||Game level design; Platformer and Level
|Assignment 4 Milestone 1|
|Lab||Create game levels with images.|
|11 Lec||Advanced images: image-based animations; Game Narratives||Assignment 4 Milestone 2|
|12 Lec||Animated background; Load and play sound; Add sounds to games|
|Final Review & Recap||Assignment 4 Final|
Upon successful completion of this course, students will be able to:
- Design, program and test a complete, simple game program;
- Utilize an IDE for program development (file organization, coding and debugging);
- Define the main concepts in Object-Oriented Programming: Encapsulation, Inheritance, Polymorphism; identify these concepts in code; and explain the benefits of their usage; design/write code that makes good use of these concepts;
- Apply an event-driven programming architecture to create a traditional update/render game loop and handle user input;
- Discuss the issues involved in collision detection and solve this problem programmatically for simple cases.
Technical Tutorials: Each lab has a 45-60 minute programming tutorial at the beginning, which is closely related to the lecture’s concepts. The students will follow the tutorials through live coding and ask questions.
Lab Challenges: After some programming tutorials, there will be a challenge that must be completed before the beginning of the next lab. These challenges will be simple and are designed to test the students’ knowledge learned in the previous lecture and current lab.
Assignments & Projects: The assignments are all project-based, where the students need to code different simulation environments. The outcomes are open-ended, but the technical requirements are derived from the course concepts.
Quizzes & Exams: Three in-class 30 mins quizzes and the final exam test students’ knowledge of the lecture material, readings, and programming capabilities.
Student Sample Projects
Back to Teaching.