This assignment is to be completed with
a partner of your choosing.
For this assignment, you will implement a video game that you
choose.
Before you start, you must submit a proposal and have it
accepted by the course staff; whoever accepts your proposal
becomes your mentor for the rest of this project.
For full credit, you need to have your final proposal accepted
by Tuesday, June 4th at 11:59 PM, which means you should submit
early and often. In order to submit more than once, you will need
timely feedback. Our turnaround time will depend on when you
submit:
Your proposal must start with a game title and all team
members’ names and email addresses. Then must contain two
sections:
Every game must also meet three
non-functional requirements:
Submit your proposal on Canvas for approval. Once your
proposal is approved, you may, at your option, expand it
into a design document as in Homework 6. This is highly
recommended, but it won’t affect your grade directly. (It may
affect your grade indirectly by improving the design of your final
program.) If you choose to write a design document, you should
email it directly to your mentor for feedback.
Here is a sample proposal based on your Homework 6
(so obviously, you can’t do this one again):
Here is a another sample proposal:
What game you choose is up to you, but if you need an idea, here
are a few:
Before submitting your design document, join a group on Canvas
along with your partner:
Do not create a group under Student Groups. It will not work
for submitting the homework.
After joining a group, submit through Assignments →
hw8 as usual.
You will likely need to revise your design document based on
feedback and resubmit before the deadline. If you do, you should
email your revision(s) directly back to whoever sends you the
feedback.
You may find use
this Piazza post helpful to search for a teammate.
Purpose
Putting together everything you have learned.
Problem
If you submit by…
you may expect a response by…
Wed., May 29 Thu., May 30
Thu., May 30 Fri., May 31
Fri., May 31 Sat., June 1
Sat., June 1 Mon., June 3
Sun., June 2 Tue., June 4
Proposal: SPACE SHOOTING GAME
John McCarthy <johnmc@lisp>
Edsger Dijkstra <ewd@algol>
Overview
========
In our game, the player will pilot a space ship defending
Mars from human invaders. The player’s space ship moves
only in the horizontal direction along the bottom of the
screen, controlled by the player. The player may also fire
missiles from the space ship. Enemy space ships appear at the
top of the screen and attempt to reach the bottom. If a
missile hits an enemy, the enemy is destroyed and the player
scores one point, but if an enemy reaches the bottom of the
screen, the player loses.
Functional Requirements
=======================
1. The user can control the movement of the space ship.
2. The user can control when missiles are released.
3. There is a limit to the number of missiles that may appear on the
screen at once.
4. New enemies appear in random positions at the top of the screen.
5. Enemies never overlap.
6. Enemies move straight downward.
7. If an enemy and a missile collide, both are removed from the world
and the score is incremented by 1.
8. If an enemy reaches the bottom of the screen, the game ends and the
player is notified of the loss.
Proposal: DOT CHOMPING GAME
Overview
========
Barbara Liskov <liskov@clu>
Guy Steele <guylsteelejr@scheme>
In our game, the player controls a large-mouthed, yellow sphere in
navigating a maze full of edible dots (a small number of large dots and
a large number of small dots). The yellow sphere is accompanied in the
maze by a number of phantoms.
The player's goal is to eat all the dots (simply by walking passed them)
without being caught by the phantoms. The phantoms' goal is to catch the
player without being eaten themselves.
When the sphere eats a small dot this increases the player's score.
Ordinarily, if a phantom catches the sphere then the player loses. When
the sphere eats a large dot, however, then the tables are temporarily
turned: The phantoms move away from rather than toward the sphere, and
the sphere may eat any phantoms that it catches.
Functional Requirements
=======================
1. The user can control the movement of the sphere.
2. The sphere and phantoms stay within the walls of the maze and cannot
cross them.
3. When the sphere passes a small dot, the dot goes away and the score
increments.
4. When the sphere passes a large dot, the dot goes away and the game
enters “big-dot mode,” which is indicated visually.
5. The phantoms move toward the sphere when the game is not in big-dot
mode, and away when it is in big-dot mode.
6. If the sphere meets a phantom while not in big-dot mode, the game
stops and losing is indicated.
7. If the sphere meets a phantom while in big-dot mode, the phantom is
eaten and disappears.
8. If all the dots are eaten, the game stops and winning is indicated.
Turn In