Cocos2D V3.0.0 RC3 release

icon-goldI am very happy to announce the release of Cocos2D V3.0.0.rc.3.

For the last couple of weeks, activity in the forums has picked up and a lot of people have started using V3. In those weeks, the Cocos2D development team has been working on two things:

1) Fixing the issues you guys reported

2) Working on 3.1

Apart from that, we’re making great progress on SpriteBuilder integration. Cocos2D is more and more becoming a full blown cross platform game development suite.

Our plan is to keep updates coming at a steady rate. We will maintain backwards compatibility in subsequent 3.x releases, while at the same time providing you with new functionality without the need to dig into development branches.

Check out the Getting Started page for more information and downloads.

Edit March 12.
Cocos2D has been updated with RC4

Edit April 11.
Cocos2D has been updated with RC5

Posted in cocos2d | 28 Comments

Choosing a backend

Note:

The guest post was written a couple of months ago, but due to the release of V3, it has been delayed until now. In the meantime, the company StackMob has announced that it will discontinue its services. The observations and thoughts behind selecting a BaaS are still valid though.

Written by @principe

principeWith the availability of BaaS (Backend as a Service, red) like Parse, StackMob, Kinvey and many others; developing a game powered by a server has never been easier. As most people know we indie devs usually suffer from a lack of resources to fund specialised expertise in particular areas needed to complete a game. For me one of those areas was server-side programming and management. While I’ve had some experience working on server side programming with Java, it’s really not something that I (or most devs) want to deal with. It’s a huge beast to tackle, especially if you’re like me working as a one-man team.

For my second app, Ention Wars, I needed a server to help manage game data and deliver the experience the game needed to deliver to customers. So I was faced with few options, either learn to build/manage a server on my own (learning curve + lack of expertise), hire someone else (costly) or use a BaaS (least risky). The choice was obvious, so I had to use a BaaS.

Before I talk about picking and choosing a BaaS and advice on finding the right one for you, please note that my perspective is coming from an indie dev who had little expertise on advanced server management and had little knowledge about BaaS when I first started.

Initial Decision
At first picking a BaaS seemed easy, I just had to read a few guides, take a look at the APIs and choose one that was the easiest to implement. For a while this was what I used to choose my backend provider and at the time it was sufficient. For most devs this is very likely the only factor (along with price) that they will consider before they choose one, at least initially. With this initial phase you can expect spending about a day at most to get everything hooked up and ready to go, since most of these services offer very user friendly documentations that makes it easy for us.

Challenges
For me the real challenge was when the complexity of my game increased. Initially all I had to worry about was the schema and calling APIs but when I had to add additional backend requirements it became clear that some BaaS services are more suited to certain projects than others. My consideration set for BaaS extended from usability and price. I had to consider API Requests & limitations, image storage services, push notification limits, in-app purchase server validation, social media integration, analytics, custom server side code, exportability of data and support. So as you can see the list of factors to consider grew quite a bit. But I can assure you these are extremely important factors to consider.

Choosing a BaaS
I narrowed my initial choice for a BaaS based on popularity, maturity, usability and those that didn’t require me to step out of the Objective-C language; at the time the two BaaS that fit the bill were Parse and StackMob. I’ll talk about some of the factors I mentioned above below.

API Request & Limitations
For me this was the most important factor. Because the nature of the game I’m building requires constant requests to the server, I had to choose a BaaS with the best offering for API requests otherwise it could be very costly for me. StackMob offers unlimited API requests and does not impose burst limitations on you. Parse introduced additional limitations where the number of requests are limited per second. You have to write additional code to test and make sure you handle an error they give you when you hit this burst limit.

I tried implementing both and honestly I spent almost a whole month debugging and trying to get StackMob CoreData working perfectly. At the time it had several issues that made it hard to manage, especially for someone who did not specialize in CoreData. Parse took about two days to implement, but with the API request and burst limitations I found myself having to write additional code to minimize the API requests. I spent a week rewriting code and in some instances game logic, in order to cater for Parse’s API request limitations. At a later stage I realized that I didn’t actually need to use StackMob’s CoreData, they have a simpler and much easier to implement DataStore API, (in terms of usability it’s on par with Parse’s APIs) which is what I ultimately used for my game. It took me about 2 days to reimplement the logic from Parse to the StackMob DataStore API, and of course zero cost of unlimited, unrestricted API requests.

Support & Community
Initially I didn’t care too much about support because I often just figure it on my own with Google, but sometimes you just need to look for support that you can only find from that BaaS’ website. Honestly I found it difficult to get support and find specific solutions with StackMob. The community is just not as active and now they’ve started charging a ridiculous price a month for priority support. At times even for basic support you could find yourself waiting two weeks to get a reply, which can delay deadlines. With Parse I found it very easy to find answers that I needed to know and the replies to my questions were responded to hastily, free of charge of course. So if you’re choosing StackMob, get that coffee ready, keep a level head and get used to Googling.

