CS679 Home Page
This page had the announcements for the Spring, 2007 offering of CS679, Computer Game Technologies. If you're looking for Basic Info, look on that page.
I want to thank everyone for the effort they put into the class. And even though I haven't read them yet, thanks for doing the surveys - they really will help with planning the class in the future.
I plan on writing my post-mortem after I've had a chance to read through the surveys. (after my travels.)
To determine the final grades, we used the formula that has been there since the beginning of class. I can send you the details (the exact weighting of each assignment etc.) if you're curious - but not until June since I will be traveling.
Alternative to Homework
If rather than doing a last homework, you'd prefer to help me out by filling in this survey Main.THW-Alternate please do so. Send it to Rachel as if it was a homework. She'll give it to me after we've given out grades. In fact, if you'd prefer to be anonymous, tell her, and she'll strip your name off before forwarding it to me.
We can accept this as a replacement for a homework until 5pm Monday 5/14.
Evals and Demo Scheduling
I would like to do both of these on Tuesday.
This afternoon, everyone in class should have gotten email from me about their project grade, their shader grade, and their final demo.
If you did not get all three of these, let me know and I'll resend.
Technical Demos Changed
Given the timing, the requirements for the Technical Demos/Assignments have been changed on the TechAssigns page.
Basically, since everyone put so much effort into the Shader Assignment, everyone got a late start on the demos. Given how little time there is left, we need to scale back our expectations.
The big change: Each person will need to create a demo that explores one technical topic (you don't need to do two assignments). Teams of two will still pick two technical topics.
I will email everyone today with their demo assignment. For those of you who proposed topics, you will be assigned something related to this topic. Some of you gave good specific ideas, but others only gave a single sentence, which will require me to fill in the details for you (or assign you to fill in the details).
For those of you who didn't turn in a project topic, I will pick it for you.
OpenGL and Shaders
If you want to write your own opengl program to use shaders, you will find that the opengl library that is part of visual studio doesn't have what you need. To get access to these newer OpenGL features you need an extension manager.
See http://www.cs.wisc.edu/graphics/Courses/559-f2006/Main/GlExtensions for more info.
The Main.TechnicalHomeworks page is now in place, with links to the homeworks themselves. There are homework questions for several of the lectures, with more to come soon.
If you are interesting in project/demo/assignment ideas from topics that aren't yet posted, let me know. Feel free to propose something. Coming up with project ideas should be a dialog, but because of the time frame and number of people in class, we will need to be informal about process.
If you want Rachel and I to think up a project for you, let us know.
Assignments for the End of Class
There is a page describing the assignments/project for the last part of the semester.
On the page Main.TechAssigns, you'll see descriptions of the homeworks, assignments, and projects that you will have to do. The actual details of each homework/assignment project are not there yet (they will be at Main.TechnicalHomeworks soon).
The Shader Assignment is here. I'll also attach it to the appropriate other places.
In the next few days, the rest of the web site will be updated with the new plan for the semester.
Project Post-Mortems, Final Handins, ...
Here are some concrete deadlines for the final project handins. Everything (except for the anonymous survey) was due last month, but we said we'd be lenient.
We will accept late project parts until 1pm, on Monday April 16th. After that, we will not accept anything.
- If you didn't turn in a component of the public/group handin of the project already, it is late. Anything turned in after noon on Monday, April 9th will be penalized even more severely.
- We'll give a "grace period" for the private post-mortems. Providing we get them before class on Tuesday, April 10th, we will not consider them late. Ones handed in later will be penalized.
- Please bring the anonymous survey to class on Thursday, April 12 (or give it to the professor or TA before then).
Anonymous Feedback Form
The form for giving your anonymous feedback on the project is pdf:GameProjectEvaluation.pdf
Do not do this form until after you've completed everything else for the final handin. The form is not due until April 12th.
Classes on Tuesday the 27th on Thursday the 29th
On Tuesday, March 27th, class will meet in the B240 lab for playtesting. Your schedule should be mailed to you already.
I've decided to skip the presentations. So on Thursday, March 29th, there really won't be a class. We'll meet in B240 to play the games in a much less formal setting. Informally, people can show off their games, or play other people's games, or do some work with their group, or whatever.
There's now a page on the playtesting as well as what happens afterwards.
A Note on Distance Transforms
It turns out that the fast Euclidean Distance Transform algorithm I described in class is not exact. (thanks to Tim for pointing this out). Its very close, but there are cases where it can be off by a small amount (a fraction of a pixel) from the actual shortest distances. For almost all applications this is good enough. The chamfer and Manhattan distance algorithms do exactly compute their metrics.
There is a nice survey of these algorithms at http://www.tele.ucl.ac.be/PEOPLE/OC/these/node11.html.
This will teach me about talking about algorithms that I haven't read about in over a decade.
OpenAL Audio Libraries
I just got this from the CSL:
The OpenAL SDK should be installed on all the storm lab machines. You are correct that it seems to just be libs, includes, etc. however it insists on updating the InstallShield installer, which is why it required admin privileges to install...
BTW, it looks like the OpenAL runtime failed to install. Not sure if you need that anyway with the SDK installed.
Please try it out and let us know if there are issues.
Research / Project Opportunities
If you're interested in project opportunities in graphics and user interfaces, contact the professor.
General Graphics Performance Readings
Are all described here.
Planning Meeting Signups
a Planning Meeting Signups sheet has been posted. you should be able to edit it to reserve a spot.
Looking ahead in class
You might have noticed that there isn't too much of a plan in place for the upcoming lectures.
For this week, there are no readings assigned so that you can have more time to focus on your projects.
I'd like to say that the lack of planning was an explicit decision to provide you with more opportunity to focus on the project, but really its that I've fallen behind in class planning because I was sick.
Visual Studio 2005 in CS
Visual Studio 2005 should (famous last words) be available on the B240 machines. If it isn't, we should be able to make it available.
As you noticed, the professor is out sick. This is the first time in 8 years of teaching that I've missed a lecture because of being sick. I am going back to the doctor tomorrow. I'm not sure if I'll be in on Thursday (too bad, since I want to see Kurt's guest lecture).
I hope to get feedback to everyone about project ideas and will work with Rachel to get the teams assigned.
List of Game Designs
GameDesigns lists all of the game designs submitted (except for my sample one).
Remember each design pair must critique all of the games and get the written critiques to Rachel by 5pm Wednesday.
Game Design Critiques
A sample game design critique has been posted. Please read the critiques section on the game milestones page. Note that you will need to send three emails to the TA and/or instructor, as described in the aforementioned section.
Visual Studio 2005
As those of you who took 559 definitely know (and those of you who haven't learned the hard way), the CSL has been cautious in rolling out VS2005.
I am working with them to make Visual Studio 2005 available to you in the B240 machines. However, this will take at least 2 weeks and might take even longer.
In the meantime: assignments and projects in this class require you to run your program in B240. You can build it with VS2005 elsewhere, and just provide the executables.
We have only gotten 2 requests for partners for the design phase of the project (the due date for requests was noon today). (jason, yuri, ben and jake have picked their partners)
If you haven't expressed a preference, we assume you don't have one. However, if you send email to Rachel ASAP, your request might be honored.
In an attempt to improve the usability of the website, I have made links on the caldenar to the readings.
Project settings on CSL machines
Those of you who took 559 last semester (2006), might tell Visual Studio where to find libraries (like FlTk) by changing your Visual Studio settings.
A better way to do it is to set the include/library directories within the project themselves.
The downside: you need to do this for every project.
Upsides: if you lose your VS settings, you don't lose the project settings, and your project will work if someone else tries to compile it without your VS settings.
If you need help figuring this out, you can ask just about anyone who took 559 before 2006 (including Rachel). Or ask me.
thanks to Andy for reminding me about this.
Assignment 1 Clarification
whoops - there was a typo (fixed) in the spec. here's the updated version:
One program to show an animated bouncing ball in (at least) 4 ways: simple rigid bouncing, "animated", rigid bouncing with a mind of its own, "animated" bouncing with a mind of its own (typo fixed 2/18)
"mind of its own" means that it picks a place to jump to and goes there. (the more basic bouncing just moves at a steady, or at least predictable, rate)
"rigid" means no squash and stretch and other animation principles (or just physical squash and stretch)
"animated" means using animation principles to convey its motion better
Program 1 Demos
As announced in class, program 1 demos will be from noon-2 in B240 on Tuesday the 20th. If you didn't sign up in class, the signup sheet should be outside of 1345 (or 1347) - the graphics lab.
It is preferable for both members of the team to be there, but its OK if only one person can make it. If there are no time slots that work for you, try to trade with someone. If that fails, let me know and we'll find another time.
The Game Project
The details of the game project have been posted! Let us know if you have any questions or comments.
Note: the first "milestone" is February 19th!
How you will be graded:
Game Project - 30%
This includes all phases, including your reviews of other games and your critiques of other designs.
Technical Assignments - 40%
This includes the initial programming assignment, as well as a set of assignments/mini-projects in the second half of the course.
Participation and Class Material - 30%
This includes participating in class (which means attending class and
contributing to it), keeping a good reading/class summary log, other "written" assignments (that are not part of projects), etc. Much of this is a subjective evaluation.
Note: if you are uncomfortable contributing to class verbally, you can still make contributions electronically. You can email questions about the readings that you'd like to have discussed in class, write ideas you've had or summaries of classes in your wiki page, ...
Note: there are no exams planned, so that it is your responsibility to demonstrate to the instructor and TA that you are learning the material through participation in class discussion and exercises, reading summaries, and other writings on your class Wiki.
The Calendar has been updated to reflect the class project schedule, as well as the fact that we have schedule slipped.
Tomorrow (2/12) we'll talk about UI design, and basically stay on "design" topics between now and early March.
Some thoughts on Assignment 1
A pair of students asked me a question, and the response is (I think) relevant to everyone. This is an excerpt:
a big part of training animators is to teach them to do the special cases WELL since it forces you to think through the issues. if you can make a bouncing ball expressive, then you won't have too much trouble with a "richer" character.
simply doing a gooey physics simulation won't get the job done - you'll get some squash and stretch, but it won't let you exaggerate the anticipation and follow through (unless you also simulate little brains that can both see what is going to happen as well as react to what did happen and signal what they want to happen. (see part 4)
so, doing physics might comply with the (some of the) letter of the law, but the spirit is to try to do the animator's exercise (except with a computer) to learn how you can make the simple thing be really expressive.
doing a squishy physics simulation is something we'll do later in the course, BTW
Cell Processor Student Competition
IBM is having a student competition about programming the Cell processor (the thing in a Playstation 3). I know little about it, but the web page is here.
As I had mentioned in class, and as is described on the class policies page, everyone is required to keep a log of what they've read.
I would like to thank the people who have been doing it. It is useful to me to see that people are doing the readings and getting the main points out of them.
Some people have been creating fabulously detailed summaries of the papers (here are some that are particularly exemplary 1
2 or 3). Thank you. These summaries will be a great resource for everyone!
But, you don't have to write so much (unless you want to) - a short summary of the key things is sufficient. Enough that we can tell that you have done the reading and got the main points. Enough so that I don't need to find some other way to evaluate how much you've done.
I would appreciate if everyone could "catch up" on writing their summaries. Also, if you could make it easy for us to find your summaries, that would be really great (see 1 or 2)
Programming Assignment 1
Programming Assignment 1 is described here . Note: you really can't get started until we assign you a project partner (but you need to tell us your preference soon). However, we will talk about the assignment in class on Tuesday, so please look things over beforehand.
Also, part of this assignment will be to use source control. We have some rough notes on that here, and we'll discuss it more in class Tuesday as well.
Digital Library Links
Note that links to readings from the ACM Digital Library are only accessible on campus or with an ACM membership number.
This web is starting to be populated!
I am finally getting material onto the web. You should definitely look at the Main.Syllabus and the Readings.Readings pages. The Main.Policies page even has some stuff on it as well!
The class web is definitely a work in progress. But hopefully, there's enough here to get things moving along.
First Assignments Posted!
The first two class assignments have been posted. Assignment 1 (Due Jan 25) and Assignment 2 (Due Jan 30).