development & media



OpenGL Reef Tank
2002-11-14 Source Code

It's been 7 months and I haven't done any work on this project, I'm sorry to say. I just posted the source code. I was doing the programming in Microsoft Visual C++ 5.0, so you may want to use that if you're poking around the code. The comments are sparse, and I don't really remember much about it, but I just compiled it, so it does still work. Be forewarned, though, this was the biggest C++ thing I've programmed and the first I've done since college a few years ago, so I'm sure it's not something you'd really want to use for anything even somewhat important.

If you end up using the code for anything, let me know. If you have any questions, I'll see if I can remember enough to answer them.

2002-04-14 More Updates

I've been working on the collision avoidance scheme a bit and have noticed a few improvements in the behavior in the tank. I've also written up a few pages describing how some of the stuff works: Movement, Schooling, and Collision Avoidance.

I've also been notified that the screen saver may not work in Windows 2000 or Windows XP. I'm currently working on fixing this issue.

As always, comments and suggestions about programming, fish, this site or anything else are always welcome.

2002-04-11 Screen Saver: Updates

The screen saver has had a few behind-the-scene updates that fixed a few small bugs. The tank also rotates now, which may or may not be all that great. Once I get a configuration dialog box working, I'll make the rotation customizable as well as the quantity and types of fish in the tank.

Here are some issues with the program right now:

  1. When exiting full screen mode, a blank button sometimes sits in the Windows taskbar (at least in Windows 98). This only happens occasionally. From what I've been able to find, this is most likely caused by the program shutting down improperly, or some resources are not being unallocated, or it's just a bug in Windows 98.

  2. There may be some errors when run in Windows XP. I haven't done any testing on this, so I'm not sure what the problem is. It may be related to #1 up there.

  3. Fish occasionally swim through the rocks. I think I touched on this in a previous comment. My collision avoidance algorithms are a bit weak at the moment. This is the next major thing on my to-do list.

So, if anyone has any comments or suggestions or anything at all, just send me a note.

2002-04-05 Screen Saver: Pre Alpha Version

Well, I've finally sat down and put the OpenGL Reef Tank into a Windows screen saver. Take a look at the downloads section at right for a zip file. Use the screen saver at your own risk. I've only run it on one machine: a Pentium III 700Mhz, 640MB RAM, with a nVidia GeForce 2Ti video card running Windows 98. It seems to run fine. If you try it out and have any problems, feel free to let me know.

The screen saver currently only gives you a fixed camera view of the tank. I disabled all the user inputs (arrow keys, etc.) for the time being, so it acts like a screen saver and turns off when it's supposed to. I'm planning on adding some customizable things, such as the ability to choose the number and types of fish in the tank. Also, the camera will probably move from time to time to give the user a variety of views of the tank.

The source code is currently a mess, since I've been hacking and slashing to change it from a regular Windows application to a screen saver. Once I do some housekeeping on it, I'll add it to the downloads section.

2002-04-03 First post

The OpenGL Reef Tank was started as way to remove some rust from my non-web development programming skills. I found some decent web sites with some OpenGL tutorials and general information and bought the Red Book. A few weekends later I had some swimming tropical fish. Here are some screenshots from different views throughout the tank:

screenshot screenshot
screenshot screenshot

The fish swim around a virtual 120 gallon tank, some schooling, some not. The simple schooling behavior I came up with works fairly well. I'll post some more details on that later. The non-schooling fish still need a bit of work, as they just swim around the tank randomly. The collision detection also needs some work, since occasionally the fish will swim through the rocks and each other. If anyone knows of any good resources for collision detection, drop me a line.

My next step is to turn it into a screen saver. I'd like for it to be more than that, but at least that will be something useful (relatively) to start with. Any suggestions are welcome. Once I get something I'm happy with, I'll add it to the downloads section. I may also release the source if I can clean it up and make it presentable.




The Eye Roll

©2002 shrugsoft - got a problem with that? drop us a line