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

Multiplatform Runtime Level Editor

Discussion in 'Assets and Asset Store' started by FreebordMAD, Jun 10, 2014.

  1. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    Finally, Multiplatform Runtime Level Editor version 1.20 is now available in the Unity Asset Store!

    The most important new feature is the reworked easily moddable Unity 4.6 uGUI! I have added two new demos to show how easy it is now to change the UI. Now you have the example UI for a full level editor, a first person dungeon crawler game with an object editor and a pure terrain editor that works on a 9 patch terrain setup (edits a Unity terrain that has trees and grass).
    Screenshot of the FPS object editor example (selectable in menu):

    Screenshot of the terrain only editor example (selectable in menu):


    I will improve the level editor in the future and add more features. Please help me and vote for the features that you would like to have and request features that are not yet in the backlog! Top 10 of the backlog:
    - Rework touch interface (use less fingers + add look around)
    - Undo/Redo
    - Demo video (show player perspective, show developer perspective)
    - Oblique projection for orthographic camera mode (focused object centered in the visible screen area (not covered by UI))
    - Improve grid editor (draw grid when grid snapped object is selected, allow mass grid placement)
    - When object is selected in scene, then also select it in tree browser
    - Allow to reduce streamed object spawn distance with lower quality settings
    - Random rotation property for level objects that is applied when placed
    - UV scaling
    - Help pages about terrain editing and objects placement

    For completeness here is the changelog (v1.10 to v1.20):
    FIX: multiple terrain load/save
    FIX: improved camera perspective gizmo positioning
    FIX: keep camera distance on perspective gizmo axis switch
    FIX: ctrl+D and object count limitation
    FIX: sometimes small objects were selected even if covered by bigger objects
    FIX: objects selected only if mouse down event is not over UI (fixes issues with color sliders)
    FEAT: upgraded to Unity 4.6.0
    FEAT: easily moddable uGUI replaces the old OnGUI (modability shown in 2 new demos)
    FEAT: 2nd demo: FPS dungeon game with object editor (selectable in menu)
    FEAT: 3rd demo: 9 patch terrain only editor (selectable in menu)
    FEAT: reduced loading time with terrain recycling in level editor
    FEAT: key combos like "f"-key and "ctrl+d" can be disabled in inspector
    FEAT: removed OnMouse* methods (now works with 'Input.simulateMouseWithTouches = false;' if you need it)
    FEAT: improved stacking of grid snapped objects
    FEAT: brush projected on editable terrain only
    API: all terrain related configuration values are moved to LE_ConfigTerrain
    API: all level related configuration values are moved to LE_ConfigLevel
    API: changed location of GetLoadEvent to LE_LevelEditorMain.GetLoadEvent
    API: removed 'additional level-tab/left-menu button system' (add to scene directly instead)
     
    mfleurent, paraself and TonyLi like this.
  2. mfleurent

    mfleurent

    Joined:
    Mar 5, 2015
    Posts:
    25
    hey,
    Thanks for this great update Denis

    Now that i have more time, I'll come back soon with feedback and think about new features.
     
    FreebordMAD likes this.
  3. mfleurent

    mfleurent

    Joined:
    Mar 5, 2015
    Posts:
    25
    hey Denis,

    i'm stucked, i think it obvious but i can't find the Render Missing Icons, because i added some object in the objectMap and no icon is generated.
     
  4. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    Select the object map that you have altered and you should see the red highlighted message (in the inspector) saying that there is a missing icon. Just below the message you should see the button that you need to click (click twice as sometimes Unity rejects to render anything :)). See the image below + doc link.

     
    mfleurent likes this.
  5. mfleurent

    mfleurent

    Joined:
    Mar 5, 2015
    Posts:
    25
    ok, thanks, i found it

    but i had to erase the path string in the LE_Object to make it appear, otherwise, the objectmap say all is ok and i have a message at runtime saying the icon isn't found.

    i think it's because i deleted the icon at some point.

    MRLE is really Rocks :)
     
    FreebordMAD likes this.
  6. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,293
    Hi i would like to know if you will include such features like creating a navmesh for the new level or backing shadows, light or reflection for unity 5?
    Also i want to know how a player can include something like a story into his new level or how can he include something like npc ai?
    So there are some nice assets for that but do you have some hints on how to include something like this with them?
     
  7. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    Hey, i'm on holidays right now and have no PC here. I have to check those things before I can answer your question... I will check it in the beginning of the next week and post again :)
     
  8. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    Unity's NavMeshes are designed to be backed into a scene and therefore they are not really suitable for a dynamically loaded levels.
    http://answers.unity3d.com/questions/303007/dynamic-levels-navmesh.html
    http://forum.unity3d.com/threads/baking-a-navmesh-into-a-prefab.256915/
    The only thing that would maybe be possible is to use Offmesh Links. However, this would be a hack and you would probably have more success if you would buy a finished solution from the asset store.
    Also creating a full AI and NavMesh implementation only for the editor would be a total work hours overkill for me. Therefore, I do not plan to include it (except you want to pay for its development ;).



    The same is unfortunately true for shadows and lights (and backed reflection) (quote from http://blogs.unity3d.com/2014/09/18/global-illumination-in-unity-5/):

    So first of all you will need an AI system that is capable of dynamically creating nav meshes. A quick google gave me this one: https://www.assetstore.unity3d.com/en/#!/content/23569
    Without knowing what you plan to do, I can just give you a quick overview of one use case.
    For example, you could make a game where the user has to speak with one NPC (a hostage like in CS), this NPC would then follow the user to a certain position, while other NPCs are trying to kill the following NPC.
    For this you would set up a NPC of a hostage and put it into a prefab so that your players can drag and drop hostages all over the map (you need to implement the hostage AI yourself (maybe with RAIN AI?)).
    Then you would do the same for the bad guy NPCs and also put them into prefabs so that players can drag and drop them into the level (again DIY and make the bad guys go for the good guys).
    So now a player would make a level by drag and dropping NPCs and once the level is started in play mode the NPC should get interactable.


    I'm not sure if I could fully answer your questions? Is something still unclear? If you decide to go with RAIN AI or any other free AI version, then I could help you once you have bought the MRLE and have access to its code.
     
    Last edited: Apr 27, 2015
  9. RandAlThor

    RandAlThor

    Joined:
    Dec 2, 2007
    Posts:
    1,293
    Oh thank you for your thoughts.
    I have already some dynamic ai solutions and have to find out on how i can use them with your asset.
    Also i am interested in using the complete sectr asset from the store with your asset and hope there is a way to let the users optimize their levels then. Maybe that are complete different requirements then you expected as wishes but i hope that i or others find ways to include them.
    Your asset is looking realy great with all what it have to offer :)
     
    FreebordMAD likes this.
  10. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    I have just checked SECTR it looks like a great asset. If you will run into problems with SECTR and my level editor post again with a specific question, maybe I will be able to help you even without having bought SECTR myself.

    I'm glad you like it! :)
     
  11. shwa

    shwa

    Joined:
    Apr 9, 2012
    Posts:
    461
    Just bought this a few minutes ago.
    Great tool/experience.
    I also use voxeland.

    Are there plans for MRLE to let the user edit in realtime when in play mode?
    This is one of the strengths of Voxeland.
    Is there a post that has the future dev roadmap?

    tx.
     
  12. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    Great that you like it! It would be nice if you could also write an Asset Store review for my level editor ;)

    As you have probably already found it, there is a demo showing the MRLE in action when in play mode for the object editor. Check the LE_ExampleDungeonEditorGame scene or try it in the demo (selectable in menu), if you have not yet found it. The terrain editor is disabled in the LE_ExampleDungeonEditorGame scene, but it is only an example. You can disable the camera controls (see IS_CAMERA_MOVEMENT here) of the editor and use your own controls in the LE_ExampleEditor scene to get the level editor working in play mode.

    In this post the top 10 backlog features are listed, feel free to vote/ask for features!
     
  13. shwa

    shwa

    Joined:
    Apr 9, 2012
    Posts:
    461
    Thanks for the info, FreedbordMAD.
    Sure, i'll post a review, once i get a good handle on how this works, as per what i'd like to achieve.

    Tx for pointing me to the dragon demo for realtime play.
    Is there a technical reason the terrain editor is disabled in that example?

    Or put another way, is terrain editing possible during realtime play?

    thanks.
     
  14. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    No, there is no technical reason for the terrain editor being disabled in this example. This example was made to show how simple it is to remove the terrain editor and how simple it is to use first person controls.

    Here is a demo showing the terrain editor in first person realtime play mode:
    http://www.freebord-game.com/MultiPlatformRuntimeLevelEditor/first_person_editor/

    I have made this demo in 5 minutes. To reproduce:
    1. open the LE_ExampleDungeonEditorGame scene
    2. right click the Camera Relative Controls scene object and click copy
    3. open the LE_ExampleEditor scene
    4. rick click the scene view and click on paste
    5. move the pasted Camera Relative Controls up on the y axis (I have moved it to (0,50,0))
    6. create a cube on (0, 45, 0) to stop the first person controller from falling down as long as there is no terrain
    7. set IS_CAMERA_MOVEMENT in the inspector of the LE_LevelEditorMain scene object to false
    8. delete the MainCamera scene object
    9. PLAY and ENJOY :)

    As this is a 5 minute demo only to answer your question it is not perfect yet. If you edit the terrain below the player, then you will fall through it. The dirty fix for this that I have used was to place a huge cube collider on (0,0,0) to catch the falling player if he gets below the terrain. The correct solution would be to listen for the LE_EventInterface.OnChangeLevelData event (event doc) and to correct the player's position every time when the terrain is changed by reading the terrain height under the player with Terrain.SampleHeight.
     
  15. SuHwanK

    SuHwanK

    Joined:
    Dec 30, 2014
    Posts:
    43
    Hi, FreebordMAD.

    i have a question.
    How can i set child object's size(scale) in "ObjectEditHandleMove(Clone)"? (at zoom in/out using mouse wheel)
    ObjectEditHandle is look like same size any mouse distance.
    thank you :)
     
  16. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    Hello SuHwank, search for the comment "// correct handle scaling" in LE_ObjectEditHandleCollider.cs (in v1.20 line 124-147). This code is responsible for the handle scaling.
     
  17. SuHwanK

    SuHwanK

    Joined:
    Dec 30, 2014
    Posts:
    43
    Thank you!
    i found it.
    but, i did update MR level editor.
    i got some error. CS0131. in "GUI/LE_GUILevelEditor.cs(367,83)"
    some error is not using LE_LevelEditor.Events or LE_LevelEditor.Core.
    I'd fixed it.
     
  18. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    So it works for you now?
    From which version did you update (v1.01 or v1.10)?
     
  19. SuHwanK

    SuHwanK

    Joined:
    Dec 30, 2014
    Posts:
    43
    i did update from v1.10 to v1.20

    Here is Error.
    Assets/LapinerTools/LevelEditor/Scripts/GUI/LE_GUILevelEditor.cs(367,53): error CS0200: Property or indexer `LE_LevelEditor.Core.LE_TerrainManager.TerrainData' cannot be assigned to (it is read only)

    cs(367,53)
    GUI3dTerrain.TerrainManager = new LE_TerrainManager(CUSTOM_DEFAULT_TERRAIN.terrainData);
     
    Last edited: May 19, 2015
  20. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    I see, sorry to say that, but v1.20 has breaking changes, so updating to it is not easy... The first thing that you have to do is to delete the whole "Assets/LapinerTools/LevelEditor/Scripts/GUI" folder. This folder contains OnGUI scripts that do not work any more. Now the editor runs with uGUI.

    However, the handle scale functionality is also included in v1.10
     
  21. SuHwanK

    SuHwanK

    Joined:
    Dec 30, 2014
    Posts:
    43
    I'd back up folder. V1.10
    so, roll back version. and found the handle scale function. and apply complete.
    thank you FreebordMAD.
    have a nice day.
     
    FreebordMAD likes this.
  22. SuHwanK

    SuHwanK

    Joined:
    Dec 30, 2014
    Posts:
    43
    Hello, FreebordMAD.

    I can't found source about first drag Object at Scene.(Not "Move()")
    I want object's first position head up another object.
    how can i that?

    thank you.
     
  23. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    Take a look at:
    LE_GUI3dObject.SetDraggableObject
    LE_GUI3dObject.UpdateNewObjectDragAndDrop
    LE_GUI3dObject.OnObjectDrag
    LE_GUIWindowRight.LE_GUIObjectSelection (in LE_GUIWindowRight.ObjectTab.cs)
     
    SuHwanK likes this.
  24. mfleurent

    mfleurent

    Joined:
    Mar 5, 2015
    Posts:
    25
    hey FreebordMAD,

    we are doing great with MRLE :)
    one thing i want to modify is the visibility of the snap points icons when in mode snap to object.
    i saw that they are automatically disabled when the cursor is over the UI, but i cant found where it happen in code.
    ideally, i want only the snap Points of the selected objerct to be visible.

    do you have some hints ?

    Thanks
     
  25. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    Hey nice to hear from you again!

    I think what you are searching for is:
    LE_GUI3dObject.UpdateSnapToObjectInstances

    As you can see the LE_GUI3dBase.IsInteractable property tells if all object snapping instances are active or not. In this case it is false if the mouse is over the UI.

    What you want to do is to check if LE_GUI3dObject.m_selectedObject is the Transform.root of your snapping point. If it is, then the game object of the S_SnapToObject instance of your snapping point needs to be activated and if it is not selected, then simply deactivate it.
     
  26. mfleurent

    mfleurent

    Joined:
    Mar 5, 2015
    Posts:
    25
    cool, exactly what i needed

    thanks a lot
     
  27. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    Just wanted to inform you that I will be on holidays till Monday.
     
    mfleurent likes this.
  28. mfleurent

    mfleurent

    Joined:
    Mar 5, 2015
    Posts:
    25
    take your mobile VR hmd with you ;-)
     
    FreebordMAD likes this.
  29. commodore

    commodore

    Joined:
    May 30, 2012
    Posts:
    40
    I'm having some issues loading a level during a game. I set up my script by following the instructions in
    http://www.freebord-game.com/index.php/multiplatform-runtime-level-editor/documentation/load
    I have a level.txt file in the Assets folder that contains a level that was saved with the editor. The file is set in the inspector. When I press Y it should load the level but instead it crashes and I have to force quit.

    Here's what my script looks like:

    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. using LE_LevelEditor.Core;
    4.  
    5. public class LoadLevel : MonoBehaviour {
    6.  
    7.     // This serialized field should be defined in the top of this class. Its value should be
    8.     // assigned through the Unity editor's inspector.
    9.     [SerializeField]
    10.     private LE_TerrainTextureConfig TERRAIN_TEXTURE_CONFIG = null;
    11.  
    12.     // You will probably load your level's data from a file here
    13.     byte[] dataAsByteArray;
    14.  
    15.     public TextAsset file = null;
    16.  
    17.     void Start () {
    18.  
    19.         dataAsByteArray = file.bytes;
    20.  
    21.     }
    22.  
    23.     void Update () {
    24.         if(Input.GetKeyDown(KeyCode.Y)) {
    25.             // Load the level from the byte array. Since there are no editor scripts in this scene the terrain
    26.             // texture configuration is not defined and needs to be passed to the LoadLevelDataFromByteArray method.
    27.             // In this example we expect TERRAIN_TEXTURE_CONFIG to be a serialized property of this class.
    28.             LE_SaveLoadData level = LE_SaveLoad.LoadLevelDataFromByteArray(
    29.                 dataAsByteArray,
    30.  
    31.                 // pass '0' to put the terrain in the 'Default' layer. Something like LayerMask.NameToLayer("Terrain") is also possible
    32.                 0,
    33.                 TERRAIN_TEXTURE_CONFIG.TERRAIN_TEXTURES,
    34.                 TERRAIN_TEXTURE_CONFIG.TERRAIN_TEXTURE_SIZES,
    35.                 TERRAIN_TEXTURE_CONFIG.TERRAIN_TEXTURE_OFFSETS);
    36.  
    37.             // call this function to destroy level editing scripts and improve performance
    38.             LE_SaveLoad.DisableLevelEditing(level);        
    39.         }
    40.     }
    41. }
    Here's what I see in the inspector:


    I'm using Unity 5.0.1f1 and I'm on a Mac OS X 10.10.3
    I also have the latest version of the Multiplatform Runtime Level Editor

    Any help would be appreciated. Thanks,

    Edit: I'm getting this error in Editor.log:

    LE_SaveLoad: LoadLevelDataFromByteArray: serialization version '65' is not supported! Level loading might fail! Supported version ('1', '2').
    UnityEngine.Debug:Internal_Log(Int32, String, Object)
    UnityEngine.Debug:LogError(Object)
    LE_LevelEditor.Core.LE_SaveLoad:CheckVersion(String, Byte) (at Assets/LapinerTools/LevelEditor/Scripts/Core/LE_SaveLoad.cs:504)
    LE_LevelEditor.Core.LE_SaveLoad:LoadLevelDataFromByteArray(Byte[], Int32, Texture2D[], Vector2[], Vector2[]) (at Assets/LapinerTools/LevelEditor/Scripts/Core/LE_SaveLoad.cs:236)
    LoadLevel:Update() (at Assets/LoadLevel.cs:28)
    (Filename: Assets/LapinerTools/LevelEditor/Scripts/Core/LE_SaveLoad.cs Line: 504)

    I guess my follow up question is how do I revert to an older version? I'd like to still be able to keep the recent updates.
     
    Last edited: Jun 26, 2015
  30. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    @commodore: It would be great if you could send me your level file. Since there is no level serialization version '65' I suppose that there is a problem with this level file. Were you able to load this level file with some other version of the Multiplatform Runtime Level Editor?

    It would be also good if you could try to load this level:
    http://www.freebord-game.com/MultiPlatformRuntimeLevelEditor/v1_10/level.txt
    While the level prefabs and terrain textures will not match with your project, there still should be no crash! It should spit out a lot of warnings, but the terrain should get loaded (with wrong textures if textured at all) and the game should not crash. Could you please try to load this level file and confirm that it works?
     
  31. commodore

    commodore

    Joined:
    May 30, 2012
    Posts:
    40
    Thanks for the reply. It still does the same thing with that level. It crashes and says it's version '65' in the editor log. I will try today with a clean version of the Multiplatform Runtime Level Editor and let you know how it goes.

    Edit: I imported from the Asset Store into a new project and it's still giving me the same error and crashing. I'm in the process of downloading Unity 5.1.1f1 and will see how that goes. Could it be an issue with my script or the way I'm setting up my scene? I created a new scene, attached my LoadLevel.cs script to the Main Camera, dragged TerrainTextureConfig to the TERRAIN_TEXTURE_CONFIG slot in the inspector, dragged the level.txt file you provided into the File slot, ran the scene and pressed 'Y'.
     
    Last edited: Jun 26, 2015
  32. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    Use this code
    Code (CSharp):
    1. string[] dataAsStringArray = file.text.Split('#');
    2. dataAsByteArray = System.Convert.FromBase64String(dataAsStringArray[0]);
    instead of this line
    Code (CSharp):
    1. dataAsByteArray = file.bytes;
    You have tried to load a level that was saved with the default save logic. You can find this logic in the ExampleGame_LoadSave class. It saves two Base64 encoded strings separated with a '#'. The first string is the level data (what you want to load) and the second string is the level meta (e.g. level icon). So what you have to do is first to split the text file contents using '#' as separator. Then you have to decode the Base64 string to a byte array. Finally, load the byte array.
     
    Ony likes this.
  33. commodore

    commodore

    Joined:
    May 30, 2012
    Posts:
    40
    Awesome! That works, thank you.
     
    FreebordMAD likes this.
  34. devotid

    devotid

    Joined:
    Nov 14, 2011
    Posts:
    445
    Just purchased and implemented this into my game in about one day. Great Asset. Thanks for making it. :)

    I have one Question...... What is the easiest way to get and display a list of "rendered icons" of levels for the user to pick through in a level (track map) picker? I can take care of the loading of the level.... I just want to know how to get the "Rendered Icons".

    Thanks again.
    Kevin
     
  35. JaggedGlobe

    JaggedGlobe

    Joined:
    Aug 22, 2014
    Posts:
    5
    Hi. I love your plugin!
    I am planning to integrate it into a simulation I was working on, but i need to update the player controller. How would i go about creating another player spawn prefab that spawns in the fps controller from the unity standard assets package?

    Thanks!
     
  36. devotid

    devotid

    Joined:
    Nov 14, 2011
    Posts:
    445
    I might be able to help as Im hanging around here waiting for my question to be answered....

    - Make the FPC controller that you want (or simply load Unitys Stock FPC Controller from the menu into an empty scene).
    - Then add the LE_Object Script to it.
    - Then drag it into (making it a prefab) LapinerTools/Leveleditor/Example/Resources/.
    - Then you need to drag the PREFAB into the Object map located at LapinerTools/Leveleditor/Example/Objectmaps/Game Logic_Objectmap. You should be able to add it by adding a slot to the array. Or you can replace the example Player controller. After adding it to the object map you need to click the create icon button and you should be good to go.

    Im doing this from memory...... but this should give you the idea.
     
  37. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    In my game Mad Snowboarding I have a menu that lists all levels that are available for download or already downloaded and playable. If you want, you can take a look at the community level menu of my game. To create this menu I have saved each level in two files. The first file contains the level data and the second file contains the level meta data.

    Check the ExampleGame_LoadSave script to see how the example saving works. What it does is to save one file (instead of two files as I have described above) with Base64 encoded byte arrays separated by a '#' character. The ExampleGame_LoadSave script is the first script that you would need to change. (However, this is only for performance optimization. If your level files are small anyway, then you maybe do not need to split the file in data and meta files.)

    In Mad Snowboarding I download all meta level files of the listed levels. Once this is done, I load all meta data (including the icons) of all the levels that I want to display using the LE_SaveLoad class. I call the LoadLevelMetaFromByteArray method to load the meta data only.

    I hope I could explain how it works in Mad Snowboarding in an understandable manner, please feel free to ask again if something is still unclear. I can also provide you with the loading code that I have used for Mad Snowboarding if you want.


    What @devotid said is right. An alternative solution would be to write a script that handles the spawn point. For example, you might want have respawns or what ever. Then add this script to a prefab and add the prefab to the maps. Your prefab (with your script) would get loaded once the level is loaded.
    [EDIT:] you could also take a look at this documentation page:
    http://www.freebord-game.com/index....time-level-editor/documentation/level-objects
     
  38. JaggedGlobe

    JaggedGlobe

    Joined:
    Aug 22, 2014
    Posts:
    5
  39. devotid

    devotid

    Joined:
    Nov 14, 2011
    Posts:
    445
    Thanks for the response Freeboard. :) I think I got it. Im going to be using the "Steamworks Workshop" to allow the client to download all the community tracks and I see that they even allow voting and also can include a Image of some kind to display the asset in the Workshop. Ill just roll my own for capturing a screen grab automatically before uploading or something so it works with the proper file format for Steam.

    One last question that I have is Whenever I load the maps/levels in the editor at runtime they look fine..... But if I run the game standalone the textures are VERY low quality. I included the Nature/Terrain/Diffuse Shader in the Unity 5 Graphics settings and still looks really bad. Is this something to do with the import settings of the textures? I also included them in the TerrainTextureConfig script and still no change. What am I missing.

    (Track files is 1.2 MB and has about 5-6 textures on the terrain) Nothing crazy at all. 40 projectors, 12 lights, Default Skybox and about a 100 objects)

    Oh and with Unity 5 and this level being loaded dynamically.... do we loose the auto light mapping? Is there a way to bake the track after saving or something like that?

    Thanks again for the great asset and helping me out with these questions.

    Kevin
     
  40. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    That sounds great! Please send me a link once your game is released :)

    The textures are not included in the level file. See the docs:
    http://www.freebord-game.com/index....e-level-editor/documentation/terrain-textures
    Therefore, your problem has nothing to do with the level editor. Try to debug log the quality settings that are used at runtime (QualitySettings.names[QualitySettings.GetQualityLevel]). Maybe this is the problem. Also, for each texture you have import settings, check that there is no limit for the resolution.

    Yes, I fear that all the new Unity 5 backed lighting features are lost. As far as I know there is no way to solve this yet. Besides, if it would be possible to get the data structures (lightmaps, illumination maps) the level file would be much bigger (>80mb).

    By the way, have you zipped your levels? You can reduce the level size by around 70% if you zip the level files.
     
    ilmario likes this.
  41. HakJak

    HakJak

    Joined:
    Dec 2, 2014
    Posts:
    192
    I bought this asset a while back and I have just started messing around with it. Hands down the BEST level editor in the asset store (I purchased another one as well). Looking forward to implementing this into my project down the road, however I have 3 feature requests that I hope you can add sometime within the next few months:

    1.) Ability to change object materials (not just color). This feature is available in one of your competitor's assets: "Runtime Level Editor C Sharp."
    2.) System for changing global settings, such as lighting, shadows, fog, and ambient colors. Also available in the other package.
    3.) Foliage/grass/tree painting. Trying to place these individually seems very tedious.

    Your level editor does everything else better so far and is much more user-friendly and well documented. However, these features would be very valuable additions.
     
    Last edited: Jul 27, 2015
  42. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    Thanks, I'm glad to hear that ;)


    Thanks for the feature requests! I plan a patch in September, I hope I will be able to include these features into the upcoming patch.
     
    HakJak likes this.
  43. CommunityUS

    CommunityUS

    Joined:
    Sep 2, 2011
    Posts:
    240
    Great looking tool, I am saving for it now, and plan to buy next month. I wanted to make sure you plan to keep it 4.5.4, and not upgrade to Unity 5 yet. I know that is the new hype but in reality the end users (us developers) can't always switch our projects mid stream just to use the latest and greatest toys.

    Also any chance you have a Unity 4.3 build or one that doesn't require the new Unity UI. Come to think of it the new UI rolled out in 4.6 right so we should be good? So long as you don't upgrade to 4.6 and keep it 4.5.4 with the old Unity GUI stuff.

    btw how many draw calls does it take up using the OnGUI() ?
     
  44. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    This would be awesome ;)

    While I will keep the 4.5.4 version online, I fear that the maintenance costs to keep a version working with OnGUI and uGUI in parallel would be too high. Therefore, all the new stuff will be available only in the new version. As sad as it is I have to say that I'm forced to do so by Unity themselves... They say that everything that is not compatible with Unity 5 can be removed from the Asset Store starting in September (it does not need to be build with Unity 5, but it has to be compatible). However, as I said you still can go on with the old version. So far there were no important features except for the new UI since the old 4.5.4 version (check the changelog here).

    Is your project in Unity 4.3? If you still want to buy my editor (knowing that you will not receive the updates) I can check if it works in 4.3. An alternative is that you simply buy the editor and try to make it work in your environment. If it does not work, then contact me. As far as I know I can make Unity refund you the money within two weeks.


    I just run a test with the old version, I was not able to let the draw calls go beyond 60.
     
  45. CommunityUS

    CommunityUS

    Joined:
    Sep 2, 2011
    Posts:
    240
    Thank you for your answers. My project is in 4.3.4f1 (windows version numbers there), most stuff works pretty easily, downgraded from 4.5.4 (trust me I deal with this all the time, way more than I wish I had to) the only real gotcha would be if you started using Unity 4.5's new event system which I've yet to find a similar open source Event solution that would be easily portable. But like I say, I doubt you went with that.

    If you don't mind going through the trouble of checking 4.3 compatibility (sounds like you may have already?) if everything is a go I should be able to purchase anytime after Wednesday of next week.

    If you offered a private git repo (i.e. $7 on github or doing your own using gitlab on a $5 digital ocean server for instance) perhaps I could contribute to it as you roll the improvements out and try to keep it compatible.

    I saw you teasing the ease of being able to hook into the code and setup level sharing via a database type setup. Is this a feature you plan to roll out soon?

    How hard is it to add your own models. Are there any hooks for being able to intercept a code loading the example models from Resources, and tell it to load using a custom www .obj loader or asset bundle?

    I am hoping to expand this to sort of act as a in game patch solution. New models would stream in from my server, be loaded into the game cache, and then into play mode of the editor. New worlds would be loaded from other players etc, etc. you can see where I am headed with this thought process.

    I saw a recent video on youtube highlighting the current trend of more and more games including a level designer and ability to share with friends. Far Cry, etc.

    Does the OnGUI version look the same as the uGUI version? Would the level data be shareable/work between the various MRLE patches?
     
  46. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    I don't think I have used this new event system, but I will check for you. I'm downloading Untiy 4.3.4 now (my poor hardrive this will be the my 14th Unity installation and I just have removed 3 Editor versions ;).

    I will do a test.

    I'm using SVN for this project. Maybe I will think about it. However, it would not feel right for me to let other people work on the project, but me taking all the income...

    Could you please specify the feature a little more?

    Have you seen this article already: http://www.freebord-game.com/index....time-level-editor/documentation/level-objects
    To load custom remote resources (I would go with Asset Bundles if you have Unity Pro, much easier than .obj imports) there is a class called 'LE_SaveLoad'. This is the single place where you would need to check if the given object path is contained in the Resources and if not load it remotely. I will help you with the code when you will need some help.

    Sounds like a great idea. You would save space in the game file and there would be no need to update the game for every new added object.

    It looks a little different check this demo: http://www.freebord-game.com/MultiPlatformRuntimeLevelEditor/v1_10/

    At the moment the v1.10 and v1.20 use the same serialization version. However, it is likely that v1.30 will get new features that will require to change the serialization. Therefore, v1.30 will be able to load old levels, but v1.10 not the levels created with v1.30. However, you can simply download the latest version, copy paste some code to enable support for the newer serialisation version.
     
  47. CommunityUS

    CommunityUS

    Joined:
    Sep 2, 2011
    Posts:
    240
    " You can also use this level editor to create levels yourself and save them. This way you can allow your players to download the levels from your server or mysql database, which will reduce your initial game file size."
    ...from description here https://www.assetstore.unity3d.com/en/#!/content/21765

    Thanks for your answers to questions above. I will look forward to hearing the result of the 4.3.4f1 test.
     
  48. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    The problem is that I cannot provide you a server. So you need your own server. If you have one, then I can send you the code that I have used for Mad Snowboarding to host the community levels (php with MySQL). If I would provide a server to my customers, then I would have cost around 5€ per customer per month... I would need to charge monthly license costs or something. I think this is much too complex, it would be cheaper for you to get your own server.

    I will do a test on Monday
     
  49. CommunityUS

    CommunityUS

    Joined:
    Sep 2, 2011
    Posts:
    240
    Great, I have my own server. The sample code would be wonderful. I will look forward to hearing from you on Monday.
     
  50. FreebordMAD

    FreebordMAD

    Joined:
    Mar 15, 2013
    Posts:
    633
    I have done a lot of testing today. I had to make some fixes, but it works (see attached files). Also, if you encounter any further problems with Unity 4.3.4 I will be happy to help!
    Please add the FixesDowngradeUnity434.cs file somewhere to your project. This file contains an extension method for GetComponentInParent. This method was introduced in 4.5 and was not available in 4.3.
    For the shaders:
    I will write a short tutorial now. Then you will know what you will have to do.
     

    Attached Files:

    Last edited: Aug 6, 2015