Kobold2D Website now online!

On August 28, 2011, in cocos2d, Kobold2D, by Steffen Itterheim

The Kobold2D Website is now online. Go, have a look and let me know what you think.

Here are some pointers to get you started about Kobold2D (in case you haven’t heard) and the Kobold2D website:

Not sure what that means? In essence Kobold2D wants to make development with Cocos2D easier and more powerful for you. And in case you’re wondering: yes, Kobold2D is free and open source.
Some of the things you should know about Kobold2D:

Cocos2D Podcast: Sparrow Framework

On August 25, 2011, in cocos2d, podcast, by Steffen Itterheim

A new episode of the Cocos2D Podcast is now live. This time we’re joined by Daniel Sperl, author of the Sparrow Framework Objective-C game engine for iOS which is based on the ActionScript (Flash) API design.

Note: the Sparrow website is currently reported as “possibly malware” by Safari and Google. The culprit has been removed and the site is safe to visit. Read this blog post for more info about what happened.

Daniel has a secret he shared with us even though he couldn’t really say any details until the official announcement in a few weeks. Cocos2D also gets a couple honorable (or dishonorable) mentions as we compare it with Sparrow Framework, and come to the conclusion that documentation-wise it is leaps and bounds ahead of Cocos2D.

Cocos2D Podcast: Daniel Sperl (Sparrow Framework Developer)

Cocos2D Podcast on iTunes

Previous Cocos2D Podcast: Marketing your App

I forgot to blog about the previous Cocos2D Podcast in which Azam and I talk about marketing your iPhone app.

Cocos2D Podcast: Marketing your iPhone App

Cocos2D Podcast on iTunes

Unrelated but important: Steve Jobs resigns

In case you haven’t heard, Steve Jobs has resigned as CEO of Apple on August 24th, 2011. Here’s Steve’s (short and to the point) letter to the Board of Directors. Tim Cook was named as his successor. Read the press release.

I never really cared for who’s boss of a big company, just enough to get the ridicule. But Steve Jobs leaving .. I can’t help but feel sad.

I believe this is for one reason in particular: very, very few CEOs actually have a vision and follow it through. Or have the (will)power to follow it through without being bent or influenced through challenges and oppositions by corporate and outside politics. Steve was able to retain all of the drive, dedication and willpower that you have when you just start out as a company or individual trying to make a really great product that you believe in and want to be proud of.

Most large companies are simply unable to create such products because too many people work on each product, and there’s lots of money and risk involved in the process which, more often than not, turns potentially great companies into conservative, boring companies making lackluster products, following consumer trends. Apple under Steve Jobs has been the exception. Steve has repeatedly anticipated consumer trends, even created them through the power that is the Apple brand.

The really, really sad part however is what hasn’t been said. Steve being unable to meet his duties paints a grim outlook on his health. Not mentioning his health in his letter and Apple’s press release even more so. I just wish for him that it’s not as bad as one can imagine it to be if it forces someone of Steve’s caliber to resign from his position. Good luck and all the best, Steve!

Tagged with:  

Kobold2D Project Starter Tool

On August 11, 2011, in cocos2d, Kobold2D, by Steffen Itterheim

The Goal

Kobold2D users should never have to run a bash script, ever. Any project or asset management task most users will want to perform should be done with a visual tool.

The Problem

I mentioned before that I had problems turning the Kobold2D project templates into the Xcode 4 Project Template format. In fact, it turned out to be impossible due to the nature of Kobold2D’s workspace setup.

Since I want to have a wide variety of project templates in Kobold2D, and definitely more than the three rudimentary templates that cocos2d-iphone offers, I needed some way to allow users to start new projects based on a template.

The Solution

What I came up with is the Kobold2D Project Starter Tool:

Simple and elegant. This tool scans the projects in Kobold2D templates folder, which are regular Xcode projects with a common naming scheme (eg. _Hello-Kobold2D-Template_), and presents them to the user including a description.

Select a project template, give it a name and click Create. The tool will copy the template project to the Kobold2D folder next to all the other projects. All occurrences of _XXXX-Template_ are renamed to the user supplied project name (which is cleaned to remove illegal characters). Then the project is added to the Kobold2D.xcworkspace which the tool will open right away.

The Benefits

I think the biggest benefit by far is that anyone can turn his or her Xcode project into a template, simply by following the naming scheme. Anyone can create and distribute their own Kobold2D project templates.

Note: in the screenshot there are only 7 templates listed. I’ll definitely add more for the Kobold2D v1.0 release, most will be based on projects discussed in my Learn Cocos2D book. The first preview version (v0.9x) of Kobold2D will be available in about two weeks.

My Line-Drawing Game Starterkit is now up to date with the latest versions of cocos2d (v1.0.1), iOS (compatible with iOS 3.1 and higher, including iOS 5.0), Xcode (compatible with Xcode 3.2 and above, including Xcode 4.0 on Snow Leopard and Xcode 4.2 on Mac OS X Lion).

Existing customers will receive an email with instructions on how to download the updated version of the Line-Drawing Game Starterkit.

Ferries HD was made with the Line-Drawing Starterkit

I’ve added another cool game made to the Line-Drawing Starterkit product page – Ferries HD by Thomas Busse:

Note: the game is not included in the Starterkit. It’s a game that was made with the Starterkit and serves as a great example of what you can achieve with the Line-Drawing Game Starterkit.

Price dropped to $99 (from $119)

I dropped the price of the Line-Drawing Game Starterkit to $99 in anticipation of upcoming commercial source code products that I’m working on. More on that in due time, first things first (Learn Cocos2D 2nd Edition and Kobold2D).

What about Kobold2D?

I know, I know. Kobold2D isn’t too far out. I anticipate the first preview (beta) release in August. Stay alert.

What’s left to do at a minimum is to write the Project Starter tool (to give you the convenience of Xcode 4 Project Templates but with more flexibility), setup the website with the “getting started” documentation plus API references and perform some general project cleanup.

And when is the Learn Cocos2D 2nd Edition coming out?

It looks like the new edition of the book will be out in October, roughly two months later than anticipated.

On the positive side I’m working with a new editor who brought in a fresh perspective from which the book greatly benefits. The delay also allowed me to make more substantial improvements than initially planned.

In particular Chapter 3 (Essentials) was completely overhauled to better explain the fundamental concepts of Cocos2D, and you’ll find the book to be more visually rich in general. For example this exploded view drawing is used to explain the relationship of Scenes, Layers and Nodes:

The book’s source code already uses the recently released Cocos2D v1.0.1 and I will continue to update the book’s source code for the v1.x line of Cocos2D. Several of the game projects discussed in the book will also be ported to become Kobold2D project templates.

Tagged with:  

Dropping Dead: OpenGL ES v1.x

On July 15, 2011, in cocos2d, Mobile Business, Technology, by Steffen Itterheim

Update: please find the iOS Device Sales Statistics for Q1 2012 here.

Currently Cocos2D is being overhauled for a v2.0 release. It will only support OpenGL ES 2.x and thus games made with Cocos2D v2.x will not run on 1st & 2nd generation devices (iPhone, iPhone 3G, iPod Touch 1 & 2).

The two development threads in the Cocos2D forum here and here are full of users expressing their disappointment (among other emotions/criticism) not to support a rendering core that supports both GL ES 1.x and 2.x. Even though it was said that if you still need to support all devices, you can simply continue to use the Cocos2D v1.x branch.

I’ve run some numbers and came to the following conclusion: if your game only supports OpenGL ES 2.x and comes out in Q1 2012, you will lose less than 10% of customers!

Here’s why I think OpenGL ES v1.x is currently in the process of dropping dead, and close to hitting the ground within the coming ~6 months.