Data Flexibility and Management
This ties in a bit with my point above because with StackMob you can’t simply export your data or transfer them from the DEV environment to PROD because they don’t provide the option for you. You would have to contact them directly, which to this date I have not been responded to. So I’ve had to manually transfer data that I needed to from the DEV environment to PROD prior to release, otherwise I wouldn’t have been able to release the app. Make sure to plan ahead for this one, hopefully they’ll change this in the future. When I moved from Parse it was very easy to export my data and there was no need to hassle the busy Parse team about exporting data.

Image Storage Services
If you’re creating an app that requires image storage services, StackMob uses Amazon S3 so you’re bound by bandwidth limitations there (ultimate cost of around $500+ a month for a big app 100MB per user allowance). I believe Parse doesn’t limit bandwidth, but of course you’re limited by API request and burst. For my game I thought about using this to reduce the initial download size of the app for 3G networks, but ultimately ignored this factor. Just remember if you’re going with Parse consider the burst limit of initial users all downloading images for your app on launch day. There is a limit of 20 requests per second for the free plan and 40/second for $199 a month. The exact specifications of how this is calculated is a bit of a mystery, it hasn’t been revealed by Parse.

In-app purchase validation
For this I use Parse to validate my in-app purchases. Parse offers a built-in API for this, which makes it extremely easy for us devs to validate purchases and reduce the number of ‘hacks’.

Final Choice
So with so many different factors to consider and plenty of options (and competition) among BaaS which one should you pick? I think it personally depends on the project. Ention Wars needed to have unlimited API requests because I simply can’t afford the number of API requests I needed to feel safe, so I went with StackMob for my core BaaS service. But I use Parse for in-app purchase validation and other things. I figured that it will be impossible to consume 1 million API requests a month for in-app purchases, so I should be okay there. Like me you can always use multiple BaaS if you want; if you don’t mind a bit of complexity. The competition is intensifying out there so it’s only good for us indie devs to get the best offerings. To those reading this blog post good luck with your project and choosing your backend provider! Hopefully my experience going through this has given you a bit of insight into the factors to consider when choosing a BaaS.

-

You can visit principes site here

You can find Parse here

Posted in cocos2d | 2 Comments

Cocos2D V3 RC2 release

rc2RC2 is ready for the road.

While you guys have been toying with RC1, we have been busy preparing the next release. RC2 fixes mainly a lot of the issues you have stumbled upon when firing up RC1.

You can download it here, or check the release notes on the download page.

We have been looking into making an RC1 -> RC2 patch, but currently the best option for updating RC1 to RC2 is simply to remove the entire Cocos2D folder from the project, delete it, and add RC2 instead.

Also, don’t miss the official Cocos2D Facebook launch.

Posted in cocos2d | 1 Comment

Cocos2D V3 RC1 release

angryWe are excited to announce the coordinated release of Cocos2D V3 and SpriteBuilder 1.0!

This release of Cocos2D brings three major improvements to the Cocos2D community: SpriteBuilder, which is a professional GUI editor for easy iteration on games; Chipmunk2D integration for rapidly developing physics-based games; and Apportable support out-of-the-box for all this, so that your Objective-C games can run on Android!

We have spent quite a lot of time on making the first hour with Cocos2D as easy and pleasant for newcomers as possible. We have included a fully automated installer which will make sure that documentation is properly installed. On the getting started page, you will find detailed information on how to get up and running.

Cocos2D itself has received a major overhaul and many new improvements.  Most noticeably Chipmunk2D physics is now a fully integrated part of Cocos2D and SpriteBuilder. Amongst other things touch handling has been completely revamped, with fully updated “at your fingertips” documentation now available for all classes.

For a more detailed list of changes, see the release notes.

As for the future, the plan for Cocos2D V3 is to keep a steady flow of updates. What we have tried to aim for in V3.0 is to make all the necessary changes to the interface so that future V3 updates will be backwards compatible.

Some of the things we initially wanted to do did not make it into this first V3 release. Steps like adding a centralized render engine and improved asset handling are well under way, but need more polishing and testing before they will make it into a release.

 

The Cocos2D Authors hope you will enjoy using Cocos2D as much as we enjoyed making it.

Posted in cocos2d | 21 Comments

Build a physics game in 9 minutes with SpriteBuilder

Version 3 of Cocos2d will be released with a first version of SpriteBuilder. SpriteBuilder  allows you to graphically edit your resources, scenes, animations, particles and physics. In the beginning of November an alpha version of Cocos2d and SpriteBuilder was released. To get a taste of what you will be able to do with the new Cocos2d and SpriteBuilder, we put together a screen cast. See how you can build an Angry Birds style game in 9 minutes!


