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

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi @rstehwien,

    If you untick "Initialize on Awake" in the Controller prefab script, and then Initialize the controller (documentation incoming) once your maze has been generated, that will smooth out your issues.

    -JFFM
     
  2. rstehwien

    rstehwien

    Joined:
    Dec 30, 2007
    Posts:
    101
    Thanks Joshua it took me a bit to get it puzzled out. I created a clone of the player control prefab and turned off the init on awake. Then in my script I loop over all the blocks and create them but keep a reference to the player block. Then after the blocks are refreshed I do this:
    Code (csharp):
    1.  
    2. BlockUtilities.RefreshMap (createdMap, randomiseInitialMap);
    3. if (playerBlock != null)
    4. {
    5.     player = playerBlock.GetComponentInChildren<PlatformerPlayer>();
    6.     if (player != null) {
    7.         player.InitializeEntity (createdMap);
    8.     }
    9. }
    10.  
    Took me a while but I now have a working player controller. After I get a few controls on there to regenerate the map and try out something I was planning to make sure the maze can be traversed I'll post a demo. Still so much to do to make it a game.
     
  3. Jay-Pavlina

    Jay-Pavlina

    Joined:
    Feb 19, 2012
    Posts:
    195
    I've thought about it a bit more and I think my sprites will not work with the autogenerated preview thing because of the way they're set up. I just created all the preview images manually. Is there a way I can make sure that the previews I made will not be overwritten? When does it update them?

    Edit: It seems like they get overwritten every time I change something. Would you consider adding an option to turn off auto generating preview files?
     
    Last edited: May 21, 2012
  4. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi Exploding Rabbit,

    Cool, I can add that.

    -JFFM
     
  5. Jay-Pavlina

    Jay-Pavlina

    Joined:
    Feb 19, 2012
    Posts:
    195
    Thank you. You are an awesome developer.

    Is there any way to change the size of the Block Selection window? I have a lot of tiles and it'd be great if I could see more of them without scrolling.

    Also, performance is slow especially when creating new chunks (even at the default size of 5 x 5). It seemed fast on your videos so I wonder why it is slow for me. Does it run slower on Mac than PC? I'm guessing there's nothing that can be done about it. It even happens with the default tiles.

    Edit: I didn't realize the block selection window expanded as I add more blocks. So that works fine. :)

    Edit 2: Actually it doesn't fit all the blocks horizontally. No matter how I resize it, it always cuts off one column of blocks.
     
    Last edited: May 22, 2012
  6. rstehwien

    rstehwien

    Joined:
    Dec 30, 2007
    Posts:
    101
    I got my player controller working with runtime instantiation. Unfortunately the elevators aren't working right - using the OCDPatrollingEntity or a altered version thereof (where I turned off the block rotation); it leaves a collider where the block originally was, the player will often fall through, and it won't go up while the player is on it because of how the entities reserve movement. I'll continue fiddling.

    The part I'll have the hardest time with is figuring out why the elevator collider stays in original location (no matter what combos I've tried in the block editor).

    There is a semi playable demo (elevators not working makes it hard to complete, menus only partially implemented, etc.)


    Once I get some basic navigation done, I'll work on making more of a game of it by having locks, doors, treasure and an exit. Then monsters, field of view, biomes, etc to make it more roguelike/terraria like. Not happy with the jumping horizontally being blocked by the roof. Might need to raise the roof a little by twiddling the maze renderer.
     
  7. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi @rstehwien,

    The Patrolling entities are not intended to be elevators at present - just things like... birds or such. The Elevator logic I use in my videos derives from the patrolling entity, but adds a few more things like:

    A trigger to signify the "stick" zone, an "on trigger enter" transform parent, and an update of the "arbitrary gravity point" which parented.

    The collider that controllers leave is their parent Block (think of it like a "Spawn Zone"). The controllers themselves detach from these parent Blocks and then become their own entities out in the world.

    (One thing I forgot to mention in my video - you must assure you turn your controller Blocks to "Act Empty" and uncheck "Retain Collider").

    Hope that clears things up!

    -JFFM
     
  8. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi @Exploding Rabbit,

    I've been meaning to change the Block layout in the scrolling pane for ages - it's one of those things that I just keep forgetting to do. I'll write it on my whiteboard.

    Hmm, I'm not sure why your performance is slow unfortunately. It runs moderately nicely on the test machines here (one PC and one Mac) - but it does get geometrically slower the bigger the map is.

    I did a whole bunch of testing on this, incidentally - because I wanted to have a super-fast tool, and the lag seems to come down to a single call....

    transform.parent = transform;

    (That's placing the block beneath the chunk in the hierarchy)

    Which is unfortunate, because that's... all internal.

    Leave it with me - I'm continually polishing and updating. Hopefully at some stage it will be so fast, it will pre-empt your desire to make a game, and you will open your project and the game will be completed, shipped, and the profits in your bank account. Kind of like the cobbler elves ;)

    -JFFM
     
  9. rstehwien

    rstehwien

    Joined:
    Dec 30, 2007
    Posts:
    101
    Don't quite follow this part. But I did figure that the patrolling entity wasn't quite what I want and copied it to make some changes. First was removing the rotation since it didn't make sense for the block to turn around. Still working on it but I'm actually considering using the blocks only for walls and creating controllers outside of the block maps (especially since they might cross maps depending on how I do some things; I may end up premaiking some tiles of interesting blocks to place as pieces of the maze).

    Yeah that makes sense.

    I've done that and it still leaves a collider at the original location. Actually I'm not sure it is a collider as I can't see it in the unity editor at all ... no wireframe or anything. But the player controller is bouncing off of something. Could be part of the entity logic still thinks the block is there.

    Turns out the player is doing the same thing... there is a "block" above where the player falls down to (the player is created above the start point... I plan on adding a start block with some animations).
     
  10. rstehwien

    rstehwien

    Joined:
    Dec 30, 2007
    Posts:
    101
    Could you cache the transforms. Unity doesn't get the property through direct access... it is an indirect access with transforms. This page recommends caching transforms (see 3. Cache component lookups)
    http://unity3d.com/support/documentation/ScriptReference/index.Performance_Optimization.html
     
  11. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,521
    This looks similar in some ways , good to see more developers making things easier

     
  12. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi @rstehwien,

    The Block collider you see left behind on Character Controllers is the actual "Block" that is painted into the scene (the controller is just a 'variant' beneath this block). That's why it's stripped at runtime. It's mostly there for Editor purposes (to take clicks and to maintain a transform and such).

    It's a puzzler that things are colliding with it - is this with physics-only controller (the Player and Platform controller) or patrolling controllers?

    If it's the former - the Block must still have a collider - if it's the latter, the Block is somehow registering as "Non-empty".

    Would you be able to send me through a snapshot of the hierarchy at runtime, of the Block in question?

    Thanks!

    -JFFM
     
  13. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Furthermore:

    Oh man. I put together a video just for fun - a "dev" type thing a few weeks back, and thought you might get a kick out of it.
    I don't think I posted this at the time:



    -JFFM
     
  14. rstehwien

    rstehwien

    Joined:
    Dec 30, 2007
    Posts:
    101
    I'll put together a demo package with the problem.

    I'm pretty sure it is that the block registers as non-empty. Looking in the inspector I can't see any colliders in the area (zoomed in, rotated around, change rendering style, etc).

    My generator is coming along nicely... looking less like an obvious maze. Hoping during the long weekend I can add keys, doors, and treasure (probably just visually added to check the algorithm) plus improve the UI to change runtime settings.

    The background tiles look awesome... saw it on youtube a couple days ago.
     
  15. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Awesome, thanks @rstehwien - I think I've developed a theory as to what's happening, hopefully it's correct - then everybody wins ;)

    Edit: I've conducted a pre-emptive strike and submitted an update to correct the issue. :D

    -JFFM
     
    Last edited: May 26, 2012
  16. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    This background option is great !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    Thanks JFFM.

    6R
     
  17. rstehwien

    rstehwien

    Joined:
    Dec 30, 2007
    Posts:
    101
    I sent you a unitypackage that has the smallest reproduction of the problem. I saw an update available for TTM this morning and it still happens with it (but it seems a bit quick for unity to have updated.
     
  18. markhula

    markhula

    Joined:
    Sep 3, 2011
    Posts:
    630
    Hey JFFM,

    Like the new features. Especially the function call feature...... but you know what we really really really need to help your dulcet tones; yeah you know! ;-)))) ; multi block single game objects (how did you know I would say that).
    Do you have a sneaky preview video of this feature to wet our appetites? :))))))))

    Cheers
     
  19. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi @markhula,

    Ohh I should have a sneaky preview very soon. I love sneaky previews ;)

    -JFFM
     
  20. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hello Party People,

    Minor update out for TTM is now live on the Asset Store - fixes a few bugs and updates the inbuilt documentation on the BlockUtilities class.

    And classically - introduces a Null Reference exception bug when adding Null blocks via the BlockUtilities.AddBlockToMap() function - so ... standby for yet another update! :D

    And then to make this post less boring, here's a picture:



    It's an endlessly-climbing staircase made with the TTM Runtime API.

    That's a forward-growing map of 5x5 chunk size, endlessly growing upward using two Blocks (flat plane, sloped plane).

    That's all from my side of the screen!

    -JFFM
     
  21. rstehwien

    rstehwien

    Joined:
    Dec 30, 2007
    Posts:
    101
    That fixed the invisible collider problem.. .and thanks to Joshua I've got functional elevators:
    http://arcanearcade.com/Demo/ArcaneMazeDemo/

    The exit is always in the lower right hand corner and marked with a red cylinder. Now on to adding doors and keys.
     
  22. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi @rstehwien,

    Oh beautiful! I'm glad that fixed the collider issue.

    The issue in the end, was that:

    When publishing / running a map created in the Editor, the map passes through the "Clean" process (removing working blocks, removing colliders if the block has one and if it is tagged as "Don't retain collider".

    However, when adding Blocks via the Runtime API, as the map is already technically "Clean", it doesn't pass through this process. What I forgot to account for, is that Blocks will have a collider by default (to handle mouseclicks), so I needed to strip that badboy off in the AddBlockToMap() function.

    I've got some cool stuff incoming for everybody - keen-eyed observers may have noticed a new handful of functions in the Runtime API in the last release.

    I'll keep you posted!

    -JFFM
     
  23. GamesByJerry

    GamesByJerry

    Joined:
    Oct 27, 2008
    Posts:
    71
    Loving this tool, one of my best purchases in the asset store :)

    One little extra bit of optimization that I would love to see added is the "Strip All" option going one step forward and removing all useless Game Objects. Here's an example shot with a level published using "Strip All" that highlights extra Game Objects that aren't required:
    $Extra GameObjects.png

    Unless I'm missing something as to why there are still required? Given a fairly large level I think you could see a few megs of ram reduced (handy for mobile devices!).
     
  24. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Oh that's a killer idea @Tagged.

    I didn't even think of that. Beautiful, I'll write it on my whiteboard.

    Pop everything down into a single hierarchy, remove all chunk objects and parent objects. Too easy.

    Thanks!

    -JFFM
     
  25. rIKmAN_

    rIKmAN_

    Joined:
    Jun 5, 2012
    Posts:
    9
    Hey JFFM,

    Firstly - great job on TTM!
    You really have grown something great from a tiny acorn and the whole system is almost becoming a simple game creation tool all by itself which is no mean feat and something you should be very proud of.

    I also really respect how quickly you have responded to bugs and feature requests made in the forums, and hope this continues into the future as if I decide to make this my first purchase (which is likely depending on the answers on the questions below) I can guarantee I would have a list of features/additions you could implement going forward. :)

    Anyway enough waffle!
    I just decided to check out Unity today and whilst looking for tools to help make the game I have in mind I stumbled across this thread, and 19 pages, 10+ videos and 3hrs later here I am signing up and popping my forum cherry to ask a few questions.

    So here we go...

    1) Does TTM require the Pro version of Unity to function (for any/all of its features) or will it work 100% with Unity (Free)

    2) Are there any issues using TTM with an orthogonal perspective camera?

    3) I notice that the levels created with TTM show a very obvious tile/cube effect with an outline around/between each block.
    I assume this is simply because of the textures used - could you confirm this is the case and that smooth looking tiling is indeed possible?

    4) Do realtime lighting effects work with the maps created with TTM?
    ie. Would the tiles react and light correctly to things such as a player holding a torch in a dark map, or flickering streetlights, nazi searchlights, that sort of thing? (Without the use of lightmaps)

    5) In your recent updates I see you have added 'Functional Overlays'.
    Am I right in thinking these could be used (and extended) for things such as:
    * Story direction (triggers for actions, conversations, camera movement, animations, sound effects, music etc)

    Also is the detection for these based on complete movement into the tile or per-pixel into the tile boundary?

    Thanks for your time, and well done it really does look awesome!
     
    Last edited: Jun 5, 2012
  26. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi @DoobyDude,

    Thanks for your kind words!

    1) Does TTM require the Pro version of Unity to function (for any/all of its features) or will it work 100% with Unity (Free)

    TTM works 100% with Unity (Free), I love everybody equally ;)

    2) Are there any issues using TTM with an orthogonal perspective camera?

    Nope, no issues at all. Everything should be smooth as silk with whatever camera layout you desire.

    3) I notice that the levels created with TTM show a very obvious tile/cube effect with an outline

    You're 100% with your guess - the Blocks we demonstrate with have a very pronounced bevel around the outside (we were going for a Mario Bros. look). You can get a nice smooth tiling effect if you use blocks that tile nicely (I'll dig up a screenshot):



    That's a little demo-set I was working on (practising my texturing).

    4) Do realtime lighting effects work with the maps created with TTM?

    Definitely, I've put a few lighting effects over some demo maps on our side, with no particular noticeable issues. The tool itself really just places objects, the lighting will largely depend on the object itself (and the placement of the light).

    5) In your recent updates I see you have added 'Functional Overlays'.
    Am I right in thinking these could be used (and extended) for things such as:
    * Story direction (triggers for actions, conversations, camera movement, animations, sound effects, music etc)


    Precisely ;) I'm very excited about this feature in particular.

    Also is the detection for these based on complete movement into the tile or per-pixel into the tile boundary?

    Ohh I've not really thought about this one yet. There are two events that get thrown for tile-movement events:

    OnEnterBlock (triggers once the centre of the object passes into the boundaries of the tile) and
    OnReachBlockCenter (triggers once the centre of the object has reached the center of the tile)

    Thinking about it now, I'll likely put a dropdown to let the user select when they want this to be triggered.

    I hope these answers were helpful!

    -JFFM
     
  27. rIKmAN_

    rIKmAN_

    Joined:
    Jun 5, 2012
    Posts:
    9
    Hey,

    Thanks for your kind words!

    No problem, it's all you bro! :)

    1) TTM works 100% with Unity (Free), I love everybody equally ;)
    2) Nope, no issues at all. Everything should be smooth as silk with whatever camera layout you desire.
    3) You're 100% with your guess - the Blocks we demonstrate with have a very pronounced bevel around the outside.


    Awesome! :)

    4) The tool itself really just places objects, the lighting will largely depend on the object itself (and the placement of the light).

    With regards to this, that was really the meaning of my question - I just worded it badly.
    Being cubes, I assume they have standard 2 triangles / 4 verts per face - is this enough to allow for good looking dynamic hardware lighting within the Unity engine? (I'm a Unity noob remember!)

    Also with regards to the "Dynamic Mesh Backgrounds" in your last video, would these be affected by realtime dynamic lighting too?

    If so, once they are added together as a single mesh does this affect the quality of lighting upon them as I would guess a 4x4 cube grid converted to a single mesh would turn into 4 triangles/verts (maybe even 2?) per face and would not be lit very well.

    I am coming from a system which used only vertex lighting though, so maybe this issue does not affect Unity as I am not aquainted with per-pixel lighting just yet.

    5) Precisely ;) I'm very excited about this feature in particular.

    Again, awesome - this is a very interesting/exciting feature indeed!
    This is the main reason I am looking at TTM over other similar systems that just provide the tile mapping ability with no "extras"....that and the great support of course! :)


    OnEnterBlock (triggers once the centre of the object passes into the boundaries of the tile) and
    OnReachBlockCenter (triggers once the centre of the object has reached the center of the tile)

    Thinking about it now, I'll likely put a dropdown to let the user select when they want this to be triggered.


    Is there any chance of adding per pixel detection too? Maybe something like:
    OnTouchBlock (triggers when the boundary of an object passes into the boundary of a tile (even by a pixel))

    I would assume this would be integral for correct looking collision detection in platform style games, otherwise a player would be able to half enter a fire / lava etc block and leave again without anything happening as the the centre of the object or tile was not reached. Maybe I'm missing something though.

    Also, is there a ETA on the "Streaming Tile Map" feature I saw in one of the videos? (and the Function Overlays for that matter!) :)

    I am a little worried about some of the reports of there being slowdown even with small size worlds due to each cube being it's own GameObject, and I'm not talking Minecraft size levels here but I need to be able to have a decent sized world (say 5x5 screens size) to move about in without there being any speed issues either in-game or in the editor.

    If this can only be achieved using streaming then it's an integral feature for me.

    Lastly, the price for TTM - is it in Australian Dollars or US Dollars?
    I have never used the Asset Store before and noticed you are from Oz, so am unsure if all prices are set as US or whether Asset makers set it based on their location.

    Thanks for the swift reply! :)
     
    Last edited: Jun 5, 2012
  28. orb

    orb

    Joined:
    Nov 24, 2010
    Posts:
    3,037
    They don't have to be cubes. If you make the blocks all conform to the same general cube area, you'll still have consistent behaviour and can use anything, really. Your "blocks" could be crash test dummies or spheres if you really like, since they're just based on whichever prefab objects you give it :)

    Collisions and triggers are already part of Unity itself. Just attach the scripts with the right functionality on the prefabs/instances. You'll need to dig into the Unity documentation for this. Collisions on, script to react, make it run your death sequence on a lava collision.

    All prices are in US dollars. No crap regional pricing, no attempts at showing the local currency.
     
  29. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi @DoobyDude,

    Streaming Maps ETA

    Oh man that's a good question. I guess I'll release it at the same time as Dynamic Mesh Backgrounds. It's all finished, I was just waiting to have it integrated with the Character Controllers (which are here now!).

    That'll likely be... very soon. I try to space feature releases out by a little bit to let the previous features stabilize, and so as to not flood people's brains with new features.

    Lighting on (upcoming) Dynamic Mesh backgrounds

    Per-vertex lighting on the dynamic mesh background is fine, at present. It generates two triangles per Block of space that it wishes to generate background for, which will be lit consistently with whatever you decide to populate your Block with.

    (Just to clarify: "Block" is just a word meaning "Object containing other objects with which you can paint", not necessarily a physical square Block).

    Per-pixel tile events

    (Man, I love when other people answer questions, it gives me such pleasure) - @Orb is on the money here. If you're after a more "realtime" per-pixel style events system (as opposed to the mathematical model of the grid) - you can pop a Trigger on your objects (the Block itself actually has one by default) - so you will receive these events also.

    I should revise my original outline in that case:

    OnTriggerEnter (when your collider enters the block - so this should include the very edge of the collider)
    OnEnterBlock (triggers once the centre of the object passes into the boundaries of the tile) and
    OnReachBlockCenter (triggers once the centre of the object has reached the center of the tile)

    I hope these answers are helpful!

    -JFFM
     
  30. rstehwien

    rstehwien

    Joined:
    Dec 30, 2007
    Posts:
    101
    Really looking forward to the dynamic backgrounds. Will give my generator more to do (and somewhere to stand on top down maps without making a plane under the map).

    Thanks again Joshua.
     
  31. orb

    orb

    Joined:
    Nov 24, 2010
    Posts:
    3,037
    This brain is fried already, so it doesn't matter much. Juggling too many things :)

    If you want to take a break, maybe write some in-depth API/tutorial docs and make available as bundled HTML+PDFs?

    I haven't played around with uneven blocks yet (the projects I'm playing around with are similar in style to your example blocks anyway - lucky me!), but what would happen when we have blocks of varying sizes?
     
  32. rIKmAN_

    rIKmAN_

    Joined:
    Jun 5, 2012
    Posts:
    9
    Thanks for the replies guys, most helpful.

    I think I will spend a few days getting used to the Unity basics and aquainting myself with the UI and workflow of how it all fits and works together, as this will stop me asking silly questions with regards to TTM when Unity has these things built in (ie object colliders - doh!).

    As I said I am a Unity noob and come from a strictly programming background, so once I am up to scratch with how Unity works I can almost certainly say you will have a new customer! :)

    Thanks again.
     
  33. orb

    orb

    Joined:
    Nov 24, 2010
    Posts:
    3,037
    You've got a slight threshold to get over. Having used other engines/frameworks helps. But after that little bump it's smooth sailing most of the time :)
     
  34. rIKmAN_

    rIKmAN_

    Joined:
    Jun 5, 2012
    Posts:
    9
    Yeah it is a little strange going from coding every line of a game to using Unity, but I have just downloaded the entire 3DBuzz Unity Fundamentals series (as well as all the others available for free) so that should help me get up to speed by the weekend.

    Once done I shall be back! :)
     
  35. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
  36. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi @orb,

    I completely missed your question sorry (was reading forums from my phone for the past few days):

    I haven't played around with uneven blocks yet (the projects I'm playing around with are similar in style to your example blocks anyway - lucky me!), but what would happen when we have blocks of varying sizes?

    Blocks of varying sizes just... get placed into the map like everything else. I use a few of them for signposts (roughly 3 wide and 1.5 tall) and UI elements currently.

    The secret on that one is to make sure your centre-point is in a nice position to be bound to the position you select in the map, after that... it's all smooth sailing.

    In other news, is anybody taking part in the 7-day FPS challenge? (website here: 7DFPS) - I'm going to be doing a small old-style number using TTM and randomly-generated levels.

    If you are, hit me up on email! We should start a group skype or something.

    -JFFM
     
  37. rstehwien

    rstehwien

    Joined:
    Dec 30, 2007
    Posts:
    101
    If you are interested in using my level generator, I could get some top down generation working... the maze->platformer is pretty much done (got the generation of goals, obstacles, and keys working this morning). Was going to focus on design time integration on a few tile mappers then top down maps (keep trying to polish it up for release).
     
  38. coder8

    coder8

    Joined:
    Jan 28, 2010
    Posts:
    6
    Can Unity handle drawing an 80x80 grid of Tidy tiles? I am having trouble getting unity to handle many objects for an adventure style game. Creating a game object for every tile really seems to slow things down. Is there a way to batch up the tiles into a single draw call and run my own collision detection etc...? I am thinking something similar to the old school Zelda type games. Does the package come with examples of getting started with the runtime api?

    Thanks

    -Tim
     
  39. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi Tim (@coder8),

    Unity certainly doesn't like lots of GameObjects - at least not in the Editor. I find the general rule is:

    Runtime API for anything bigger than a small-to-medium level, Editor Extension for smaller, crafted levels.

    I've been using maps of 5x5x100 with the Runtime API on my phone (Android - Samsung Galaxy S) and it runs beautifully, but the same wouldn't apply within the Editor.

    A GameObject-per-tile (the way Tidy TileMapper does it) is for a very specific set of functionality (to support game logic and painting functional objects).
    For something closer to an old-styled Zelda game (where the tiles are 99% non-functional) - if you wish to paint in-editor, I'd recommend looking at something that creates a mesh at edit-time as you paint (as this will go around the in-Editor limitations of having many objects in the scene).

    Alternatively, if you're going full 2D, jet me an email - the "Add Background" functionality in the newest release (going out this evening) can be used to paint procedural meshes, zero gameobjects but for the Mesh object.

    Maybe even jet me an email or message either way - I've got a few 66% completed extensions for TTM that you might find helpful.

    Edit: Actually I'm too excited by one of them to keep it a secret.

    I put together an extension to the Streaming Maps plugin (since I couldn't think of a nice way to release it without it just being... some script you drop onto an object) that takes an image (say, from paint or photoshop) and associates every color you use with a Block.

    That way, you can paint a massive massive map (a billion by a billion), load it into TTM, tell it "Hey, Blue equals Water" and when you press 'Play', it makes a Streaming Map based on this. No need to mess around in the editor.

    If that's something you would find useful, or anybody would - hit me up. It's finished, but I don't like to muddy the waters too much with features that distract ;)

    -JFFM
     
  40. orb

    orb

    Joined:
    Nov 24, 2010
    Posts:
    3,037
    I think that image-to-map extension would be a perfect addition to TTM. It would make life simple for any old-fashioned level designers who don't want to deal with this annoying third dimension :)

    Might also make it much faster for people working with slow, old computers.
     
  41. coder8

    coder8

    Joined:
    Jan 28, 2010
    Posts:
    6
    Argh! I see that my editor is missing some of the buttons you have in your videos. I got the package from the Unity Store. Is there are more updated version somewhere with the background painting? Also I am looking for a tutorial on working with the top down views. I see you have one video with a few units pathfinding around in a top down view but it does not explain how to set that up. Any tips?
     
  42. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,521
    would love the "photoshop" paint feature!
     
  43. JFFM

    JFFM

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

    Background painting is coming out in the next update - it should be live pretty danged soon. I'll be sure to put a message up when it's live so everybody can update.

    To get the hang of pathfinding - create yourself a top-down map and paint in a few "PathfindingController" from the swatch panel. (they use the script: RandomPathingEntity.cs)

    When you press 'Play' - they should mark out a blue path for themselves with gizmos and move around.

    Once you have that working, dig into the Pathfinding controller scripts: PathingEntity.cs provides a template from which you can derive. As you can see in RandomPathingEntity.cs the big functions are:

    OnReachPathEnd() - put something in here to decide what to do when you reach the end of a path.
    PathTo() - tell it where to go, and it will go there.

    Trivia Note: I've actually found two small bugs in this class (fixed in the next update) - where the controller will skip the first node on the path and move to the second, and also with the BlockUtilities.IsWithinMapBounds() function.

    -JFFM
     
    Last edited: Jun 13, 2012
  44. JFFM

    JFFM

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

    I plum forgot to update the thread:

    The latest update to Tidy TileMapper is now live. It includes a few minor bugfixes, some internal tweaking, and the first release of the "Paint Backgrounds" function.

    I'll put together a video demonstrating how to use this - but for those of you who are super-pumped about it, here's a rundown:

    1) Create your Map.
    2) Move to the "Paint Background" panel (below the Block swatches).
    3) Backgrounds operate on materials from which the mesh may be constructed - Drag a material from your project to the field and click "Add Background".
    4) Activate Background Painting (by clicking the new button on the third row).
    5) Paint over your map as usual.
    6) To remove background, select the empty Background swatch (the first cell) and paint.
    7) Easy as that!

    As this is a very very new feature, please get back to me with any issues you encounter.

    Have fun!

    -JFFM
     
  45. spartan

    spartan

    Joined:
    Mar 10, 2010
    Posts:
    174
    @JFFM are you planning a discount or price drop for Tidy Tile Mapper? I would like to buy it and also buy Tidy Maze Maker.
     
  46. JFFM

    JFFM

    Joined:
    Nov 13, 2010
    Posts:
    336
    Hi @spartan,

    Oh tricky proposition. I've spoken with my best friends at Unity about being included in next month's "Asset Store Madness" sale - so if that goes through, TTM will be on sale for maybe... 40% off or so in July. But I'm not 100% on whether we'll be included.

    Aside from that, no ad-hoc sale plans for a little while.

    -JFFM
     
  47. spartan

    spartan

    Joined:
    Mar 10, 2010
    Posts:
    174
    @JFFM thanks for your response! I'll look forward to Asset Store Madness on July.
    Thanks!
    Spartan
     
  48. spartan

    spartan

    Joined:
    Mar 10, 2010
    Posts:
    174
    @JFFM today I saw that there are new assets on "Asset store madness", do you think that you will be included in this round?
     
  49. AlexEvangelou

    AlexEvangelou

    Joined:
    Sep 15, 2011
    Posts:
    11


    Thought I'd lead with a screenshot of what I've been working on. The random square chunks taken out of the corners are from a few missing orientations TTM doesn't support yet. But so far looking good.

    I'm using the runtime API to create a streaming map, it's 31 tiles wide and 300 tiles down. I wanted to maybe bring up some discussion about optimization involving different types of blocks. At the moment different orientations seem kind of inefficient. Take having two variants for example. I'm using 2dToolkit for handling my sprite sheets. So the only difference between the game objects created by variant A and variant B's prefabs is one public variable setting the sprite. Now when I use the runtime API to change the variation of a block from A to B it wants to remove the object and create a new one, as opposed to a simple variable change.

    Now I am using the asset pooling feature, which is quite nice. But with lots of orientations and variants it doesn't really stop there from being a decent amount of run-time instantiation of prefabs, even though the game objects made from those prefabs is pretty similar. On load I create the number of blocks on the initial screen, maybe I can afford to pre-create a lot more, I haven't really looked at it.

    It's not something I've really dug into, and I figured someone else might have a better solution to handle things so I'd post here to get some discussion started.
     
  50. JFFM

    JFFM

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

    Oh man, I guess maybe not? I've not heard back from Unity. Let me mull on this for a few hours.

    I've got a few updates to release, so I don't see any harm in dropping the price regardless. No promises! Stand by ;)

    -JFFM