** DCFloys ** ** (c)2001 Paul Boese a.k.a. Axlen ** Based on Floys Java Applet written by Ariel Dolan http:://www.aridolan.com/ ** ** This code is butt ugly... but then it's still only test code... right =) ** ** This code is butt ugly empirical experimentation on my part. I can see ** that I have much to learn. The articles at gamedev.net and hene are ** helpful, but I have a thick skull and this 3d stuff is gonna take a while ** to sink in. ** ** THIS CODE IS BUTT UGLY... ** ** release version 0.0.0 ** 17 November 2001 ****************** *** How to use *** ****************** dcFloys was never really intended for public release but I thought it looked neat and I found it sort of addicting to play with. Tweeking the various parameters changes to behavior of the critters. I got tired of adjusting, compiling, adjusting, compiling... so I added a quick and dirty menu so it could be done in real-time. The button functions are displayed on the screen should be fairly self explanatory, but are included here for completeness. [X] switches view between a distant, and chase view centered (not quite) on floy[0]. The methods used are crude and probably incorrect. In Chase mode the view can get pretty jerky. You have been warned so please don't blame me if you puke all over your controller. [Y] toggles the parameter menu on and off. The D-pad is used in menu mode. Up/Down selects the item, and left/right changes the value. [B] toggles floy[0] between friend and intruder. In 'friend' mode the floys just flitter around thier little world. Floy[0] is shown in green. When in 'interuder' mode floy[0], shown in red, just bounces around the world, and is attacked by the other floys. [A] is inactive. [Start] exit. ****************** *** Parameters *** ****************** The menu has some parameters that you can adjust in realtime. They are: Num Floys - The number of floys. You can have up to 20, but the frame rate suffers for any number past 13 or 14. Num Neighbors - The tightness of interaction between the floys depends on the number of neighbor floys used in calculations. Acceleration - higher values create a more frenzied behavior, while lower values a more graceful behavior. Max Velocity - Just like is says. Bounce Velocity - The floys exist within a big rectanglular box. When they it the invisible walls they bounce. This is the speed they bounce in the opposite direction. Center Attraction - The controls the tendency for the floys to move toward the center of the 'big rectangular box.' Reverse Distance - The maximum distance the floys can fly apart from each other before turning around. Chase Distance - In the Chase View mode this is the distance the camera trails floy[0]. Pan Distance - In Pan View mode. Just like it says. Pan Height - Ditto. ********************************* *** Sample Parameter Settings *** ********************************* --------------------------------------------------------- |PARAM |GRACEFUL |FAST |FRANTIC | ========================================================= |Num Floys | 12 | 8 | 12 | |Num Neighbors | 2 | 2 | 2 | |Acceleration | 3 | 4 | 20 | |Max Velocity | 100 | 120 | 150 | |Bounce Velocity | 20 | 80 | 20 | |Center Attraction | 10 | 50 | 10 | |Reverse Distance | 200 | 200 | 200 | --------------------------------------------------------- These settings assume 'Friend' mode, but you should try 'Intruder' mode too =) ********************** *** Compiled under *** ********************** Kallistios 1.1.5 binutils 2.11.2 gcc 2.95.3 20010315 (release) libstc++ 2.92 newlib 1.9.0 ***************** *** Landscape *** ***************** The landscape was created from a photo off the JPL Pathfinder website and hacked-up considerably. It cheap'n'cheesy! ********************* *** Blender Stuff *** ********************* I've created a simple python script that exports the mesh, face indices, and uv texture mapping coordinates in the form of a "C" header file. You can find everything in the resources directory. Blender is available at http://www.blender.nl The current version is 2.20, but my script will not work under it. You will need an earlier version, but I suggest nothing older than 2.12. I'll eventually rewrite the script to work with 2.20, but if you're in the mood to do it your self I'd love to get a copy 8D. If you want a copy for Linux I could post the 2.12 version if you ask. *********** *** EOF *** *********** Long live the GPL, OpenSource, and all the folks who make this all possible. Paul Boese pboese@axlen.com http://www.axlen.com/ hrrp://axlen.com/