Habib Loew's Prototypes

Focused, sometimes fun & often broken. 


About the Prototypes

These are prototypes from my various projects, organized by project and creation date. Many of the prototypes have no instructions with them. This is entirely intentional. In those cases the prototype is (at least partially) intended to discover how users intuit the operation of the prototype, which really is, in my opinion, the best way to test a control scheme in its early stages.

These prototypes are all for Microsoft Windows and have various requirements. You may need, for example, to install the .NET Framework 2.0.

Daredevil Zombie Hunter

 First Playable                (12/08/06)                                            download

   This is the First Playable version of a game called Daredevil Zombie Hunter which was intended to be my senior game probject at DigiPen.  At the semester break we lost our graphics programmer (he got a job) and decided to re-evaluate the DDZH project.  In the end we decided that with the reduced man power we couldn't make the game we wanted in the time frame we needed to, so we ended up scrapping the DDZH idea and using the engine to make something that we could polish a bit better.  This prototype is all that remains of the original DDZH.  There's a readme in the zip file which explains the controls and what's going on.  I was primarily responsible for core engine architecture and the Giants (including IK, etc.).

  Technologies: C++, DirectX, Lua


 Geese                            (10/03/06)                                            download

   This is an implemention of flocking rules derived by the class/instructor in CS380 at DigiPen.  The idea to use wake avoidance is due to (I believe) Dan Miya.

    Update: I added the option to flare the wakes slightly which seems to have corrected the majority of the flock organization issues. 

 Technologies: C#, .Net 2.0


 Mouse Navigation 1       (08/22/06)                                             download  

    This is a simple control test.  The dashed circle is provided as a reference point and a possible goal.  

 Technologies: C#, .Net 2.0


 Mouse Navigation 2       (08/23/06)                                             download

    A slightly more complex version of the first control test, this test includes a second body attached to the first by a tether.  The tether is a one way spring which applies forces when stretched (red) but not when compressed (green).  Use the mouse wheel to adjust the spring constant.  Again the dashed circle is provided as a reference point and possible goal.

 Technologies: C#, .Net 2.0 


 Mouse Navigation 3       (08/24/06)                                            download

    Instead of two masses tethered together we now have three joined to a center point.  Control seems to have gone from tricky to nigh impossible (too much chaos in the system).  Sizes are now mass relative in a meaningful way, and no mass is allowed to escape the screen.

 Technologies: C#, .Net 2.0 


 Smart Thrusting 1         (08/24/06)                                            download

    Two masses tethered by a one-way spring (as in  Mouse Navigation 2) only this time rather than straight thrusting towards the mouse we use "smart thrusting".  Smart thrusting tries to maximize the alignment of the post-thrust velocity with the desired heading (toward the mouse cursor).  Navigation has thus been greatly simplified, though a measure of control may have been lost.

    Update:  The mouse wheel now adjusts a value called the "correction scalar".  This value is multiplied by the course correction needed to completely correct the guy's velocity to the target heading in one frame.  Having this value below 1.0 effectively softens the course corrections.

 Technologies: C#, .Net 2.0 


 Contention 1                 (08/24/06)                                            download

    The second mass now has some intelligence will actively attempt to seek its target.  Score is kept as a means of determining effectiveness of the various methodologies.  Smart thrusting is togglable per mass, and an autoplay mode causes the AI to run both players.  Now the question is: is this any fun?

 Technologies: C#, .Net 2.0 


 Contention 2                 (08/25/06)                                            download

    Just as in Contention 1, but now there's  a fuel guage.   Guys can thrust until they're out of fuel.  At that point they cannot thrust again until their fuel level climbs above the refuel cutoff value.  All values are changable. 

 Technologies: C#, .Net 2.0 


 Contention 3                 (08/29/06)                                            download

    Just as in Contention 2, but now  the guys have a failing oxygen supply.  Pickups are tanks of oxygen.  Be the last to survive! 

  Technologies: C#, .Net 2.0 


Ivar's Adieu

 Pendulum                      (01/29/05)                                            download

    Ivar, the main character in Ivar's Adieu, lives on a circular world, so we needed to be able to support constrained motion on a circle in order to have a platformer style experience.  This prototype is all about exploring constrained motion.  It's also horribly mis-named.  It's called Pendulum because I started out with a pendulum on a stick and worked toward motion constrained on a circle with no gravity.  I never bothered to change the name at the time, so I'm leaving it as Pendulum now because that's what it's always been called.  The left mouse button applies a counter-clockwise force to the ball, the right mouse button applies a clockwise force. 

 Technologies: C++, GDI+ 


 Rope Demo                   (07/26/04)                                            download

    Once we had the idea for Ivar's Adieu the key question was "do we have any idea how to implement a rope?"  So I headed home, did a little reasearch, tried some naive approaches and ended up with this prototype.  Based on this I went back to my team and said "Guys, we can totally do the rope!"  While this turned out to be true it certainly wasn't as simple as the prototype led me to believe.  The rope itself isn't that hard to implement, but trying to implement it in a world constructed entirely of mass-spring systems... let's just say that I learned not to couple wildly different harmonic osciallators, and to respect the phrase "stiff differential equations".

 Technologies: C++, Borland Builder


 Galacto Test                 (03/27/04)                                            download

    Coming up with a decent game idea for the annual projects at DigiPen isn't easy.  Sure the experience is supposed to be about teaching us technical skills, but who wants to make a game that isn't fun?  My teams have typically gone through a pretty large number of ideas during the initial design phase, and it became clear to me early on that it's very difficult to tell which of these ideas will actually be fun without playing with them a little.  Galacto Test is one of the very first gameplay prototypes that I did for a DigiPen project.  We ended up scrapping this idea because the prototype, while interesting, isn't really any fun.  The idea here was to have players live on the outer circle and toss projectiles at each other.  Purple gravity wells in the interior of the circle influence the paths of the projectiles and were intended to make the game more interesting.  To get the fullest experience turn on the "Use Angle/Power" option under projectiles and enable the target.  It turns out you can learn how to operate the controls well enough to hit the target in just a few shots, but it's never really that much fun.  However, the line of thinking that led us to this prototype ultimately led us to make Ivar's Adieu, so I clearly it was a worth while thing to pursue.

 Technologies: C#, .Net


Miscellaneous Prototypes

 Flow Field                     (04/10/06)                                            download

    I find flow fields to be unreasonably entertaining.  This might be because I'm a huge geek, but the visualization in this demo is just pretty enough that maybe you don't have to be a huge geek to appreciate it.  You can drag sinks, sources, and blockers into the flow field from the tool area on the right, or you can right click in the grid to toggle blockers.  When you have something interesting then click calculate to watch the flow field form.  Note that I'm not doing anything complicated here, certainly not any legitimate pressure calculations or anything like that.  Really it's just another relaxation algortithm, but the results are surprisingly satisfying.

 Technologies: C#, .Net 2.0 


 IK Test One                   (08/06/04)                                            download

    In my sophomore year at DigiPen my game team briefly considered a project that would make heavy use of inverse kinematics.  We ended up scrapping the idea as it was simply too large a project for a three person team whose members were also dealing with a huge course load.  Before we scrapped the idea, though, I played with IK a little bit and this test is one result.  Hold down the 'A' button to animate the legs in a simple walk cycle.  The red dots by the feet are targets for the feet and you can drag the target associated with the blue leg.  There are a lot of other buttons that do things like calculate gradients, etc, but they're not visually all that interesting and often require the debugger to be informative.

 Technologies: C++, GDI+


 2D Shadows                   (04/01/04)                                            download

    In March of 2004 I encountered an article somewhere on the internet about creating 2D shadows.  It sounded like a fun idea, so whipped up this prototype to see how it worked.  Essentially all I do here is build a convex hull (2D) of the obstruction objects, find hidden vertices in the convex hull and project them outward away from the light to generate a shadow poly.  The whole thing is composited together using light maps.  Note: moving the mouse light over the objects can crash the prototype.  Hit Escape to exit.

 Technologies: C++, DirectX