CS 395-22 Homework Assignments
- All homework assignments will be posted here.
- Assignments must be turned in by noon on the day that they are due.
- All assignments must be turned in by electronic mail. No paper
copies will be accepted. Short answers should be in the body of the
email message, products you produce (source code, storyboards,
presentations) should be provided as attachments. If what you are
turning in is much larger than one megabyte, please consider providing a URL
to it instead. If you do provide a URL, please be sure that the
hyperlink actually works and the contents will remain available for the
duration of the course.
- Plagiarism and other forms of intellectual dishonesty are gravely serious
matters, and will be treated accordingly.
- Unless teaming is explicitly mentioned, homework assignments are to be
completed individually. You may consult with other students regarding
the general outlines of solutions and approaches, but you must do your own
work. Turning in someone else's work as your own will be treated as a
form of intellectual dishonesty.
Homework 1: Assigned 4/4/02, due 4/11/02
-
Add yourself to the c95-gd@cs.nwu.edu list. This is a majordomo list,
which can be accessed by sending email to majordomo@cs.nwu.edu
- Please tell us the following things about yourself
- What is your favorite computer game, and why?
- What is your least favorite computer game, and why?
- What would you like to learn in this class?
- Choose one of the works of interactive fiction from the 2001
Interactive Fiction competition and play it until you have either
finished the game or two hours are up. (The contest rules say that
ratings must be based on the first two hours of gameplay, so there is a
tendency to keep entries short. We have mirrored all of the entries here,
with interpreters for Windows and Macs.
If you prefer Linux, Pocket PC's, or Palm Pilots, you may prefer to stick
with Inform/Infocom style games and download a version of Frotz.)
Describe what you liked and didn't like about the game, and how you would do
it differently.
Homework 2: Assigned 4/11/02, due 4/18/02
The purpose of this assignment is to start writing an interactive fiction
short story, which you will finish in the next assignment and will be tested by
others in the assignment after that. Like the SPAG contest entries, your
story should be playable in under two hours by other students in the
class. Here is what we want you to turn in at this point:
- Your story bible. It must include a description of the setting and
any associated lore, the plot structure, a map, and a list of objects and
NPC's that you expect to need. Word documents or self-contained zip
archive with HTML and all necessary graphics recommended.
- Inform source code implementing at least half of the locations, objects,
and NPCs that your story needs. The implementations may be incomplete
at this stage, but the code must compile and execute in Frotz.
- The .Z5 file produced by the Inform compiler based on your Inform source
code.
We expect of course that your story bible and code will evolve as you
finish the game, so what you turn in next Thursday is a snapshot, not the final
version. But as with any complex project, setting up and hitting
intermediate milestones is one of the secrets of success. This is one of
the kinds of milestones used in game development.
Homework 3: Assigned 4/23/02, due 4/30/02
The purpose of this assignment is to finish your interactive fiction short
story. Please remember that your story will be played by your classmates,
and consequently it has to be turned in on-time and it has to work. What
you will need to turn in is:
1. A Z-code executable (.z5 or similar, playable via Frotz)
2. The Inform source code for your game that was used to create the executable.
3. A walkthrough of your game. This should include at least a/the
"winning" path, but can include others at your discretion.
(Hint: If you use the transcript facility of Frotz, you can easily create a
transcript of the interaction that can edited down to produce a
walk-through. You don't want the game's responses to show in the
walk-through, since that would be even more of a spoiler.)
Turn in your work in the form of a Zip archive, where the three files above
are stored in a subdirectory based on your first initial and last name.
For instance, the directory for something I turned in would be k_forbus.
This will help us keep track of your work more easily.
Homework 4: Assigned 4/30/02, due 5/9/02
This assignment has two parts.
Part 1
You will be assigned two works of interactive fiction written by your
classmates. Your job is to play them and, based on your experience, review
them. The rules are the same as the Interactive Fiction Contest -- you
only have to play it for at most two hours. (If you want to keep playing
after two hours that's fine, but please base your review on the first two hours
of play, for fairness.)
What your reviews should look like: Your reviews must have three
parts:
1. The title and author of the story the review is about.
2. Text of the review. This must contain three parts, each between one
and three paragraphs:
- Synopsis: A summary of the story
- Great features: Things you really liked about the story.
- Areas for improvement: Things that could stand improvement.
3. Ratings. The scale here ranges from one to five stars (if it was
good) and from one to five onions (if it was bad). You must rate the games
along the following dimensions:
- Plot
- Atmosphere
- Interestingness of puzzles
- Complexity of puzzles
- NPC's
- Overall rating
Please turn in your reviews as a Microsoft Word document.
Part 2
While you are enjoying each other's work, it is time to start pinning down
your term project. At this point we want you to:
- Form a team, or decide to go it alone. We recommend teams of two or
three people.
- Plan your term project in detail.
Please remember that you will be showing off your creation at the Game Design
Course Party, June 7st, 4pm -- 9pm, instead of a final exam. The CS
department will be invited, so it should be great fun. But, given this
hard "ship date", you'll need to plan more carefully than you may be
used to. That is what this part of the homework assignment is about.
Good planning is an important ingredient in any successful project.
Given the short timeframe you are working in and the other constraints on your
time, creating a workable plan is even more important. Consequently, what
we want from you (i.e., each team) this week are the following things:
A Prospectus of somewhere between three and ten pages, describing your
proposed project. You need to state who will be involved, what the project
is, why it is interesting, what you will do, and what you will learn from it.
Please turn in this prospectus as a self-contained document, emailed as usual.
A Gantt chart for your project. A Gantt chart identifies the
tasks necessary to complete a project and the relationships that hold between
them. To learn how to lay out a Gantt chart, you will use Microsoft
Project, which is installed in the CS Lab. The tutorial material it
contains provides all the information you need about Gantt charts. Your
Gantt chart needs to include the following information:
- For each task, please use the Notes field to provide us with additional
information about the task.
- There are two milestones that you need to meet:
- You will be giving an in-class progress presentation, complete with
PowerPoint slides and (with luck) a demo, during the week of May 21st.
- You will need to have the software ready for play at the Game Design
Course Party on June 7th, and hand in the report describing what you did
and what you learned no later than the following Monday (June 10th).
Please turn in the .mpp
file you create with Project.
Homework 5: Assigned 5/9/02, due 5/16/02
As we discussed in class today, AI is a make-or-break issue in creating
enjoyable strategy games. In this assignment, you are going to modify the
strategy AI in Age of Kings to produce two new computer opponents with
distinctive personalities:
- Fang will be hyper-aggressive, the pit-bull of Age of Kings
AI's. Attacking in the Dark Age would be a nice touch, but tenacity
and sheer viciousness is also important, so the economy cannot be totally
neglected.
- Peacenik will rely almost entirely on the power of religion.
That is, the only mobile units that Peacenik can build are villagers and
monks. No watchtowers allowed either. The idea is that this
civilization will not sully itself with fighting. (The folks doing the
shooting when the town center defends itself are hired from other less
enlightened civilizations.) If monks convert a solider, who then
chooses to use the skills of his prior life in the service of Truth and
Light, then clearly it was meant to be.
In producing these AIs, you will not be starting from scratch. Your
goal is to start with the standard Age of Kings AI, analyze how they work, and
based on that analysis make the minimal necessary changes to implement these
personalities. To help you get you started, we have created sets of files
for Fang and Peacenik
by copying the Age of Kings AI files and changing the file names
appropriately. Since you are starting with Ensemble Studio's work, please
make sure you cite them appropriately in the comments of your code.
You will need to turn in:
- Zip archives for your Fang and Peacenik AIs. As usual, please
include your name in the file name for the zip archive, and archive the
files to a subdirectory based on your last name so that we can easily unpack
them in a common place. Please note all changes in the files via
comments in the files themselves.
- A Microsoft Word document that describes your designs for Fang and
Peacenik. You must explain all modifications you made and why,
justifying them in terms of your analysis of how the AI works and the
mechanics of the game.
Some hints:
- The class web site lists some resources for Age of Kings, but there are
many others available on the web.
- It is fine to share your findings in understanding how the game AI works
with other students. In fact, we encourage you to discuss what you are
learning on the newsgroup. However, you are not to share code: All
code that is part of your AI that is not from the original AI must be
written individually.
- We strongly recommend that you carefully read and analyze how the AI works
before starting into modifications. It is true that random tweaking
(i.e., evolution) can create intelligent beings, but you have a week, not a
million years. A few hours of analysis can save weeks of hacking.
- For testing it is handy to have a scenario where you can just start it up
and watch closely what the AIs are doing, rather than playing yourself. We
have built a test scenario that you can use
for this purpose.
Homework 6: Assigned 5/16/02, due 5/30/02
Using the Edith editor and the Transmogrifier, create a new object for The
Sims by starting with an existing object, and significantly changing its
behaviors and advertisements. Turn in your new object, along with a description
of what your object does and why you chose to do it, what behaviors and
advertisements it has, and how you tuned it to achieve the effect you
desired.
In case you are not feeling inspired, here are some suggestions for objects:
- Nanobot Clearners: like the roaches and flies, these critters swarm over
your house. But they clean your house, including digesting trash on the
floor. While expensive to purchase, they require no maintenance and even
bring in a little income, because the trash they they digest is sold to the
local recycling plant.
- Fight Club Lamp: When you turn it on, all of the sims in the room become
very grouchy and aggressive, causing fights to break out, until you turn it
off again.
- Automatic Fire Extinguisher: This device when left in a room will
automatically extinguish any fire that breaks out in it. (You can see
from class today why this would be a very useful object.)
Back to CS C95-GD homepage
Last edited 5/16/02, by KDF.
Please send suggestions to forbus@northwestern.edu.