Thursday, December 30, 2010

The DigiPlague

UPDATED (Jan. 2, 2011): Made some corrections to the description of the DigiPlague.  Added tips on how to fight the DigiPlague.

I can't sleep.  It's not that I'm too awake or don't really want to, it's that my head is threatening to explode.  I seem to have come down with the DigiPlague.

What is the DigiPlague?
The DigiPlague is a five to seven day disease. It's a sneaky illness disguised as a cold, but suddenly becomes apparent to what it is.  It's this germ that somehow manages to survive at DigiPen, mutating with each new freshman class.  It survives from person to person, always passing on before it dies completely.  It is a close friend of the DigiFunk.  The best way to describe the DigiPlague is to break it down into it's five days (the seven day version extends largely days 3 and 4).

Day 1
The DigiPlague begins as the sniffles.  It seems to be just some sniffling and sneezing, but it comes on rapidly.  After a few hours, you hurt from sneezing so much and physically ache.  You are completely exhausted, but you assume it's just a cold.

Day 2
You feel better in the morning, leading you to believe it was just a simple cold or something that stirred up your allergies, but that's how the DigiPlague tricks you.  A hot shower in the morning will make you feel close to 100% well, but as the day goes on, you spiral into illness.  You sniffle and sneeze and end up physically exhausted again.  At this point, you may begin to suspect just what it is you have.

Day 3
This is the day that you feel like death.  You wake up dying, and though a hot shower can make you feel better, you know it's not going to stay that way.  This is the day to just stay in bed with OJ and tissues.  Get some soup, bunker down, and just ride it out.  You will feel like crap today.

Day 4
You begin the day feeling like crap, much like the previous day.  However, you can sometimes blow your nose and get some of the junk blocking your sinuses out.  As the day goes on, you begin to feel better, but to what degree varies from plague to plague.  The key note here is that this is when you start to get better.

Day 5
You return to the snifflies and feeling like you have a cold.  You aren't all the way back yet, but you're close.  Make sure to get plenty of rest so you don't relapse.  After today, you should be back to your old self.

How do I avoid the DigiPlague?
There are a few tricks to avoiding the DigiPlague, but it's nothing special.  Eat you vegetables, get your vitamins (especially C), and get enough sleep.  Those are standard.  Also, hygiene is important.  Wash your hands often, shower daily, yadda yadda.

The real trick to avoiding the DigiPlague is to avoid the DigiPlagued.  It's a zombie-apocalypse style rule that holds a great amount of merit here.  If someone you know has the DigiPlague, avoid them.  Encourage them to stay home and get well.  If you see someone sneeze on a keyboard, avoid that workstation.  It's all common sense really, but when there's too much to do and the DigiPlague takes hold, people forget about these things.  If you want to do your part in ending the DigiPlague forever, stay home when you're sick and encourage others to do the same.

How can I fight the DigiPlague?
First thing you'll need is some tissues.  I strongly recommend the type with lotion so you don't blow your nose raw.  Stock up; I've gone through about three boxes with this most recent DigiPlague.

Secondly, stay home where it's warm and get comfy.  Going out is extra strain you don't need to put on your body.  Only go out when necessary, such as to stock up on tissues and orange juice.  I strongly recommend taking plenty of hot showers.  The steam from shower will help break up all the junk in your sinuses, so you'll feel a fair amount better afterward.  However, don't let that lull you into thinking you're well enough to go out.

If you want to, you can try taking decongestants and the like.  They might help you more than they help me - theoretically, I may be allergic to them, or they may set off my asthma.  Either way, I've never really taken them before this most recent plague, and they aren't doing much.

Eat hot meals, preferably soup type things and comfort foods.  You can't beat comfort foods when you're sick.  I proclaim spicy foods a miracle cure for sinus congestion, but even they don't seem capable of standing up to the DigiPlague.  Eat stuff that will be kind to your throat.  It'll have it's own battle to go through as the plague runs its course.

In the end, there is no cure for the DigiPlague.  Once it starts, you just have to wait it out.  If you get it, just be sure to take care of yourself and stay home as much as you can.  After you're better, clean your bedding, get a new toothbrush, purge the DigiPlague from your home.  Try to keep from spreading it - Only you can prevent the DigiPlague.

