I’m done writing the Tome of SpriteBuilder.
There’s only edits and reviews left, page proofing and then it goes out to print. Meanwhile, I’m cleaning up and extending the Bouncy Beast project for its App Store release.
Time to share some insights as I haven’t been able to slice some time off to write about the process as I originally intended to.
What’s in the book?
The book will guide you through the creation of a physics-driven, parallax-scrolling game with the help of SpriteBuilder, Cocos2D (cocos2d-swift) and Objective-C. The level-based structure will enable you to add more content to the game, even without writing additional code.
As your guide I will walk you through the individual steps necessary to create the game project. Along the way I’ll explain the SpriteBuilder features, caveats, workarounds and helpful tips and tricks as you are most likely to come across or need them.
At the end you’ll have a complete game reminiscent of games like Badland.
The game also runs on Android devices thanks to Apportable’s Android plugin for SpriteBuilder.
The Bouncy Beast project’s source code will be available.
Bouncy Beast Demo Video
Here’s a video demonstrating the game. Notice the subtle particle effect on the main menu’s background, the paginating scroll view, the soft-body player character.
NOTE: the suboptimal framerate in the video is 100% attributable to the iOS Simulator from which I recorded the video. On an iPod touch 5G the game runs with a constant 60 fps.
Since the announcement of the Learn SpriteBuilder book I’ve submitted the first three chapters to Apress.
Actually it’s chapters 2 through 4 because I’ve learned that the details in the first chapters tend to change significantly. This includes version numbers but also highlighted features, tool and project names, and so on.
Following is a summary of each chapter thus far.
Chapter 2 “Laying the Groundwork” first introduces the SpriteBuilder user interface but also Cocos2D (-iphone/-swift) programming basics. I really went above and beyond existing SpriteBuilder user interface tutorials to explain even the smaller details that boggled my mind when I was learning SpriteBuilder. You’ll learn the difference between Scene, Node or Layer CCBs. The effect of position, content size and scale modes (points, UI points, %, insets). What all the nodes are and what they are used for. But also how to make the code connections and what the difference between CCBReader load and loadAsScene is. The importance of Sub File nodes and the Tileless Editor View.
At the end you’ll have a firm grasp on SpriteBuilder basics and a project framework with two scenes and transitions between both scenes. Continue reading »
Continue reading »
Over the course of the book you will create a level-based, parallax-scrolling game that’s not unlike Badland with some elements from Leo’s Fortune. The game will be complete with main menu, settings, level selection, pause and game over menus, music and sound effects, and room to extend the game with your own ideas, levels, code and other content.
Learn SpriteBuilder is not a direct sequel to ‘Learn Cocos2d’; its focus is on teaching efficient workflows with SpriteBuilder and demonstrating the connection between SpriteBuilder and cocos2d-iphone v3 (now known as cocos2d-swift). Still there’s plenty of Objective-C code necessary to build an iOS game and I’ll take extra care to explain it well, in particular the new Cocos2D v3 features.
The Learn SpriteBuilder book is aimed at beginning to intermediate Cocos2D and SpriteBuilder developers but also experienced Cocos2D developers who are interested in learning more advanced concepts. Among them are the new visual effects system currently in development for Cocos2D and a fully textured, deformable soft-body player character.
Three chapters alone are dedicated to physics editing with SpriteBuilder and physics programming with Objective-Chipmunk.
Frequently Asked Questions
Please leave a comment if you can’t find your question answered in this FAQ. Continue reading »
Continue reading »
… but not quite out yet. If you can’t wait until August 29 you can always buy the Alpha eBook version now (as PDF) and receive the final eBook version for free (as PDF, ePUB and MOBI) when it’s available.
I’ve updated the book’s product page and included links where you can download the source code for the 3rd edition.
Learn cocos2d 2 (Third Edition)
Release Date: August 29, 2012
Cocos2D v2.0 is used throughout the book. To my knowledge this makes the Learn Cocos2D 2 book the first book to cover cocos2d-iphone v2.0.
ARC (automatic reference counting) is used exclusively in the book. All descriptions and source code projects have been updated to ARC, and 12 Cocos2D ARC-enabled Template Projects are included in the source code download. The book contains a description on how to enable ARC in a cocos2d project. Working with ARC means having to write and learn less code while being able to write faster code with fewer bugs. Win, win, win.
You can now also follow the book while using Kobold2D. Any differences between cocos2d v2.0 and Kobold2D v2.0 are explicitly mentioned in the book. In fact, you’ll have to work through less text and code if you use Kobold2D.
The book’s source code is compatible with Xcode 4.4, Mac OS X 10.8 Mountain Lion and iOS 6. It is of course also tested to work with Xcode 4.3, Mac OS X 10.7 Lion and iOS 5.
Learn more about the Learn Cocos2D 2 book here.
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.
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:
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.
Scheduled for release on November 7th, 2011. Continue reading »
Continue reading »
Learn Cocos2D 2 (Third Edition)
Release Date: August 29, 2012
Also explains TexturePacker, PhysicsEditor, Tiled, Glyph Designer, Particle Designer and other tools. Source code is compatible with Xcode 4.4, iOS 6 and Mountain Lion (Mac OS X 10.8).
Download Source Code (3rd Edition):
Cocos2D Source Code (ARC) (Cocos2D v2.0; includes 12 Cocos2D ARC templates)
Explains Cocos2D v1.0, introduces Cocos3D and Kobold2D. Also explains TexturePacker, PhysicsEditor, Tiled and other tools. Source code is compatible with Xcode 4 and iOS 5.
Create compelling 2D games with Learn cocos2d 2: Game Development with iOS. This book shows you how to use the powerful new cocos2d, version 2 game engine to develop games for iPhone and iPad with tilemaps, virtual joypads, Game Center, and more. It teaches you:
- The process and best practices of mobile game development, including sprite batching, texture atlases, parallax scrolling, touch and accelerometer input.
- How to enhance your games using the Box2D and Chipmunk physics engines and other cocos2d-related tools and libraries.
- How to add UIKit views to cocos2d and how to add cocos2d to UIKit apps.
- The ins and outs of the Kobold2D development environment for cocos2d and its pre-configured libraries, including Lua.
Best of all, this book will have you making games right from the very start. It guides you step-by-step through the creation of sample games. These fun examples are modeled after popular App Store games and teach you key concepts of the new cocos2d 2 game engine and relevant tools like TexturePacker (texture atlas), PhysicsEditor (physics collision shapes), Particle Designer (particle effects), Glyph Designer (bitmap fonts), and others.
This book offers a rock-solid introduction to creating games made entirely with cocos2d and little or no iOS SDK and OpenGL code. It also details alternative implementations, identifies the best free and commercial tools for cocos2d game development, features coverage of the author’s improved cocos2d game engine (Kobold2D), and even helps you enhance your game’s marketability on the App Store.
Who this book is for
The book is aimed at beginning game developers looking for an easier and even more powerful way to create compelling 2D graphics using OpenGL and Objective-C. It is assumed that the reader will have some knowledge of object-oriented programming and the Apple and iPhone/iPad developer environment.
Learn Cocos2D Book Reviews
Today, after several delays I finally got around to start updating the Learn Cocos2D book to its second edition. The second edition is due to be published in summer, likely in July/August.
I decided I’ll easy myself into it and start by updating the first chapter. There’s no code and relatively little to change. The biggest addition here is the list of popular Cocos2D game engines I wanted to add. Here’s a screenshot of the comparison table I added:
Note: the link to cocos2d should have been http://www.cocos2d.org
The list doesn’t include all of the cocos2d ports, just those that are mature, stable and relatively up-to-date. I also completely removed the paragraph about Section 3.3.1 because that topic fortunately is no longer an issue.
Next I started to go through all of the 108 erratas that were posted on the Apress site. If you’re interested, here’s the errata list as xlsx or as csv file with emails and names of reporters removed.
I knew that there were duplicates but I didn’t expect over 50% of the errata to focus on only two things: the mixed up images 3-1 and 3-2 was by far the most often reported errata. Following that were two packs of spider variables either not being declared or not being initialized in chapter 4. Those led to compile errors in one case and non-dropping spiders in the other – if you were typing in the code straight from the book.
After I had removed all duplicates I was left with 28 unique and usable errata items that I’m going to look into, and 14 of those I was able to fix today.
Once I’m done with those I’ll be going through the painstaking process of updating no less than 72 Xcode projects from cocos2d v0.99.3 to v0.99.5 to cocos2d v1.0. Or maybe I’ll just wait a couple more days for the final v1.0.