CS 4154: Analytics-driven Game Design

Assignment 2a
Pong (programmers only)

Due: Thursday, January 1st at 12:00 am

In this project, you will implement Pong in Actionscript. The goals of this project are to familiarize you with Actionscript/Flash and to introduce you to game development through implementation of a classic game.

Project Description and Requirements

You should implement Pong in Actionscript with the functionality described below. Pong is a 2D table-tennis game in which two players defend opposing sides of a rectangular field, trying to score points by getting a ball past the other player. Your version should have local multiplayer, such that two people can play on the same keyboard.

One player defends the left, the other defends the right. Each player controls a rectangular paddle, which may be moved up or down (but not side-to-side). A rectangular ball moves around the field, bouncing off the paddles and the top/bottom walls of the field. If the ball reaches the left/right end of the field, the opposing player gains a point.

When the game starts, it should show a menu screen showing clearly what the input keys are and which key to press to start the game.

At the beginning of each point, the ball should start in the middle and can start moving in any direction at a reasonable speed. If the ball hits a wall, then it should bounce off the wall with the same speed at an angle that is the same as the angle of incidence. You have a choice for how the ball reflects from a paddle: it is fine if the ball simply bounces off the paddle at the same speed as though it were a wall. However, the original creators of Pong did something more complicated which you are free to try: the speed at which the paddle is moving and the relative location along the length of the paddle where the ball hits affect both the angle of reflection and the speed of the reflected ball. You may experiment if you wish, but should not feel obligated to.

The game must have sound effects when the game starts, a ball hits a paddle or wall, or a point is scored. These should all be distinct sounds.

The current score should be clearly displayed. After one player has scored 5 points, the game should go to another screen that shows the winner and the final score. From here the users should have the option of restarting the game.


Grading is based on the number of requirements that are successfully implemented. We are not concerned with the exact details of your implementation as long as the game is functional and playable.

Collaboration Policy

The point of this assignment is to familiarize you with Flash coding, so no collaboration is allowed for this project. You may not discuss any assignment specifics, and every line of code you write should be your own. However, you may discuss general Actionscript 3 syntax or Flixel behavior.

Turning it in

You should submit the compiled SWF file as assignment2prog.swf via CMS.