Easter surprise: Learn Cocos2D (the Book) is going to have a 3rd edition! To be released around August 2012 it will be updated to cocos2d 2.0, compatible with Kobold2D and the source code uses ARC throughout.
I apologize for this episode being 50% shorter due to Easter holidays.
• Learn Cocos2D (the Book) v3
o cocos2d v2.0
o Kobold2D compatible
o 100% ARC and Blocks explained
• iDevBlogADay: Enable ARC in a Cocos2D Project
o Coming Soon: Cocos2D with ARC Video Tutorial
• NameChanger, free renaming tool
I was very surprised when I found a yellow bubble-wrap envelope on my doorstep this morning. I did not expect a delivery, and particularly not one that was posted in Plattsburgh, NY.
Neither size and shape seemed familiar to anything that I might be expecting. Although I was hoping for a second that it would be my iPad 3, Apple certainly wouldn’t send a high-valued electronic device in an envelope.
I dismissed those thoughts and took a peek inside. This is the item that I unwrapped:
Kobold2D v1.0 is now available from the Kobold2D Download page!
This is mainly a maintenance release, I found and fixed all the bugs that had been reported, including some nasty linker issues that occurred with a preference on Snow Leopard. Kobold2D is now thoroughly tested with Xcode 4.0.2, 4.1 and 4.2 under Snow Leopard and Xcode 4.2 under Lion.
Of course the latest updates of cocos2d-iphone-extensions 0.2 and cocos3d 0.6.3 are also included.
And I can’t say it often enough: Kobold2D supports ARC (automatic reference counting) out of the box! There’s nothing you need to do! Just have Xcode 4.2 installed and start writing code without retain, release and autorelease ever again.
Forward Looking Statement
The motto for the next updates is still “Get Connected!”. I want to add more online features and update the KKGameKitHelper class with remote config support provided by AppMynx. I will evaluate ShareKit and hopefully be able to implement that with (if necessary) a reasonably simple interface for Cocos2D apps.
I also have a commercial product for iOS in development that will make sending data over the network a lot simpler. The basic idea being that if, for example, you want to synchronize a sprite’s position and rotation properties with all other devices, you simply write something like this:
[cc lang=”cpp”]
[KKConnect addSharedObject:self
identifier:@”Player1″
properties:@selector(position),
@selector(rotation),
nil];
[/cc]
It works with any properties (except id/pointers). Whenever one of the property values changes, its value is sent to all connected devices and assigned to the property of the local object with the corresponding “Player1” identifier. Dead simple. And coming soon.
Learn Cocos2D Game Development with iOS 5
It’s also no coincidence that the print and PDF versions of the Learn Cocos2D Game Development book (2nd Edition) are available since a few days.
The book uses Cocos2D v1.0.1, the chapters have been significantly improved, Chapter 3 is almost a complete rewrite. There are also two new chapters discussing integration of UIKit views in a Cocos2D app, as well as adding Cocos2D to an existing UIKit app. The other new chapter is about Kobold2D and introduces Lua and Cocos3D.
Readers keep asking me when the Kindle or iBooks versions of the new edition will be out. To be honest: I don’t know. But I’m confident that there will be a Kindle version and one for iBook eventually, and I expect these to be available soon. After all the first Edition is also available through these channels, and so are most (if not all) Apress books. Plus Xmas is coming, just like most companies book publishers are eager to get their best products out the door in time for Xmas.
To put it in Apple’s words: “Taking Cocos2D to a whole new level.” I can’t brag with 200+ new features though I have a few in store that should make a big bang for no bucks! 😀
So, here speaketh the market crier for Kobold2D. What’s new and noteworthy about this version of Kobold2D, you ask?
Built-In Gesture Recognition
Recognizing gestures has never been this easy. No (speak: zero) iOS SDK knowledge required! All gesture recognizers provided by the iOS SDK are implemented:
Tap, Double-Tap, Long-Press, Swipe, Pan, Rotation and Pinch.
Scheduled for release on November 7th, 2011. Continue reading »
While writing the Learn Cocos2D book I was surprised to find that Cocos2D’s CCSpriteBatchNode was only able to increase the performance of several hundred bullet sprites on screen by about 10-15% (20 to 22.5 fps). I wanted to re-visit that scenario for a long time because as far as I understood, the more sprites I was drawing the greater the impact of CCSpriteBatchNode should be.
But even Cocos2D’s own sprite performance tests (compare columns 9 and 10) revealed a performance difference of under 20% (39 to 42 fps). It’s only when all sprites are scaled and rotated, or most of them are outside the screen area, that sprite batching seems to have a bigger impact (25 to 60 fps). Surely that scenario is not applicable to most games. So I started investigating.
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.