TilemapKit for Cocos2D-X (early access, 33% off)

Update: TilemapKit++ for Cocos2d-x is now available as early access for 33% off ($50).
Update: Take the TilemapKit survey to get a “20% off” coupon code for TIlemapKit.

TilemapKit is a complete TMX tilemap renderer and supports all map orientations, all stagger variants, all layer types, tile animations, tile to/from screen coordinate conversion, TMX writer, normal-mapped lighting support, pathfinding (via GameplayKit), multiple tilesets per layer, tilesets as individual files or atlas, render only visible tiles, no map size limit, and many more features.

In short: TilemapKit has everything TMXTiledMap has, plus everything that Tiled offers but isn’t supported in TMXTiledMap, and it probably already has most of the things you find lacking in TMXTiledMap and those it doesn’t I will try to add, plus the promise that you’ll find the latest features in Tiled quickly supported by TilemapKit.

I’m just about to launch TilemapKit for SpriteKit/Cocos2d (ObjC codebase) and already begun porting it to C++.

In the meantime please express your interest in a Cocos2D-X port of TilemapKit, this has the added benefit of keeping me motivated. :blush:

Check out this (now outdated) teaser. Still working on a new trailer showcasing the latest features like tile animations, normal mapped lighting support and pathfinding (via GameplayKit but other cross-platform solutions are a possibility, if not a necessity).

Visit http://tilemapkit.com for more info and the latest news.

If you have any questions, suggestions and what not, please leave a message or contact me via contact@tilemapkit.com

3 Likes

Nice. I look forward to checking this out when it is ready.

Just something to show off: normal-mapped lighting testmap running on Apple TV. :smile:

Of course this is SpriteKit but I’m sure Cocos2d-x will support Apple TV. And it does support lighting, right?

ha, way to go :slight_smile:

1 Like

The engine supports normal mapping, at least with 3D meshes and with Materials (essential easy usage of custom shaders), but definitely not for TMXTiledLayer. We do have a custom tilemap renderer (the default one is only adequate, especially for Isometric) and added our own vertex and normal map lighting along with fog of war support, chunking, and batching (FastTMXTiledLayer does culling and row-based batching now). We’ll prob. release ours as open source in the future as I’ve been on discussions about it a number of times in the last 2 years.

Your toolkit/framework looks like it’s great, but I have no idea who will find a use for it as many are using 3D models with basic terrain or will stick with the basics.

Hope you find success with it, appreciate your desire (and products) to continually improve game developer lives!

Thanks for the input!

To be honest, I have no idea either who will have use for it. :slight_smile:
I know that tilemaps are still very popular but under-supported to say the least. Depends on the engine though. So ideally we’d like to bring TilemapKit to those code-heavy, popular engines that have shortcomings in the tilemap department and where there’s likely to be demand.

Secretly I wish to add game-specific systems to TilemapKit, so that eventually there’ll be templates for popular grid-based game types (RPG, platformer, turn-based strategy, etc). And adding the things you’ll find in GameplayKit in a portable manner. Plus the stuff that ranks highly on the roadmap of course.

Awesome, I am happy you’re helping to push tile map tools and systems forward as I think Tiled or another up-and-coming editor could really add a lot more game play stuff into the mix.

I think tiled could add things like adding sub-maps that apply or “flatten” into the main map either through an export or through the game engine renderers. We use separate .tmx files and then apply them at a position by updating all layers from the sub map into the main map.

Also heights could be better supported (again may be more rare feature request) where each tile can exist in 3d integer grid space instead of requiring a bunch of layers each offset differently. But then maybe the layers is a better way to handle the complexity of a height-based map.

I know we’ve started building procedural tools (as is the hip thing to do these days) and I wonder if you could add in features like that as well. If you’re kit supported proc-gen as well where you don’t need to use a tool then height maps can be more easily defined, etc.

Interesting that there are 31 votes, but not many likes/replies here?

I’ll definitely purchase a binary release at source price just to support, so let us know when you have binaries ready, but as I mentioned we may want to release some of our code into open source in the future and wouldn’t want any potential conflict. Also I’m wiling to give any tester feedback from the binaries.

Funny that you mention it but this is indeed a problem that comes up specifically for draw order stuff. You need certain tiles to be on different layers for correct display but at runtime you face the challenge of making the characters draw in the correct order, which often conflicts with the layers. There recently was a thread on this very subject.

The merge could also be applied at load-time by TilemapKit, there’s already a suggestion regarding draw order and merging layers for rendering.

Heights are interesting, we’ve had issues using multiple layers, mainly because it’s cumbersome and error prone to edit. A way to offset individual tiles would be nice to have as well as providing a true Z value for each grid coord.

Generating tile layers (even entire maps) at runtime is absolutely possible with TilemapKit. The kinds of things that would ease this use however I don’t know about, I would need an actual use case for that. For instance like in imaging programs, where you can have filters work on 3x3 (etc) grid cells and output a single GID and then specify how many passes to perform. It probably also depends on what you want to generate, either a landscape (biomes) or something that’s more structural (city, dungeon).

