In this project you will implement Craig Reynold's Boids.
These Boids are characters on a piece of paper that grow tired of their
stationary existence and begin to move around and flock. They are
limited to moving on the surface of the paper. Other characters and
lines form boundaries.
Now, the specific rules for which characters are moving and what their
goals are is up to you. The world could be a short set of paragraphs of
text where the 'i's decide to escape and flock around eating the
periods, or a set of equations where the variables decide to go on a
road trip, or it could be a set of Xs and Hs recreating the attack on
the Death Star from the end of Star Wars, or maybe someone is playing a
game of hangman and the letters decide to rescue the guy, or
tic-tac-toe where the Xs and Os try to bust out. Ideas with alternative
language character sets are also welcome.
While the action will be taking on (or just above) the piece of paper,
the user should be able to freely rotate the piece of paper in 3
dimensions (roll, pitch, yaw) and zoom in and out.
It would also be nice (ie you can get a higher grade) to have an option
where the letters can fly up and over some obstacles.
It would also be nice to be able to specify lines, circles and other
drawn landscapes for the letters to fly around and through.
The backdrop should look like a piece of notebook paper, but other
styles of paper are possible if you clear it with Andy first.
The user should be able to use a Text Editor to create the initial
conditions of the world (straight text, xml, LaTeX) and then your
program should convert the text into the initial graphical state of the
world with polygonal characters or texture mapped characters where some
of the characters have the ability to move and turn on the page, and
others form boundaries that can't be crossed.
create a web page. The web page should include a screen shot showing
what your paper world looks like, and then it should describe
what you did in the project. The web page should also link to your
surce code, instructions for compiling and running, and an executable
that can be downloaded and run. You should then send email to andy
the location of your web page, along with a small 320x240 snapshot of
your work to be included on the course web page.
You have a pretty wide range of possible languages to use. C and
OpenGL, Java, Blitz3D, Electro, etc.
Each person will give
a short 10 minute presentation on what he/she h did in their
project (most likely making use of the web pages that you created) and
get feedback from the rest of the class. Be prepared to
show your application, and discuss why you did what you did and how you
did what you did.
last revision 8/6/06