Kobold Kit Progress, KoboldTouch Update

On July 11, 2013, in idevblogaday, by Steffen Itterheim

This post will be unusually short because I’m going on vacation tomorrow (July 12th) and won’t be back before July 22nd.

I’ll use this post for a quick progress report on Kobold Kit.

Kobold Kit Progress

Kobold Kit is going more and more in a rapid-development direction, with fewer interruptions. Here’s the corresponding video to that:

It is also heavily gearing towards tilemap rendering and physics integration. We’re making a game with Kobold Kit which will become a Platformer Starterkit as well as a published game. It will also be featured in an upcoming book.

When I say we, I mean that a former colleague of mine (Marcus) has teamed up with me. He’s a game designer and Tiled user, so I get lots of good feedback on how to improve and move things in the right direction. You’ll see more of his work when we’re both back from our vacations in August.

The fact that I haven’t posted on the koboldkit.com blog for a week only means we were very busy making lots of smaller improvements to the platformer game we’re developing. I’ll be away for 1 week so I wanted to ensure that Marcus can get some work done while I’m away.

This is one other plus about this partnership: Kobold Kit will decouple as many tasks as possible from programming work and offload them to editing tools, configuration files and scripting. These improvements are beneficial to the programmers as well because they enable or speed up rapid prototyping.

And if you do happen to work with designers, your attention will not be required as often. If you haven’t done so in the past, you probably can’t appreciate what that means. But try anyway. 😉

Since Kobold Kit is so heavily integrated with Tiled, we decided to sponsor Thorbjørn Lindeijer and Tiled beginning August 1st. I also sent him my old Mac mini so he can setup daily builds for OS X.

We have also secured several sponsors ourselves, and we’re very excited about one in particular, but we don’t want to spoil the fun with a premature announcement. All in due time.

PS: In case you haven’t built the latest Tiled source code: you’re seriously missing out on the reworked properties pane (no longer a modal dialog). Here’s a OS X build of the Tiled source code (June 29th) if you want to give it a try. Thanks to Andreas Löw who built it for me.

KoboldTouch Update

I have received very little support or feature requests in the past weeks. I take this as a sign of maturity. At this point development on KoboldTouch is on hold until some time after the release of Sprite Kit (iOS 7). I will tend to serious bugs of course, and already made a compatibility fix for iOS 7 and Xcode 5.

I can’t say whether KoboldTouch will continue to incorporate cocos2d v3 or not. This depends on too many hard to predict variables:

Will cocos2d-iphone v3 be competitive compared to Sprite Kit and still used by a considerable number of developers? Will users be interested enough in an MVC framework with extras? Will cocos2d v3 perhaps take the chance and improve in ways that make KoboldTouch much less attractive? And how much or for how long is development time best spent (exclusively) on Kobold Kit, how much danger is there in splitting efforts?

I take a “wait and see” approach. The hope I have is that cocos2d will trim down its own API and copy the Sprite Kit API and behavior to become a natural, seamless “upgrade path” for Sprite Kit developers (drop-in replacement).

It won’t work any other way, or would you willingly switch from, say, MapKit to an open source alternative (route-me)? Only if you absolutely have to, am I right? Though the only “must have” feature that cocos2d will always offer over Sprite Kit requires an advanced skill set to exploit it in the first place.

But all of that is speculative at this point. If you’re a KoboldTouch developer or want to become one, you’ll get the support as always and you’ll be able to publish your game two years from now. That’s guaranteed.

As KoboldTouch user you’re also going to be Kobold Kit customers, I won’t charge KoboldTouch users twice. And if you want early access to Kobold Kit, sign up to Kobold Touch and check the forum. Since I can only unlock you manually you’ll have to wait until I’m back though.

Signing up to KoboldTouch now makes perfect sense because you’ll pay forever less than Kobold Kit customers, and it helps our efforts in more ways than just financially.

See you in 10 days!

Generate Tilemap Physics Collision Shapes with Cocos2D

On June 1, 2013, in idevblogaday, by Steffen Itterheim

Screen Shot 2013-05-31 at 00.59.01 You have a tilemap and you want physics collisions on it? The solution seems obvious: create a rectangle shape for every blocking tile.

But ouch! This solution is not just hugely wasteful and unnecessarily slows down the physics collision code, it also introduces the well known problem of characters getting stuck even on flat surfaces.

This is in particular a problem for Box2D because its collision mechanic doesn’t work well with flat surfaces subdivided into smaller segments (rectangle shapes in this case).

A workable but still very awkward solution to work around this behavior is to create characters with bevelled edges at the character shape’s bottom at the risk of bopping characters as they walk about the map.

Lupines in the Moore Neighborhood

