Wednesday, 21 July 2010

GWJ Podcast Mention: "Your Friendly Neighbourhood Developer"

Gamers With Jobs Conference Call Logo

The Gamers With Jobs Conference Call is a stud in my stable of weekly podcasts. Key members of the community-written blog come together and dissect their week's worth of gaming in a digestible radio show. They cover games they've been playing, noteworthy news, and discussions they've had within their group. There's very little room for puffery in their densely packed programme.

It's because of their enthusiast background that the podcast is so refreshing. While other commercial podcasts strive to cover all the bleeding edge news, the Conference Call only reports something if it sparks interest within their community. This means that they often give coverage to titles that may be overlooked by the mainstream press for being too niche, but merit a mention to the GWJ audience. If you like good games, and your not listening already, I heartily suggest you become a member of that audience.

Before I started developing games, I used to listen to the Conference Call because their tastes were aligned with my own. I enjoy games that offer interesting decision mechanics, and I often discover new titles to play through their coverage. Now I'm designing my own games, listening to the podcast has taken on another aspect for me: market research. Stargazy Studios was founded on the premise that there is a significant population of gamers who, like me, are hungry for innovation in their games. The Gamers With Jobs community fits this profile perfectly, and it follows that Huscarlas is being developed for them.

I think that the Conference Call podcast is successful because of the diverse mix of gamers they can get around a mic'. There are zealots of casual and core gaming, of the PC and console platforms, and they all bring a different perspective to the show. A small portion of the contingent even venture into technical commentary, the like of which is more often heard at a developer conference. It was one of these discussions that was so relevant to indie development that I thought it warranted a response.

The topic concerned attempts by platform holders to lock in content creators, by tailoring their SDKs to be incompatible with others. An SDK is a library of code provided to developers from which to start your own program. It usually takes care of providing the very basic building blocks so that you're not working from a cold start. If you write a game for any of the major platforms, you'll be given an SDK by Microsoft, Nintendo, Sony, Apple, or Google. If a platform holder ensures that a developer is unable to write a piece of code that can be compiled with more than one SDK, they gain exclusivity over your content.

Each platform holder implements their shackling of developers to different extents. The example used on the Conference Call was Apple, who have recently taken the stance that it will not allow any third party SDKs to create programs for its iPhone. This resulted in a vocal, and not overly adult, to-and-fro between Apple and Adobe, whose nose was put severely out of joint by this decision. Adobe's Flash SDK would have let you create games that could run in a web browser, as well as on the iPhone. The unique selling point of a third-party SDK is often that you're able to compile your program to be run on more than one platform. This is great for developers, but not so great for exclusive-hungry platform holders, and seems to be the reason for Apple's lock-down.

The conclusion on the podcast was that you were now unable to develop a game for both the iPhone and Android by writing a single piece of code. Without a cross-compiling third party SDK, it would seem that you need to write your iPhone application using Apple's Objective-C language, which does not have a compiler on any of the other major platforms.

However, there is hope! The iPhone is one of my target platforms, so I was presented with the very same dilemma during my development, and I have a solution. A wise man once said: "To write a C++ compiler, you must first write a C compiler.". This still rings true today, and it's highly likely that a C compiler will be one of the first things written for any new platform. Objective-C is different to C++, but is also built on top of C. This means that all of the building blocks you'd expect to have in a C implementation are in the iPhone SDK. Guess what else has a C compiler? Google's Android has its own C library it calls the NDK (Native Development Kit). And there's more good news: both iOS and Android support OpenGL ES, an open source 3D library. So, with a C codebase that leverages OpenGL ES, you've got yourself a cross-platform game engine for the market-leading smartphones.

Some SDK calls will still need to be made using platform-specific languages on both iOS (Objective-C) and Android (Java). These must be wrapped in C functions to be called from your pure C codebase. My experience has been that there is not an awful lot of this to be done, and the versatility of having a C and OpenGL engine does not end with smartphones. As well as PCs and Macs, Nintendo's and Sony's home and portable consoles can be targeted. Even Microsoft's Xbox 360 has a C compiler, though it muddies the waters a little with DirectX rather than OpenGL.

After emailing the Conference Call crew with my solution, they intend to write a follow-up article on the Gamers With Jobs blog examining the subject of monopolistic platform holders in-depth. I look forward to reading their insights, as this is a war that all developers suffer in, especially indies who don't have the resources to write their code more than once. In the end, if it's too costly to bring your game to a bespoke platform, then it's the gamers who don't get to play it who lose out.

You can check out the initial discussion of Apple's exclusivity grab in episode 194 (00:55:27), and my response read out in episode 195 (01:00:31).

No comments:

Post a Comment