Csse220 Bomberman Programming Assignment - Team Project
Csse220 Bomberman Programming Assignment - Team Project
You will write a game that is patterned off the 1980’s BomberMan game. You can find a description of
the game, and much more information here:
http://strategywiki.org/wiki/Bomberman
http://www.gamesdatabase.org/Media/SYSTEM/Nintendo_NES/manual/Formated/Bomberman_-
_1987_-_Hudson_Soft.pdf
You can also find an online playable version of the game here:
http://game-oldies.com/play-online/bomberman-nintendo-nes#
Table of Contents
Essential features of your program ........................................................................................ 3
Nice features to add .......................................................................................................................3
Additional features that you might add include ................................................................................... 4
Reading and research may occupy a very significant portion of the time your team spends on this
project.
Each team member should check out the ArcadeGameProject from the team’s repository, and all
subsequent work should be placed in your project folder and committed back to the repository.
Don't forget to minimize conflicts in source control by always updating before editing and before
committing.
Parallel work
Between now and the end of the term, this project will occupy a lot of your programming time. But
there will still be a few daily programming assignments along the way.
Development cycles
You will do this program in several short development cycles, most lasting three or four days; the last
one only one day. Before the beginning of each cycle, you will list some features that describe what
functionality should be present at the end of that cycle.
Milestones
Key points:
1. To get credit for the milestones, every student should have submitted code (we estimate at least 50
lines per person per milestone)
2. The code checked into your source control must work (i.e. should compile and run directly from
source control with no special tricks)
1. Brainstorm possible classes. (We would guess that you will come up with about 8-12 classes but more
are certainly possible)
2. Assign responsibilities to classes; determine how classes need to collaborate in order to carry out
those responsibilities, and what responsibilities those collaborating classes need to have. Will
inheritance or interfaces help you to organize the responsibilities? Keep iterating this until all of the
program's responsibilities have been assigned to classes.
3. Collect the information into a UML class diagram. Your diagram MUST be computer generated – use
UMLet.
Save your diagram as a PDF or JPG file, so it can be viewed without UMLet. Submit both your UMLLet
data file and a PDF/JPG version in eclipse folder you commit.
Begin implementing, commenting, and testing your code, cycle by cycle. We’ve included suggestions for
what an appropriate amount of functionality for each cycle would be – but feel free to get ahead of us
(especially if you’ve got a particularly cool extra feature planned). If you want to do features in a
different order – get permission from your TA or professor.
Cycle 1: Levels
Minimum functionality:
Cycle 2: Bombs
Minimum functionality:
• Bombs exploding
• All bomb results (bomb vs. brick, bomb vs. monster, bomb vs. concrete, bomb vs. player, bomb
vs. bomb)
• One kind of monster
Cycle 3: More
Minimum functionality:
Cycle 4: Extras!
Minimum functionality:
You can just modify the document named “Cycle N Status Report.txt”, where N is the cycle number just
completed, in the Planning folder. Commit the file to your repository.
You should be using good process as you go. Thus, for each cycle, your code must run, have good style
and complete documentation. Be aware your design and style will be evaluate at the end.
Teamwork and grading
This assignment will be done by two-to-four-person teams. Our intention is not that you "divide and
conquer" so much as that you have someone to talk with as you write and test this program. If you have
not already done so, read this short article on Pair Programming and discuss it with your partners:
http://en.wikipedia.org/wiki/Pair_programming. In particular, note what it says about who should be
the driver if you are a "mismatched pair."
All code that you submit for this project should be understood by all team members. It is your
responsibility to (a) Not submit anything without first discussing it with your partners, and (b) not let
something your partners write go "over your head" without making a strong effort to understand it,
including having your partners explain it to you of course.
This project should give you practice with the "short cycles and feature list" approach to software design
and implementation.
It is possible that different team members will receive different scores for the project, if there is ample
evidence that one person did not fully participate in the learning and the doing (or that one person
"hijacked" the project by insisting on doing most of it without much help or understanding from the rest
of the team), we reserve the right to give different grades. A peer evaluation survey at the end of the
project will help us determine this. If the survey or our observations indicate that you do not
understand, we may ask you to explain parts of your project code to us.
We will expect your evaluation of your team members at the end of the project to be detailed and
specific. You should be writing it as you go through the project. Make notes of both positive things and
suggestions for improvement. Then when it is time to submit your evaluation, you can mostly just paste
what you have written into the Moodle survey.
Commit your code often. And don’t forget to update your code before editing and before committing.
The chances of SVN conflicts grow exponentially with the number of team members, but they decrease
with the number of lines of code in the project. The net result is that you’ll have more trouble at the
beginning of a project. For this reason it makes a lot of sense to program as a group or to carefully work
on completely different classes in the beginning.
Presentation
Your team will give a 10 minute presentation on your project, which may be open to the Rose-Hulman
community. Your goals for this presentation are:
Keep in mind that all of us have implemented the same basic project, so you won’t have to spend much
time describing the basics of the project.
Grade components
15 points Initial UML diagram
30 each Code functionality for Cycles 1, 2, and 3
140 points Final program functionality and correctness
50 points Style and efficiency
25 points In-class presentation
25 points Thoughtful team evaluation and reflection on the project (individual)
?? Additional features (extra credit)
Disclaimer: This document may be revised in response to student questions/corrections. The latest
version will be considered the authoritative one. If any changes significantly modify or clarify the project
requirements, we will notify all students by email, to make sure that you read the new version of this
document.