Posted in cocos2d, editors | 39 Comments

Cocos2D version 3 preview

ccs2d_icon_02c

The Cocos2D-iphone team is very excited to share what we have been working on for the last couple of months; namely the first preview version of Cocos2D version 3.

Version 3 will be the most extensive update to Cocos2D up to this day! This preview is still in alpha, and is not yet meant for use in production. Instead the idea behind the release, is, to collect feedback on the features and API, before everything is finalized.

 Together with the release of Cocos2D, a first version of SpriteBuilder is released. SpriteBuilder is developed out of CocosBuilder, with a focus on improved user experience and new features. SpriteBuilder will manage your resources, graphically build your scenes and levels, do your animations, and your particle systems.

Highlights of Cocos2D version 3:

- Starting with version 3, Cocos2D will conform to semantic versioning. This means that point updates will not break backward compatibility.

- The whole API has received a thorough spring cleaning. Private properties have been hidden, naming is more consistent and old broken or unused classes have been removed.

- Much improved touch handling. Any node can now handle touches and multiple touches can be handled on a per node basis.

- Physics has been integrated with Cocos2D and will work seamlessly with your sprites or any other nodes. Best of all, it’s all Objective-C!

- Cocos2D now comes with a UI kit. Add your buttons, text fields, scroll views or sliders with only a few lines or code.

- Improved multi-resolution support. With the new positioning and scaling options making your game work on different form factors, such as tablets and mobiles is a breeze.

- Graphical editor support. Integrated support for SpriteBuilder, where you can lay out all your interfaces, components and even edit your games physics.

- Much improved truetype labels that support outlines, shadows and attributed strings.

- Official cross platform support through Apportable. Your games will now compile for native Android without modifications!

We still have a few awesome surprises up our sleeves for the final release of Cocos2D version 3, but this is the point where we need the help of the great Cocos2D community to get feedback on the API and help us iron out the bugs.

The Cocos2D-iphone team.

Please see the download tab for details on downloading and installing. 

 

 

Posted in cocos2d | 39 Comments

Cocos2D + Chipmunk2D = <3

chipmunk

By Andy Korth and Scott Lembcke. Howlingmoon Software.

Good news everyone! Cocos2Dv3 will have an official, fully integrated, Objective-C physics engine.

One of the big features that Lars wanted to implement for Cocos2Dv3 was an easy to use, integrated physics engine. Cocos2D has supported external physics engines and even provided some utility classes to work with them, but what if the physics was built in at a basic level and really easy to use? Cocos2D’s new physics API takes cues from Sprite Kit’s deep and easy integration.

Apportable is now sponsoring the Chipmunk2D developers to integrate physics into Cocos2D. Even better, the Objective-Chipmunk2D, the official Objective-C wrapper for the Chipmunk2D physics library is being open-sourced! Formerly a paid part of the Pro version of Chipmunk2D, it provides a pure, easy to use, Objective-C physics API. You’ll no longer need to write any C or C++ code to work with physics.

Cocos2D will expose a simple to use API for working with physics that is directly integrated into the basic classes like CCNode and CCScene. It will make it very easy to add things like gravity, collisions and joints to your game.

“Simple to use” is a phrase often used to describe something that isn’t very powerful or flexible. Sprite Kit’s physics certainly fits this. If CCPhysics turns out to be too simple to do what you need, you can always dig deeper and use the full power of the Objective-Chipmnk2D library and still write Objective-C physics code! Everything is open-source, and there will be no black boxes to keep you guessing how something works or that prevents you from doing what you need to do. It’s also in the plans that CCPhysics will provide a number of features that are curiously absent from Sprite Kit such as debug rendering, collision types, or a collision detection only mode.

So what’s next? Over the last couple of weeks, a lot of work has been put into implementing some of the features that were planned for Chipmunk 7 such as wildcard collision handlers, automatically creating convex polygons for shapes, automatic mass calculation and more. Work has also already begun on the CCPhysics implementation, and we should have something to demo in a week or two!

 

Posted in chipmunk, cocos2d | 8 Comments

Noodlecake and Apportable have joined forces

noodlesI actually never was a big fan of cross platform development. Especially not for us indies. I mean. What good is it to be a fine tuned artist with your favourite programming language, when cross platform forces you to paint with a floor mop? 

All this changed though, when the first one-button Android converters started to surface. The latest development in this field, bodes even better for the future.

With Ryan Holowaty from Noodlecake’s own words.

