CS 324E Assignment 4


Assignment 4: 2D Animation



Project Description

This project explores the use of object-oriented programming in graphics, as well as scene hierarchies (aka transformation dependencies) to perform transformations for 2D animations. To do this, students will create an animation within MonoGame that loops indefinitely. This animation is expected to be complex enough to require multiple objects (and therefore multiple classes), with each object having several levels of scene/shape transformations in order to create a range of interesting, cohesive movements.

Each student in the group will be responsible for at least one object's class design and implementation. The group is responsible for designing and implementing the final animation that incorporates these objects.

Basic Requirements

Your group will implement functionality for:
  1. A 2D animation created within the Game class in MonoGame
  2. Representations of multiple objects that are continously animated in this scene. These animations do not need to loop seamlessly. For example, an animated object might jump from the last position back to the first postion if it moves off the screen or the animation sequence ends, but this is acceptable as long as the animation keeps playing a second time.
  3. A mid-project progress report to detail overall animation goals and the individual group members' contributions.

Each team member will be responsible for the functionality of:

  1. At least one class that handles an animated object within the scene. This class must represent an object that has at least two levels of hierarchical grouping to allow for at minimum two distinct forms of animation that use any of the following transformations: translate, rotate, scale.
    Note that the root level of the animation hierarchy should use a Matrix to perform these transformations, and this Matrix should be composed of at least two transformations (i.e. a rotate and a translate, a scale and a translate etc). The second level of animation hierarchy does not need its own Matrix (but you can use one as needed), as you can update this animation via the local position/local scale/local rotation etc.
  2. At least two object instances of this class to be animated in different ways. These objects might have different values in their fields, for example, or be transformed in ways to make their appearence somewhat unique from each other.
  3. This class's design documentation should be written up and included in the weekly milestone progress report.

Extra Credit

All assignments have possible extensions that you might consider adding to your scene for extra credit. Note that if the submission is well beyond the scope of the assignment, we will consider giving extra credit even if the features implemented are not ones suggested below. All requirements of the assignment must be met before credit for this will be given.

Sound (2 points)

Include sound to accompany the animation.

Getting Started

To get started, your group will first decide on the animated scene you wish to portray. You will then decide on a project structure to break this scene into multiple classes, so that teammembers can work on them individually. This information will be written up and submitted as a progress report due mid-project.

Progress Report

This progress report, titled group_yourgroupnumber_a4_progress.pdf, will include the team's plan for, and current progress on, the animation. The progress report should state what each team member will be animating, how that animation meets the hierarchical requirements, and what class structure will support the holostic final animation.

The report will break this down as follows:

One report will be submitted via Canvas for the entire team.

Project Submission

You will submit the following in the folder group_yourgroupnumber_assignment4:

  1. A MonoGame project group_yourgroupnumber_assignment4
  2. All necessary classes and subclasses this Processing file requires to run
  3. A README text file that tells us how to run your animation and any interactive controls if you added them
  4. A project description text file, assignment4_description.txt, that summarizes what the intended animation was, what the included classes do, and any unexpected challenges. Note that this is mostly a rehash of the progress report but write it from the position of what you accomplished rather than what you were planning. Also document which group member worked on which part of the assignment. While group coding is allowed, each member is responsible for their individual parts -- this ensures all group members are participating and have mastery of the assignment.

Zip this folder and submit via Canvas.


Last modified: 09/24/25 by Sarah Abraham theshark@cs.utexas.edu