This is the demonstration that appeared on stage at NIWeek 2011 to illustrate the interoperabity with .NET assemblies and to higlight the new wireless cDAQ chassis. Shown below is Eric Starkloff, VP of Marketing, using a real sling-shot to fire the birds in software (for a video, click here, scroll to the bottom and click on LabVIEW 2011 and Angry Eagles - skip to 7:20 to see the clip). If you don't happen to have a giant sling-shot handy with a cDAQ hooked up to it, you can still run the demo using the software-only input. It also happens to be a great illustration of the Actor Framework architecture. Please be sure to follow the setup instructions below for it to work.
Please make sure to follow these instructions, or the application will not run correctly. Please post any questions below.
Configure LabVIEW to call a .NET Assembly built for CLR 4.0. Place LabVIEW.exe.config next to the LabVIEW executable (which should be located C:\Program Files\National Instruments\LabVIEW 2011\). Be sure to restart LabVIEW after completing this step. For more information on this step, visit Loading .NET 4.0 Assemblies in LabVIEW.(No longer necessary if you are using the "Angry Eagles Source Distribution.zip version - all assemblies we recompiled for .NET 3.5)
Open Angry Eagles.vi.
Please Note: You can easily identify portions of this application that were written in the days leading up to NIWeek, as they lack acceptable levels of documentation (this will be improved over time). That being said, the code is based on the Actor Framework, which if you understand, makes the code fairly self-documenting. The attached source code includes a copy of the Actor Framework, but for more information on this framework, click here.
This application is fairly CPU intensive. For best performance results, I recommend a computer with at least an Intel i5. A solid-state HDD will also help when loading the images into memory from disk. WHY? You might be wondering why you need so much horse-power for a game that can also be run on the phone in your pocket - it's not because of any inefficiencies in LabVIEW. The reason is that we did not take advantage of any hardware graphics processing in this code, which is how you would typically write an application like this. In other words, all of the images are being rendered strictly in software, which is very inefficient. You could modify the application to use the 3D picture control, which is hardware accelerated - this would dramatically improve performance, but it would've required additional time and effort to implement (feel free!).
Credit and Acknowledgements
Credit to Simon Hogg for conceiving the idea to create Angry Eagles and for the hard work and late nights building the demo
Thank you to Brandon West and Keith Moore, our interns who built the sling-shot, created the levels and (most importantly), lended their voices for the sound-effects.
Thank you to Allen Smith and Stephen Mercer for their work on the Actor Framework.
Thank you to Chris Delvisis for his help setting up the DAQ and getting the first sling-shot built.