Thank you for your interest in Tycoon Tile!
To answer your questions:
Yes I do have updates planned. On the top of the roadmap is better in-editor support for saving/loading/viewing/modifying the terrain. Most of it has been implemented but I do not deem it production-ready enough yet for public release. I cannot tell you a release date on that unfortunately, as Tycoon Tile is a product that I run besides my full time job and development on Tycoon Tile is not fulltime. I do try my best to provide any support as requested, but I advise to purchase Tycoon Tile solely on the notion of the product being as-is at the moment of purchase.
As for the shader, are you using a scriptable rendering pipeline by any chance? The sample shader only supports the builtin rendering pipeline at this moment. The grid shader only serves as an example, you can use any shader compatible for your rendering pipeline as you like. Refer to the tile type assets to change your shaders.
Good to know you’re still on it!
I wanted to report a couple issues that I had when getting started with TycoonTile, but unfortunately emails to support@tycoontile.com don’t go through. I keep getting automated responses that the email couldn’t be delivered.
A few issues with the current version 1.3.1 and Unity 2021.2.7. Missing URP support is a bummer, but you mentioned that already.
The main issue is: the package is not built correctly. Unity says it’s a “complete project” package (probably by right-clicking the “Assets” folder?) and importing it could cause issues, see below:
Trying to import package:
After choosing “Import” option from above:
Choosing “Install/Upgrade” will install package dependencies such as Collections. However, it results in errors originating from com.unity.package-manager-ui which I did not even want to try and resolve, because the issue is with Package Manager’s dependencies and that seems fishy when this happens in an internal package. Possibly the Package Manager UI package was downgraded as a result of importing the TycoonTile package.
Choosing “Skip” will install the package without dependencies: Mathematics and Collections. Collections has to be installed by identifier “com.unity.collections” since it’s still in preview. So that’s annoying but fixable by adding those two packages.
The alternative option to “Switch Project” unpacks TT into a new, temporary project. From there I could export the package and re-import the new package in my project. That then behaved the same as choosing the “Import => Skip” options above.
Finally, in OperationResult.cs(27) the three uses of .Length need to be changed to .Count() and then you’re set.
In result I got it working (in legacy RP) but with a lot of friction. I hope this helps others in the meantime until an update with fixes to these issues gets published.
Thank you for reporting the issues you are having. The support email not coming through is a new one for me, I will check with my hosting, thanks!
The issues with the package manager are known problems. Installing Tycoon Tile will require going back and forth with the package manager for a bit. I haven’t found a reliable way to always get it working on first import. Importing and exporting from a different project does work indeed (but is obviously not an import process I can facilitate from the asset store). It is a very unfortunate and unexpected behaviour of the package manager, but the issue does seem to happen because the version of the package manager is also saved with the project, effectively downgrading it on install. I don’t think there is much I can do to prevent this as long as I intend to support the 2018 LTS version. Given that that LTS will soon reach end of life, I will increase the minimum version to 2019 once the 2021 LTS version drops, which should hopefully resolve the issue.
The Length/Count() is also known, again an issue that I simply cannot provide a fix for. Unity has decided to remove one of the properties and rename it, but didn’t bother to provide a precompiler directive that allows me to switch the usage based on the installed package version. Should also be resolved once I upgrade the minimum version to 2019 LTS…
Again, thank you for reporting the issues on the Unity forums. I would’ve gladly fixed them if I had a way to do so, but Unity lets publishers in the dark with changes like these. Plan is to resolve the problems in 2019 LTS, since minimum package versions there should be more compatible.
I’m sorry that you had to endure the rough import process, but I am glad you found a way to get it imported. Enjoy using Tycoon Tile!
I have pushed an update to Tycoon Tile that should improve the importing procedure. The minimum Unity Editor version will be 2019.4 LTS from this point on.
Let me know if anyone still experiences problems importing Tycoon Tile into their projects!
I have purchased your solution today and am starting to look into it and evaluate it for my project.
One of the biggest issues I have is that I wish to see the terrain in pause-mode and in editor as well, is there any way this can be easily accomplished? I find it a bit of a bummer to only be able to see the terrain during play-mode. This makes iterating and a couple of other things a bit of a nightmare.
Also: do you have discord or easier ways of communication about the tool?
I am aware you are working on this on the side, I have full sympathy for that and can relate, but maybe you are interested in potential deeper communication/support on this.
First of all thank you for purchasing Tycoon Tile!
Indeed, Tycoon Tile does currently not support viewing the terrain during edit time. While there has been work done to get editor support functional as an upcoming release, progress has been mostly halted due to personal circumstances. I do not have an estimate on when I can devote more time to the project yet. I can however provide you with the current state of that feature branch if you would like. It is still work in progress, functional, but not as bug free as I would like (hence not released yet). It should provide you with a great starting point however. Let me know if this is of interest to you.
I do not have discord, that is correct. I would prefer to keep communication on the Unity forums either in this thread, or you are welcome to DM me if there are any specific non-public details that you would like to discuss.
The multi tile buildings dont check for level ground in all cases. Also. Tried to leave code as-is and swap out the house for a different prefab and the preview spawns/displays 10 or so tiles to the right for some reason.
Is your own prefab zero’d on the transform? It may help to create a root transform for your object and scale all visible meshes accordingly under that root node.
In the default setup, the overlay on the terrain is what is being registered as the occupying terrain tiles, which is also the area that is checked for being level. Make sure the width and length are configured properly in the Constructable asset such that the area to check is well-defined.
I’m looking for a way to change the material for each water source.
(example, creating independent blue sea and muddy swamp water sources.)
Since these water sources seem to be batch rendered by the Terrain tile renderer, it may be complicated to achieve what I want to do.
If you have any good ideas or tips, please let me know.
Having different materials for each water source is not supported by Tycoon Tile out of the box, however I understand your usecase.
What you would need to do is modify the TerrainRenderer component and the water surface generation jobs it uses to account for different water materials. Probably needs some form of floodfill searching to ‘match’ different water tiles as a single body. There are some jobs which use this technique to ‘remove the whole water body at once’ included. When you click on a flat bottom of a water body it removes the entire body for example. You would also need to keep track of which water body uses which material somehow. And what happens when you ‘connect’ two different water bodies by lowering the terrain edge between them? These are things you probably have to account for.
The included materials do currently not support tile texture blending. However, you can customize the renderer to your liking and use any material you wish. Certainly possible!
There is no CTRL + Z support currently, no. Changes are handled in a centralised place though, so you could get this to work with some modifications. I will add it to the wishlist.
The terrain does automatically generate colliders for the terrain, yes.
You can use any material you would like to use for the surface and for the cliff meshes separately. In this case, you would need to have a shader where you can define some rendered width bases on vertex attributes. Then you would have to set these attributes on the cliff mesh vertices in the terrain renderer code, based on distance from top of the tile.
Example: You set the uv1 attribute (or any other) of the two top vertices to 0 and set it to ‘the distance from the top’ for the bottom vertices. Then you interpolate between these values with a cutoff to either render the ‘top edge’ or the ‘cliff texture’ in your pixel shader.
You could even use the uv0 attributes which already get mapped by the renderer to make an approximation, but then your ‘edge width’ would not be a fixed width but dependent on the height of the cliff face (it will stretch)
Is the wishlist (project roadmap) public? I’d like to see what’s on the schedule!
I know you have mentioned that we should have no expectation, so I will say this under reserve, but if you can develop the top texture height width feature I’m willing to pay twice as much for this asset.
I want to not render tiles below the water level (0). Is it possible to skip rendering tiles below a certain height level? Right now the tiles under the water are rendered, making a square. I do not want those tiles to be rendered, as I want a circular world.
The wishlist/roadmap is not public, no. It is my internal wishlist/roadmap. I don’t want to create any expectations for future development as I can not reserve to time to spent on further development at this moment. Although I would love to do so in the future.
Buyers should decide on their purchase based on the current state of the product, which in my honest opinion is still a very good deal. Support will be provided within the scope of the asset as anyone could reasonably expect.
You can modify/inherit from the TycoonTileRenderer component and use your own job implementation to customize the way the terrain is rendered. Rendering is decoupled from the other logic in Tycoon Tile. Easiest would be to either change the included implementation of the rendering jobs or copy the implementations and start from there.
You basically skip rendering tiles based on their x/z position (for example using a formula based on distance from center, resulting in a circle) or you check the water heights and use that as a mask for your positions in the job.