Monday, December 20, 2010

Month 14: Optimization, Machine Architecture 2 and Megatouch

Just finished up the dreaded month of December at Full Sail. There is nothing that will simulate real-world crunch time then December at Full Sail. On a normal month we cram a semester into 4 weeks. On December we cram a semester into 2 weeks. 13 days straight was a challenge that defiantly made us grow. Barry McCall taught us how to benchmark our applications to find hotspots and Gary Miller taught us how to program directly to the hardware to make Game Boy Advance games.

In Optimization, we used Intel’s V-Tune to detect problem areas in our programs. We learned how to break down complex issues to find what is really causing the problem on either the CPU or GPU. Determining whether your application is compute, I/O, vertex, shader bound or a variety of other boundness is one of the most important parts to cleaning up your program. We also discussed how multi-threading could actually slow down your application as well as how to design your application with optimization in mind.

In Machine Architecture 2, we used a new environment to program for the GBA. We learned all the different purpose registers and modes the GBA can use. We learned how to burn our game onto a cartridge using a devkit. We learned how important memory and speed are on a handheld device and how little optimizations could help a lot. We had many reading assignments and homework assignments that expanded on each other in order to give us a well-rounded view of programming for the GBA.

Some executives from Megatouch came this month and talked to us about finding a job in the industry. They told us what they look for in potential employees. They told us what to say and what not to say and not to be nervous during the interview process. Their advice was very helpful and I am thankful for the Megatouch arcade they have given to Full Sail.
Even though this month was very hectic, I still feel like I learned a great deal. Not only did I learn valuable optimization techniques but I also learned how to program for a handheld device. I you asked me a month ago if I would be able to program Ninja Gaiden on the GBA, I would have said heck-no. However, know I could answer confidently, yes.