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

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

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. :slight_smile:

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

[1] Should take about an hour

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

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:

EditorGUILayout.BeginHorizontal();
EditorGUILayout.IntField();
GUILayout.FlexibleSpace();
EditorGUILayout.EndHorizontal():

Will now somehow make your UI cease to function.
I’ve updated and am uploading a fix now.

Thanks!

-JFFM

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

Thanks JFFM… I’m waiting for the update…

6R

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?

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:
  • Grass Block
  • Water Block
  • House_1 Block

etc.

  1. 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.

  2. 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.

  3. Paint! (I would paint on a map that grows upward - that’s default)

  4. 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.

  5. 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.

  6. 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

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? :confused:

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

What if… it were a really dark grey? Almost black?

Perhaps patterns might be an idea too, just to cover all bases with he different types of colour-blindness.

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.

That’s cool thanks! This means I don’t have to use those other blocksets right?

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?

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!

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. :slight_smile:

6R

Nice work p6r!

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

-JFFM

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

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