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

Rotorz Tile System for painting 2D and 3D tiles!

Discussion in 'Assets and Asset Store' started by numberkruncher, May 10, 2012.

  1. theprojectabot

    theprojectabot

    Joined:
    Nov 11, 2011
    Posts:
    38
  2. theprojectabot

    theprojectabot

    Joined:
    Nov 11, 2011
    Posts:
    38
  3. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    Hello @theprojectabot,

    I will respond to the e-mail that you sent me.
     
  4. theprojectabot

    theprojectabot

    Joined:
    Nov 11, 2011
    Posts:
    38
    thanks numberkruncher!
     
  5. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    I have uploaded a video to show we can use Genetica to make specific seamless textures for Rotorz and the brush creator which can cut automatically the textures in 9 parts to easily create/paint 2D levels...



    6R
     
  6. propapandagames

    propapandagames

    Joined:
    Jan 1, 2013
    Posts:
    70
    Really nice tile system, purchased today and liking it a lot so far.

    One problem I noticed though and it's a show-stopper for me: When using an atlas brush (the default "flat" brush, not the one made from smooth boxes), the UV coordinates appear to be distorted.

    Please see this image:



    • On the left is a custom plane. Note how each checkerboard field is exactly the same size (16x16 pixels).
    • The plane on the right is a single brush on a Rotorz Tile System with Tile Dimensions set to (1, 1, 1). Note how the checkerboard fields are not uniformly sized, ranging from 12-17 pixels in height and width instead of the expected 16 pixels.

    Both planes are using the same material. The texture is square, power-of-two, uses point-filtering and has mipmaps disabled. The rendered texture on my custom plane is identical to the input texture file, just as I'd expect it to be.

    I've tried all sorts of things and have come to the conclusion that it's not an error on my part. Any ideas?
     
    Last edited: Jan 1, 2013
  7. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    Happy new year to you!

    Many thanks!

    In 3D environments you get bleeding around the edges of atlas UV boundaries due to the way in which texture filtering works. The effects of this issue are also magnified when using mip maps on your textures. Here is an example image taken from Google Image search:


    After much discussion with some friends and fellow developers on a number of public forums, there only appear to be two good workarounds to this problem. I believe that there are better solutions which are supported by some GPUs, but unfortunately these are not supported by the Unity shader system.

    1. Inset UV coordinates by half a texel. When zoomed in you will see that the outer pixels are half the width they should be, but when viewed at a pixel perfect ratio with an orthogonal camera this is usually not noticeable. In fact if you look at some of the beautiful screenshots by Amaranth Games in this thread you will see that is so.

    This is the solution that was used in version 1.0 of Rotorz Tile System because it works for most scenarios and is automatic.

    2. Manually add borders around each tile on the atlas to avoid the need to inset UVs. This is usually the better solution but it requires more effort on the part of the artist.

    In Rotorz Tile System version 2.0 you have 3 options:
    • Do Nothing
    • Inset UVs
    • Custom (allows for custom border size and/or custom UV inset)

    If you send me your e-mail address via PM I will send you release candidate 1 of RTS version 2. Let's see if we can keep the show on the road for you :)

    The only cavet is that the user documentation is not finished for version 2 yet, and that it is in the final stages of testing. But I am more than happy to provide the new release to my customers provided that they E-Mail me their invoice number as proof of purchase. The invoice number can be found on the PDF invoice that was attached to the asset store receipt email.

    I hope that this helps, please let me know if you have any further questions!
     
    Last edited: Jan 1, 2013
  8. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    Here is an example of how custom borders can be added to tileset artwork (which can be used with Rotorz Tile System version 2.0 when using the "Custom" edge correction method):

    $padding-example.png

    Please note that the artwork that was used to create this illustration was taken from the freely available tileset:
    http://bryceglasspoole.com/?loc=News&postID=2

    Here is a non-annotated version:

    $2d-tileset-padding.png
     
  9. x_ming_x

    x_ming_x

    Joined:
    Jan 1, 2013
    Posts:
    46
    Hello and happy new year :)

    ive had rotorz for a few months now and its a great system, ive built a brush building script which takes basic models like floor wall etc and places / rotates them to create all the different prefabs needed for the different orientations, its working great and now im onto the final step of creating the actual brush object, but ive run into a little problem thats got me stumped,

    when i try to add to the variations array in the tilebrushorientation script with

    TileBrushOrientation OrientationData = brushelement.GetComponent<TileBrushOrientation>();
    OrientationData.variations.add (child);

    error CS1061: Type `UnityEngine.Object[]' does not contain a definition for `add' and no extension method `add' of type `UnityEngine.Object[]' could be found (are you missing a using directive or an assembly reference?)

    im not sure if im making a general coding error or if its something about the way the variations array is setup, ive done this plenty of times with script based arrays in the past but as rotorz is compiled to a dll i cant access it to see whats going on.

    thanks in advance :)

    any help much appreciated
     
    Last edited: Jan 1, 2013
  10. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    The array of variations is a native .NET array:

    You can add to the array as follows:

    Code (csharp):
    1.  
    2. using System.Linq;
    3. using System.Collections.Generic;
    4.  
    5. ...
    6.  
    7. // Not tested, but should work :-P
    8. List<Object> variations = OrientationData.variations.ToList();
    9. variations.Add(child);
    10. OrientationData.variations = variations.ToArray();
    11.  
    Please let me know if you have any further trouble.

    Also please note that the API for doing this has changed for the upcoming version 2.0 because brushes are represented in a slightly different way.
     
  11. x_ming_x

    x_ming_x

    Joined:
    Jan 1, 2013
    Posts:
    46
    hello Numbercruncher

    Thanks for the quick response,

    ok so if i read your snippet correctly what i should do is make an array and then send the whole array across rather than adding individual bits
    ill have to rearrange a few things but im sure i can do it that way,

    ill give it a go

    about the changes to 2.0, i guess ill have to update my brush builder when this comes out, so please bear this functionality in mind so its possible
    perhaps you could build in a simple func to add variations by script

    thanks again for your great system and support :)
     
  12. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    I have just checked and can verify that in 2.0 the orientation class still has the "variations" field. The oriented brush class has changed considerably and it is most likely that you will need to make some changes to your brush builder there. Likewise brushes are not stored as prefabs anymore, so you will need to use the asset approach instead.

    The API functionality is quite well documented for 2.0, but as always if you run into any difficulties I would be happy to help you with problems migrating your brush builder logic. If you do require such assistance please send an e-mail via our contact page.

    Purely from an interest standpoint, what does your custom brush builder do? I am intrigued :p
     
  13. propapandagames

    propapandagames

    Joined:
    Jan 1, 2013
    Posts:
    70
  14. x_ming_x

    x_ming_x

    Joined:
    Jan 1, 2013
    Posts:
    46
    Hi Numberkruncher

    i was able to get everything working perfectly with your help, thanks again

    about my brush builder, well im using rotorz to build top down style maps, by leveraging all the orientations ive been able to make a single brush that draws buildings with 3 main areas, corridors, building edges (with walls) , and room centers, based on the orientations it adds and aligns floors and ceilings to make some pretty decent basic environments (for a top down), so to build each prefab for each section and rotate it to make an orientation was a big job with some 30or so bits to each brush, so i built a lil script that does it for me, it creates the prefabs from a set of base pieces (wall sections / floor sections etc) with a few simple settings then it saves them into the asset database and creates a brush with all the orientations. then the last bit you helped me with points the orientations to the prefabs and voila all i need to do is refresh brushes and its ready to paint, does an evenings work in ten seconds ;)

    ive also heavily modded one of the dungeon generators from the assets store to do loads of cool things and the best bit is that it generates multiple rotorz tile systems then paints the environment using the brushes, this makes it really nice to edit the output by painting in tweaks after the initial generation. and sets up everything to be editable in runtime as well.

    next up im going to make a version that does building exteriors and have a go at painting / generating multiple storeys on stacked tile arrays ;)
    oh and im going to add an option to the builder so that instead of building a new brush it can add what its built to an existing brush as variations,

    hopefully soon ill have some nice pics or vid to show, if you want to know more ill be happy to show you, it definately is a gamechanger and massive timesaver when building a nice set of brushes.
     
  15. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    @x_ming_x

    You will be happy to know that the ability to create top-down maps in Rotorz Tile System version 2 has been greatly improved. When creating your tile system you can specify the direction in which tiles will face relative to the tile system.

    One of my BETA testers has tested this feature using BITGEM's Dungeon Builder Starter Kit and it appears to work beautifully!

    Your custom script sounds very interesting and I will look forward to seeing some pics or a video!
     
  16. Krileon

    Krileon

    Joined:
    Oct 30, 2012
    Posts:
    642
    Nice, just purchased and seeing significant performance improvements over Tidy Tile Mapper (still very good). I'll be writing PlayMaker actions for most of if not all of your API that is documented encase anyone is interested; will release on PlayMaker forums and reply with link here when done. I've already done the same for TidyTileMapper runtime API. Thus far I've 4 actions already done (enough to change vector3 to grid location, paint a brush, and erase a tile).
     
  17. Krileon

    Krileon

    Joined:
    Oct 30, 2012
    Posts:
    642
    One thing I miss from TTM is the ability to paint backgrounds on the same grid as the blocks. Is there anything planned in this regard?
     
  18. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    Hi Krileon

    I am not familiar with the feature in TTM that allows you to paint backgrounds on the same grid as the blocks.

    To me it is more logical to manage each separate layer of tiles using separate tile systems. Doing so allows you to have multiple layers of foregrounds and backgrounds without causing unnecessary confusion to the user:
    • No need to offer multiple painting tools.
    • No need for specialised GUI for managing tile backgrounds.
    • No need to add confusion to the API
    • No need to incur additional memory overhead for storing the extra per-tile data.

    As you probably realize from the pre-release that I sent you, version 2.0.0 introduces the "Scene" palette window which makes it easier to switch between tile systems when painting. There are also two keyboard shortcuts which work when painting within a scene view:

    Page Up: Select previous tile system using scene palette order.
    Page Down: Select next tile system using scene palette order.

    You can drag and drop tile systems in the scene palette window to rearrange them into the order that works best for you.

    So switching between tile systems is but one click or chord of keys.

    Please forgive me if I have misunderstood what that background painting feature actually does.

    What do you feel the primary benefits of such a feature are?
     
  19. Krileon

    Krileon

    Joined:
    Oct 30, 2012
    Posts:
    642
    Below is a video of it. It's very cool and makes adding backgrounds extremely easy.

    http://tools.dopplerinteractive.com/2012/05/tidy-tilemapper-dynamic-background.html

    I suppose you could just create another block layer, create a block from a plane, paint that on, and position it behind the main block layer. I tried adding a background using planes previously, but it looked awful. I suggest taking a look as could be a cool new feature to add.
     
  20. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    Thanks for the video link I will take a look at that.

    I have just recorded a quick video demonstrating how this can be achieved using RTS version 2.0.0:

     
    Last edited: Jan 16, 2013
  21. Krileon

    Krileon

    Joined:
    Oct 30, 2012
    Posts:
    642
    Nice! That's basically the same. Thank you, will give it a try.
     
  22. pushingpandas

    pushingpandas

    Joined:
    Jan 12, 2013
    Posts:
    1,419
    Do you release the used tiles from your demo videos to the asset store? They look awesome!
     
  23. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    Hi Devision4

    The "Grass Platform" and "Cave Platform" tiles were originally created for Munchy Bunny but are provided with Rotorz Tile System. The "Pink Platform" tiles that you may have noticed in the above video were created by me and will be included with the next release of Rotorz Tile System.

    The tiles used in the above video were created by Bryce Glasspoole (original version here). I rearranged the tiles and added 5px border space around each tile to demonstrate one of the new features of Rotorz Tile System version 2. My altered version is available on this thread.

    I have also used some tiles from the following fantastic tileset for demonstration purposes:
    http://mapledev.tumblr.com/post/10406905135/howtotileset
     
  24. Bowie-Xu

    Bowie-Xu

    Joined:
    Sep 14, 2011
    Posts:
    28
    Hi numberkruncher
    I just bought your plugin and it's cool!
    I am still studying it so maybe my question is stupid......
    I try to make a "top view" tile world by using your bricks in plugin's demo like "Cave block".(Both in scene and game windows)
    But no matter how hard I try, I just can not do that, the tile I paint in map will auto rotate to "side view".
    Is there any way I can do?

    Thanks!
     
  25. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    Hi Bowie Xu

    I am not entirely sure what you are attempting. At best (with the provided platform meshes) you could create a custom "Oriented Brush" with "Apply Prefab Transforms" selected to get something like the following:

    $cave-top-down.jpg

    The "Cave", "Grass" and "Smooth Platform" tiles are intended for use side-on because they are platform tiles. If you want to create top down tiles then:
    • You could alter the UV mapping coordinates for the provided smooth platform brush using Blender. The original .blend file is included within the "Support" folder.
    • Create your own meshes for top-down tiles.

    Please let me know if this helps or if I have misunderstood what you are trying to achieve.
     
  26. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    Unless of course you wanted something like the following which can be achieved relatively easily:

    $top-down-cave-2.jpg

    Please let me know if this is the case and I will do a step by step guide for you.
     
  27. Bowie-Xu

    Bowie-Xu

    Joined:
    Sep 14, 2011
    Posts:
    28
    Hi numberkruncher
    Sorry for my english
    The "top down" i mean is like this:


    A step by step guide sounds great! Please do that!
    Thanks a lot!!
     
  28. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    The following video demonstrates how to create the block that I described here:

    Rotorz Tile System v1.1.3 Version


    Rotorz Tile System v2.0.0 BETA Version


    Though, if your tiles are for use with an orthographic camera then you might be better off using 2D tiles instead of 3D ones.

    I hope that this helps!
     
    Last edited: Jan 18, 2013
  29. Bowie-Xu

    Bowie-Xu

    Joined:
    Sep 14, 2011
    Posts:
    28
    Hi
    Thank you very much for your video, it helps me a lot! :mrgreen:
     
  30. Krileon

    Krileon

    Joined:
    Oct 30, 2012
    Posts:
    642
    What kind of pooling is used for realtime add and remove of blocks? Built in? None? Possible to implement 3rd party pooling? I've plans to allow placement of blocks and removal of blocks at realtime, but want it to of course be efficient. Would be cool if PoolManager could be used when present.
     
  31. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    None - No form of pooling is supported at the moment.

    Do you refer to the following?
    http://u3d.as/content/path-o-logical-games-llc/pool-manager/1Z4

    Just watched their video, looks pretty neat!

    I will consider adding pooling in a future update. I think that you have raised a good point regarding compatibility with the PoolManager asset. I have just sent an e-mail to the developers of PoolManager to find out if there is a way to automatically integrate with it.
     
  32. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    Hello Krileon

    Would it help if I introduced the following interface to hand over the key to object creation?
    Code (csharp):
    1. public interface IObjectFactoryContext {
    2.     // Associated tile system
    3.     TileSystem TileSystem { get; }
    4.     // Data for tile that object is being created for
    5.     TileData Tile { get; }
    6.     // Brush being used to paint tile
    7.     Brush Brush { get; }
    8. }
    9.  
    10. public interface IObjectFactory {
    11.     GameObject InstantiatePrefab(GameObject prefab, IObjectFactoryContext context);
    12.     void DestroyObject(GameObject go, IObjectCreatorContext context);
    13. }
    Where the default implementation would be:
    Code (csharp):
    1. public sealed class DefaultRuntimeObjectFactory : IObjectFactory {
    2.     public IObjectFactory Current { get; set; }
    3.  
    4.     public GameObject InstantiatePrefab(GameObject prefab, IObjectFactoryContext context) {
    5.         return Object.Instantiate(prefab) as GameObject;
    6.     }
    7.     public void DestroyObject(GameObject go, IObjectFactoryContext context) {
    8.         Object.Destroy(go);
    9.     }
    10. }
    11.  
    12. public class YourCustomFactory : MonoBehaviour, IObjectFactory {
    13.     void Awake() {
    14.         DefaultRuntimeObjectFactory.Current = this;
    15.     }
    16.  
    17.     public GameObject InstantiatePrefab(GameObject prefab, IObjectFactoryContext context) {
    18.         // Implement!
    19.     }
    20.     public void DestroyObject(GameObject go, IObjectFactoryContext context) {
    21.         // Implement!
    22.     }
    23. }
     
    Last edited: Jan 22, 2013
  33. Krileon

    Krileon

    Joined:
    Oct 30, 2012
    Posts:
    642
    Yeah that looks like it'd work. With PoolManager you're basically replacing Instantiate and Destroy with Spawn and Despawn. Is it possible for this to work in editor as well? As you can pool in editor too so that could help in providing even larger grids? As it'd consume less memory (pooling is all about memory and removing garbage collection stutter).
     
    Last edited: Jan 22, 2013
  34. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    I know very little about how PoolManager works so I have no idea whether you can use it within the editor or not. One thing that I know for sure is that prefabs must be instantiated differently from editor scripts. So you would need to implement a different object factory for in-editor use.

    Though I cannot see how an in-editor pooling facility would improve performance.

    Again, I cannot see how pooling in editor would allow for even larger grids.

    But obviously the performance benefits would certainly be there for runtime use when recycling objects to avoid garbage collection by recycling. Also at runtime you have the advantage of being able to pre-generate X number of prefab instances when the level first loads which helps to avoid spikes at runtime.

    I have implemented the above concept. Custom object factory can be specified at runtime by changing `DefaultRuntimeObjectFactory.Current` as demonstrated above. An in-editor object factory can be specified by changing `DefaultEditorObjectFactory.Current`. In-editor prefabs are instantiated using `PrefabUtility.InstantiatePrefab` and destroyed using `Object.DestroyImmediate`.

    So either way you can experiment and implement pooling in any way you like :) I will send you the updated package very soon.
     
  35. Krileon

    Krileon

    Joined:
    Oct 30, 2012
    Posts:
    642
    I've not used it yet, but PoolManager says it works in editor too, but I don't know how at this point.

    As I understand, when painting tiles it could significantly help improve memory management which could allow for large grids as a grid would consume less memory. As is it's probably instantiating each time you paint a tile, which can be improved with pooling so it only needs to instantiate once then uses the pool from then forward. I don't know the details of it or the performance gain as of yet as I've yet to use PoolManager, but as I understand it's basically to significantly improve memory performance.

    Yeah, that's mainly all I want it for is runtime usage. So in editor usage isn't really significant to me.

    Awesome! Thank you very much! This is hands down the best tile mapper available for sure. My little physics based game is shaping up nicely (albeit ugly as am no artist, lol).

    Wonderful, thank you very much!
     
  36. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    +1 for pool manager support! I use it for sprites in my game and it makes a huge difference. No hiccups when I create or destroy something.

    Like Krileon, I would use it for run-time, but now that I think about it, this feature could be great for the editor as well. I can imagine it would make something like flood fill even faster.
     
  37. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    @amaranth: Procedural 2D tiles (unless they have an attached game object) would not benefit from pooling because no game objects are being instantiated or destroyed when tiles are painted/erased. Though naturally any tiles that are individual game objects like characters, collectables, etc. can certainly benefit from pooling.

    In version 2.0.0 RC3 it is now possible for developers to replace the default object creation factory with one that uses pooling. You could create an entirely custom implementation, or implement a wrapper for PoolManager. As soon as I get a spare moment I am going to purchase PoolManager and see what I can come up with.

    @amaranth: Oh that reminds me, I made some adjustments to the way that procedural meshes are generated for tilesets to squeeze out a little extra performance!

    Note to BETA users: Upon updating to the next version: If you have used tileset or autotile brushes you will need to refresh your tile systems (though no need to force-refresh). A simple refresh will add the missing data.

    How would a grid consume less memory? the tile map data is still stored behind the scenes, each physical tile is still an individual game object.

    Pools (as I understand them at least :p) are just a bucket of pre-allocated objects that get used when painting. When there are not enough, additional ones get created. When objects are no longer needed, they get put back into the pool for reuse. So if anything, adding pooling to the editor will just increase memory usage. And of course the pooled objects would most likely be saved into the scene upon selecting File | Save which would increase the scene file size.

    Please excuse my ignorance, but I still do not understand how pooling could improve performance in the editor.

    I have been talking to the developer of PoolManager via e-mail and they have been very forthcoming. I will pose this question to them and see what they say with regards to pooling in the editor. I would love to know if there are improvements to be made there.

    Thanks everyone for all of your interest and support!
     
    Last edited: Jan 23, 2013
  38. Krileon

    Krileon

    Joined:
    Oct 30, 2012
    Posts:
    642
    Sounds great! Looking forward to next release! Amazing work you're doing here. I've rated and reviewed 5 stars.. wish I could give more. By far the best tile system hands down.
     
  39. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    I have purchased PoolManager and it is extremely easy to use! and the support is brilliant!

    Positive news so far, I have created "RtsPoolManagerObjectFactory" which seems to work really well. At runtime the performance boost is excellent. I have sent my script to the developer of PoolManager for a once over.

    I will keep you guys posted!
     
  40. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    Thank you!! that is very kind :D
     
  41. GermyGames

    GermyGames

    Joined:
    May 20, 2012
    Posts:
    38
    How do I change the initial direction when creating a tile system at runtime through code? I can rotate the tile system, but that seems kind of clunky if there's a proper way to do it.
     
  42. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    The proper way to rotate any game object is via its Transform component. The tile system component is positioned, rotated and scaled in whichever way its host game object is.

    Code (csharp):
    1. // Create game object for tile system
    2. GameObject systemGameObject = new GameObject("New Tile System");
    3.  
    4. // Position, rotate and scale as desired
    5. Transform systemTransform = systemGameObject.transform;
    6. systemTransform.rotation.eulerAngles = new Vector3(45, 90, 180);
    7.  
    8. // Add the tile system component and initialize
    9. RotorzTileSystem system = systemGameObject.AddComponent<RotorzTileSystem>();
    10. system.CreateSystem(1, 1, 1, 100, 100, 30, 30);
    RotorzTileSystem.CreateSystem

    I hope that this helps but please feel free to comment if you have any further questions!
     
  43. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    Hey guys!

    Okay, I have pushed some minor updates of the RtsPoolManagerObjectFactory script to its repository based upon suggestions made by the PoolManager developers.

    Note: RtsPoolManagerObjectFactory only works with the upcoming Rotorz Tile System version 2.0.0.

    There are no apparent advantages to utilising this type of pooling within the Unity editor itself. To clarify in case there is any confusion, pooling occurs and is beneficial during "Play Mode" when running inside of the editor. But introducing pooling for "Edit Mode" would make all scripts considerably more complex and incur overhead with no obvious advantages. Thanks for raising this question because it is always beneficial to find out whether there are benefits to be had either way.

    I hope that this helps :)
     
  44. Dreeka

    Dreeka

    Joined:
    Jul 15, 2010
    Posts:
    507
    Hey,

    I am interested in you system, and I have a few questions.

    I want to create a 2D game, where I would use Smooth Moves for animations, 2D Toolkit for the 2D system, and your kit for level design. Can your system work along with Smooth Moves and 2D Toolkit?

    Can I place prefabs with you system, or only sprites?
     
  45. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    Hi Dreeka

    As long as the sprites that you create using Smooth Moves/2D Toolkit can be saved as prefabs you should be fine. I have not used Smooth Moves or 2D Toolkit so I cannot comment on those at this time.

    Yes you most certainly can!

    To do this you can create an oriented brush and drag in one or more variations (which can be prefabs or other nestable brushes):
    See: http://rotorz.com/tilesystem/guide?ref=973c8a47-6a52-4959-b774-df62a1d3a765

    2D tilesets can be created from tile atlases:
    See: http://rotorz.com/tilesystem/guide?ref=f1204f0c-5ed9-46e5-b9c3-c08eb867b1b8

    I hope that this is of help, but please feel free to ask further questions if you need to and I will do my best to assist :)
     
  46. Dreeka

    Dreeka

    Joined:
    Jul 15, 2010
    Posts:
    507
    Hey,

    Thanks for the quick reply!
    I will buy and use your system in my upcoming project!
     
  47. numberkruncher

    numberkruncher

    Joined:
    Feb 18, 2012
    Posts:
    953
    Hey guys!

    Awesome!

    The new version of Rotorz Tile System is now available from the asset store!!

    Find out more here: http://rotorz.com/blog/2013/02/new-user-interface-packed-with-yummy-new-features/
    and of course the release notes: http://rotorz.com/tilesystem/release-notes

    With thanks to the above suggestions you are now able to pooling tiles that are painted and erased at runtime by using the PoolManager asset by Path-o-logical Games and the RtsPoolManagerObjectFactory script!
     
  48. Krileon

    Krileon

    Joined:
    Oct 30, 2012
    Posts:
    642
    Nice! Congratulations on all the hard work. This has turned into a truly must have asset. I've literally tried all the tile systems available and this by far is superior to them all.
     
  49. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    Awesome! I've been waiting so long for this new version. So many new features. This tool rocks!!!
     
  50. AntFitch

    AntFitch

    Joined:
    Jan 31, 2012
    Posts:
    243
    I can confirm that Smooth Moves works great with Rotorz. I don't know about 2D Toolkit, however.