Volume 30 Number 8
Editor's Note - The Importance of Play
By Michael Desmond | August 2015
Back in March, Michael Oneppo kicked off a series of articles focused on game development. Since that first installment ("A Web Game in an Hour" [msdn.microsoft.com/magazine/dn913185]), he's published two additional features: "2D Drawing Techniques and Libraries for Web Games" (msdn.microsoft.com/magazine/dn948109) in the April issue and "2D Game Engines for the Web" (msdn.microsoft.com/magazine/dn973016) in May. This month, he explores 3D game development with his feature, "Introduction to 3D for Web Games."
Oneppo's series is hardly the first time we've covered game development in MSDN Magazine. Adam Tuliper last year published an outstanding series on cross-platform game development on the Unity framework, and our Azure Insider authors Bruno Terkaly and Ricardo Villalobos the year before showed how Microsoft Azure can support back-end development for gaming. (msdn.microsoft.com/magazine/dn532200).
Heck, Oneppo's article isn't even the first coverage of game development in this issue. That honor belongs to this month's Upstart column author Michael Thompson, a Microsoft content developer on the Visual Studio team who focuses on C++, graphics and gaming. He provides an insightful look at popular game dev frameworks—including Unity, Unreal Engine 4 and the open source Cocos2D—and reveals how they're enabling a new generation of game developers.
The common thread in all this coverage is the way game development intersects mainstream programming concerns and disciplines. From back-end development in Azure to cross-platform development in Unity and Cordova, game developers are facing—and solving—many of the same challenges that vex their business-minded counterparts.
Oneppo is a six-year veteran in the DirectX team at Microsoft. He's also enrolled as a graduate student in the Interactive Telecommunications Program at NYU, where he says the experience of working alongside artists and creative technologists on game projects has informed his view of software development. He describes game development as an on-ramp to advanced concepts that are "needed in everyday software engineering."
"For example, the art of making a game fun is deeply rooted in psychology and provides the foundation for user experience design .... Another example is physics and simulation. If you want to make a projectile fly across the screen in a realistic way, that's basic calculus in a much easier to swallow package," Oneppo says. "The list goes on and on: Role-playing games are all about statistics, computer graphics is multi-variable calculus, enemy AI is machine learning, etc."
Maturing platforms like Unity and Unreal Engine 4 abstract many of the thorniest challenges of game programming, and make the discipline accessible to coders who might otherwise never get started in the field. Of course, plenty of opportunities exist for what Thompson calls "ninja-level game developers," and there are ample lessons to be learned there, as well, as Oneppo notes.
"It's also worth mentioning that advanced game development requires a deep understanding of how the machine is natively executing your code, to get the best possible performance out of the system," Oneppo says. "So game development is a great place to learn C++, OS architecture, low-level networking and optimization."
Michael Desmond is the Editor-in-Chief of MSDN Magazine.