Posted November 13, 2015 (edited) After long work I can finnally release the first version of my map generator. I've called it 'WurmWorldGenerator' to avoid confusion with the other one. All generation algorithms are executed on the GPU and it can even show all changes in realtime. In order to run the application you need a good graphic card with OpenGL 3.3 support and Java 8. You can download the latest version on sourceforge: https://sourceforge.net/projects/wurmworldgenerator/ Features Uses the graphic card to generate the map Can display changes in realtime Each step can be edited Generation data can be saved Current Limitations At the monent the full map is updated if a parameter is changed. No zoom function is available. Requirements Java 8 Graphic card with OpenGL 3.3 support ChangeLog Version 1.1.0 (2015-11-18) new start dialog menus and toolbar flower biomes possibility to change number of mining actions Version 1.0.1 (2015-11-15) map template scale window if larger than screen fix of problem with dirt generation Edited November 25, 2015 by Naulus 1 Share this post Link to post Share on other sites
Posted November 13, 2015 (edited) ManualThe map is created in multiple steps. To make the changes of a step permanent you have to click on the 'Apply' button. If you change for example the terrain and click 'Apply' then you'll also have to click on 'Apply' on all following steps.1. Terrain generationThe terrain is generated by means of combining multiple layers.A layer can be either a noise function, a value or a border.These layers can be blended with different blending modes. 1.1 Noise GeneratorThe noise layers are used to generate the terrain. For more complex landscapes you'll need more than one layer.A good way to create a landscape with mountains is to use a noise generator with 8-Layers and a factor of 300 as a base layerand a second noise generator with a cutoff from 0.5 to 0.75 and a factor of 500 for the mountains. Both can be found in the preset list.You can also set the blending mode of the mountain layer to 'subtract' to make the sea deeper or to create lakes.1.2 Value GeneratorGenerates a fixed value. Mainly used to change the water level (together with 'subtract' blending mode).1.3 Border GeneratorGenerates a border which can have rounded corners to aviod artifacts. Border generators should be added at the end of the list.A combination of a border with 'multiply' blending and a factor of 0.6 and a border with 'subtract' and a value that is high enough so that no land hits the edge work good. Both can be created with 'Add > Border (fade out)' and 'Add > Border (lower)'.2. SoilControls how much dirt is dropped on a tile.Height controls how much dirt is dropped in flat areas, Slide Start is the slope where the dirt starts to slide down the hill and Slide End is the slope at which the rock becomes visible.3. BiomesA biome can be either a ground tile or a tree/bush. Biomes can be restricted to a height (in meters) and a slope (in 'dirts'). They can also be filtered by a noise function if you like a natural looking distrubtion accross the map.You can also choose a noise preset if you don't want to create your own one.If you choose a noise preset it is copied to the biome and you can change it by clicking on the '...' button without changing the original file.If you don't like to create your own biomes you can also choose a template from the template folder ('Data > Import').3.1 Tree/Bush biomesThese biome type has an additional parameter to control the frequency of a tree or bush. If you use a noise filter make sure that the cutoff span is large enough (at least 0.2). The algorithm won't work properly otherwise.The brighter the noise is the more likely it is that a tree grows on this tile. 3.2 Flower biomesFlowers biomes have like trees and bushes a slider to control the frequency. Flowers can only grow on grass hence they are ignored when they are not an a grass tile. For this reason you should use a high frequency here.4. OresYou can create deposits like biomes and they also have a 'frequency' parameter. Here you should use really high values (between 0.9 and 0.95) otherwise the ores will be very rare and nearly impossible to find. You can also import a list with all ores with 'Data > Import'. There is a template with normal deposits and one with special ores like adamantine and glimmersteel in the template folder. 5. Noise functionsNearly everything can be controlled by a noise function so it is important to understand how it works in detail.To generate 'noise' that looks like clouds (which is also used for terrain generation) multiple layers with random values are needed. Every layer is scaled down which can be controlled with the Scaling slider. If you don't like to achieve a specific effect it is the best to use a scaling with [start to start+layers]. When you do this every layer has the half size of the previous layer.You can controll the balance between the smaller layers and the larger layers with the Detail slider.When you don't use the cutoff parameter the result of the noise function is between -1 and +1. On this way you can use the factor to define how high the generated terrain is.When you use the cutoff parameter the result of the noise function is between 0 and 1. When enabled the value is restricted to the cutoff range. A noise function with a cutoff can be used to filter biomes and to generate mountains. Edited November 18, 2015 by Naulus Share this post Link to post Share on other sites
Posted November 15, 2015 (edited) I tried 1.0.0-beta, but it's not working on my old card (AMD HD6670, OpenGL 4.5). I'll try again later, once my GTX 970 is back from repair. [JavaFX Application Thread] INFO AppContext@6fd365d7 - new application context was created[JavaFX Application Thread] INFO AppContext@6fd365d7 - application directory is C:\test[JavaFX Application Thread] INFO GraphicComponentProcessor - pre-processor component added: graphic.framework.RendererRegister@3ecc5112[JavaFX Application Thread] INFO GraphicComponentProcessor - pre-processor component added: graphic.framework.RenderContextRegister@78d4caf4[JavaFX Application Thread] INFO GraphicComponentProcessor - pre-processor component added: graphic.framework.DefaultBindingStrategy@34690a37[JavaFX Application Thread] INFO GraphicComponentProcessor - pre-processor component added: graphic.framework.component.Dispatcher@25b67849[OpenGL Thread] ERROR MapGenerator - initialization failedjava.lang.ExceptionInInitializerErrorat graphic.display.glfw.Window.create(Window.java:51)at mapgen.editor.AbstractMapGenerator.init(AbstractMapGenerator.java:110)at mapgen.editor.AbstractMapGenerator.run(AbstractMapGenerator.java:79)at java.lang.Thread.run(Unknown Source)Caused by: java.lang.NullPointerExceptionat org.lwjgl.PointerBuffer.hasRemaining(PointerBuffer.java:265)at graphic.display.glfw.Monitors.(Monitors.java:23)... 4 more Edited November 15, 2015 by Borgir Share this post Link to post Share on other sites
Posted November 15, 2015 I have an AMD Radeon HD 6570 and it's working for me. I don't have time to play around with it atm but from the quick look I had, I'm impressed. I loaded an existing map I had and it loaded up fine. I tried the noise options real quick but I only got white which probably means high and flat but I'll have a go at it again later. I love the layered nature of this generator, makes experimenting a lot easier and it's lightning fast 1 Share this post Link to post Share on other sites
Posted November 15, 2015 I do have my usual issues with the UI, namely that it tends not to fit on my 1366x768 screen, (yes, I'd prefer a larger one, but that's not an option everyone can manage). So I have the feeling I'm missing some things either above or below the screen area. One of these is the ability to quit, it's simply out of reach at this resolution, so it needs a task manager end task action for me. Other than that, admittedly minor gripe, it is certainly an interesting tool, and offers different options to the other ones so far released. Please, continue development of this, if only for the fact that choice is good, and different approaches will give more flexibility in design. 1 Share this post Link to post Share on other sites
Posted November 15, 2015 Wow, This is beautiful.I do wish one of you map generation software makers would add a "lazy" button though. So I could add a number or phrase into a field and push one button and a complete perfect map with all the biomes are done. Ready to use as is or tweak it a little more with the rest of the applications tools. Share this post Link to post Share on other sites
Posted November 15, 2015 Thanks for the feedback! @BorgirI hope that I solved the problem now. Tell me if there is still something strange happening. @BadLuckBurtWhen you create a new map it started with an empty document without generators.I've uploaded a new version now which has predefined generators so there is something you can start with. @ZenityI knew that I forgot something important but couldn't remember anymore what it was I've uploaded a new version now which scales the window if it is larger than the screen. @CrustyfootIt is possible with a few clicks. You can import a complete and realistic biome list over Data > Import. In the "template" folder is a template called "Upland.biomes" which has biomes for trees, swamps, coast and resources. The same works for ores. 3 Share this post Link to post Share on other sites
Posted November 16, 2015 Thank you, I hate to mention it, but felt I had to really Share this post Link to post Share on other sites
Posted November 16, 2015 (edited) I downloaded the 1.01 beta. If I choose 2048x2048 on the first screen, it shows the first generator section with the presets you mentioned. The map window itself stays blank, I can't get any terrain contours to show or anything. If I then click on the Soil tab, I get this error: java.util.concurrent.ExecutionException: java.lang.NullPointerException at java.util.concurrent.CompletableFuture.reportGet(Unknown Source) at java.util.concurrent.CompletableFuture.get(Unknown Source) at mapgen.action.MapDocumentActions.loadStep(MapDocumentActions.java:165) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at common.actions.ActionSet$InternalAction.execute(ActionSet.java:95) at common.actions.CallProcedure.call(CallProcedure.java:22) at common.actions.ConcurrentActionMap$2.run(ConcurrentActionMap.java:51) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NullPointerException at mapgen.editor.processor.SoilGenerationProcessor.update(SoilGenerationProcessor.java:99) at mapgen.editor.processor.SoilGenerationProcessor.update(SoilGenerationProcessor.java:25) at mapgen.editor.TaskProcessor.compute(TaskProcessor.java:67) at mapgen.editor.TaskProcessor.update(TaskProcessor.java:45) at graphic.framework.GraphicComponentProcessor.update(GraphicComponentProcessor.java:105) at graphic.framework.ComponentManager.update(ComponentManager.java:115) at graphic.framework.GraphicEngine.render(GraphicEngine.java:57) at mapgen.editor.AbstractMapGenerator.loop(AbstractMapGenerator.java:161) at mapgen.editor.AbstractMapGenerator.run(AbstractMapGenerator.java:83) ... 1 more Am I doing something wrong? - edit Just noticed the application.log in the folder, just in case you need it: [JavaFX Application Thread] INFO AppContext@4dd9b08c - new application context was created [JavaFX Application Thread] INFO AppContext@4dd9b08c - application directory is Z:\Mods\wurm-world-generator-1.0.1-beta [JavaFX Application Thread] INFO GraphicComponentProcessor - pre-processor component added: graphic.framework.RendererRegister@33af100e [JavaFX Application Thread] INFO GraphicComponentProcessor - pre-processor component added: graphic.framework.RenderContextRegister@31af6cf3 [JavaFX Application Thread] INFO GraphicComponentProcessor - pre-processor component added: graphic.framework.DefaultBindingStrategy@39ca3ef3 [JavaFX Application Thread] INFO GraphicComponentProcessor - pre-processor component added: graphic.framework.component.Dispatcher@6feb6a33 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added: mapgen.editor.processor.MapInitProcessor@411348bb [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added: mapgen.editor.processor.MaskUpdateProcessor@6e235512 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added: mapgen.editor.processor.HeightGenerationProcessor@15aac02a [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added: mapgen.editor.processor.SoilGenerationProcessor@2050f183 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added: mapgen.editor.processor.SimulationProcessor43@2eb62a75 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added: mapgen.editor.processor.BiomeGenerationProcessor@31603eea [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added: mapgen.editor.processor.CaveGenerationProcessor@333acb61 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added: graphic.framework.view.ViewRegister@2fbf17aa [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: graphic.framework.RendererRegister@33af100e [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added and initialized: mapgen.editor.util.UploadBuffer@2f6fde0f [OpenGL Thread] INFO RenderContextRegister - render-context initialized: mapgen.editor.MapRenderContext [OpenGL Thread] INFO RenderContextRegister - render-context initialized: mapgen.editor.MapRenderContext [OpenGL Thread] INFO RenderContextRegister - render-context initialized: mapgen.editor.MapRenderContext [OpenGL Thread] INFO RenderContextRegister - render-context initialized: mapgen.editor.MapRenderContext [OpenGL Thread] INFO RenderContextRegister - render-context initialized: mapgen.editor.SingleObjectContext [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: graphic.framework.RenderContextRegister@31af6cf3 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: graphic.framework.DefaultBindingStrategy@39ca3ef3 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: graphic.framework.component.Dispatcher@6feb6a33 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: mapgen.editor.processor.MapInitProcessor@411348bb [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: mapgen.editor.processor.MaskUpdateProcessor@6e235512 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added and initialized: mapgen.editor.util.SimpleShapes@6a7b3dd5 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added and initialized: graphic.loader.shader.ShaderLoader@35c83ae2 [OpenGL Thread] ERROR GraphicComponentProcessor - initialization of component failed: mapgen.editor.processor.HeightGenerationProcessor@15aac02a opengl.shader.ShaderException: FRAGMENT_SHADER compilation error at opengl.shader.Shader.compile(Shader.java:71) at graphic.loader.shader.ShaderLoader.load(ShaderLoader.java:66) at mapgen.editor.processor.HeightGenerationProcessor.init(HeightGenerationProcessor.java:63) at graphic.framework.GraphicComponentProcessor.update(GraphicComponentProcessor.java:88) at graphic.framework.ComponentManager.init(ComponentManager.java:104) at graphic.framework.GraphicEngine.init(GraphicEngine.java:45) at mapgen.editor.AbstractMapGenerator.init(AbstractMapGenerator.java:138) at mapgen.editor.AbstractMapGenerator.run(AbstractMapGenerator.java:79) at java.lang.Thread.run(Unknown Source) [OpenGL Thread] INFO RenderingStrategy - renderer initialized: height [OpenGL Thread] INFO RenderingStrategy - renderer initialized: type [OpenGL Thread] INFO RenderingStrategy - renderer initialized: cave [OpenGL Thread] INFO RenderingStrategy - renderer initialized: preview [OpenGL Thread] INFO RenderingStrategy - renderer initialized: mapgen.editor.renderer.NoisePreviewRenderer@c3f67a8 [OpenGL Thread] INFO MapGenerator - initialization successful [OpenGL Thread] ERROR GraphicComponentProcessor - initialization of component failed: mapgen.editor.processor.SoilGenerationProcessor@2050f183 opengl.shader.ShaderException: FRAGMENT_SHADER compilation error at opengl.shader.Shader.compile(Shader.java:71) at graphic.loader.shader.ShaderLoader.load(ShaderLoader.java:66) at mapgen.editor.processor.SoilGenerationProcessor.init(SoilGenerationProcessor.java:49) at graphic.framework.GraphicComponentProcessor.update(GraphicComponentProcessor.java:88) at graphic.framework.ComponentManager.update(ComponentManager.java:115) at graphic.framework.GraphicEngine.render(GraphicEngine.java:57) at mapgen.editor.AbstractMapGenerator.loop(AbstractMapGenerator.java:161) at mapgen.editor.AbstractMapGenerator.run(AbstractMapGenerator.java:83) at java.lang.Thread.run(Unknown Source) [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: mapgen.editor.processor.SimulationProcessor43@2eb62a75 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: mapgen.editor.processor.BiomeGenerationProcessor@31603eea [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: mapgen.editor.processor.CaveGenerationProcessor@333acb61 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: graphic.framework.view.ViewRegister@2fbf17aa [JavaFX Application Thread] INFO AppContext@4dd9b08c - application component started: mapgen.appcontext.FileHistory@7772805b Edited November 16, 2015 by BadLuckBurt Share this post Link to post Share on other sites
Posted November 16, 2015 @BorgirI hope that I solved the problem now. Tell me if there is still something strange happening. Share this post Link to post Share on other sites
Posted November 16, 2015 Naulus, just so you don't think your program isn't functioning, it's working fine on my machine. Share this post Link to post Share on other sites
Posted November 16, 2015 Working fine here too, it now fits properly on screen, and all options, (including quit), are available, the workflow is pretty intuitive, and being able to see and alter settings without having to mess with text files or remembering seeds is marvellous, just load, edit and apply after altering things. Haven't managed to actually break anything yet, and the only small niggle is either me not understanding things or a design choice that means setting up a map folder before launching the tool. Thinking of other terrain generation software, it might be an idea to use a 'new project' approach, where users can choose to set up a new project, which will generate the folder for them, or let them edit/generate in an existing folder? Share this post Link to post Share on other sites
Posted November 16, 2015 @SarcaticousGood to hear that it's working @BadLuckBirtNo, you don't do anything wrong and the application log helps alot. Your graphic card has problems to compile some shaders. Unfortunately the logger removed the error message with the reason why it fails. I've changed the shaders now and fixed the problem with the logger so it shows a detailed message if the error still occurs. @BorgirIt is a bug in one of the libraries I use then. I removed the code that causes the error completely now - it was only there to add support for multiple monitors. I hope that it works then Share this post Link to post Share on other sites
Posted November 16, 2015 @BadLuckBirt No, you don't do anything wrong and the application log helps alot. Your graphic card has problems to compile some shaders. Unfortunately the logger removed the error message with the reason why it fails. I've changed the shaders now and fixed the problem with the logger so it shows a detailed message if the error still occurs. I still get an error following the same steps (create a 2048x2048 map, click the Soil tab). Hopefully the log will tell you what's going on this time: [JavaFX Application Thread] INFO AppContext@75f0789 - application directory is Z:\Mods\wurm-world-generator-1.0.2-beta [JavaFX Application Thread] INFO GraphicComponentProcessor - pre-processor component added: graphic.framework.RendererRegister@31a1da4 [JavaFX Application Thread] INFO GraphicComponentProcessor - pre-processor component added: graphic.framework.RenderContextRegister@7a6b2962 [JavaFX Application Thread] INFO GraphicComponentProcessor - pre-processor component added: graphic.framework.DefaultBindingStrategy@568547f9 [JavaFX Application Thread] INFO AppContext@75f0789 - application component started: mapgen.appcontext.Config@5ee52eb0 [JavaFX Application Thread] INFO GraphicComponentProcessor - pre-processor component added: graphic.framework.component.Dispatcher@7d89b38c [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added: mapgen.editor.processor.MapInitProcessor@5f886428 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added: mapgen.editor.processor.MaskUpdateProcessor@1615383 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added: mapgen.editor.processor.HeightGenerationProcessor@7602a8dc [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added: mapgen.editor.processor.SoilGenerationProcessor@465565e9 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added: mapgen.editor.processor.SimulationProcessor43@78d64aa2 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added: mapgen.editor.processor.BiomeGenerationProcessor@1f05105c [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added: mapgen.editor.processor.CaveGenerationProcessor@44868550 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added: graphic.framework.view.ViewRegister@3146771f [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: graphic.framework.RendererRegister@31a1da4 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added and initialized: mapgen.editor.util.UploadBuffer@b49693c [OpenGL Thread] INFO RenderContextRegister - render-context initialized: mapgen.editor.MapRenderContext [OpenGL Thread] INFO RenderContextRegister - render-context initialized: mapgen.editor.MapRenderContext [OpenGL Thread] INFO RenderContextRegister - render-context initialized: mapgen.editor.MapRenderContext [OpenGL Thread] INFO RenderContextRegister - render-context initialized: mapgen.editor.MapRenderContext [OpenGL Thread] INFO RenderContextRegister - render-context initialized: mapgen.editor.SingleObjectContext [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: graphic.framework.RenderContextRegister@7a6b2962 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: graphic.framework.DefaultBindingStrategy@568547f9 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: graphic.framework.component.Dispatcher@7d89b38c [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: mapgen.editor.processor.MapInitProcessor@5f886428 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: mapgen.editor.processor.MaskUpdateProcessor@1615383 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added and initialized: mapgen.editor.util.SimpleShapes@7d59f1ba [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component added and initialized: graphic.loader.shader.ShaderLoader@13c9c406 [OpenGL Thread] ERROR GraphicComponentProcessor - initialization of component failed: mapgen.editor.processor.HeightGenerationProcessor@7602a8dc opengl.shader.ShaderException: FRAGMENT_SHADER compilation error Fragment shader failed to compile with the following errors: ERROR: 0:20: error(#133) Reserved word: output ERROR: 0:20: error(#132) Syntax error: "output" parse error ERROR: error(#273) 2 compilation errors. No code generated at opengl.shader.Shader.compile(Shader.java:71) at graphic.loader.shader.ShaderLoader.load(ShaderLoader.java:66) at mapgen.editor.processor.HeightGenerationProcessor.init(HeightGenerationProcessor.java:63) at graphic.framework.GraphicComponentProcessor.update(GraphicComponentProcessor.java:88) at graphic.framework.ComponentManager.init(ComponentManager.java:104) at graphic.framework.GraphicEngine.init(GraphicEngine.java:45) at mapgen.editor.AbstractMapGenerator.init(AbstractMapGenerator.java:159) at mapgen.editor.AbstractMapGenerator.run(AbstractMapGenerator.java:91) at java.lang.Thread.run(Unknown Source) [OpenGL Thread] INFO RenderingStrategy - renderer initialized: height [OpenGL Thread] INFO RenderingStrategy - renderer initialized: type [OpenGL Thread] INFO RenderingStrategy - renderer initialized: cave [OpenGL Thread] INFO RenderingStrategy - renderer initialized: preview [OpenGL Thread] INFO RenderingStrategy - renderer initialized: mapgen.editor.renderer.NoisePreviewRenderer@50bdb1aa [OpenGL Thread] INFO MapGenerator - initialization successful [OpenGL Thread] ERROR GraphicComponentProcessor - initialization of component failed: mapgen.editor.processor.SoilGenerationProcessor@465565e9 opengl.shader.ShaderException: FRAGMENT_SHADER compilation error Fragment shader failed to compile with the following errors: ERROR: 0:15: error(#133) Reserved word: output ERROR: 0:15: error(#132) Syntax error: "output" parse error ERROR: error(#273) 2 compilation errors. No code generated at opengl.shader.Shader.compile(Shader.java:71) at graphic.loader.shader.ShaderLoader.load(ShaderLoader.java:66) at mapgen.editor.processor.SoilGenerationProcessor.init(SoilGenerationProcessor.java:49) at graphic.framework.GraphicComponentProcessor.update(GraphicComponentProcessor.java:88) at graphic.framework.ComponentManager.update(ComponentManager.java:115) at graphic.framework.GraphicEngine.render(GraphicEngine.java:57) at mapgen.editor.AbstractMapGenerator.loop(AbstractMapGenerator.java:182) at mapgen.editor.AbstractMapGenerator.run(AbstractMapGenerator.java:95) at java.lang.Thread.run(Unknown Source) [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: mapgen.editor.processor.SimulationProcessor43@78d64aa2 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: mapgen.editor.processor.BiomeGenerationProcessor@1f05105c [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: mapgen.editor.processor.CaveGenerationProcessor@44868550 [OpenGL Thread] INFO GraphicComponentProcessor - pre-processor component initialized: graphic.framework.view.ViewRegister@3146771f [JavaFX Application Thread] INFO AppContext@75f0789 - application component started: mapgen.appcontext.FileHistory@1980ea97 [JavaFX Application Thread] WARN MapGeneratorApp - couldn't execute map action java.util.concurrent.ExecutionException: java.lang.NullPointerException at java.util.concurrent.CompletableFuture.reportGet(Unknown Source) at java.util.concurrent.CompletableFuture.get(Unknown Source) at mapgen.action.MapDocumentActions.loadStep(MapDocumentActions.java:165) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at common.actions.ActionSet$InternalAction.execute(ActionSet.java:95) at common.actions.CallProcedure.call(CallProcedure.java:22) at common.actions.ConcurrentActionMap$2.run(ConcurrentActionMap.java:51) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NullPointerException at mapgen.editor.processor.SoilGenerationProcessor.update(SoilGenerationProcessor.java:100) at mapgen.editor.processor.SoilGenerationProcessor.update(SoilGenerationProcessor.java:25) at mapgen.editor.TaskProcessor.compute(TaskProcessor.java:67) at mapgen.editor.TaskProcessor.update(TaskProcessor.java:45) at graphic.framework.GraphicComponentProcessor.update(GraphicComponentProcessor.java:105) at graphic.framework.ComponentManager.update(ComponentManager.java:115) at graphic.framework.GraphicEngine.render(GraphicEngine.java:57) at mapgen.editor.AbstractMapGenerator.loop(AbstractMapGenerator.java:182) at mapgen.editor.AbstractMapGenerator.run(AbstractMapGenerator.java:95) ... 1 more [OpenGL Thread] INFO RenderContextRegister - render-context disposed: mapgen.editor.SingleObjectContext [OpenGL Thread] INFO RenderContextRegister - render-context disposed: mapgen.editor.MapRenderContext [OpenGL Thread] INFO RenderContextRegister - render-context disposed: mapgen.editor.MapRenderContext [OpenGL Thread] INFO RenderContextRegister - render-context disposed: mapgen.editor.MapRenderContext [OpenGL Thread] INFO RenderContextRegister - render-context disposed: mapgen.editor.MapRenderContext [OpenGL Thread] WARN MapGenerator - couldn't dispose graphic resources java.lang.NullPointerException at mapgen.editor.processor.HeightGenerationProcessor.dispose(HeightGenerationProcessor.java:85) at graphic.framework.GraphicComponentProcessor.dispose(GraphicComponentProcessor.java:135) at graphic.framework.ComponentManager.dispose(ComponentManager.java:133) at graphic.framework.GraphicEngine.dispose(GraphicEngine.java:67) at mapgen.editor.AbstractMapGenerator.destroy(AbstractMapGenerator.java:200) at mapgen.editor.AbstractMapGenerator.run(AbstractMapGenerator.java:108) at java.lang.Thread.run(Unknown Source) [Thread-4] INFO AppContext@75f0789 - execute shutdown handler [Thread-4] INFO AppContext@75f0789 - shutdown application component: mapgen.appcontext.Config@5ee52eb0 [Thread-4] INFO AppContext@75f0789 - shutdown application component: mapgen.appcontext.FileHistory@1980ea97 [JavaFX Application Thread] INFO AppContext@75f0789 - new application context was created Share this post Link to post Share on other sites
Posted November 16, 2015 Are you using OpenCL or CUDA? If using custom shaders I would expect it to be buggy across different platforms. Planet Explorers had a lot of problems on mac and PC laptops until they started using a version that used any availlable GPU or CPU, and they also was doing calculations on GPU. Share this post Link to post Share on other sites
Posted November 16, 2015 @Borgir It is a bug in one of the libraries I use then. I removed the code that causes the error completely now - it was only there to add support for multiple monitors. I hope that it works then Version 1.0.2-beta seems to be working, cool. Thanks. Share this post Link to post Share on other sites
Posted November 16, 2015 Been exploring a pretty nice test map, ores veins all hold 1000 ores according to set data as GM. Not certain if this is a setting I've missed, or if this is even set by the map design process, it just seems strange that every single ore vein is 1000 ores is all. Not a game breaker for me, since pleasing map generation is my goal, but I thought I'd mention it now. Share this post Link to post Share on other sites
Posted November 16, 2015 Thinking of other terrain generation software, it might be an idea to use a 'new project' approach, where users can choose to set up a new project, which will generate the folder for them, or let them edit/generate in an existing folder? My friend suggested exactly the same I will create a new start dialog which makes creating and loading maps easier. Are you using OpenCL or CUDA? If using custom shaders I would expect it to be buggy across different platforms. Planet Explorers had a lot of problems on mac and PC laptops until they started using a version that used any availlable GPU or CPU, and they also was doing calculations on GPU. Neither. I'm using OpenGL and render the map on a huge off-screen texture. Since maps are very image like it is perfectly suited for map generation. As long as the graphic card supports OpenGL 3.3 there shouldn't be any big problems. It would even be possible to get it working on older hardware but I would have to write a fork for each shader because the OpenGL shading language changed alot since its first release. Been exploring a pretty nice test map, ores veins all hold 1000 ores according to set data as GM. Not certain if this is a setting I've missed, or if this is even set by the map design process, it just seems strange that every single ore vein is 1000 ores is all. Not a game breaker for me, since pleasing map generation is my goal, but I thought I'd mention it now. When the number of mining actions is not set the wurm map api automatically sets it to 1000. I will add an option so you can set the number of actions for each vein. Share this post Link to post Share on other sites
Posted November 16, 2015 (edited) I still get an error following the same steps (create a 2048x2048 map, click the Soil tab). Yes, it does. The graphic driver doesn't like a shader variable called 'output' (even when I couldn't find it in the shader specification). I've renamed it and updated the current 1.0.2-beta version. I think it works now. Edited November 17, 2015 by Naulus Share this post Link to post Share on other sites
Posted November 16, 2015 (edited) Yes, it does. The graphic driver doesn't like a shader variable called 'output' (even when I couldn't find it in the shader specification). I've renamed it and updated the current 1.0.2-beta version. I think it works now. Just tried and it works. I do hope you're ready for another bug When I move a slider, the Apply and Data buttons start moving off to the right and disappear. It looks like the window grows wider horizontally but it's frame doesn't. I also see the scales underneath the sliders readjust to the new width. - edit I should add, this tool is brilliant - edit 2 I just noticed that the window also grows when I click on different tabs. Edited November 16, 2015 by BadLuckBurt Share this post Link to post Share on other sites
Posted November 17, 2015 When the number of mining actions is not set the wurm map api automatically sets it to 1000. I will add an option so you can set the number of actions for each vein. Either that, or perhaps some randomness with a bias toward the max of 10,000, or randomness with a bias slider, it's really a question of how much control Vs how much complexity the map generator presents to the user. I really do like the maps it produces though, it feels 'gentler' that some of the others, and when I noticed I could have snow capped mountains I was totally sold on it, no idea why they didn't do that in WO ages ago, the visual appeal for me is higher, and means I don't spend ages flying around mountains painting them with snow so much Share this post Link to post Share on other sites
Posted November 17, 2015 Just tried and it works. I do hope you're ready for another bug When I move a slider, the Apply and Data buttons start moving off to the right and disappear. It looks like the window grows wider horizontally but it's frame doesn't. I also see the scales underneath the sliders readjust to the new width. I think I already know what's wrong - I will fix that in the next patch. I've used the latest Oracle Java for testing and never had problems with it. If this is an option you could try that until it is fixed. Either that, or perhaps some randomness with a bias toward the max of 10,000, or randomness with a bias slider, it's really a question of how much control Vs how much complexity the map generator presents to the user. I really do like the maps it produces though, it feels 'gentler' that some of the others, and when I noticed I could have snow capped mountains I was totally sold on it, no idea why they didn't do that in WO ages ago, the visual appeal for me is higher, and means I don't spend ages flying around mountains painting them with snow so much I had a similar idea. Something like a minimum and a maximum value but the bias slider is a great idea too. I think when I use some good default values someone who doesn't needs it can just ignore it but it is there when someone really wants to change it. I want to do the same for tree age. I spent much time to find out where the different trees grow and which which paramters are needed to create a good looking landscape but I think it was worth it. I also wonder why the snow isn't ingame yet. It is much more realistic when there is snow on high mountains. 1 Share this post Link to post Share on other sites
Posted November 17, 2015 (edited) On 11/17/2015, 1:37:10, Naulus said: I think I already know what's wrong - I will fix that in the next patch. I've used the latest Oracle Java for testing and never had problems with it. If this is an option you could try that until it is fixed. Thanks. I'll give the latest Java version a try - edit Latest Java didn't fix it but the 1.1.0 version is working beautifully. Edited November 22, 2015 by BadLuckBurt Share this post Link to post Share on other sites
Posted December 2, 2015 Any chance to add fast Ingame Koordinate with Mouse over? Share this post Link to post Share on other sites