Fly was developed while I was attending computer graphic classes at the Polytechnical University of Catatonia (UPC). It was merely a schoolwork and not a real project, however it was quite complex because I had to implement from scratch an efficient 3D subsystem for real time visualization.
In fact, Fly was a real time flight simulator. It was originally based on X-Windows systems, but after starting the development on that environment and in front of the impossibility of debugging I ported it to Personal Computer and ended the development from there with Turbo Debugger. To accomplish that I re-implemented a subset of Xlib and OSF Motif calls under Turbo C so the actual code of Fly was exactly the same under both architectures.
The final release ended up having many nice features and I was close to have a multi-user networked version, where many users could share a same environment. However I finally abandoned it because I started working as System Administrator in the Sala Silicon Graphics (UPC) and got involved with new projects.
Some of the supported features were:
3D Light
Maybe the most interesting feature of Fly was its realistic light
simulation. It supported a real light simulation and all its changes
through time, including smooth transitions between day and night
modes. For example during the summer the sun used to come up from
the East at 6am and go down to the West at 8pm. |
Fly was first implemented as a 2D flight simulator and then it
was extended to 3D. That was part of the schoolwork plan but the
transition was so hard that I had to find a shortcut to smooth
that extension.
The 3D world was finally based on the Block's World concept.
Only blocks could exist in the world and blocks could be positioned
but with gravity awareness, they would fall until they reach the
floor or they lay onto another block.
This simple premise made my life a lot easier and the extension
from 2D to 3D could be done without a major code rewrite, it also
speed up collision detection considerably.
Of course some flexibility was lost in the 3D editor, which was
also used to build aircrafts. It could only build complex shapes
made out from simpler ones, however it could do quite a decent
job out from the more extravagant ideas. In the snapshot you see
an example.