Perhaps I should've used the title Pentemania : The Mountain of Hacks because that's invariably what happened. But regardless, it works and I'm ready to present it to the masses. Maybe I'll clean it up later.
The premise is: imagine Pente, a game where a player and his/her opponent alternate placing stones on a 19x19 grid until one player achieves 5-in-a-row. Now imagine a 3-d version, (although reduced to 8x8x5), and imagine playing a piece upon the top and having it slide down the column to the bottommost unoccupied space in that column. Now imagine the grid physically out in the distance, and the only way to get pieces to the grid is to launch them out of a cannon. Now imagine an unpredictable wind system playing havoc with the launched pieces. Now imagine the whole area is water, and the grid is on a raft that is a bit tippy. Now you have an idea of on what I've focussed my project.
But, sadly, I couldn't adhere to the game principles within the current timeline I had to finish the project, so nice stuff like capturing and actual wave motion were smoothed out or totally removed. I had to use a lot of quick ideas to reduce complexity so I could increase speed of animation. I set a 15 fps minimum limit on my speed, and Pentemania comes in at just over 17 fps on average, (at least on the Silicon Graphics Onyx machine in the senior graphics lab, thanks for letting me use it guys!).
The UI is written in Tcl/Tk and all the main 3D drawings and game calculations are done in c-callbacks, using OpenGL commands. Actually, the design is pretty simple once you digest the 25 lines of global variable declarations at the beginning. The Tcl script, the c-shell executable and the shared libraries all come in under 400K total, which I think is pretty awesome for what I've accomplished.
The thumbnails below hold links to full-size JPEG screenshots of a game in progress...
Well, that's about it. The graphics course is quite excellent, but should not be taken concurrently with any other course that requires a normal amount of work. (Boy am I paying the price for that... ) Needless to say, I am content with the result. If you would like to chat with me for more info, send me a line.