Thanks for offering to test TilemapKit. I probably won’t be doing a binary version for Cocos2d-x (the many supported platforms make this unfeasible) but I can give you a discount coupon.

No worries about your source release. I expect it to be more focused than TilemapKit (Iso only?) while it would help check what features the users like about it (my bet is on fog of war), then I could adapt this into TilemapKit.

As for the 31 votes: I’m actually surprised by the number of roadmap votes in general. TilemapKit does hit a nerve apparently. I’m not surprised by the disparity, after all it’s voting for a concrete suggestion vs sort-of development updates with blabla. :wink:

I’ll publish a TilemapKit survey soon to learn more about these users and what they want. It’s been bothering me for a while. Which map type is most sought after? What feature is most compelling? Are gameplay extensions a big thing? Or game templates (aka starterkits)?

1 Like

Who would be interested in an “early access” version of TilemapKit for Cocos2d-x about 4-8 weeks ahead of the regular release?

An early access would help me port those things first that are actually being used/needed (ie TMX writer vs Tile Animations vs Lighting vs Pathfinding etc etc). There would be at least one, better two updates per week.

I’ll also find a way to thank you for doing the early access, too. :wink:

Regarding early access: my plan is to launch that in ~2 weeks at 50% off and then take it from there. With priority on fixing user issues first, and second re-implementing those ObjC features in order of “requests” and based on TilemapKit survey results.

For instance, in the survey tile animations and pathfinding are highly ranked.
PS: if you take the survey you can see all user’s results at the end.
PPS: the survey could use more cocos2d-x user’s responses. :wink:

1 Like

Thanks for all the survey responses!

In the meantime I decided to publish a google document that I keep editing where you can check (and comment on) the status of the TilemapKit++ porting progress. I will use this as my task-list too and will update it as I make progress.

That’s how far the TilemapKit++ port for Cocos2d-x is. The video explains the concept of “render size” (draw only visible tiles).

I intend to make more of these demo videos while I’m re-testing individual features of TilemapKit for the Cocos2d-x version. I’ll also launch an “early access” version soon, around 30% off the regular price.

FYI: TilemapKit++ for Cocos2d-x is now available as early access for 33% off ($50).

Also: I’ve updated the video in the above post with a remake.

1 Like

TilemapKit++ is now updated to v0.75 which implements most of the important features with only some less important ones remaining. See this document.

Get TilemapKit++ here, it’s 33% off for the remainder of October.

I purchased this and the quality of the source code looks very good.

I am working on trying to get it to work with v2 Cocos2d-x as well.

I recommend!

1 Like

Thanks for the kind words! :smile:

I should also mention that I’ve tested TK under Windows using Visual Studio 2013 and 2015. The fixes will be in the next release. I’ll try to make weekly releases, and send out the code by email to users reporting specific issues (after I fixed the issue of course).

Also I blogged about what’s coming next: entity component system, example game (starterkit-ish) and then what I find exciting is to create a 3D renderer that extrudes tiles into the third dimension. So you’d have a complete 2D workflow and could make a 3D game with relative ease.

Making progress on the platform-testing front: OS X, Windows 7/8 and iOS are working. Currently testing Android (tedious setup procedure as usual). Also tile animations are now in the cocos2d-x version of TilemapKit. I’ll distribute that version in the next 1-2 days.

PS: Keep in mind that there’s only 10 days left in the early access version (33% off)! Get it here: https://tilemapkit.com/downloads/tilemapkit-cocos2d-x-source/

I just released v0.8. This mainly adds (fixes) tile animations and was tested on OS X (Xcode 7, cocos), iOS (Xcode 7, cocos), Android (cocos), Windows (VS 2013/2015, cocos).

Get TilemapKit (C++, Cocos2d-X) here: https://tilemapkit.com/downloads/tilemapkit-cocos2d-x-source/

PS: Due to an short gig at Pixomondo I will likely extend the early access phase and the 33% discount for another month. I will focus on getting the TMX writer ported to C++, the last remaining chunk that’s mainly mind-numbing work. Might just be the ideal thing to work on after a long day taming dragons and all. :blush:

Thanks my friend.

Working on publishing the v0.81 update. Still working on the last item (hence the brackets). I had some time while compiling cocos2d-x (damn that takes long!) so this is a premature changelog cause I’m sure if I don’t post it now I’ll forget to post it later. :wink:

  • fixed potential crash accessing tile properties
  • fixed not being able to get tile properties or getTile (returned nonsensical values) because _tileCount was 0 - this issue may have had other (unreported) effects regarding tileset functionality and specifically accessing/modifying anything tile-related
  • fixed compile errors related to certain macros not using the TK:: namespace prefix, ie castTileLayerPtr(ptr)
    corrected documentation for MapNode renderSize property, which is in fact in points, not in tiles
  • (fix of MapNode renderSize only drawing a fraction of the map’s renderSize)