iPhone Sales Statistics Q1 2011

Wikipedia has a nice list of iPhone sales statistics (totals) as they were reported by Apple each quarter. These statistics range from Q3 2007 to Q1 2011. Unfortunately, sales by Apple are not reported by device, so some quarterly sales are combined sales of iPhone 3G + iPhone 3GS respectively iPhone 3GS + iPhone 4.

I tried to extrapolate individual device sales by making the assumption that over time periods where two different iPhone devices were being sold, the newer one was likely to have sold more. Since we’re talking about Apple I choose a 70/30 split, meaning I assumed that 70% of the sales were for the newer device. This seems about right since newer devices have always sold better than the previous generation, but also according to some developer statistics.

For example the Bump developers reporting an iOS 4 adoption rate of 90% in January 2011 across all iOS devices (1st generation devices can not install iOS 4). Or the Surgeworks iOS 4 Adoption report which contains usage statistics of 1st generation device users of only 2.5% for one app, and 5% iPhone 3G users for another app.

The left side of the following pie charts shows the total number of iPhone devices sold to that date, with sales periods of two devices combined. The pie charts on the right show the extrapolated sales statistics for individual iPhone device generations, and which OpenGL ES version they support.

Download the Excel sheet I used to create these charts:

Notice how in Q1 2010 about two third of all iPhone devices supported only OpenGL ES 1.x, but within a year the picture turned just the other way. In Q1 2011 two thirds of iPhone devices sold were capable of running OpenGL ES 2.x code!

This has a lot to do with two factors: the iPhone 4 sold like crazy, whereas the last OpenGL ES 1.1 iPhone being sold (iPhone 3G) was discontinued in June 2010. Meaning since Q3 2010 Apple does no longer sell OpenGL ES 1.1 iPhone devices. And OpenGL ES 1.1 iPod Touches stopped selling in Q4 2010 as well.

All iOS Device Sales Statistics Q2 2011

According to Unwired, Apple reported to have sold 200 million iOS Devices during the iOS 5 announcement. 25 Million of those were iPads. These are the most up to date sales stats, which I assume to be the Q2 2011 statistics.

Based on Wikipedia’s numbers which states 83 Mio. iPhone devices sold vs. over 60 Mio. iPod Touch devices sold, the remaining 175 Mio. should be 42% iPod Touch (74 Mio) and 58% iPhone (102 Mio).

The percentage of OpenGL ES 2.x capable iPhone devices to those only supporting OpenGL ES 1.1 was 31% in Q1 2010 and jumped to 64% in Q1 2011. Assuming the 1.1 to 2.x ratio is the same for iPod Touch, that gives us 137 Mio iOS devices (iPhone, iPod Touch, iPad) with OpenGL ES 2.x capability versus 63 Mio devices (1st & 2nd generation iPhone / iPod Touch) which don’t support 2.x.

This pie chart includes all iOS Devices and which OpenGL ES version they support:

That means 70% of all iOS devices sold to date support OpenGL ES 2.x. This leaves us with only 30% of iOS devices not capable of running OpenGL ES 2.x code.

I don’t want to lose 30% of my customers!

You won’t!

Keep in mind that these statistics are only about devices sold. They do not reflect what has happened to these devices since, or how they are being used today.

I can also assert that older devices are disappearing fast from the market. Even though 30% of the devices sold support only OpenGL ES 1.1, your potential customer base will be significantly less than the number of devices sold. This is for a variety of reasons:

  • device has been lost or was stolen
  • device broken beyond use/repair
  • device simply no longer in use
  • device owned by a person who is unlikely to buy new apps

Particularly the last item must be considered: the device user. Again, the user is your potential customer, not the device. And in general all of these items are more likely to happen the older the device is.

