Tilemap object questions & concerns

0 favourites
From the Asset Store
This is a single chapter from the "Construct Starter Kit Collection". It is the Student Workbook for its Workshop.
  • Massive thanks to Ashley for finally adding tile support!

    I'd like to discuss the future of the tilemap object / some features that will make building levels with it more practical...

    1) There appears to be built-in collisions for the tiles, which is pretty cool, but they're just squares. Are there any plans to assign some sort of collision map so that we can have slopes and other shapes as well? I think that's how Stencyl does it. Usually you have one layer for your graphic tiles and another for collision tiles but without per-pixel collisions I'm not sure how that'd work here.

    2) I assume a tilemap object is the equivalent of a big sprite object with a level image. Seeing as you only get 1 tileset and 1 layer per tilemap object, wouldn't it be extremely inefficient to have entire tilemap objects just for, say, a foreground layer of plants or a few tiles from a different set? Will anything be done about this in the future? It'd be great if a tilemap object can have multiple tilesets and maybe layers of its own.

    3) Are there any plans to add tile rotating, flipping, and mirroring?

    4) Will we be able to "copy" tiles that have already been placed (like right-clicking a tile in Tiled)? This is very useful for laying down certain patterns to place elsewhere, and keeps you from having to go all the way to the tileset to pick a tile.

    5) Will there be hotkeys for the tools? (At the very least right-click to erase tiles?)

  • You should use sprites as dynamic behavior, there no magic in programming. Tilemap is used for decoration also you can create another tilemap with solid behavior to mask the collisions, it's nice to have a lot of props without counting of objects.

  • Joannesalfa - That doesn't really adress the concern about slopes though

    - Regarding question #2. I obviously can't speak for Ashley, but I'd hazard a guess that as far as C2's innards and runtime efficiency is concerned, a Tilemap would have the same effect as if you used several small sprite objects instead of one big one. The Tiled Background object works on the same principle, just that Tilemap allows for more than one tile.

    I have some thoughts about the Tilemap as well.

    First off, love it. C2 has needed this kind of feature for a while now and I'm happy to see it. That said, improvement is always an option.

    1. While trying out the Tilemap object I found myself accidentally moving the object around at times. Locking the layer makes you unable to edit the tilemap. I think a way to lock the Tilemap object in place, but still be able to edit it, would be a good idea. Maybe even necessary.

    2. I second the idea of more "advanced" editing tools. Copy/Paste, select and drag, and being able to make stamps of a certain set of tiles would be nice features to see in the future. Of course, Tiled has some advanced features we could use in the meantime (or instead?) but it would be nice to see it in C2 down the road.

    3. Speaking of Tiled. It has a feature that lets you add properties to the tiles. This could be usefull for a wide range of different things. Having tiles be of different materials for instance, changing the sound effects when walking on them and such.

    4. Loading and editing tilemaps at runtime. I'm guessing the use for this is pretty self-evident. Ingame level editors, animated tiles, etc.

  • Joannesalfa - That doesn't really adress the concern about slopes though

    inkBot I'm not sure what you mean, I don't think Tilemap will have custom collisions until we add sprites to place where are the slopes. I'm pretty sure Ashley will tell us to use sprites to make slopes.

  • Joannesalfa - That's the whole point. The Tilemap object is currently completely binary in regards to collisions, and it kind of needs to not be. If we have to resort to adding separate sprites to add slopes, not to mention jump-through platforms, you might as well go back to just using sprites for everything. The exercise becomes pointless.

    The collision polygon method is most likely not suitable for the Tilemap object and it's not accessible in the image editor for the Tilemap object. Whether that is because Tilemap doesn't use it (to prepare for per-pixel collisions maybe?) or if it's just using a predetermined, unchangeable, polygon, I can't tell.

    If the Tilemap object is intended to be purely cosmetic, then that's what it is. But I really truly hope that that's not the case.

    Edit: The first paragraph came ut harsher than intended. It's not intended as a dig at the effort of putting in the feature at all, merely a concern about the future potential of the feature.

  • 1) I'm not sure how custom collision masks per-tile would fit in to the editor. How workable would it be just to place sprites on top and use them for collisions as well? It seems to be a good middle ground.

    2) It's far more efficient like that - it's more like using a series of tiled backgrounds in the most optimal way possible. I'll cover how this works in a technical blog soon.

    3) Only if it's essential - is it really badly needed?

    4-5) The current tilemap editor is very much a first iteration. We'll be improving it over time.

    inkBot:

    You can't move the tilemap if you have any tool other than the select tool chosen. You can also stamp sets of tiles by selecting a larger area of tiles with the pencil tool.

    With regards to advanced features, for now we're taking a similar stance as the image editor: we get tonnes of feature requests, and we're a small team, so we want to get everything covered as well as possible. That means not getting stuck down rabbit holes making the image editor as good as Photoshop when Photoshop already exists, and I think the same thing with the tilemap editor with regards to Tiled. It's a lot of work to reinvent the wheel when the importer seems to work just fine, and the built-in editor serves well for tweaks or small-scale design.

  • Tiled Map Editor has collision polygons.

    Couldn't that be added if you were to use a tmx?

    Otherwise I might suggest something like a collision behavior, that had something like a importable mask, similar to Yann's Polygon plug.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Ashley

    1) It's really not that bad for simple platformers or top-down games, but as soon as slopes and other shapes are introduced, using sprite objects for collisions can become a real hassle.

    2) Ok cool. Just making sure!

    3) Yeah, kind of ^^; I always got complaints on my earlier level editors not having these features, so I made sure to always add them. I even went so far as to rotate/flip/mirror groups of tiles like tetris pieces..although that was a bit much!

    4-5) Glad to hear it :)

    I completely understand not wanting to reinvent the wheel, and it makes perfect sense not to dedicate so much time on a robust image editor when tools like PS exist. However, I feel that tiles are one of the few exceptions here. Levels are arguably the most important part of the game and we need to be able to work on them quickly and efficiently to get all of our ideas in there and make changes, no matter how large, as needed.

    Having used Tiled, Ogmo Editor, DAME, GM editor, Stencyl editor, and a handful of my own custom level editors throughout the years, I feel that the features I mentioned are quite essential and in no way "fluff". They will definitely be used by everyone!

    Also I know it's a big list and everyone is making their own suggestions - we just want to voice our concerns before it is too late and you decide to move on to the next big feature!

  • inkBot

    Make your words as mine too.

    Sme other concerns here:

    Plus, while using the Tiled editor to generate TMX, always keep your tileset image in a common place, like the same folder of your TMX, otherwise, when backuping it, you'll lose your tileset image.

    Also, work with power of 2. Common usages are 8x8, 16x16, 32x32, 64x64, 128x128, 256x256, 512x512 and 1024x1024.

    If you want make mobile games, stick with smaller sizes and vary your tilesets, or you'll full the mobile memory asap.

    I do use invisible squared collision boxes to make my delimitations, stretching and resizing it as necessary.

    --------------------

    Ashley, I didn't tested it already to say enough, but we will have the ability to use animated tiles, even if importing it from Tiled?

  • The short answer to all of this discussion is, really, use Tiled/TMX Importer. A majority of the feature requests are already implemented, and the big one that isn't - using big custom collision areas - is so inefficient as to be unnecessary.

    Place tiles and use other, invisible tiles to set up collision in Tiled. If you want to build a tile-based game, that's the way it's done, and if you want it to be easier to build without having to wait on new C2 features, that's the way you should do it.

    TELLES0808: You can do animated tiles with TMX imports already. Have a single tile with custom properties set up in Tiled's tilesheet that tells C2 (through events) that the tile is animated and the name of the animation to use. Using multiple tilesheets works in a similar way.

    For example:

    Animated Tiles:
    + System TMXImporter.TileProp("_animated") = 1
    Set animation to TMXImporter.TileProp("animationname") (play from beginning)
    
    Multiple Tilesheets:
    + TMXImporter On each tile cell
    Set animation to TMXImporter.TilesetName (play from current frame)
    
    
  • The short answer to all of this discussion is, really, use Tiled/TMX Importer. A majority of the feature requests are already implemented, and the big one that isn't - using big custom collision areas - is so inefficient as to be unnecessary.

    Place tiles and use other, invisible tiles to set up collision in Tiled. If you want to build a tile-based game, that's the way it's done, and if you want it to be easier to build without having to wait on new C2 features, that's the way you should do it.

    You can't post games using unofficial plugins on Arcade, so, that's not a big deal...

    Also, ask for and show why is a better way to improve Our tool, while sitting and using it, feeling how it's perfect and never desiring it better is the best way to have an outdated and unfocused tool, because the developers will never know where they are lacking and/or missing with their community.

  • The short answer to all of this discussion is, really, use Tiled/TMX Importer. A majority of the feature requests are already implemented, and the big one that isn't - using big custom collision areas - is so inefficient as to be unnecessary.

    Place tiles and use other, invisible tiles to set up collision in Tiled. If you want to build a tile-based game, that's the way it's done, and if you want it to be easier to build without having to wait on new C2 features, that's the way you should do it.

    TELLES0808: You can do animated tiles with Tiled already. Have a single tile with custom properties set up in Tiled that tell C2 (through events) that the tile is animated and the name of the animation to use. Using multiple tilesheets works in a similar way.

    Dude, no. While Tiled has a bunch of tile-based features it's overall kind of a crappy editor.

    You have to hard-code every single object, property, background, tileset, effect

    You need to keep a giant hand-typed list of object names, types, properties

    You get no visual representation of the objects you're working with and can only edit them one at a time

    You have to use sprites acting as tiles which is awful on performance, drastically increases loading times, and takes like 8 steps to update a single set.

    You don't get a single feature/object C2's layout editor provides

    You have to import every .tmx unless loading externally with node webkit

    I have been using Tiled/TMX Importer for my last few games and it has the worst workflow imaginable. It was simply a workaround until C2 got its own tile support.

    We, at long last, have a WYSIWYG level editor with both drag 'n drop AND tile-based functionality. With only a month or two of extra work C2's layout editor can be one of the best out there.

  • TELLES0808: Arcade isn't really my concern and doesn't really seem to be a point of sale, so I'm unaware of any 3rd-party plugin issues that may arise when using it. I'm making games so that, hopefully, I can sell them. So, is posting to the Arcade a big deal? For me, absolutely not, and it may be better to be concerned with finishing a game than where it could, potentially, maybe, possibly, end up. Considering the literally hundreds of other places you could place your HTML5 game, not being able to put it in one specific place, so unless it's highly-trafficked - I'd put money on, say, Kongregate getting more hits - shouldn't be a big deal.

    : Dude, yes.

    You have to do this in every tilemap editor I've ever used, and what I've used goes back to the early 1980's, so I think it's safe to assume that's a lot of them.

    I have no hand-typed list of properties. That's a) if you feel the need to do it, what spreadsheets are for and b) you don't really need to do it since you can just click on a tile to see its properties.

    What do you mean, no visual representation? I see them just fine. Are you talking about in C2? In which case, that's not really relevant, since it's your job to build the tilemap after import through the importer, and pretty much how full OO game development works, whether in C2 or Flash, Unity, C+, etc. I've had huge Flash AS3 projects go through from start to finish without placing a single object on-screen manually for reasons other than testing it looks/works okay.

    Tiles can be comped together into a single image using Canvas. If I'm able to figure out how to reduce 20,000+ tilemaps down to 800 or so (for collision/active objects), I have no doubt you can as well, not to mention the same multiple-object issue would exist with a built-in editor. I haven't been using C2 all that long - and other than the usual beta software quirks, I have yet to hit a wall in terms of making it do what I need it to do.

    Just because C2 has a layout editor doesn't mean it has to be used.

    As for importing TMX files at runtime, you answered your own question there. I expect there are other ways to make it happen as well, since you can pass a variable value as a filename to the AJAX object.

    As for Tiled's workflow: Want to see a bad workflow? Look up Cosmigo Pro Motion, the go-to for pixel art/animation. I'll just say this: be glad Tiled is as easy to use as it is, and that it supports highly advanced 2D map-making features completely unavailable elsewhere, all for the cost of FREE. There's a reason (lots of them actually) game studios working on 2D tile-based game often default to using Tiled if they don't plan on a user-facing in-game editor.

    I've had zero issues with the workflow of the TMX Importer. I do have a good bit of development experience though, so I haven't had any workflow issues and found it only took a few hours to get it doing exactly what I wanted it to do, mostly because I had to learn the associated events.

    I think a lot of this discussion just sounds like people aren't aware that more often than not, no single program is the be-all end-all solution to every request. I think you'd have nightmares or at the very least break out in hives about some of the programs that you have to use in AAA game development if you expect C2 to do everything for you.

  • I felt in the right of edit the Github of TMX maps to add the Construct 2 official links =]

    github.com/bjorn/tiled/wiki/Support-for-TMX-maps

    ----------------------------------------------------------

    Reading the past posts about the animated tiles, said enough.

    Ashley, the way Gravity did it on their editors, like IGMaker, is setup some tiles of a tileset to a desired sequence inside the grid, with a timer.

    <img src="https://dl.dropboxusercontent.com/u/47035927/Samples/animated_tiles.gif" border="0" />

    But I mean it's pretty standard for every game maker who have support for tilesets, like GameMaker, Stencyl, and so on.

  • digitalsoapbox: With all due respect, the hard way / "the way it always has been" isn't always the best or most efficient way. Last time I checked, Scirra has gone to great lengths to make it seem like C2 is one of the most convenient, easy-to-use, and all-in-one game creation programs out there, and pride themselves on ease of use. All we're trying to do is nurture this app to give it that extra edge it needs.

    Call me crazy, but I feel that having a robust and easy-to-use in-engine tilemap editor without having to resort to a 3rd party app helps give C2 that extra edge and would be an extremely big selling point.

Jump to:
Active Users
There are 2 visitors browsing this topic (0 users and 2 guests)