Over the past year we have been working hard porting and publishing iOS games to Android for amazing indie devs all over the world.  With each game our publishing network and promotional power continues to grow which resulted in some amazing success stories for games like Happy Jump, Zombie Road Trip and Punch Quest, just to name a few. To date we have launched 6 games on iOS, over 30 titles on Google Play, grown our iOS and Android network to over 45 million players internally and over 150 million externally due to partnerships with other indie friends.  And with all this we even somehow managed to launch our own long awaited sequel, Super Stickman Golf 2 in the process.

There is one game though fans have been waiting for us to release and we are happy to announce that the 2d crafting hit The Blockheads will be finally be coming to Android in September!  We have been working hard on the port over the past few months but admittedly with everything going on, it was taking longer than we wanted.  The Blockheads is a huge game and on top of that devs are coming to us with bigger and better games to port and publish theses days.  So we figured we figured it was time to add some more ammunition to our inventory.

That is why we are excited to finally announce that we have been working with the fine folks over at Apportable to level up both our services.  Apportable, like us, has been working on porting tech to bring iOS games to Android.  However our focus was never to use the tech for porting only, but instead build an indie friendly publishing network that also ported games if need be.  Being indie devs we know it can be tough sometimes to market your game and get noticed.  So we figured we could use our experience to help out in that regard along with the porting, support and all that “fun” stuff that comes with Android.

By sharing technology with Apportable, we are able to work together to build out better services for both our companies.  It gives us additional porting tools on top of our own and they get a preferred publishing partner in Noodlecake Games for anyone who is looking for it.  Our porting technologies were so similar but we each wanted to do different things with them, so this seemed like a no brainer partnership.

So the big question is, does this change anything for our friends or soon to be dev friends moving forward?  Frankly no.  Our day to day service of porting and publishing great games is not going to change.  However with the added collaboration of Apportable, we can ensure that what we offer is the best it can be and Apportable has an outlet to send developers in need of additional exposure. Win win.

Team Noodlecake

Posted in cocos2d | 7 Comments

Welcome Birkemose, the new cocos2d-iphone lead developer / maintainer!

Please, join me in welcoming Birkemose as the new cocos2d-iphone lead developer / maintainer!!

I guess he needs no introduction, but in case you don’t know him:
– He has been one of the most active users in the lasts years
– He has been helping us with insightful (and humorous) comments, and source code
– And last but not least, he cares about cocos2d-iphone and its community

All the best in this new role Birkemose!

Discussion here

Posted in cocos2d | 7 Comments

cocos2d-iphone v2.1 released, and more!

We are happy to announce the fifth coordinated release of the cocos2d family. We are releasing:

  • cocos2d-x v2.1.4
  • cocos2d-html5 v2.1.4
  • cocos2d-iphone v2.1
  • CocosBuilder v3.0-alpha5

Our goal is to provide a complete toolchain for developing multi-platform games both for Web and Mobile, all the way from rapid prototyping to a finished high performing game.

cocos2d-x

Download

Highlights

  • Added support for XMLHttpRequest and WebSocket on JSB
  • Added support for encoded JavaScript files and add command line tool for generating javacript code
  • Upgraded Spidermonkey to v21
  • Added support for Emscpriten and Tizen port, usage of Emscpriten and usage of Tizen
  • AssetsManager downloads resources in a new thread
  • CCLabelTTF supports shadows and stroke
  • Added support for ETC1 image format on Android
  • Added many test cases for Lua bindings
  • Added more plugins: weibo, twitter

More information

Read more about all the new features at cocos2d-x v2.1.4 release notes.

cocos2d-html5

Download

Cocos2d-html5-v2.1.4.zip

Highlights

  • Added support for multiple resources loading, please refer to the document Mechanism of Loading Resources for usage. This mechanic is the same as cocos2d-x now
  • Optimised “Performance Tests -> Sprites Test”, and increased its benchmark to 220%! Yeah, 2.2 times faster than before!
  • Migrated audio (CocosDenshion) API to keep the same as Cocos2d JS API
  • Added auto test for NodeTests and TilemapTests
  • Changed CCTextureCache member functions such as addImage(path), addImageAysnc(path), removeTextureForKey(key) from using relative path to absolute path
  • Added support for particle batch node

Note

Our working branch on github repository (https://github.com/cocos2d/cocos2d-html5) is moved from “master” to “develop”, while “master” branch will only hold the latest stable release. Please send all pull requests to the “develop” branch from now on.

More information

Read more about all the new features at Cocos2d-html5 v2.1.4 release notes.

cocos2d-iphone

Download

Highlights

  • CCLabelTTF supports shadow and stroke
  • Added CCEasePolynomialXXX actions

More information

Read more about all the new features at cocos2d-iphone v2.1 release notes.

Continue reading

Posted in cocos2d | 3 Comments