One commenter in one of the two GL ES 2.0 threads on the Cocos2D forum reported how happy users were to see a game running smoothly on their 1st generation devices. For me that is not proof that support for older devices is beneficial. To the contrary, I think it clearly shows us that old generation device users are much more selective about their purchases, are already giving up their love for their devices, and may be considering an upgrade because they may have stopped enjoying their devices. This contributes to the “less likely to buy new apps” factor.

You can also assume that users of older devices have less expendable income, or are satisfied with the device as it is. If a user is actually happy with an old iOS device, it’s likely that person prefers to use apps and plays few(er) games or just keeps using the apps & games already owned.

The number of potential customers you would lose – if you released an OpenGL ES 2.0 game right now – is maybe around 10% to 20% at most. Far less if your game is complex and visually rich, and would suffer some performance or visual degradation on older devices anyway.

What about the near future? (Q1 2012)

Considering that 6 months from now, in Q1 2012, we will have seen the release of new iPhone devices (iPhone 5, possibly iPod 5) and thus another boom in sales, it is a better deal to start making some cool visual effects with shaders that look great on iPhone 4 and 5 rather than trying to still support 1st and 2nd generation devices.

In particular if you need to put in some (or a lot of) effort to support the older devices, for example if you have to optimize the performance, reduce the feature set (eg no or limited Game Center support) or (god forbid) you need to ensure compatibility with iOS 3.0.1 or lower (CADisplayLink unavailable!). That time and effort are better spent on making a better OpenGL ES 2.x game!

Obviously the decision also depends on how visually rich your game is going to be and whether you can expect to run into performance and other issues on older devices anyhow.


I fully expect the market share of OpenGL ES 1.1 devices sold to drop to around 20% by Q1 2012. That puts the number of potential customers (for game developers) still using those devices and buying games to certainly much less than 10%. Then consider that the iPhone 5 may even already account for up to 5% (~10 Mio) of all iOS devices sold by Q1 2012.

By the end of 2012 the potential customer base (for game developers) still using 1st and 2nd generation devices will have become entirely negligible.

That means, if you start developing an OpenGL ES 2.x game within the next 3 months, and your game takes 3+ months to complete, you will lose very few customers by only supporting 3rd generation and newer devices. And you may actually be able to win more customers by cleverly supporting the new devices!

I think it’s wise to start using Cocos2D v2.0 as soon as it is production-ready, which may be in around 3-6 months according to the comments and current progress.

Game On, Cocos2D 2.x!

Installer for Cocos2D v1.0 Released

On July 14, 2011, in cocos2d, support, by Steffen Itterheim

Cocos2D is finally and officially carrying the version number v1.0. Without any beta, unstable, rc suffixes.

I’ve updated my Cocos2D Installer Package (.pkg) to use the latest v1.0 and removed the v0.99.5 version, which cut the download size in half (35 MB). Cocos3D is still included of course. And as always, the main reason why you would want to use the installer is to avoid any issues installing the Cocos2D Xcode Project Template and File Templates.

You can download the Cocos2D Installer through Cocos2D Central or directly from here via this hotlink.

Tagged with:  

Cocos2D Podcast: Nate Weiss, iPhone Game Kit Developer

On July 14, 2011, in cocos2d, podcast, by Steffen Itterheim

The latest episode of the Cocos2D Podcast has a special guest: Nate Weiss, developer of the commercial iPhone (RPG) Game Kit.

Nate is one of the most enthusiastic game developers I know, his true love being RPG games. When not making games he loves to help others learn game development and makes a living off of that.

And he does all that from the confines of his floating apartment: he lives on a boat!

To top all that the Cocos2D Podcast now has an intro music provided by Marco Neumann aka @marcotronic. Thanks Marco, rock on!

Cocos2D Podcast: Nathanael Weiss (iPhone Game Kit Developer)

Cocos2D Podcast on iTunes

PS: I actually forgot to publish this post after I was done writing it. It was sitting here as draft for a week. I’m sorry for the delay!

Tagged with:  
Page 12 of 27« First...1011121314...20...Last »