Search Unity

Map Magic World Generator - a node based procedural and infinite game map tool

Discussion in 'Assets and Asset Store' started by Wright, Mar 10, 2016.

  1. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,561
    Im going backwards testing MM2 out:)

    I created a new project in Unity 2017.4.31 and installed the MM2 folders and I get this error:

    Screen Shot 2019-09-26 at 6.34.46 PM.png
     
  2. Aress28

    Aress28

    Joined:
    Dec 12, 2015
    Posts:
    100
    I have freeze (FPS drop to 1 for like 1 - 2 sec) when next terrain part showing up and its even more when it have trees and rocks..then freeze is like even 3sec....how to fix it?
     
  3. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    There should be some FPS drop when the generated results apply to the terrain (it happens in several frames), but 1 second lag is definitely too much. However it all depends on the terrain resolution and trees and objects count. Does it happens in the demo scene? If so - which one?

    Don't use MM2 for your active project! I don't know what changes I will make further, and I don't bother making all of them compatible with already existing graphs. At least yet - it's still under the active development.

    I'm using 2019.2 now for MM2 development, so it should work fine.

    Yep, there still could be some bugs when turning from the beaten track. Try creating the graph asset and drag-and-dropping it to the scene (as shown in videos).

    You will get a non-exclusive, worldwide, and perpetual license to the MapMagic asset to integrate it only as incorporated and embedded components of electronic games and digital media and distribute such electronic game and digital media. It means yes, you can commercially sell your game. I can't find the direct requirement to credit asset authors in AS EULA (appendix 1), but I would be grateful if you could mention MapMagic somewhere in a tech credit list.

    It depends. Theoretically, it should not be an issue if all of indoor location's enters/exist are placed in one chunk. Then indoor loading will start right after the chunk is generated, and you can't get to those locations faster than that anyways.

    It's worth looking at the MapMagic wiki, especially in Quick Start Guide. Then there's a hour+ video, a kind of master class. A bit outdated, so see wiki if you'll see discrepancies.

    You will reach the float precision limitations sooner than the MM world end (and MM has a built-in way to deal with them). You should walk/fly thousands of kilometers before the first generate issues will become noticeable (like noise "stairs" or object placement rounding).
     
    protopop likes this.
  4. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,561
    Will do - thank you very much:)
     
  5. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,561
    Thanks for the help I tried using MapMagic 2 in Unity 5.6.4, 2017.4 and 2019.2 but they all returned errors. I added it to empty projects so I am wondering if I'm installing it correctly?

    I just downloaded the folders from gitlab called map-magic master and shared master, and dragged them into the projects folder (screenshot attached) - is this correct? Do I need to install something else to get it to run? Like maybe some Unity default assets or something?

    Or could you let me know which version of Unity you use successfully with MM2 and I can download that one directly to test. (ex you mentioned unity 2019.2 but which build is it? 2019.2.6 etc...)

    Unity 5.6.4 example
    Screen Shot 2019-09-28 at 1.50.05 PM.png
     
    valentinwinkelmann likes this.
  6. ClaudiaTheDev

    ClaudiaTheDev

    Joined:
    Jan 28, 2018
    Posts:
    331
    I am using MapMagic with MicroSplat. It works fine for me but i have one big problem:

    How can i paint/modify manual the terrain texture when using microsplat ?

    I want to paint roads and modify small areas on a locked terrain and it doesnt work because custom splats are used and painting on the terrain does nothing.
     
    Last edited: Sep 30, 2019
  7. Daniel-Talis

    Daniel-Talis

    Joined:
    Dec 10, 2011
    Posts:
    425
    I'm finding the Mapmagic 2 videos enjoyable. Looking forward to updating when version 2 is released. :)
     
    protopop likes this.
  8. Deleted User

    Deleted User

    Guest

    Yes, generating the Chunk and getting the terrain data was also for me the best solution.
    It took me like 30 hours to make the Background Terrains working, Texturing the Mesh, later on, was a bit tricky I used an orthographic Camera made the size fit with the terrain and only let the terrain rendered with layers to this Camera, then I made a screenshot of the Camera view and textured with it the Material, I was not able to grab the alpha map texture from the Terrain, it has given me only colour fragments so making a Screenshot was the best solution for me.

    I notice a slight FPS drop from 2 - 5 FPS but I can draw now like 100 geometry elements with this simple mesh and this simple texture.

    Here a screenshot:
    2019-09-30 11_47_14-Stone Reverie.jpg
    2019-09-30 11_44_01-Stone Reverie.jpg

    Currently running the game at 85 FPS so it was definitely worth it the work.
     
    Last edited by a moderator: Sep 30, 2019
  9. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    MM2 won't work in Unity 5.6 for sure. 2017.4 is under consideration. In 2019.2 make sure that API Compatibility level is set to .Net 4.x - it should be already set by default except the cases you are upgrading a project from Unity 5

    You've got to use MicroSplat applied the usual way on pinned terrains. However, it will clean the control texture since it has no information about the original splat prototypes. To avoid this try using the standard Textures Output together with CSO.
     
    protopop likes this.
  10. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,561
    Thanks so much for trying to solve this:) Unfortunately I can't get it to work in Unity 2019.2.6 on Mac with Mojave

    I did these steps:
    1. Created a new Unity 3d project in unity 2019.2.6
    2. Changed player settings API compatibility too .Net 4x
    3. Changed scripting backend to IL2CPP (tested Mono after with same results)
    4. Dragged Shared Master and MapMAgic-MAster folders downloaded from gitlab into Projects Panel for import
    5. Right Clicked in project panel and created Map-MApMagic-Template Graph
    6. Dragged the created graph into the scene

    And I get the error below, and lots of errors about timer.cs. And the MM component in the inspector has no content in it.

    Maybe its Mojave? I must be doing something wrong.

    Anyways I will work with MapMAgic 1 - I just wanted to get a jump on MM2 because it looks so cool, and your tutorial videos for MM2 are excellent - really clear and get me excited for it:)

    I will keep trying with MM2 to because if it works for you on 2019.2 it must be something im doing (maybe its Mac , some player setting? Am I downloading the wrong files or missing something)

    Screen Shot 2019-09-30 at 5.12.47 PM.png
     
  11. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,561
    BTW I just tried it in 2019.1 in case. When I dragged the MM2 folder into a fresh project view I get a compiler error that prevents the scene from playing/

    Assets/mapmagic-master/Runtime/Generators/Matrix/HeightOut.cs(393,73): error CS1739: The best overload for 'RenderTexture' does not have a parameter named 'mipCount'

    Assets/mapmagic-master/Runtime/Generators/Matrix/HeightOut.cs(427,73): error CS1739: The best overload for 'RenderTexture' does not have a parameter named 'mipCount'

    I kind of get the feeling im installing the wrong folders or something. I know it is just a test version but im checking just in case anyone has a solution, or maybe has Mapmagic 2 working on a Mac?
     
  12. SoftwareGeezers

    SoftwareGeezers

    Joined:
    Jun 22, 2013
    Posts:
    902
    I'm looking to create a real-time procedurally generated low-poly game. I'm currently eyeing Polaris 2, but I've just come across MapMagic. Do you support low-poly terrain generation?
     
  13. Jaimi

    Jaimi

    Joined:
    Jan 10, 2009
    Posts:
    6,208
    Several of the classes reference MS Windows OS DLL's (kernel32, user32). I'm sure this is temporary, but for now I think Mac is out of luck.

     
    protopop likes this.
  14. Deleted User

    Deleted User

    Guest

    We also make a Low-Poly Game, in general, what you are looking for is a Geometry Shader for the Terrain which converts the smooth terrain surface into a low poly surface with sharp edges, we did this with our old terrain before we switched to LWRP ( which does not support Geometry Shaders ) so we moved to Low Poly Textures and Normal Maps.
     
  15. PaperMouseGames

    PaperMouseGames

    Joined:
    Jul 31, 2018
    Posts:
    434
    First off, thanks so much for answering my previous questions. I do have some more though if you'll bear with me.

    1. Is there any way to sculpt terrain that is generated with Map Magic?

    2. Is there any way to generate water or would I need to add that in by simply setting a water to be a certain level / height of the terrain?

    Thanks so much!
     
  16. malkere

    malkere

    Joined:
    Dec 6, 2013
    Posts:
    1,212
    1. Map Magic is used to generate results, so it doesn't actually watch and track any changes and/or properties prior to generation. If you want to manually sculpt after generation you of course can, but if you regenerate all manual changes will be lost. If you want to write a quick script to save height changes (a 2d float array) and/or splat changes (a 3d float array) you can save/load pretty easy.
    2. The easiest is as you said to just add it to a certain sea level. You could also create lakes in a number of ways, mostly by having a say 100m in diameter water circle, and then using a Map Magic blob to create an area that lowers the terrain increasingly from 80-0m and raises the terrain from 80-110m for example to ensure you never see the edges of the water plane.
     
  17. empirebattles

    empirebattles

    Joined:
    May 17, 2013
    Posts:
    19
    I'm not 100% certain if its possible or not, but i'm poking around to see if i can figure it out.
    I'm looking to make a wrapping map. I think i can figure out how to get the camera to wrap, but it needs to 'match' at the edge of the map. Is it possible using any generators in MM to do this? I've been looking, and the results dont look promising.
    I figured i'd ask here to see if anyone had any definitive answers as to the ease of accomplishing this (wrapping world generator)
     
  18. DJ_Design

    DJ_Design

    Joined:
    Mar 14, 2013
    Posts:
    124
    Hopefully I'm not too late i just couldn't wait to buy! Is there still the free upgrade option to map magic owners for mm2? If so how does the asset store handle such procedures? Greetings from Canada
     
  19. Daniel-Talis

    Daniel-Talis

    Joined:
    Dec 10, 2011
    Posts:
    425
    As far as I'm aware, Map Magic 2 hasn't been released yet.. I'm keeping an eye here and at the Asset Store.
     
    DJ_Design likes this.
  20. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,561
    Thank you:)

    I hope MapMagic2 will work on Mac when it's released. It just looks really cool.

    For now I'm using MapMagic 1 which is very cool too. The only big things I wanted to try for MM2 were the Lowe resolution distant terrains and the splines. But there is a spline MM1 tool in the asset store tat I will try out. And I am thinking maybe I cn dynamically lower the pixel resolution of terrains im not standing on to simulate low res distant terrains.
     
  21. wethecom

    wethecom

    Joined:
    Jun 24, 2015
    Posts:
    75
    1# i doubt there are limitations
    2# impossible to know just expect yes
    3#

    4# it generates infinitely on the fly and there is pinning so you can modify pre generated maps
    #5 im just another customer dont listen to me
     
  22. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,561
    What would be the best way to handles oceans?

    I am assuming we can't have terrains start at different heights? (like have MM generate underatwar terrains at -1000 and overland terrains at 0 - or am I correct about this?) so here is what I am thinking, does anyone have any better way to approach this?

    Create MM terrain with 1000 height
    Position an ocean plane at 500
    Generate Ocean Biomes below 500 and terrestrial terrain above

    I think the only downside is the higher we make the terrains the more stretched out and unrealistic they seem vertically. But I suppose that increasing the height and width or stretching vertical terrain over a wider area might mitigate this?
     
  23. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    Really glad to hear that, thanks!

    The thing is MM is not the terrain engine - it is a terrain generator. It automatically sculpts and places objects, but doesn't bring any new tech in the way terrain is rendered.

    That's right, native matrix and erosion algorithms were built for PC-only, but they are duplicated in C# for compatibility reasons. Anyways, yet I haven't even tried to run MM2 on Mac, but try to do this soon.

    Surely it will.

    You can generate the terrain with MM, lock it and then sculpt. Just to clarify: locked terrain will be excluded from further generate, and will remain the same after all the graph changes.

    As malkere said, the easiest way to do this is to use the global water plane. However, there is a way to use separate planes and place them via objects output. Here is the graph example:
    ScatterLakes.jpg

    Did I miss something?

    I guess it's the right approach. I don't think that terrains will look stretchy, because each of them just take the part of the 1000-units height. The only downside of this is approach is the reduced heightmap precision - you can note the "stairs" look, but only when the terrain height is about 10000 or more, so I guess it should not be a problem.
     
    secondsight_ and protopop like this.
  24. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,561
    Im using MapMAgic 1 and I tried to change some of the terrain textures.

    But unity has created a folder called TerrainAutoUpgrade and filled it with something called terrainlayers

    Now when I try to add textures to MM Texture node it no longer accepts them. It will only accept terrain Layers.

    Im not sure how to reset this, and apparently the terrainAuto upgrade is something hat happens since Unity 2018.3. Can I bypass this, delete those layers and keep using texture images on my terrains?

    Screen Shot 2019-10-02 at 5.29.24 PM.png
     
  25. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,561
    I think I figured it out - please correct me if im wrong

    Unity 2018.3 and higher uses terrain layers instead of directly using textures. And although MM starts with the ability to use textures directly for terrain, after you reopen your project they are upgraded to terrain layers, and MapMagic loses the ability to work with textures directly (for that project) but can work with terrain layers, which you create as an intermediary - you put your textures into the terrain layers, and then the terrain layers into the textures node.

    Just curious can this be reset? or once the texture node starts accepting terrain layers yo can no longer accept textures directly in it? Not a big deal but I am curious just in case.

    Screen Shot 2019-10-02 at 7.04.15 PM.png
     
  26. FIllbiker

    FIllbiker

    Joined:
    Jun 9, 2010
    Posts:
    118
    Hi, I am wondering if Shift World (floating origin) function of MapMagic is working. I tried to enable it in my scene and nothing happens with origin during gameplay over any threshold I set. If I use wiki script FloatingOrigin and attach it to my camera it moves origin exactly every time camera (player) reach the threshold.
    I would like to use this MapMagic solution instead but it does nothing.
     
  27. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,561
    I got Microsplat working with MapMagic and it looks really good. I was very happy to find out MapMagic can integrate Microsplat natively in the custom shader node. I followed this great tutorial here if it helps anyone

     
    boysenberry, camta005 and blacksun666 like this.
  28. kilik128

    kilik128

    Joined:
    Jul 15, 2013
    Posts:
    909
    thank's for tut's result look interessing !

    any know the best way for modify terrain in real time ?
     
  29. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    You can use the legacy Splats output and assign textures here. However I don't know for how long Unity will be able to assign splat prototypes to terrain. Some day it might just stop working after upgrade.

    Don't you have the other objects with a specific tag added as generate anchors? If so the world will be shifted only when the midpoint between them will reach the threshold.

    Do you mean generate the new terrain (on scene start, for instance), or apply some minor changes like bomb craters?
     
  30. kilik128

    kilik128

    Joined:
    Jul 15, 2013
    Posts:
    909
    apply some minor changes like bomb craters :rolleyes:
     
  31. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    I'm afraid that you require too much of MapMagic, making bomb craters in realtime is a bit out of the scope of world generator. Unity itself provides pretty nice built-in API for changing terrains - creating a bomb crater at the place of explosion is just a matter of dozen of code lines.
     
    protopop likes this.
  32. VictorKs

    VictorKs

    Joined:
    Jun 2, 2013
    Posts:
    242
    Hi, I use MapMagic with VegetationStudioPro, I do not use infinite terrain I just generate 1 static terrain. Now is it possible to remove the VegetationStudioTile component and bake my results to a VS Storage?

    I want to do this so that I can later hand edit the trees through VS and not the VegetationStudioTile component. MapMagic is my favorite tool for level and terrain design in unity, but on runtime it just gets in the way, for my case.

    Edit: I can find a workaround if there is no way but would disabling the onDisable code stop storage from flushing trees?
     
    Last edited: Oct 6, 2019
  33. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    MapMagic writes to VS storage itself. Generating the terrain then removing/disabling MM component should do the trick. Ain't it working?
     
  34. VictorKs

    VictorKs

    Joined:
    Jun 2, 2013
    Posts:
    242
    MapMagic uses VegetationStudioTile script which over-writes to the VS storage but as soon as you disable the script it deletes the data from the storage I want to keep the data in the storage and remove that VegetationStudioTile script.

    So I can hand edit the storage data from VS studio. Now all my changes from VS side are being reset when I disable reenable VegetationStudioTile.

    btw Im using trial version since I want to test the workflow first, but I am experienced with World machine and it is quite similar, its just this script causing inconviniece. I will buy your asset anyway because its really awesome but I would appreciate if there was an easy solution for that.
     
    Last edited: Oct 10, 2019
  35. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,561
    Can we change the seed value through script?

    I am thinking start with the MapMagic game object disabled, a nd access the instance, and then set the seed, then enable MapMagic?

    What kind of code would that be? Like this?

    public MapMagic mapMagicInstance;
    public int seed;
    void Start(){
    mapMagicInstance.seed = seed;
    }
     
  36. pocketpair

    pocketpair

    Joined:
    Jul 7, 2015
    Posts:
    72
    Hi,
    1. I've created map with MM, but unfortunately the terrain texture data can't be saved as asset.
    Also in the scene, the texture data also looks removed.
    What is happening?

    2. I'd like to save all of terrains to assets. Currently I'm not sure but I need to do save action 1 by 1 for each terrain.
    How should I do to save all terrains?

    This is not captured save window, but after saved, somehow, the texture has been removed.
    https://imgur.com/7iRXYWb
     
  37. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,561
    This happens to me to - I’m on Mac I don’t know if that makes any difference. Whenever I save the scene the texture me dissapear in the terrain. But they show up again if I play the scene or regenerate the scene and they show up fine in the build (on iOS). But if I show multiple pinned tiles they also lose their textures in the scene which makes it hard to preview. I am sure there is probably some way to fix this and I am still looking.
     
  38. Lumos

    Lumos

    Joined:
    Feb 11, 2013
    Posts:
    49
    After updating to the latest Unity and MapMagic, and opening a scene created in a prior version, my "base" terrain remains textured, but any additional terrains that I pin or that get generated at run-time are purple: the default material somehow fails to be assigned to those terrains. If I set the MapMagic object to use a custom material and then assign the default material to it, it works as it always had. Am I doing something wrong, or has something gone awry with Unity 2019? :)
     
  39. Liminal-Ridges

    Liminal-Ridges

    Joined:
    Oct 21, 2015
    Posts:
    256
    Anyone else has problems with the trees? The nodes dont update
     
  40. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    Just changing the seed will not make MM to re-generate. You can use mapMagic.Generate method with force argument - it will generate the terrain again with the new seed:
    Code (CSharp):
    1. MapMagic.MapMagic.instance.seed = (int)(System.DateTime.Now.Ticks % 1000000); //standard Random will return the same value each new game session, so using this
    2. MapMagic.MapMagic.instance.ClearResults();
    3. MapMagic.MapMagic.instance.Generate(force:true);
    Or you can start with a disabled mapMagic object, and enable it once the seed is set in your script's Start method:
    Code (CSharp):
    1. void Start()
    2. {
    3. mm.seed = newSeed;
    4. mm.enabled=true;
    5. }
    Personally, I prefer the second approach since it works both in multithreading and non-multithreading mode: it does not start unneeded old-seed generate on scene start that will be erased with Generate.

    Do you mean the texture layers? If you are using the Textures Output then you've got to create the texture layers assets first using the default Unity way (Create Asset - Terrain Layer), and then assign them in the node. If you are using Splats Output then I strongly recommend switching to Textures Output, since splats are outdated and won't work in Unity one day.

    Bad news is that the terrains are saved one by one, there's no quick way to save the bunch of tiles. Good news is that you have to do it only once. You don't need to re-save them each time you change the graph, all of the changes are applied by MM to the saved asset files and not stored in scene anymore.

    So, what node you are using to output textures?

    Are you saving your terrain datas as asset files too?

    Yes, you are doing it right. Unity has deprecated material template type, and now you've got to assign the terrain material even if it is default. When creating a new MapMagic object MM does this for you, but if you are updating the old scene you've got to this manually.

    There's not an issue I'm aware of, and at first glance everything seems to be working as expected. Could you please clarify what the problem is?
     
    protopop and Lumos like this.
  41. Liminal-Ridges

    Liminal-Ridges

    Joined:
    Oct 21, 2015
    Posts:
    256
    I built a nice simple terrain. When i begin to work on the tree nodes it stops generating the changes at some point. No error or something
     
  42. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    Do you remember what have you done before it stopped generating? Is there any way I could reproduce this issue? Does pressing Force Generate or unpinning the tile and pinning it again fix it?
     
  43. pocketpair

    pocketpair

    Joined:
    Jul 7, 2015
    Posts:
    72
    @Wright
    Thank you for your quick reply.
    I used Textures Output with terrain layer. I already created .terrainlayer assets.

    Please check it out my nodes.


    Just FYI, I created the nodes with the tutorial ( It's old but easy to understand
    )
     
  44. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,561
    Thank you:) I like the second method too. Im setting the seed in a cookie in a separate scene so it will work well. I like the idea of loading every stat first and only after that enabling scene objects.
     
  45. Liminal-Ridges

    Liminal-Ridges

    Joined:
    Oct 21, 2015
    Posts:
    256
    Ok i fixed that but there is another problem. I have infinite terrain enabled but it only generates the terrain without anything on it but the textures.

    Pinning the terrains has the same result
     
    Last edited: Oct 15, 2019
  46. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    So, what was that?
    Are your objects/trees/grass nodes still in the graph? Are they enabled?

    Everything seem to be done right at the screen. Is there any way I can reproduce the issue?
     
  47. Liminal-Ridges

    Liminal-Ridges

    Joined:
    Oct 21, 2015
    Posts:
    256
    I dont know what changed and solved the original problem. Maybe unpinning and pinning again the terrain. Currently the graph is all good but even when i pin new terrains come with only the height and textures applied. Nothing else.
     
  48. Stardog

    Stardog

    Joined:
    Jun 28, 2010
    Posts:
    1,913
    ChunkGrid.cs is generating 88b of garbage for me from the All() function. How can I fix it?

    I tried GetEnumerator in ChunkGrid and MapMagic.cs, but it doesn't fix it:

    Code (csharp):
    1. var enumerator = grid.GetEnumerator();
    2.  
    3. while (enumerator.MoveNext())
    4. {
    5.     T obj = enumerator.Current.Value;
    6.     if (!pinnedOnly || obj.pinned) yield return obj;
    7. }
    8.  
    9. // MapMagic.cs
    10. var enumerator = chunks.All().GetEnumerator();
    11.  
    12. while (enumerator.MoveNext())
    13. {
    14.     var chunk = enumerator.Current;
    15.     ...
    16. }
    17.  
     
  49. Wright

    Wright

    Joined:
    Feb 26, 2013
    Posts:
    2,277
    All() in enumerable, calling it will create an enumerable object that should be disposed later. That's the way enumerables work. The only way to avoid this is not using All() at all. You can dive into the enumerable code to see what it is doing, and then duplicate the code yourself, but I'm not sure it worth it.
     
  50. Emiles

    Emiles

    Joined:
    Jan 22, 2014
    Posts:
    62
    Hi, I noticed that there was an update (1.10.7) which addresses MegaSplat. I'm wondering what was changed as i manually updated the mapmagic implementation of the custom shader megasplat implementation to correctly select top/bottom textures and work acros biomes.
    https://gitlab.com/denispahunov/mapmagic/issues/299
    i'm hoping i can just pull in your update.