A good solution to generate physics collisions is to implement the Moore Neighborhood algorithm to generate chain shapes which are more suitable for tilemap collisions. The downside is that adding or removing individual blocking tiles at runtime requires updating the shapes – this is not implemented in this project.

Every flat surface, no matter how many tiles form the surface, will then consist of only one straight collision segment. Here’s a quick demo video of the project discussed in this post that shows the algorithm at work and the resulting “game”:

Continue reading »

Cocos2D Developer Survey Results

On November 16, 2012, in idevblogaday, by Steffen Itterheim

For the past two weeks I’ve been running a Cocos2D Developer Survey. As of today, 236 developers started the survey and 189 finished it completely. That’s 80% despite the many questions they had to answer.

Here are the results with my observations. I started the survey also to see if I was on track with KoboldTouch, and whether certain assumptions hold true. Specifically I had a hunch that cross-platform development is only perceived to have great value or appeal. Let’s see if I was right.

Click on each image for full resolution.

Who are you?

I was very curious how many cocos2d developers consider themselves to be hobbyists and indies compared to professionals, who either work for a mobile developer or are taking on freelance jobs as one.

Almost half of those who answered the survey are hobbyists. Nearly 30% consider themselves indies who make a living making mobile games. This is great!

Continue reading »

The Complete (?) List Of Cocos2D Tools

On June 24, 2011, in book, cocos2d, tools, by Steffen Itterheim

For the second edition of the Learn Cocos2D book I compiled an alphabetically sorted list of tools that developers can use for cocos2d projects. Please let me know if there’s a tool missing from this list or if there’s one that won’t work anymore and hasn’t been updated in months.

The following tools can be used for development with cocos2d:

Bitmap Font Tools

BMFont (Windows)
Fonteditor
Glyph Designer
bmGlyph
Hiero
LabelAtlasCreator

Particle Editing Tools

ParticleCreator
Particle Designer

Physics Editing Tools

Mekanimo
PhysicsBench
PhysicsEditor
VertexHelper

Scene Editing Tools

CocosBuilder
Cocoshop
LevelHelper

Texture Atlas Tools

DarkFunction Editor
SpriteHelper
TexturePacker
Zwoptex

Tilemap Editing Tools

iTileMaps
Tiled Map Editor

iTileMaps: TMX Tilemap Editor for iPad

On May 3, 2011, in tools, by Steffen Itterheim

iTileMaps developed by Vsevolod Klementjev is a Cocos2D app for iPad that allows you to edit tilemaps in the TMX format, the same format used by the popular Tiled Map Editor.

Although built with Cocos2D the tilemaps created with iTileMaps can be used with any game engine that supports loading the TMX format. To get ahold of the tilemaps created with iTileMaps you can export them directly to your game or send them via e-mail. Great for designing levels on the road!

Check out this fast-forward movie to see it in action:

Check out the iTileMaps website and/or get it on the iTunes App Store.

Tagged with:  

Continuing with yesterday’s Box2D Car demo I’d like to stay on the topic of Box2D and present to you the Tilemap based Box2D world put together by theTconcept, a website hosted by a group of italian and mexican designers, writers and coders.

In their tutorial they explain how to create Box2D collisions from a Tiled Map Editor world, by using the object group layer. The one you can use to place arbitrary rectangles on in Tiled. The resulting Xcode project is available for download.

Tagged with:  

cocos2d Book, Chapter 11: Isometric Tilemaps

On September 6, 2010, in Announcements, book, cocos2d, by Steffen Itterheim

Chapter 11 – Isometric Tilemaps

After Chapter 10 introduced Tiled and working with orthogonal tilemaps it’s time to step things up a notch and delve into isometric tilemaps. It starts with basic principles of isometric tilemaps and editing before going into detail on what’s different code-wise compared to orthogonal tilemaps. Obviously this has to include how to determine which isometric tile was touched and how to move a character across an isometric tilemap.

Summary of working on Chapter 10 – Working with Tilemaps

This chapter introduces you to tilemaps, what they are and what benefits and tradeoffs they provide. Without a doubt the most popular editor for tilemaps for use with cocos2d is the Tiled Map Editor. I explain how to use it over several pages before going into code and actually loading your first tilemap using cocos2d’s CCTMXTiledMap class.

Loading a tilemap is just half the story. You’ll also learn how to manipulate the tilemap layers and individual tiles, as well as scrolling the tilemap and centering the touched tile on screen. The code takes care that the tilemap is never scrolled outside its boundaries.

While working with the Object Layer feature of Tiled (CCTMXObjectGroup in cocos2d) I noticed it’ll be handy to display the rectangles on the screen. So you’ll also learn a little custom drawing using OpenGL ES respectively cocos2d’s wrapper functions in CCDrawPrimitives.

Tagged with: