My Message close
GAME JOBS
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
May 18, 2013
 
Sony Computer Entertainment America LLC
Sr. Network Systems Engineer
 
Amazon Game Studios
Quality Assurance Manager
 
Amazon Game Studios
Sr. Game Designer
 
Treyarch / Activision
Technical Animator
 
Amazon Game Studios
Game Graphics Engineer
 
Amazon Game Studios
Game Development Engineer
spacer
Blogs

  New School Blues Dev. Diary #34: Porting
by Mike Doucet on 03/07/13 12:11:00 pm
Post A Comment Share on Twitter Share on Facebook RSS
 
 
The following blog was, unless otherwise noted, independently written by a member of Gamasutra's game development community. The thoughts and opinions expressed here are not necessarily those of Gamasutra or its parent company.

Want to write your own blog post on Gamasutra? It's easy! Click here to get started. Your post could be featured on Gamasutra's home page, right alongside our award-winning articles and news stories.
 

Artist and animator Jonathan here. If you aren’t already aware, we are releasing New School Blues across multiple platforms: web, Android, and iOS.  Writing software that performs well on specialized devices like smartphones typically requires efficiency and effective use of functionality already provided by your chosen platform.  This efficiency is achieved by working in the platform’s native programming language.  For example, the Android platform uses Java as its native programming language.  A developer wishing to squeeze every last drop of performance out of an Android app is likely going to program in Java so that their software can integrate with the system as tightly as possible.  Using the platform’s native language to write software also guarantees access to official documentation and development tools.  Android developers working in Java can make full use of Google’s suite of development tools and official documentation, while a developer working in a different language will have only their wits and conviction to keep them warm on their Antarctic expedition to this analogy is terrible.

Wait is this textbook on C#?!  We needed C++!  May God have mercy on our souls…

Complications arise when a developer wants to write a program that runs on multiple platforms because each uses a different native programming language.  So, how is one supposed to bridge the gap?  Simply write your software using neither of their native languages and complicate the issue further with the addition of a third programming language, obviously.  Enter Flash, the bedrock of time-wasting diversions and productivity rotting websites the world over.  The UGAGS framework that we used to create our game is built in Flash and makes use of the cross-platform functionality provided by the Adobe Air framework.  We have let Adobe do the hard work in creating a system that runs across multiple platforms, and we just piggy-back off of it.  Adobe Air provides a number of base structures that run natively on many different platforms, like Android and iOS.  All we have to do is plug our game into the base on each platform, and Air acts as a translator or interpreter between Flash and the native language of the platform.

This piggyback analogy is WAY better than the last one.

You may ask why one would ever worry about the dilemma of cross-platform development if such solutions already exist, and the answer goes back to the desire for efficiency.  In the case of New School Blues we don’t have to worry too much about maintaining blistering framerates and silky smooth performance because our game is more of a contemplative and casual experience.  For developers that need white-knuckle edge-of-the-seat eye-watering brain-melting razor-edged limit-smashing adrenaline-boiling synapse-frying performance however, adding extra layers of interpretation between the app and the system can have a detrimental impact.  It’s similar to conversing with someone through a translator.  Ultimately the communication is successful, but it takes longer and is less precise.

 
 
Comments


none
 
Comment:
 




 
UBM Tech