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

ProWorld - Procedural World Generation

Discussion in 'Assets and Asset Store' started by tertle, Oct 4, 2012.

  1. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    wtf, lol : D
    Nice project there ; )

    Tertle: If i have made a terrain configuration in the editor, is it possible with code in game to re-generate it inside the game with different seeds if you know what i mean? Just set a new seed and find and call the Update function? Are multiple terrains back now?
     
  2. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Also, i really hope you will re-add the cliffs soon, need those a lot : )
     
  3. makeshiftwings

    makeshiftwings

    Joined:
    May 28, 2011
    Posts:
    3,350
    Is this still being worked on? I hope so!

    If I could make a small suggestion that might make it easier for both you and users: instead of duplicating all the settings from Terrain in your own UI and classes, like textures, trees, height, etc., just let the user supply a Terrain prefab that has all those things already set. They have to in the case of a single terrain anyway, and for the runtime terrain you could just use it as a prefab to grab the settings from. This way it would automatically support things like normal mapped textures, specialized terrain shaders, etc., without you having to duplicate every single setting over to your own UI.
     
  4. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Just going to chime in and suggest another thing : p
    Would be nice to have an option to get colliders generated for the trees, pretty easy to do outside of of ProWorld but i think it would be a good addition : )
     
  5. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    Hi all, sorry about my absence. I've been going through some stuff irl but I think I have it all finally sorted and I should be back developing end of week.
    I'll start by trying to implement the requests in this thread.

    As for colliders on trees, can't you just attach them to the prefab? I left it like that as I thought it allows for more flexibility. It's hard to know what type of collider, offsets etc you'd want generated.
     
  6. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Sorry to hear : /

    Yeah, of course, for some reason i did not think of that obvious thing : p
    But, is it possible to regenerate the terrain with code?
    Example: I have a single static terrain setup that im happy with, but i want to apply a random seed to the generation every time the player starts a new game. Is that a lot of work for me to implement? What steps do i have to take?
    Load the terrain file, change the seed of the noise node and call the Apply function?

    Also please update the texture importer to allow for import of normal maps as well now when Unity4 terrain supports it : )

    Btw, i have rated and left a comment, top quality product!
     
  7. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Any update on this? : D
     
  8. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    I think I've found a way to improve real-time texture performance, especially for really large textures. It /may/ dramatically reduce load times in certain cases, I haven't benchmarked it though.

    I've had a few emails about generating npcs/monsters etc at runtime, you can easily do this buy creating your customWorker, check out the code in the demonstration folder. If you have any questions feel free to ask.

    @ Virror, swear I replied to the regenerate terrain question. I actually thought this was a lot easier than it is atm. I used to have a global seed value to instantly reseed everything but for some reason I seem to have taken it out. I'll see how hard it is to re-add without breaking everyones stuff.
     
    Last edited: Jun 5, 2013
  9. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Nice to see that things are moving : )
     
  10. MrFoamy

    MrFoamy

    Joined:
    Jan 7, 2013
    Posts:
    8
    Good to see you're back at it!

    I think my post from a few weeks ago may have been buried:

     
  11. Ellandar

    Ellandar

    Joined:
    Jan 5, 2013
    Posts:
    207
    Hi Tertle (or anyone else that can help).

    Is there an event that fires or a bool that is updated when the terrain is finished generating?
    I could find some events firing in Manager.cs
    Code (csharp):
    1.  
    2. public event TerrainHandler TerrainGenerated;
    3. public event LoadedHandler SetGenerated;
    4. public event FirstHandler FirstLoad;
    But I couldn't work out which one (if any) represented the "I'm done".

    I'm mainly interested because I'm using the world builder script and need to know when the world is ready for the camera to be activated and the game to begin.

    (currently I'm cheating ever so slightly and firing off a co-routine at the end of a custom worker, it waits a second and then triggers the rest of the game to go).
    cheers!
     
  12. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    Yep those 3 events are what you're looking for. I probably should have at least added a comment for you. Anyway

    Code (csharp):
    1. public event FirstHandler FirstLoad;
    This runs only once, after the whole first set of terrain has been loaded. This is probably what you want. Usually you'd show a load screen or something until this fires

    Code (csharp):
    1. public event LoadedHandler SetGenerated
    This runs everytime a new 'set' of terrain is loaded. Say you are running with 1 neighbour showing, every time you walk far enough in a direction to load more terrain, 3 will start loading ie. the set. Firstload is actually called from within setGenerated, it's just restricted to running only once. If you teleport somewhere new, you might want to subscribe to this for mid game load screen etc.

    Code (csharp):
    1. public event TerrainHandler TerrainGenerated;
    Runs for every individual terrain that loads. Can use this to generate stuff etc. but ideally though you probably shouldn't subscribe to this and instead write your own worker (describe a few times in this thread and look at demonstration).



    Seems like I missed it twice now, sorry. I can't actually load up proworld on current device I'm on so I'm looking at source atm. For tree transforms, as far as I can tell I don't seem to override any rotate/scale values, I only change the position. I'll check this tomorrow to make sure and if it's not the case I'll see what I can do.

    As for the bugs I'll have a look. Seems like I messed up a scroll area if it's freaking out.



    As for a new version, should be out next week with minor changes. Unfortunately my time has been taken up on another extension (a really really cool tile map editor) that's been taking up a bit of my time but it's done now and I should be releasing it later this week.
     
    Last edited: Jun 17, 2013
  13. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Good to see this is moving, even if just a little bit.
    I hope you will have time to go back to this after you have published that tile editor and add in the last missing stuff like cliffs and detail support : p
    Also i hope the ability to generate multiple terrains from the editor will come back some time : )

    One small things i wonder if you could manage to squeeze in for the next update:
    -Bring back the ability to select what to update, like terrain / texture / trees. This would be a huge time saver.
     
    Last edited: Jun 17, 2013
  14. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    I'll add multiple terrain back for next release.

    As for selecting what part to update, unfortunately I can't really do that anymore with how it works now. To generate textures I need to generate terrain, so I may as well apply terrain as well. If i generate entities I need to generate texture... which needs terrain so I may as well apply them all.

    It's one of the reason I added real-time previewing. Bit like 3d modelling, can see a preview but the final render takes a while.

    The best I could do is let you do either all, texture+terrain or just terrain.
     
  15. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Ok, thats a bit sad, but i guess i have to live with it : p
    But you have access to all terrain data since it has been generated before, but i guess its faster and easier to use the data you made when generating.
    Thanx for a quick response and a great piece of software : )
     
  16. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    I could base it off the heightmap of the terrain, but there's no way to know if that's the same as what's being used (ie. if the user has changed it since applying). I guess that doesn't matter as it's up to the user to apply it.

    I have no real way of getting texture data from terrain though. Even when I do finally get around to writing an importer for texture, I couldn't use it for partial generating as it's not deterministic and what I'd import would/could be completely different to what the user specified.
     
  17. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Don't worry, i can live with how it works now : )
    But if you really want to add splitting up, the important thing is to separate terrain and the rest since its the slowest part, so separating texture and trees as an example is not needed at all for me at least since its so quick anyway.
     
  18. Ellandar

    Ellandar

    Joined:
    Jan 5, 2013
    Posts:
    207
    Thanks very much Tertle. I'm loving the plugin, and the worker modules are a great idea!

    El.
     
  19. Ellandar

    Ellandar

    Joined:
    Jan 5, 2013
    Posts:
    207
    Hi Tertle
    I may have found a bug.

    The events to determine if the world has finished loading for the real time terrain seem to not be firing.

    Versions:
    Unity Version: 4.1.5f1
    Proworld: 2.0.2

    To Reproduce:
    New project.
    Download Proworld
    Add debug to the Manager.cs (starting at line 25), updates are commented:

    Code (csharp):
    1.  
    2.         public void OnSetGenerated(List<WorldData> data)
    3.         {
    4.             Debug.Log("SetGenerated BeforeIf");          // UPDATE1
    5.             if (SetGenerated != null)
    6.             {
    7.                 Debug.Log("SetGenerated Fired");         // UPDATE2
    8.                 SetGenerated(data);
    9.             }
    10.  
    11.  
    12.             if (!_hasLoaded  FirstLoad != null) // run first load only
    13.             {
    14.                 Debug.Log("FirstLoaded Has Fired");         // UPDATE3
    15.                 FirstLoad();
    16.                 _hasLoaded = true;
    17.             }
    18.         }
    19.         private void OnTerrainGenerated(WorldData data)
    20.         {
    21.             Debug.Log("TerrainGenerate BeforeIf");         // UPDATE4
    22.             if (TerrainGenerated != null)
    23.             {
    24.                 Debug.Log("TerrainGenerated Has Fired");         // UPDATE5
    25.                 TerrainGenerated(data);
    26.             }
    27.  
    28.         }
    29.  
    Setup a terrain, add to a GameObject (camera?) and play scene. I set the Neighbors to 0 to make things faster, but it occurs with > 0 as well.
    The Debug lines after the check for null don't fire for me, which is weird because it seems the events are setup correctly.

    It's entirely possible I've done something weird, I'm happy to be wrong :)

    El.
     
    Last edited: Jun 23, 2013
  20. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    I just wrote a quick test and as far as I can tell it fires off fine.



    The problem is I haven't given users a way to get access to the manager.cs to add their events without editing manager.cs

    The bigger issue is I can't gaurentee in a Start() that manager.cs will actually be setup before a 3rd party script so I had to write a hack even to test my events from the outside

    Code (csharp):
    1. public class test : MonoBehaviour
    2. {
    3.     private bool _isRun;
    4.  
    5.     public void Update()
    6.     {
    7.         if (!_isRun)
    8.         {
    9.             var man = GetComponent<WorldBuilder>().GetManager();
    10.             man.FirstLoad += FirstLoad;
    11.             man.SetGenerated += SetGenerated;
    12.             man.TerrainGenerated += TerrainGenerated;
    13.             _isRun = true;
    14.         }
    15.     }
    16.  
    17.     public void FirstLoad()
    18.     {
    19.         Debug.Log("FirstLoad");
    20.     }
    21.     public void SetGenerated(List<WorldData> tw)
    22.     {
    23.         Debug.Log("SetGenerated");
    24.     }
    25.     public void TerrainGenerated(WorldData tw)
    26.     {
    27.         Debug.Log("TerrainGenerated");
    28.     }
    29. }
    30.  
    That's after adding adding a way to access the manager in worldbuilder

    Code (csharp):
    1. public Manager GetManager()
    2.     {
    3.         return _manager;
    4.     }
    I need to record a video tomorrow for my new extension I'm releasing, but I'll try publish a fix and a slightly better way to handle these events for you on tuesday/wednesday.

    As to addressing your post, the debug lines won't run unless you've actually added an event.
     
  21. Ellandar

    Ellandar

    Joined:
    Jan 5, 2013
    Posts:
    207
    Hi Tertle,

    Please excuse my lack of understanding there, I'm still learning about events.
    Yesterday I exposed the _manager (probably in a bad way, just by changing it to public) but it wouldn't fire the events either.

    I think you a right about the order though because the script I used to subscribe to the events is my game manager which is forced in the script order to start first. This probably explains why i couldn't get the events to fire; I'll do it the way you have just provided an example for as it seems like a way to get it happening for now :)

    Thanks for putting the time in to help here, it's really appreciated.

    Ell
     
  22. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    Ok so today I've finally got around to working on adding a few things.

    So far...
    - I've modified manage.cs a little to setup during awake so now you can safely access Manager + events in Start()
    - I re added multi terrain applying

    Looking at a global seed now to see if it'll break backwards stuff.

    I'll keep working on a few more things and then just push the update either this evening or tomorrow.
     
    Last edited: Jun 27, 2013
  23. Ellandar

    Ellandar

    Joined:
    Jan 5, 2013
    Posts:
    207
    Cheers!
    Great support, thanks very much.

    I'm really getting a lot of use out of the workers as well, I'm spawning scenery game-objects with it; next bit will be to try to spawn them within defined terrain areas. Thanks very much for adding that functionality.

    Ell
     
  24. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    Ok so added global seed, as far as I can tell I didn't break anything. At the moment it'll really only affect simplex (and of course anything linked to it), as well as entity placement. You can easily add it to your own workers or stuff as well. Just use

    Code (csharp):
    1.  
    2. var random = new GlobalRandom(seed);
    3. var next = random.Next();
    4. // instead of
    5. var random = new Random(seed); // this is System.Random, not UnityEngine.Random
    6. var next = random.Next();
    I'll try get cliffs to work again. To be honest I had totally forgotten I had them disabled, I should have re-enabled them a while ago sorry! I had some issues implementing them cleanly as I didn't like the results. I may see if I can just go back to my old implementation at the moment. It's not fast but it works. -edit- now i remember why i disabled it. sigh! see what I can do.

    -edit2-

    Got it to work! Cliffs are back in. It's now using my own implementation of the Sobel operator to determine gradients rather than the steepness built into unity. To modify the angle click the same (middle) box as you do for a normal texture layer and a angle popup will appear. Will post build after I do a quick check for bugs. -edit- Published, waiting approval.
     
    Last edited: Jun 27, 2013
  25. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Great news, thanx!
    Now i can get rid of my custom cliffs script : )
     
  26. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    And its out!

    Few first impressions:
    -Cliffs are very welcome : D
    -Random seed is good, but i feel its a bit limiting with only 1-100, also a button to make a random number would be a nice addition.
    -Multi terrains works a bit strange i think, its cool it creates new terrains and all, but it should check for existing terrains if i press the button again and not just make new ones, also they should be placed as childs under a "Terrains" parent object i think to get some order : )

    Overall very good additions!
     
    Last edited: Jul 3, 2013
  27. MarStr

    MarStr

    Joined:
    Jan 5, 2013
    Posts:
    8
    Amazing work :)
     
  28. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    Wow you're quick.

    I'm not sure how well I think cliffs work. When I was testing them sometimes they seemed to work really well, but there were a few cases where I didn't think they worked well. I might revise them at a later date, but it's something for the moment anyway.

    I can add a button if you want, come to think of it I should have used my other type of slider for seed.

    I did it this way for a reason, but I can't remember why now. I'll see if I can make it use existing terrain. Going away for weekend so I'll look into it tuesday.
     
  29. makeshiftwings

    makeshiftwings

    Joined:
    May 28, 2011
    Posts:
    3,350
    Yeah, seed should absolutely be a full 32-bit integer. With only 100 variations players are bound to see repetition.
     
  30. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    You're not actually limited to that, just the GUI implementation of it. I don't expect people to build 101+ worlds and save them all as prefabs to load at random, but instead I expected someone to modify the seed value at runtime through a script (to any int32). Anyway I'll open it up through the GUI.
     
  31. makeshiftwings

    makeshiftwings

    Joined:
    May 28, 2011
    Posts:
    3,350
    Ah ok, I hadn't looked that closely at it.
     
  32. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Have not tested cliffs a lot yet but they seems to work, i will make sure to tell you if i run into any problems : p

    Regarding the multiple terrains, its very good i think that it creates the terrains for you, but its a bit of a pain i think to have to remove them every time you want to make an update cause there might be scripts attached to them or whatever and since you know the names of them it should be pretty easy to fix.
     
  33. Ellandar

    Ellandar

    Joined:
    Jan 5, 2013
    Posts:
    207
    Hi Tertle,

    Could you check if you are able to do run time world building with your World Builder script?
    I've found that since I updated with the latest copy I'm unable to procedurally build world, I get this error:

    UnityException: Texture counts don't match.
    WorldBuilder.Awake () (at Assets/ProWorld/Scripts/World/WorldBuilder.cs:47)

    And:

    NullReferenceException: Object reference not set to an instance of an object
    WorldBuilder.Update () (at Assets/ProWorld/Scripts/World/WorldBuilder.cs:71)

    It can be reproduced using your Mountain demo scene by just loading it and pressing play (either with a valid world selected or not, same outcome).
    Cheers,

    Ell
     
  34. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    Ah whoops, somehow I seem to have deleted the demo. From my quick tests it still works fine, just the demo2.pw file is missing. I'll see if I have a copy of it somewhere ^_^

    Thanks for the report, hopefully nothing else is wrong with it. I'll do a bit more testing just incase. You're not having any issues with your own world are you?

    -edit-

    actually I don't think that demo was even meant to have a worldbuilder in there. I must have added it when testing something and forgot to remove it.
     
    Last edited: Jul 14, 2013
  35. Ellandar

    Ellandar

    Joined:
    Jan 5, 2013
    Posts:
    207
    I might be having issues with my copy of proworld, I'll re-download it now just in case.

    This is what I did to reproduce.
    Create new Project
    Save Scene as Test.
    Import ProWorld
    Create a new generated terrain by using a basic simplex noise linked to the output.
    Add some textures (from the Proworld Demo).
    Apply textures to layers.
    Save as "TestWorld.pw"
    Click Apply
    Drag the main camera to the Real-Time Terrain GameObject
    Select the TestWorld.pw in the World field.
    Click Apply.

    Check MainCamera has the WorldBuilder script (it did).
    Click Play.

    I get the exceptions I listed earlier.
    I'll let you know if the re-downloaded proworld has the same issue.
     
  36. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    Hmm just tried those exact instructions and didn't seem to have an issue. Please let me know if it doesn't solve it and I'll investigate further.
     
  37. Ellandar

    Ellandar

    Joined:
    Jan 5, 2013
    Posts:
    207
    Just downloaded a new copy and the same thing is happening.

    It could be my internet connection, it's currently shaped. Unity's store is really unstable when the connection is shaped.
    It unshapes tonight so I'll give this another shot tomorrow and see if it resolves the problem.

    Thanks for your help Tertle.
     
  38. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    I'll look into it. I doubt it's just the internet connection and I have a vague idea why it might occur under certain circumstances.
     
  39. scaron

    scaron

    Joined:
    Dec 26, 2012
    Posts:
    4
    I can confirm that I'm getting the same errors as Ellandar.

    UnityException: Texture counts don't match.
    WorldBuilder.Awake () (at Assets/ProWorld/Scripts/World/WorldBuilder.cs:47)

    NullReferenceException: Object reference not set to an instance of an object
    WorldBuilder.Update () (at Assets/ProWorld/Scripts/World/WorldBuilder.cs:71)

    And that was using the exact procedure that Ellandar highlighted above.
     
  40. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    Ok so managed to replicate the error.

    The issue only occurs in unity 4.x which is why I didn't notice it straight away, (I develop in 3.5.7f)

    I'll try get a fix out as soon as possible.

    It's because it seems for some reason
    [PostProcessScene]
    Is called after Awake() in Unity 4.x whereas it's called before Awake in Unity 3.x
    I don't know why, and it doesn't make sense that they changed it in 4.x. I'll have to restructure a little to fix it.

    The quick fix for you is to change Awake() to Start() in the WorldBuilder but this'll mean you can't guarantee being able to use GetManager() in Start unless you force execution order. (This is why it was changed).

    If you're not using GetManager() (usually to hook in your own events) you can safely change Awake to Start while I find a better fix.
     
    Last edited: Jul 15, 2013
  41. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    Ok I have a solution and will be uploading shortly.

    This version also includes the ability to apply multi terrain to existing terrain as per virror request. Just select the correct amount of terrain and hit apply. A popup will ask you if you want to create a new set or apply to selected terrain.

    Also added ability to set global seed to 1-999999 which should be large enough for anyone! Also random random button + text field sets.
     
  42. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Awesome!
     
  43. scaron

    scaron

    Joined:
    Dec 26, 2012
    Posts:
    4
    Sounds great!

    Thanks for your hard work tertle.
     
  44. Ellandar

    Ellandar

    Joined:
    Jan 5, 2013
    Posts:
    207
    Cheers Tertle!
     
  45. scaron

    scaron

    Joined:
    Dec 26, 2012
    Posts:
    4
    Hello Tertle, quick question about terrain settings.

    I have a terrain that I created with Proworld, and changed some of the default billboard and tree distance settings on that terrain. I then saved that out, to bring it back in for the real-time terrain generation, however I noticed that all the new terrains being built at runtime seem to have the default values that you get when you first load in a terrain in Unity. Is there anyway to have the real-time terrain use the modified values, so that each new terrain that will be created will reflect the changed that I made to Billboard start, fade, and tree distance?
     
  46. Ellandar

    Ellandar

    Joined:
    Jan 5, 2013
    Posts:
    207
    Hi Scaron,

    I don't actually know the answer to your question but I know how you could accomplish it using the ProWorld CustomWorkers.
    1. Copy the "MyCustomWorker.cs" script from the proworld folder and put it somewhere in your project where you store scripts, and rename it to something else.. (I use ProWorldCustomWorker). This first step isn't necessary, but I do it to allow proworld updates to occur without overwriting my workers since they don't live within the proworld asset hierarchy.
    2. Edit the file and replace the class name of "MyCustomWorker" to what you used in step 1.
    3. Copy the "AddCustomWorker.cs" Script from the proworld folder and put it somewhere else in your project. Add it as a component to the same object as your real time terrain generator is attached to.
    4. Edit the AddCustomWorker.cs file and change: var customWork = new MyCustomWorker(); to: var customWork = new <NAME USED IN 1.>();


    OK, the interesting bit now.
    Open the file you named in step one, and go to the Apply method.
    Within that method apply the things you wish to do to the terrain, using: http://docs.unity3d.com/Documentation/ScriptReference/Terrain.html
    eg:
    Code (csharp):
    1. data.Terrain.treeBillboardDistance = 100;
    FYI, your terrain is stored within the "data" object as data.Terrain and that will give you access to everything within the document reference above.

    Hope this helps.

    Ell
     
  47. scaron

    scaron

    Joined:
    Dec 26, 2012
    Posts:
    4
    I'll give that a try.

    Thanks for the help Ellandar!
     
  48. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    Sorry for slow response scaron been a tad busy.

    That's actually a quite a genius way of using ProWorld to implement it yourself Ellandar
    That said, I should open up the terrain settings rather than using defaults. Not sure why I haven't, I have all the properties setup already. You can see them in World.cs.

    You could modify the defaults here yourself

    It'd only take effect on new worlds though. I'll add some options somewhere now to modify them directly in ProWorld.

    -edit- added them. not sure i'll publish a build just yet might want to add something else quickly. if you need the options just private message me and i'll send the single file that needs changing.
     
    Last edited: Jul 25, 2013
  49. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,459
    Hi Tertle,

    Is it possible to create the maps in-game ? I would like to have access to the API to do runtime map creation and terrain generation.

    Thanks.
     
  50. tertle

    tertle

    Joined:
    Jan 25, 2011
    Posts:
    3,753
    I assume you were wanting to define your own rules and stuff at runtime, if so then yes it is! it's one of the reasons i rewrote the whole thing for 2.x was to separate implementation from GUI

    i'll write up an example. It's not ideal though if you want really complex terrain, takes a lot of linking n stuff.