Here’s a crazy thought: with commercial game kits (game source code products) being popular and financially rewarding – why not crowd-fund an iOS game by selling it’s source code, resources and development insights while you’re creating it?

Marcus and I will give this idea a spin. Marcus is a game designer I worked with at Electronic Arts Phenomic for 6 years. I’m sure you know me. Together we’re going to create a tilemap-based physics game using cocos2d and KoboldScript (Lua scripting for cocos2d). And we are going to sell everything we’ll create practically from day one.

If that sounds even slightly intruiging to you, we’d love to get your feedback!

Visit the launch page and take our survey which has already helped us tremendously to focus on what’s important for you. For example I’ve converted the entire KoboldScript library to use ARC seeing how important ARC is to you.

But do keep on reading for more details …

Continue reading »

From Dogfooding to Catfooding

On September 22, 2011, in idevblogaday, Kobold2D, by Steffen Itterheim

Most developers have heard of the phrase “Eat your own dog food”. It refers to the habit of actually using what you’re creating.

A typical example would be a company building Yet-Another-Issue-Tracking-Tool™ while using said issue tracker to manage their Yet-Another-Issue-Tracking-Tool™ project. And you’ll surely have heard of a game engine that was initially only developed as a necessity to build a game, then polished and released to the public to great success, while the developer continued to create games with his own engine.

Dogfooding is considered a good practice, actually a best practice. You know that the tool you’re building works, and that it satisfies your needs.

But “your needs” is also the achilles heel of dogfooding, and it’s just a small step away from forever “perfecting” your product (known as “gold plating”). So sooner or later, you’ll have to do some catfooding, too. Meaning: to feed the user’s needs.

Continue reading »

Cocos2D Alpha Book: “unprecedented success”

On October 28, 2010, in book, cocos2d, by Steffen Itterheim

I got an email from Apress. They say the Learn Cocos2D Alpha Book “enjoys an unprecedented success”. Other phrases in that email include “staggering number” (which I can’t disclose) and “great positive feedback”.

Wow, just wow! :)

What’s more, it looks like the book will be released early. Currently, it is scheduled for release on November 30th, 2010. This is still a rough date though, and street date may be off by a couple days.

Tagged with:  

Book Feedback: the Spiders got fixed!

On September 22, 2010, in book, by Steffen Itterheim

Just a quick note: the single most requested respectively criticized part of my book was in Chapter 4 where I’m introducing the moving spiders. The @interface code was missing from the book as well as the line in the init method calling one of the new methods. These are added now, so the code works directly from the book. It should be in the next chapters & code update (but don’t ask me when, I don’t know either).

Thanks for letting me know about it, and in general for all the great feedback! What amazes me most is that there wasn’t a single person saying that the book isn’t good, or not good enough, or could be so much better if only … Normally one has to expect at least a certain percentage of responses to be less than happy, but no, every single one was positive, even those with criticism. And a few very overwhelmingly appreciative. I can’t say thank you enough for all of that praise, it’s been a great source of inspiration and motivation, especially at the times when I was super-busy and working 14-hour days for a week. Thank you! :)

Amazon Book Reviews

I thought it’ll be great to see some of the cocos2d book reader reviews appearing on Amazon. If you’d like to write a review, I’d really appreciate it, because right now there are none. Here are the links to the cocos2d book for every Amazon store worldwide:

Amazon.com (United States)
Amazon.ca (Canada)
Amazon.co.uk (United Kingdom)
Amazon.de (Germany)
Amazon.fr (France)
Amazon.co.jp (Japan)

Please mention that you read the book in its Alpha form. I don’t want anyone to think that the reviews are hoaxed because they came in before the book came out. Not everyone may be aware of Apress’ alpha program, and pre-release reviews are often viewed with skepticism.

Btw, Amazon.com lists the book’s release date as December 30th. Right now that’s just a rough date, like I said earlier, the goal is to get the book out in time for Xmas. Hopefully even several weeks before Xmas.

Tagged with:  

I’m happy to announce that the cocos2d book I’m writing is now available for early access as an Alpha Book! If you click on the previous link or the image you can view the book’s description. Look for the “Buy Alpha Book” button on the left side of the book’s website, inside the “Book Details” frame.

Access to the Alpha Book costs $27,99 - the same as the eBook version. You get to read the unedited, unfinished pre-release chapters of the book. The full book isn’t available yet, but when it becomes available, you will be able to download the full eBook.

At the moment 5 chapters are available with new chapters being written on a weekly schedule.

Your feedback will be very valuable to make this book the best it can be! Please send your feedback to Apress, not to me directly. Apress will evaluate your feedback and send it to me with duplicate and already planned or implemented feedback sorted out, so that I can focus on writing.

Tagged with:  

cocos2d Book, Chapter 3: Essentials

On July 10, 2010, in Announcements, book, cocos2d, by Steffen Itterheim

