Since I started working on KoboldTouch a couple things fell into place. Mainly that it would:
Provide what Cocos2D leaves up to its users. Fixes what Cocos2D does badly. Adds what Cocos2D doesn’t do at all. Eases development with Cocos2D and accommodates actual developer needs.
I have a hunch most Cocos2D developers have better iOS/Mac integration and game-specific features higher up on their wish list than cross-platform. Most of you are indies, hobbyists, pragmatists and Apple enthusiasts without the need or resources to do cross-platform development.
KoboldTouch: Spiritual Successor
I first started working on KoboldTouch a few weeks back. I initially undersold it as a “MVC wrapper for Cocos2D”. With what I have in mind spiritual successor of Cocos2D is more like it.
It’s going to be a framework to program iOS & Mac games in, where best practices evolve naturally, where Cocoa programmers feel right at home, where beginners are not left in a void * EXC_BAD_ACCESS … and where Cocos2D is still at the heart of it.
KoboldTouch takes control over Cocos2D, to allows users to implement best practices naturally. Cocos2D provides the view, KoboldTouch provides the controllers, models and the framework to write your code in.
The Goals for KoboldTouch
Take the good parts of Cocos2D, improve Kobold2D and fix what’s been criticized, build KoboldTouch as a Cocoa-esque game framework around Cocos2D views, add Lua scripting and ensure tight integration with Apple’s OS features.
Little by little I want to transform Cocos2D from the rendering engine that it is and embed it into KoboldTouch, the game development framework.
But most importantly:
Developers Drive Development
Let the users guide development!
I find it crazy and sad how many times Cocos2D developers are left on their own to re-reinvent the wheel, and what kind of odd code constructs they develop to store their game’s data, to program the flow of scenes, and to exchange data and run code on various objects in the game.
Because Cocos2D doesn’t provide the framework I think it should. It doesn’t teach nor encourage game development best practices. It’s especially appalling to me because working from user requirements, making their work easier, supporting and training them and providing guidance was my job for over 10 years.
And then there’s really ugly code in Cocos2D that seriously ought to be refactored…
The Cocos2D Improvement Program
Take Cocos2D’s tilemap renderer CCTMXTiledMap for instance.
It’s slow because it stupidly draws all the tiles of each layer, whether they’re on screen or not. It consumes a lot of memory because of that, too. And weirdly enough it still uses pixel coordinates, requiring you to upscale TMX files manually or with a tool and multiply some coords with the content scale factor. And it lacks important features.
Recently I began working on an improved orthogonal tilemap renderer for KoboldTouch. I feel sorry for not having started adding these improvements and features 2 years ago:
- renders only visible tiles, plus one extra row and column to enable scrolling
- is Retina-aware, all coordinates in points, upscaling (if needed or requested) done during load
- will support following a particular game object and scroll to position
- will support parallax scrolling for tile & object layers
- will support endless (wrap-around) scrolling, configurable per layer
- will support tile animations
- will support creating game objects via TMX object properties
- will support modification to all layers at runtime
- will have a debugging overlay that renders all polygon object locations
- properties do not require string to int/float conversion
- no coordinate conversion headaches when pairing tilemap and physics worlds
These features are my current development goal. That’s the feature set I would expect from a decent Tilemap renderer.
I have more of these improvements and additions on my plate. Most should be obvious if I say that my goal is to make all the game relevant Apple APIs readily accessible to Cocos2D developers. Game Center, Twitter, Facebook, iCloud, In-App Purchases – integration and ease of development are key, not cross-platform compromises and tacked-on solutions.
Essential Cocos2D includes KoboldTouch
Essential Cocos2D is going to be a continuously updated reference documentation for Cocos2D with best practices.
But why stop there? It seems logical to bundle Essential Cocos2D with KoboldTouch, and an improved version of Kobold2D, to make it the essential service for Cocos2D developers.
Oh and by the way: Essential Cocos2D will launch on November 1st, 2012. In exactly two weeks!
Here’s where you come in!
I hate to work into the blue, not knowing if what I’m working on is necessary, useful, or even desirable. I value immediate feedback. I will happily take your requests and turn it into writing or code – the more generally helpful it is, the better.
By voting on suggestions and adding your own you can direct development of KoboldTouch and the Essential Cocos2D documentation. What code feature should I add next? Which topic should I write about this week? It’s really up to you!
I believe in the long term success for a spiritual successor to Cocos2D. One that is both a complete game engine and framework, while staying true to Apple’s platforms. Commercial with a fair price.
Sooooo … Let’s Talk About Money
Since I find it generally more comfortable to work while not having to worry about running out of caffeine (*) anytime soon, here comes the bummer:
Essential Cocos2D and KoboldTouch will be paid services.
The yearly price is $200 at $49,95 per quarter (subscription) with an option I’ll be adding later to join for a fortnight for $24,95 (single payment).
(*) Disclaimer: I recently went cold turkey and stopped consuming caffeine. I’m now actually a more productive programmer, contrary to popular belief. I still need to consume something though.
Subscription vs Pay-Once
The point of the $25 pay-once option will be that you can have a look around, get help, read the documentation, download whatever is currently available for download. Then maybe come back again in a couple months for another $25. You can continue to use whatever you downloaded in the meantime. I believe that’s a fair offer for those who are happy with a few updates per year and don’t want to subscribe.
Whereas as a subscriber, early adopter and continued supporter you not only get three months for the price of one, you will help shape the code, the documentation, everything I’m doing. You can come in any time and get help, request a feature, vote on a bug that’s blocking you, suggest a new article I should write. I’ll be sure to add bonuses for longterm subscribers over time, and I’ll work closely with you.
Plus: If you own my Learn Cocos2D 2 book, I’ll give you your money back! Save $40 per year by signing up for $39,95 (-$10) per quarter – just locate a password that’s printed in the (e)book.
Service vs Product
Why a subscription service, you might ask? I evaluated other options but frankly, I’m more comfortable running a service than selling individual products.
The reason is mainly psychological: working to satisfy regularly paying users is a lot more motivating. Especially since the goal is to make continuous improvements based on your suggestions. It also makes it so much easier to push updates by simply uploading them to the member area on my website. Lastly, the revenue is more constant and predictable.
And finally the subscription purposefully serves to limit the number of users, thus making it a better service. If more users sign up than I can handle, I will have the budget to pay fellow developers to help out with coding, documentation and support. Essential Cocos2D is designed to scale up smoothly.
You should know that Clickbank prohibits price changes for subscription products, there will be no surprises. The mandatory (!) 60-day money-back guarantee applies, too.
Kickstarting without Kickstarter
Consider Essential Cocos2D to be a Kickstarter project without the Kickstarter disadvantages!
Instead of paying on a promise that may or may not be delivered, that may or may not even get funded, you get immediate access to everything I’ve written and developed thus far. You can share your feedback with me and influence future developments and documentation. At any time you can see for yourself the value that’s already there, the value I’m adding over time and that the service lives up to its promise.
I’m aiming for 150 subscribers by May 2013 (6 months). That’s really all it takes to make the project feasible indefinitely. The more subscribers the more opportunities I can seize to speed up progress!
More budget certainly helps, and I’ll be sure to invest that back into the service one way or another. I’m not afraid to outsource individual tasks or hire developers. Ultimately I’m a limited resource, cloning is still not an option (damnit, science!) and there are so many great ideas to pursue.
I should mention that you can help achieve this goal! Sign up for free as Affiliate with Clickbank, put up an affiliate link on your website and/or blog about it, and you get 30% (about $13.50 for $50) for each subscriber referred by you. For every rebill, too! More info on Nov 1st.
Christmas is on November 1st this year! I’m looking forward to welcoming you in two weeks.
|Follow @gaminghorror||Follow @kobold2d|