Tuesday, December 28, 2010

This Week In DigiPen: Epilogue

Well, as you may have noticed, that didn't work out quite as planned.  DigiPen demands much time, nearly all of it during certain weeks of the semester (week 7, week 8, and week 14 in particular).  This semester was particularly demanding, though I'm not entirely sure why.

It's very different not having a game team.  Having a team means you have people you can rely on - and that you have someone relying on you.  That's a driving factor - it keeps you rolling in good times and in bad.  It gives you someone to talk to about the issues you're having in other classes.  You have team meetings with Check-In for your personal soapbox.  It makes you aware of problems you have and get them off your chest.

A quick aside about Check-In and what it is.  If you know what it is, feel free to skip the italics.  Check-In is a protocol for team meetings where you go around to each person and they say how they feel in a few simple words: "I feel..." followed by glad, mad, sad, or afraid, then what is triggering that feeling (i.e. I feel sad that I didn't come through with my weekly DigiPen updates for my blog).  After talking about their feelings, the person then states if they are in or out of the meeting - if they're not going to be productive, they may as well take the time off to relax or get caught up on some other work.  Finally, the team responds to that member's decision ("Welcome" for in, "Thank you" for out).  If you're out, you take your leave then.

Overall, I think my This Week In DigiPen project would have worked better if I had used a format similar to Week 7 and Week 8.  It was quick, simple, and didn't require much time or effort.  It was a sort of check in that got the point across, but, by the time I discovered this format, I had burned out.

So, let's move on to some promises to keep.

CS300 - Points are not Vectors
Way back when, I promised that I would show off my first shiny graphics assignment, which I thought I had completed to the fullest.  Turns out that I had a lingering bug that stuck through my next two assignments.  It slipped by in my first assignment (lighting), but it became obvious in the bump mapping assignment that my light was following my camera in position.  However, the direction was fully correct.

The eye looks at the origin with a spot light above pointing at the origin as well.

The eye moves past the origin, and the light follows incorrectly, shining in the same direction as before.

The eye turns around to face the origin, and the light points in the correct direction.
I tried for the longest time to figure this out.  I showed it to person after person with no luck.  Finally, one of my fellow students realized that I had made a very simple mistake.  In 3D graphics, we use 4D matrices to transform points and vectors because math is a magical thing.  It allows us to distinguish between points (translation dependent) and vectors (translation independent).  Had I thought of this simple distinction between the two, the answer would have been obvious.

For example, let's take the origin.  As a 3D point, that would be at (0, 0, 0).  In 4D, we add a 1 at the end of that, so (0, 0, 0, 1).  This extra 1 allows us to translate that point wherever it needs to go.  Let's say we have another point P at (1, 2, 3, 1), and we want to draw a vector V from the origin to our point P.  That's the difference between P and the origin, so V = P - O = (1 - 0, 2 - 0, 3 - 0, 1 - 1) = (1, 2, 3, 0).  This 0 at the end means we ignore any translation that may be applied to the vector, thus it is translation independent.

Now then, our light has some translation away from the camera, right?  At least, that's what we want.  So, if our light is moving with the camera, that means it's not translating away from the camera.  If we don't have a translation, then our light is translation independent.  If the light is translation independent, then it's position must be a vector, not a point.  That's a problem.  In fact, that was my problem.  So, what's the difference between a point and a vector in 4D?  That last element:  (x, y, z, 1) is a translatable point, (x, y, z, 0) is a translation independent vector.

So, now that we've got that out of the way, let's see some shiny graphics.

Some simple Phong lighting.

Now with normal mapping generated from a height map (texture turned off for emphasis).

Now with shadows!  Note the cone under the torus' shadow for maximum fanciness.

Reflection and refraction using cube mapping.

Alright, that's enough of graphics.  Now on to what DigiPen is really about - the games.  Blankie is launched, so you may as well go play it.  It hit the scope I wanted it to (a single level that's a bit long), and overall I'm very happy with it.

At this point, I'm rambling, so I'm just gonna cut it off here - goodbye semester.  Onward to my final semester!