Chapter 3 - Essentials

This chapter is a reference about the fundamental classes of cocos2d and how to use them. Nodes, Layers, Scenes, Labels, Sprites, Transitions, Actions, you name it. Also CCDirector, SimpleAudioEngine and other often used singleton classes as well. More advanced concepts will be discussed in a later chapter, Spritesheets for example.

The submission of the first chapter draft is due next Friday, July 16th.

What do you think should be in Chapter 3?

Do you know a cocos2d class or process that you think is essential and should be discussed in this chapter? Let me know!

Summary of working on Chapter 2 - Getting Started

For one I detailed the Hello World sample project and made a simple modification using touch input. At the same time at least some basic level of understanding about cocos2d classes was introduced but the gist of it is done in Chapter 3. In addition, there were a lot of theoretical aspects I wanted to discuss as well, most of all Memory Management and available memory as well as setting expectations on testing on Simulator vs. a device. And of course the devices and their subtle differences. I do hope that those kind of details are appreciated even if they’re not 100% related to cocos2d. I regularly see cocos2d developers struggling with memory issues, with unexpected differences on the device vs the Simulator, or comparing framerates of the Simulator and possibly even Debug builds. That made me want to stray off the beaten path for a moment to hopefully save the readers some misconceptions and the pain associated with them.

I also realized how many steps a new developer has to go through and how much there is to learn in case you’ve never been working with the iPhone SDK before. It starts with registering as iPhone developer and doesn’t end with installing the SDK because you also need the provisioning profiles, a much discussed and troublesome feature. For all of this I refered to existing (and excellent) Apple documentation. Typically the processes change with each new iPhone SDK or may even be under NDA, so discussing how all of this works with iPhone SDK 4 wouldn’t be a good idea since shortly after the book is out iPhone SDK 5 may be coming, introducing changes to the Developer Portal and iTunes Connect with it. It did get me the idea, and I know others have it too, that we need some holding-hands Tutorial which takes one through the steps from registering as iPhone Developer to publishing one’s first App, by referring to the correct official documentation for each step while not forgetting about common pitfalls that are not in the official docs.

I also noticed how easy it can be to overlook how you suddenly introduce a new concept without explaining it first. And then you have to decide how much information is necessary to introduce the concept without straying too far away from what you want to talk about in the first place. It’s especially hard for me because I tend to want to explain everything in detail but some things have to be left for a later discussion. I’m looking forward to editorial feedback now. It has helped tremendeously for the first chapter and I learned a lot from the Apress editorial staff, so I find it exciting that the experts point me to the flaws and make suggestions, I go in to fix them and then see how much better it is. That’s how I like to learn things and it’s going to be one of the core concepts of the book. Show how it’s done, how it shouldn’t be done (if it’s often done wrong) and how it can be done even better if you want to avoid trouble in the long run, while explaining why.

cocos2d Book, Chapter 2: Getting Started

On July 2, 2010, in Announcements, book, cocos2d, by Steffen Itterheim

Chapter 2 - Getting Started

This chapter starts with the usual prerequisites. Download and install iPhone SDK and cocos2d. Installing cocos2d Templates. Creating the first project from a cocos2d project template.

From what I already wrote I estimate that will be about one third of the chapter. I think what would be most interesting in this chapter is to talk about general code structure of cocos2d projects. The basic elements like Scenes, Layers and Nodes. How to transition from one screen to another, to see that we’re actually doing something cool with little effort. For that I think the scheduled selectors should also be introduced to time transitions, and one screen might be a Layer which is waiting for touch input to advance to the next screen.

It might also be a good place to discuss cocos2d memory management, like static autorelease initializers, and making sure dealloc gets called when you switch scenes - otherwise you’re obviously having a memory leak.

The goal is to get the reader into a position where he feels comfortable laying out a screen structure in cocos2d. He knows how to initialize objects and how to add and remove them from the scene. The foundation of working with cocos2d if you so will.

What do you think should be in Chapter 2?

Let me know if you think I’m missing anything important. If you don’t have any suggestions then just think about what you would expect from the chapter by reading this description, that might give you some thoughts.

Also I would welcome any tips and the common pitfalls first-time cocos2d developers might trap themselves into. Expert tips are also welcome, those little nasty things or habits which could bite you later on if you don’t consider them from the beginning.

I’m looking forward to your feedback! The earlier the better. Chapter 2 will be submitted next Friday, July 9th.

What’s planned for the Chapter after this one

Just to put Chapter 2 in context, for Chapter 3 I’m planning to talk about essential cocos2d classes and processes. Sprites, Labels, Menus, Actions, etc. It’ll show you how to work with them using small code snippets. The chapter will probably have a “reference” character with various code samples, so that experienced users feel comfortable skipping ahead while beginners still find it easy and encouraging to pick up the details.

Tagged with: