I am very happy to introduce my asset. It has been constantly updated since it opened a few months ago. Now, this forum has been opened to improve the user experience. Any comments are welcome. I will kindly respond and develop. Thank you in many ways.
While playing around with it I noticed that using different shader’s seem to break something internally and make the sprite render completely black : (.
Here is a file containing two scenes, one using three native created shaders, and one using a shader created through a plug-in, and a default shader with added normal/occlusion maps.
Hi, KingShadowClock!
I have verified that the shader uses the game object’s LocalScale.z for its calculation.
The component of my work currently controls LocalScale.z to 0, but it seems to have no particular reason. This can be corrected with a simple modification. I will upload the completed code soon.
Three steps are required.
Once you have completed the tasks below, you can use that shader with new tile.
If you have any problems during the operation below, please let me know your e - mail address. I will send you the modified file.
And, It usually takes more than 10 days for this improved version to go up to the Asset Store live.
A. line: 44 in CustomEditorGUI.cs (Assets/Anonym/MapEditor/editor/)
C. Fix the Tile Prefab
Tile Prefab Path: “Assets/Anonym/MapEditor/prefab/Isometric/Iso_Tile.prefab”
Drag the prefab to the Hierarchy Window to create an instance.
Click the Reset (1.0, 1.0, 1.0) button on the RegularCollider Commponent in root’s child.
Click the Reset (1.0, 1.0, 1.0) button in the Iso2DObject Commponent in RegularCollider’s child.
Select the Iso_Tile object in Hierarchy and click the Apply button at the top of the Inspector to apply the changes to the prefab.
I have been window-shopping to see what 2d isometric engine I should buy. This looks like the best option and I hope to buy it shortly. Please keep up the great work! I am excited to buy and use it.
I think the 2 big pros with this asset, compared to the other similar assets, are:
works with unity’s built-in components
map editor
Both of which are a must in my eyes.
My goal is to create a multiplayer-based isometric game. From the looks of it, this video looks like it a networked-based game:
Is the above a multiplayer example? If so, can you give more details on how you implemented the networking with your asset? Is there by chance a sample scene in the asset with this exact demo, or a playable demo? (I know this is outside of the scope of the asset, but it doesn’t hurt to ask!)
Also, it seems your asset is the only isometric asset that includes a map editor, which is great!
Do you have any plans to make it more “2d rapid-creation friendly” such as a more click-based grid-based map editor? Exactly like Unity’s new tilemap feature, “Super Tilemap Editor” asset, or “Tiled” map editor application? If not, would it be possible for a user to extend your asset to allow a more rapid-creation friendly tilemap editor? I’m not sure if I am describing it properly, but I do notice there’s a pretty big difference between the functionality of your map editor compared to a more standard 2d map editor.
One last question: Does your asset include a sample with a 2d character controller? I have no interest in adding 3d models to my 2d project.
Sorry for all the questions and thank you! Looking forward to new updates!
@Shilo
I’m back!
Sorry to have kept you waiting so long.
First of all, English is not my native language. I try hard to make sentence. Please understand my ugly English.
I really appreciate your feedback.
But, this asset is not perfect one like the others.
Definitely, there are not only advantages but also disadvantages.
Therefore, carefully review the videos and documentation provided before purchase to ensure that they are suitable for your project.
Yes, now it’s the answer to your inquiry.
I hope this would be answer for you.
Multi player
That YouTube’s “MultiPlayScene” is my personal project.
So, the scene is not part of this asset.
New feature about tile map
It is true that this asset has less features compared to good map editors.
I remember when I used the Tiled editor it was really gooooood.
So, when I saw the new features of Unity for tile maps, I immediately began to imagine how to connect them to my assets. There is no progress yet, but I’m sure it will be added some day(Maybe not in the near future).
Possible for a user to extend
All sources are open for user to expand.
Expansion is possible for private use, but public sharing is not allowed.
Because, as you know, this is a paid asset.
Unfortunately, I thought of this as a tool for designers when creating assets, I focused on making it available without coding. So, there is no class document. I’m sorry for that.
2D character controller
The character controller included in the asset is not related to the character resource type.
So, you can use both 2D and 3D resources.
This asset builds Isometric world on 3D. It just looks like a 2D because isometric viewport. So, it need a 3D character controller.
The Isometric Character Controller is based on Unity’s character controller, which works on 3D coordinates. It checks the collision with the map object and moves the character to fit the Isometric view. So it looks 2D.
I’ve already planned for future updates, but I always try to incorporate user feedback into the update. Please mail me anytime.
@Nonym
Thank you so much for the detailed response! Your english isn’t bad at all.
As with you, I also have very little time to give a detailed reply in turn, but I really appreciate your detailed response. Thank you for going above and beyond with the help. It definitely confirms my thoughts on the topics! Its also re-assuring to have a developer that will put focus on the users.
At the moment my focus has shifted to another project that’s non-unity and non-isometric based, but I still plan on purchasing your asset and trying to implement multiplayer with UNet or with Photon at some point. I may also check out the tutorial you linked, to try out UNet again (its been a long time).
Can’t wait to see the progress on your personal project, if you plan on showing it to the public.
Thanks again and keep up the good work!
[v.1.2.1] Pending review.
The color calculation of IsoLight (1.2.0) has been improved.
Fixed a null reference problem that temporarily remained when IsoLightReciver was deleted. And, IsoLight tutorials are also uploaded to Youtube.
thank you.
[v.1.2.1 Custom Fix for 2017.1 or 2017.2]
Users using this version may experience the following problems.
There is currently a compile error in Unity 2017.1 and 2017.2.
Assets / Anonym / MapEditor / editor / IsoTileEditor.cs (311,28): error CS1501: No overload for method FreeMoveHandle 'takes 6’ arguments
If you can not use by this problem, modify it as follows.
Modify UNITY_2017_1_OR_NEWER
in lines 258, 276, and 312
of the Assets / Anonym / MapEditor / editor / IsoTileEditor.cs file
to UNITY_2017_3_OR_NEWER.
I will upload the modified version to 1.2.2 as soon as possible.
Sorry for the inconvenience.
So I am looking for an isometric map solution, mainly for a 2D game I am working on and I stumbled upon this asset. I tested two other big isometric toolkits already and both have different problems that make it very hard for me to work with them. This time I thought I might just ask before I buy if the asset has what I need.
I am mainly generating my maps procedurally at runtime and I will generate quite big maps. not endless, but something like 100x100 should easily be handled by the tool without performance issues.
So my two main concerns are:
How easy is it to use your tool at runtime from code? I am not interested in a level editor, I just need proper sorting and batching.
How good is your tool performance-wise? Can it handle big maps? I saw that you have some kind of baking tool for collisions (I think) and navmeshes. Can this also be done at runtime? If so, how long does it usually take on a regular mid-core machine? Seconds or Minutes or more?
I hope you can answer my questions. If your tool can handle my use-case I am happy to buy it!
It was not easy to answer because the content of the question was deep. I hope you have a good answer regardless of asset purchase.
I have been purchasing more than a thousand dollars of assets for years. All assets were not perfect, and applying to individual projects was not an easy task. Perhaps this asset has the same limit. So, instead of Yes or No, I want to briefly describe the mechanism.
It’s easy to use at runtime, but the speed depends on your skill.
The result of this tool is GameObject Prefab. There are no components of Isometric Builder in it. All are unity-native components such as Transform, SpriteRenderer, NavMesh, Atlas, and BoxCollider. Users can load or unload map prefab at runtime in the usual way using other prefabs. How efficient this is is independent of this tool and can vary greatly depending on the developer’s Unity expertise. This can vary depending on the map structure, size, game style, platform, and so on. That part is outside my asset scope.
Creating meshes needed for NavMesh can be used at runtime, but it is slow. It will take tens of seconds to create a mesh in real time by loading 100 x 100. If a project requires 100 x 100 units and many of these are loaded / unloaded in real time, then no asset would be enough. Basically, it seems to be a scale that does not consider optimization at all. You can get the same view with good performance by organizing huge blocks into small blocks and creating pre-baked NavMesh for each block to eliminate unnecessary real-time tasks. This is a common way to implement games that require large maps. This also depends on the developer.
Our assets help build maps and create navigational meshes, but they are not real-time seamless-world engines. It only removes dedicated components for smooth connections between different assets or projects and supports leaving unity-native elements. In fact, the fewer real-time functions, the fewer conflicts with other assets or projects.
So basically, your tool does not provide something like an isometric tilemap component, which batches individual tiles into a single mesh or anything. It is mainly an editor and otherwise just prefabs are spawned. How is sorting handled then? Just a clever use of SortingGroups and Z layer?
Baking the navmesh would’ve been a nice-to-have, so it is not that important actually. I was thinking of doing my own Hierarchical Pathfinding System anyway.
I am actually mainly concerned with colliders and meshes. I don’t want to have 400000 (on a 200x200x10 map, of course I won’t use every single cell, just as an example) separate GameObjects with each rendering on it’s own and having colliders on it’s own. I’d rather have the sprites combined in a smart way depending on height-layer or chunk-based or something similar.
From the videos it looked like your tool provides something like a chunk-system which automatically batches all it’s tiles together. If this is not the case and just a way to divide up the map for easier handling in the editor, please let me know. In that case your tool is not what I am looking for.
Thank your for your time answering my questions! And especially thank you for not trying to convince me to buy your asset but rather give me what I need to make an informed decision. Not every asset creator does this.
I just really hope you find a good tool, not mine, and make a good game. As noted on the forum, English is not my first language. So it was really hard to write this answer. It took more than three hours! Even if something is missing or misunderstood, please understand.
The initial version used to automatically calculated Sorting Order according to the object’s position. However, We do not use Sorting Order now. Just let it render by depth order. User can use it as they want. Below is the reason.
This tool places the sprite in three dimensions. Because of the depth difference in the 3D Projection, everything is drawn naturally if the sorting order is the same. Sorting order is not essential. Depending on the project, the Sorting Order can be used for a variety of purposes. Therefore, we do not force user to use Sorting Order.
I will also talk about the most important Rendering Speeds. The important thing is the number of times the context is switched during rendering. This occurs according to the combination of sequence (depth or sorting order) and atlas configuration. If the depth replaces the sorting order, the last thing that matters is the Atlas.
Let’s take an example of Batch.
Previously, many develpers were obsessed with Drawcall as everything of the game.
Unity concerned about this, they changed the Drawcall to a more comprehensive concept called Batch.
Most of the maps I’ve worked on recently have thousands of tiles.
Each Tile is a GameObject and has some childs like the BoxColliders or SpriteRenderers.
When they are composed of a single Atlas and rendered by depth order, CPU Render Thread is less than 1 ms and works in 2~3 batches.
This value means that Unity’s optimization is not bad when we use Unity’s own features well. That is, the absence of chunked output for rendering does not mean slow rendering. Even atlas is fast enough. Rather, there are less constraints and procedures. So, we can easily apply more powerful other rendering solutions as needed.
I think the interchangeable intermediate results are better. This can maximize Unity’s basic advantages (for using Unity’s-optimization techniques and connect with other assets). The following items are also in the same context.
Three-dimensional position
Since no isometric projection matric are required, other pathfinding algorithms are easy to use. And Sorting Layer and Order can be used for a variety of purposes.
Unity Collider & NavMesh
Collider are basically faster than MeshCollider. Especially if it is static, even if there are thousands of Colliders, it is not burdened.
If the map is very-very huge or the platform performance is very low, creating a NavMesh can resolve all collisions and pathfinding at once.
Atlas support tool
We do not add a specific object export feature for rendering, but instead provide a tool to make atlas work easier.
Sorry, I do not know exactly what you mean. I have provided many tutorial videos. If you have comments or questions about this, please attach a video link. Then I think it is easy to understand.
Thank you very much for your answer! I really appreciate the time you put into answering me. I am sorry if my questions maybe used too complex sentences and made it harder for you to understand. Fun fact: English is also not my native language but I am doing my best to constantly improve
And about the last point: I think I misunderstood what the “Collection Bulk” is that you provide. I assumed it would batch objects together, but seems to be a very convenient prefab.
One last note about performance: Rendering performance is only part of the issue. GameObject overhead can be a different beast. Especially on low-powered CPUs, just having to create the batches/drawcalls can take quite a bit of time on the CPU, even if rendering itself is fast afterwards. So batching multiple objects into a single GameObject can have benefits there. I agree that it might not be necessary for most projects, though, maybe not even for mine.
I think all my questions are answered! Thank you very much! I think about trying your asset, maybe I can utilize parts of it in a different way, who knows. The Atlas tool looks interesting for example.
I’m glad you’re here now. As I continued to edit the post, I was not able to fix it because it was caught by a spam check. It was a related your comment, cpu bound things. I was worried about misconception, but you seem to be an experienced developer. Now I have no worries. Good luck!