Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Tidy Tile Mapper: Paint tile-maps from the Editor [Released]

Discussion in 'Assets and Asset Store' started by JFFM, Jan 21, 2012.

  1. bryanleister

    bryanleister

    Joined:
    Apr 28, 2009
    Posts:
    130
    Fun tool! Could certainly script or make something like this by hand, but this is way more fun and allows for fast and intuitive tweaking of level design. Highly recommend it!

    Edit: Found the Publish Map button!

    Bryan
     
    Last edited: Feb 12, 2012
  2. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Mr Rstehwien, you read my mind!

    One of the big addons I'm developing is a really nice (I feel) system for adding scripts to blocks/locations.

    Also we're definitely going to release a tonne of block packs for Tidy Tile Mapper. My designer is exhausted right now (it's been a big few weeks of game-jamming and post-game-jam-hangover and such) but I think we'll be doing a pack-a-week soon.

    I'll keep you posted!

    -JFFM
     
  3. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    And now my standard update:

    Hello again everybody! Apologies for my brief absence - I've been clearing my Tidy Tile Mapper palette by working on another tool for a while (good to clear your head occasionally, come back fresh).

    As a brief release update, to keep you all excited:

    -This week I'll be releasing a new painting tool: "Draw Path" (see the screencap a few posts back) along with the addition of a "Delete chunk" function.

    Edit: Oh oh, and also at some stage soon I'm adding a function to set Rotation/Scale/Position offsets per block variation. This way, you can use the same block and simply rotate it for different orientations. Save time!

    -I'll also be releasing a new framework addition to Tidy Tile Mapper that allows dynamic loading of "Addons" or "Plugins" - that become nicely integrated with the Tidy Tile Mapper UI. That means that I (or you!) will be able to release additional plugins for Tidy Tile Mapper that are beyond the "painting" tool that TTM is, but expand the functionality into more specific fields. (e.g Automated Generation of levels, A.I, and game logic)

    -Next week I'll release the first plugin (automated level generation) and my other super-secret Tidy tool - and hopefully by this stage we'll have some new Block Packs!

    Thanks everybody for all of your support!

    -JFFM
     
    Last edited: Feb 15, 2012
  4. rstehwien

    rstehwien

    Joined:
    Dec 30, 2007
    Posts:
    101
    Was trying to think of other things I've done with 2d tile mappers such as DAME, about the only other thing I can think of is paths to move platforms along or for enemies to move along.... but I could probably do that with iTween but integrated into the map editor would be nice.

    Love the tool and looking forward to the block packs.

    Need to play with it a little more to see how it works for non-side scroller level editing (like making a house or something like that).
     
  5. engelik

    engelik

    Joined:
    Feb 15, 2012
    Posts:
    6
    Hi!
    First of all let me thank you for this great tool =)
    I'm doing some tiled blocks terrain and this is really useful.
    I run into some into some troubles tough.
    I'm trying to create a terrain with different areas (forest, grass, dirt, etc) and for each of those have tile variations for diversity (your variation support and randomize function is really useful here).
    But for some strange reason this happens:
    I click the block editor to add a new block
    Click add block and select and add 3 variations
    click save
    when i try to paint it appears to paint nothing (not even a glass block)
    I open the block editor and there aren't any assets, but in the project explorer under the blocks directory i can see the 3 prefabs that i added earlier.
    http://img401.imageshack.us/img401/4814/tidybug1.jpg
    If I add the block prefabs and save again, it seems to work
    but when i publish the map each block has 4 block overlaped (the one I painted and all the 3 variations)
    Under the blocks directory i can see that the block now has 6 prefabs and not the 3 that appear in the block editor.
    http://img263.imageshack.us/img263/5280/tidybug2.jpg

    Am I doing something wrong?
    I would really appreciate your help, I can't find a workaround for this. :\
    I'm using unity 3.5 Dev preview.
     
  6. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi Engelik,

    The latest release for Tidy Tile Mapper (which is currently uploading to the Asset Store submission queue) will fix these problems. It should be live and available within 24 hours, hopefully less.

    This problem was caused by changes to blocks not "binding" to their parent prefabs correctly - a new bug for TTM in 3.5.

    I've fixed this now, and the update should be available within one day.

    Thanks for bringing this to my attention.

    -JFFM
     
  7. engelik

    engelik

    Joined:
    Feb 15, 2012
    Posts:
    6
    thanks for the quick response and fix! :)
     
  8. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    You're very welcome Engelik, hopefully everything is smooth now!

    The update is now live on the Asset Store - fastest approval ever! 39 minutes - beautiful.

    -JFFM
     
  9. engelik

    engelik

    Joined:
    Feb 15, 2012
    Posts:
    6
    Its working fine :)
    thanks again!
    I'm using to make a multilayer terrain (top view):

    I've been testing and the best workflow for me seems to be to mount the bottom layer first, compile, create a new map and move it +1 in the Y. I know that you have multilevel support by map, but when I add a level I can't change the bottom layer tiles since there are tiles above them and trying to click them adds tiles to the top layer :p
    Oh! I just saw that you added Layer visibility options! i'm gonna try those, either way it's working great! :)
     
  10. Unicron

    Unicron

    Joined:
    Sep 28, 2011
    Posts:
    191
    Wow, this is exactly what I've been looking for! going to purchase ASAP!

    I wanted to ask about path finding with Tidy Tile Mapper. How would you implement it with say the level that p6r create, pictured below. Lets say a map of 20x20 blocks, I need NPC's to follow the paths of each block.

     
    Last edited: Feb 17, 2012
  11. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi Unicron,

    Before I kick into a big explanation, I'll lead with:

    I'm going to be releasing an addon for TTM that provides a bunch of movement scripts - both for players and AI, which will be integrated with the UI. So if anybody is reading the following example and feel a little like this O_O - never fear! :)

    To get a path through a maze like p6r's example, you can call:

    Pathfinding.GetPath() via a script. This will return a list of PathNodes - which contain the x,y coordinates of the blocks you need to visit in order to move through this maze.

    Once you have this list of nodes, you can call GetBlockAt(x,y,z) on the maze map to return the blocks themselves, which will yield the transforms you require to interpolate between.

    The arguments aren't documented yet (I've got a tonne of documentation in my "To Do" list) - but here's a breakdown:

    Your function call would look like this:

    Code (csharp):
    1.  
    2. Pathfinding.GetPath(startX,startY,endX,endY,mazeMap,0,false,false,0,false);
    3.  
    To break that down:

    The function is:

    Code (csharp):
    1.  
    2. Pathfinding.GetPath(int x1, int y1, int x2, int y2, IPathMap pathMap, int depth, bool allowDiagonals, bool randomiseWeightMap, int randomisationAmount, bool pathOverAllBlocks)
    3.  
    x1 and y1 are the starting coordinates
    x2 and y2 are the ending coordinates

    pathMap is the map over which you wish to find a path (in this case, the maze)

    depth is the layer depth at which you wish to path (if you are using a single-layered map, it would be 0)

    allowDiagonals is a flag to tell pathfinding whether you want the paths to move diagonally. In a maze, this would be false, because your character would clip through walls on the diagonal movements.

    The last three are related to generating levels:

    randomiseWeightMap will return an imperfect path, for drawing paths that feel a little more organic
    randomisationAmount tells the randomiser how much it should randomise by
    pathOverAllBlocks tells the pathfinder to disregard pathing information and just go straight from A to B

    In the next few smaller releases I'll be neatening up the function calls a little, and adding documentation to the functions themselves. There's so so so much to document, it will be a marathon :D

    Hope that helps!

    -JFFM
     
  12. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    :D

    Your blocks look great! Really keen to see how your project goes.

    -JFFM
     
  13. Unicron

    Unicron

    Joined:
    Sep 28, 2011
    Posts:
    191
    @ JFFM, thanks for the reply back and for the explanation. I'm definitely looking forward to that movement scripts add-on and will pick it up when it releases. Thanks!
     
  14. engelik

    engelik

    Joined:
    Feb 15, 2012
    Posts:
    6
    thanks :)
    It would be a pain without your tool :p
    here is a test with textures and some decor:
     
  15. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,521
    This tool looks amazing, one question is it possible to have tiles that are bigger? 2x tiles size or 4x tiles size?
     
  16. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    WOW ! Looks great, engelik...
    Very nice world !!!

    6R
     
  17. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi Lars,

    Definitely, you can set any arbitrary height/width/depth for tiles at map-creation time.

    -JFFM
     
  18. Marko Novak

    Marko Novak

    Joined:
    Feb 19, 2012
    Posts:
    1
    JFFM your game is very good,i like it!!!it's so funny and easy to play!!
     
  19. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    P.S I just put out a little update for Tidy Tile Mapper - I found a strange little bug in which Map Chunks will lose their positioning (but not their data) if you do a series of opens and closes on a project with a map in it.

    I was working on a little retro tileset. And now here's a picture to spice this otherwise boring post up:



    -JFFM
     
  20. engelik

    engelik

    Joined:
    Feb 15, 2012
    Posts:
    6
    hi JFFM
    I've run into a similar problem where when i add a prefab to a new block I get this error
    And the prefabs appear duplicated on the explorer (I only added them once)
     
  21. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi Engelik,

    Is this error occurring on the latest version of TTM?

    -JFFM
     
  22. engelik

    engelik

    Joined:
    Feb 15, 2012
    Posts:
    6
    yeah, its a bit weird, if I create a new project and try it there doesn't seem to happen, but working in the one that already has a few maps it has this problem. And for some strange reason when i add a new map he has some weird rotation, again only if it is now a new project. :\
     
  23. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Oh super-strange,

    I'm guessing it's likely a conflict with something I've added in one of the last updates. I'll take a look and add a few lines to stop those errors cropping up.

    Edit: Done - I've submitted this change to the Asset Store. I estimate between 30 minutes and 24 hours until it's live. Fingers-crossed it fixes the problem!

    With the rotation problem - is this for creating a new map in a new project, or a new map in an existing project?

    Edit: Oh Oh Update: Rotations for maps are set based on the position of your camera (Upward-growing maps will always be face the camera, Outward-growing maps will always face flat) - so this would likely be making odd rotations if your camera is set to a jaunty angle.
    This was a really old design choice, based on creating side-scrolling platformers, that I suppose isn't really pertinent anymore.

    -JFFM
     
    Last edited: Feb 24, 2012
  24. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hello Everybody,

    An update post now, just to keep everything alive and wonderful:

    A few updates to Tidy TileMapper coming this weekend:

    -I've made a bunch of internal changes - invisible to the naked eye, that will pave the way for game logic based on the internal workings of the tile system (things like... procedural generation, adding / removing blocks at runtime, AI movement etc)

    -I'll be releasing the first addon for TTM - "Tidy Maze Generation". I've decided (based on your kind feedback) to keep non-core functions out of the tool and instead put them in optional 'addons' - to keep the toolkit pure and focussed.

    -I'm going to be adding a "Tiling Group" feature to Blocks, to allow blocks to select the blocks they tile against (e.g act empty toward some blocks, act normally toward other blocks).

    -And in the far far future, I've been working on the next enormous Addon for TTM... which I've not named yet. This will be for adding game events and logic to your maps. Have an early development screenshot, on the house:



    I hope everybody is having an excellent week - thanks so much for your feedback.

    -JFFM
     
  25. crafTDev

    crafTDev

    Joined:
    Nov 5, 2008
    Posts:
    1,820
    Hello, I have just caught my eye on this, and I would like some question answered.

    1. Right now I am manually creating levels for my game on a grid, I am using flat planes. Am I able to create just flat planes and not blocks, as shown in the video?

    2. Is this iOS friendly?

    3. What's the graphical cost of using this? Do these batch?

    4. Is there an in depth tutorial on everything you can point me to?
     
  26. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi Jrricky,

    Yes definitely, actually one of the tutorial videos uses flat planes (to mix things up a little) - you can see it here.

    Good question - I've not tested it for iOS since V1.2 - but prior to this it was fine for iOS, and is fine for Android in all versions. I would reply with a conservative "yes". (The tool doesn't really add much to your builds - just the blocks that you add and a few utility classes that don't use any unusual libraries).

    You can use both static and dynamic batching - at present I've not put any mesh combine logic on the maps, as I wanted to leave it open for people to have tweening blocks etc.

    The maps themselves are logically divided into "chunks" - so if you wanted to further combine/batch these up, you could drop the mesh combine script onto each "chunk" (just a gameobject).

    Goooood question. I've not had a chance to update the tutorials / FAQ since 1.2, but there is a moderate amount of documentation on the website:
    http://tools.dopplerinteractive.com along with the video from above (which demonstrates Block Creation - the trickiest part).

    I hope these answers were helpful!

    And now, have this smile - because it's Sunday morning (here) and I'm about to have what smells like a delicious coffee: :D

    -JFFM
     
  27. crafTDev

    crafTDev

    Joined:
    Nov 5, 2008
    Posts:
    1,820
    Thanks for the response. I went to the website hoping to find the docs, but there is none...? Also for my batching I would be using the asset stores Batching Tools to work nicely with this.
     
  28. orb

    orb

    Joined:
    Nov 24, 2010
    Posts:
    3,037
    Mesh combining is relatively easy. Marking clusters of blocks as static to have that sort of logic automatically applied to them would be a great feature, though :)
     
  29. b3y0nd3r

    b3y0nd3r

    Joined:
    Oct 5, 2010
    Posts:
    27
    Definitely it looks amazing. I'm purchasing it.

    By the way, one suggestion for further versions. How about blocks with different slopes? I mean not any given value of slope, but maybe some selected values, so you can build, let's say, a pyramid like those in the video, but without the staggered look.

    I'm looking forward to seeing next add ons ;)
     
  30. MSylvia

    MSylvia

    Joined:
    May 19, 2009
    Posts:
    42
    The ability to remove layers would be nice. I accidentally just created 3 layers when I thought I had painting selected.

    Also the ability to have multiple layers enabled at one time instead of just one or all.
     
    Last edited: Feb 27, 2012
  31. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hello everybody!

    I've just put up a "Feature Request Tracking" styled post on my tools blog, so I can keep track of your feedback, bugs and other in-development things (since my 'write it on the whiteboard' system suffers from some functional flaws... like my poor handwriting).

    I've added everything (I think) that we've discussed, including @paste120's suggestions above.

    Here it is!

    http://tools.dopplerinteractive.com/2012/02/feature-requests-and-in-development.html

    If I find a good web-based feature tracking system, I'll migrate to this. Until then, it's good-old personalised blogging.

    Oh, and to transform the above into a question:

    Does anybody have a suggestion for a good web-based feature-request tracking system?

    -JFFM
     
  32. orb

    orb

    Joined:
    Nov 24, 2010
    Posts:
    3,037
    After looking at all the different options for such tracking I've ended up with Mantis for now. You have vast management systems if you want better, but then they take over your whole site, come with Gantt tools and often CRM and are just not simple to maintain. The last option is to hack together your own in RoR, Grails[1] etc. :)

    I recommend everyone not posting anymore ideas, because it looks like JFFM has his hands full already :p

    [1] Should take about an hour
     
  33. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    Hi JFFM,

    * When I click on the Run button to play the scene in the 3.5 version, The Tidy Tile Mapper panel doesn't stay where I put it (next to the Inspector on the right side of Unity !). It suddenly changes its position and appears over the Inspector panel in a small window !?!

    * I can't change the width of the path and I can't check "diagonal" or "randomise" !?!
    The result of the path is ok but I can't change parameters !?!

    Could you help me, please ?

    6R
     
  34. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi p6r,

    I'm looking at this problem currently, I'll hopefully have a fix out in the next update.

    Odd! Let me have a look to see if I can replicate this...
    Yes I can! Very strange, I'm not sure when this was introduced. I'll put out a fix post-haste.

    Update: Super-strange behaviour there... it seems that the old method for getting super-pretty aligned textboxes:
    Code (csharp):
    1.  
    2. EditorGUILayout.BeginHorizontal();
    3. EditorGUILayout.IntField();
    4. GUILayout.FlexibleSpace();
    5. EditorGUILayout.EndHorizontal():
    6.  
    Will now somehow make your UI cease to function.
    I've updated and am uploading a fix now.

    Thanks!

    -JFFM
     
    Last edited: Feb 28, 2012
  35. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hello friends,

    I've just submitted an update that will fix both the weird Path controls problem, stop multiple layer-additions when using the layer tools, and the Editor Window "pop" issue.

    This should be live very very shortly.

    Enjoy!

    -JFFM
     
    Last edited: Feb 28, 2012
  36. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    Thanks JFFM... I'm waiting for the update...

    6R
     
  37. Juntaou

    Juntaou

    Joined:
    Apr 7, 2010
    Posts:
    25
    Hey the product looks great, I'm looking into playing around with a 2d top down adventure style game(Zelda style). I know your program can use planes, but what would be the best way to go about using your program for that style of game? How would you handle collisions and what not?
     
  38. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi Juntaou,

    Ah good question. There are a few ways in which you could do it, off the top of my head I'd recommend this approach:
    (This is assuming you're using sprite-based graphics - all characters are 2D, like old-Pokemon or, as you say Zelda).

    1) Create a "Block" for each type of tile you have. This would result in your block collection looking something like this:
    1. Grass Block
    2. Water Block
    3. House_1 Block

    etc.

    2) Within these blocks, add your objects (planes textured with... grass, path, water, parts of houses etc). As these will be tiling not against Empty blocks, but against other planes (as 2D sprite games don't have empty blocks) - place all of your planes on the default Block alignment list, so you can cycle through them (right click) when painting.

    3) For your blocks that represent things that you can walk on (Grass) uncheck the "Retain Collider" box in the Block Editor. This will remove the Collider from this block when you paint with it. All other blocks (Water, House) will retain their colliders.

    4) Paint! (I would paint on a map that grows upward - that's default)

    5) Now that you have a level, add your character. I would use a Character Controller, as it will respond to the Colliders already present in the level.

    6) Set your Character Controller to move in the cardinal directions (or however you like) and nestle it in a good empty position in the map.

    7) Press 'Play' and your character should be observing collisions nicely.

    That's just a rundown of what I think the fastest way to achieve this is.

    If you are going for a more traditional 2D game that has a movement system identical to Zelda / Pokemon, I would recommend removing colliders and instead applying a good amount of game logic to interpolate between blocks (so you get that tight movement system).

    I hope this has been helpful!

    -JFFM
     
  39. crafTDev

    crafTDev

    Joined:
    Nov 5, 2008
    Posts:
    1,820
    Hey JFFM,

    Could you go into detail of what the types of Blocks/ The orientations? I am a bit confused at your explanation in the video...white are other blocks, grey is emptiness? :/
     
  40. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi Jrricky,

    Certainly - [as a bit of trivia, I tried so many color combinations, but every one (even blue and brown) seemed to trigger a psychological conundrum in the user. Some people saw blue as full, others as empty. Interesting!]

    White blocks represent "emptiness", Grey blocks represent "other blocks".

    So when a block is surrounded by this configuration of other blocks and emptiness, the blockset that you put against this icon will be used.

    Here are a few examples:

    - When the block is surrounded by nothing but emptiness, this blockset will be used. (Example: A floating block in a platformer)

    - When the block is entirely surrounded by other blocks, this blockset will be used. (Example: A dirty block in a platformer)

    - When the block is surrounded on the sides and below, but above it is emptiness, this blockset will be used. (Example: The centre-top block on a platform in a platformer).

    I hope that helps!

    -JFFM
     
  41. iisjreg

    iisjreg

    Joined:
    Mar 25, 2011
    Posts:
    101
    What if... it were a really dark grey? Almost black?
     
  42. orb

    orb

    Joined:
    Nov 24, 2010
    Posts:
    3,037
    Perhaps patterns might be an idea too, just to cover all bases with he different types of colour-blindness.
     
  43. AlexEvangelou

    AlexEvangelou

    Joined:
    Sep 15, 2011
    Posts:
    11
    One thought would be to just not "put" blocks there for the graphic.



    It feels kind of weird being used to the other images but might get it across a little better?

    Either way, excited to see all the improvements incoming and glad that "popping" bug is gone, that was driving me nuts!



    *Edit* Random other thing I noticed. When you first make a map the inital chunk is 0_0, then when you add blocks to it the origin chunk becomes -1_-1 instead of 0_0. The rest of the chunks are numbered as if it's 0_0 still though ie 0_1,0_2,1_0,2_0 etc.
     
    Last edited: Mar 3, 2012
  44. crafTDev

    crafTDev

    Joined:
    Nov 5, 2008
    Posts:
    1,820
    That's cool thanks! This means I don't have to use those other blocksets right?
     
  45. crafTDev

    crafTDev

    Joined:
    Nov 5, 2008
    Posts:
    1,820
    Here is the big question! How do I add my own planes with textures?

    Do I just assemble my models normally and add textures, then turn them into prefabs then add them to the tool?
     
    Last edited: Mar 3, 2012
  46. nealriley

    nealriley

    Joined:
    Mar 3, 2012
    Posts:
    2
    I already love this product, and I think things like procedural generation, and AI pathing would make it perfect! It was mentioned that these features would be optional add-ons, so I'm really looking forward to them. My goal is have a "randomly" generated world (like Minecraft, but not as vast) with NPCs and pre-built structures, that the player can explore. Is this something that I can possibly realize with Tidy Tile Mapper in the near future? Also I'm not much of a programmer, so I rely on Playmaker for most of my game logic. Thanks for a really fun and intuitive product!
     
  47. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    I just have added a video showing it's possible to use the clever automatical system of Tidy Tile Mapper with 4 blocks ONLY, to create maps !
    So don't be afraid to test with your own blocks. :)



    6R
     
  48. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Nice work p6r!

    Thanks so much for showing everybody what TTM can do :D

    -JFFM
     
  49. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi Jrricky,

    That's exactly it - a Block (in the Block Editor) is a collection of Prefab objects - so once you've constructed your prefabs, you can add them to your Blocks and away you go.

    Once you've got your prefabs put together, the tutorial video here will show you how to put them into the Block Editor:
    Block Editor Tutorial Video

    Good luck, and enjoy!

    -JFFM
     
  50. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Ohhh I like the look of these icons. Nice!

    Oh yes - the MapChunks are named relatively (where the first chunk is 0_0 and every chunk is named relative to the first one) - however their internal coordinates reflect absolute coordinates. I had them name themselves on creation but not rename on 'shuffle' - if this is something people would like, I can add that.

    -JFFM