This started off as a small project from University to teach us to use a tweaning tool for animations, where we had to move the Helicopters rotor. I had been playing games like Take On Helicopters and Arma 2, so I went overboard with this project.
I started to build it as a simulator, in the style of Arma, trying to build realistic helicopter movement with Pitch, Yaw, Roll, Collective and Cyclic. I also had to simulate Drag on the helicopter else it would have increased speed constantly. Using the Air density of 1.2041 kg/m^3 (about Dry air density) and the wingspan of about 4 meters (Not realistic but gave better feedback) and the Drag coefficient of 0.04 (that of a Streamlined body) the Drag equation came out as:
drag = 0.5f * 1.2041f * (helicopterSpeed * helicopterSpeed) * 0.004f * (4.0f * 4.0f);
After simulating the helicopter movement, I decided to try and make a game out of it. I started to add weapon systems of that of an Apache Helicopter with Hellfire missiles, Hydra rockets and a cannon. I also built a GUI for weapons including a lock on targeting system, for Hellfire guided missiles. Targeting is made up of two scripts, First is a camera based target GUI script that finds a available target and cantered a box and details above them when Tab is pressed based on range and visibility. If Hellfires are selected, On fire the GUI script sends the target details to a Hellfire script on the missile game object and the missile then turns and follows that target in till collision.
Lastly I made a AI movement script, Based on Arma again it uses Node based directions. Each node game object has a set of options "land" or "move"; Land creates the landing point for the helicopter and will work out a path from the node before, Move is simply a route. Other options include Set Speed and delay; this simply set the speed of the AI object or delays the object for a time. This is seen in the demo via the incoming helicopter.
Tools and skills: