Does LuaJIT have corporate interest in it? One-man projects that are very complex and need advanced compuer science knowledge and simultaneously have little interest in them can die very easily. It's an obvious but inconvenient truth. Give up the sweet delusions and face the reality.

JavaScript is the most used, very fast and most long-term reliable (large teams are working on it insted of just one man) scripting lanuguage on this whole planet. Face the reality, give up the sweet delusions about LuaJIT, it's unreliable long-term. Look at this testimony: http://forum.minetest.net/viewtopic.php?pid=77061#p77061 , mods will of course start relying on speed of LuaJIT and if it dies, Minetest will be severely harme

lamefun: had you not sought to combine your arguments with a bunch of bullshit that sounds like it's been ripped from the guy responsible for timecube, perhaps you would be seen in a slightly more positive light.

The stuff read from the settings file seems to be an absolutely fixed format; expected to be exactly the right types in exactly the right order to match a C struct. No optional members/parameters allowed.

Mainly for backwards compatibility. Just like I am dealing with now. It would be nice to be able to just put type = "simplex" in there somewhere to use Simplex Noise instead of the default value-based Minetest noise.

the thing is, the setting describes a struct, namely a NoiseParams. what you think that you want to do is modify NoiseParams into something else, which is just not happening because it's such a fundamental structure and it's set in stone right now. instead, what you should do is extend noiseparams into something else, and read in the values as the new struct

By "fixed" I mean changed to work with some enhancements I've made to the noise algorithms in my own fork of the code. It may well be that people don't like it, but I'm trying to add value in a way that leaves things open for a pull request.

That's why I'm trying to do it in as low-impact a way as possible, by defaulting to the existing behavior. I've even tested all of my changes with like a billion (literally) calls to each function to ensure I haven't changed the outputs for the existing noise algorithms one bit's worth.

It's not going to be big in the sense that it doesn't really change any behavior EXCEPT for allowing people to specify a different base noise algorithm in either the settings file or when requesting a noise object from Lua.

A potential benefit people could take advantage of in the future would be to increase the amount of parallelism in the noise generation. That's not possible when the result buffers are stored in the object itself.

Err...isn't there a server dealing with multiple players at once? If you can utilize multiple processors to generate multiple map blocks at once in a completely parallel fashion, don't you think it would be a waste not to?

Huh. It seems if I am to add a noise algorithm for mapgen to use I'll have to clone the whole Mapgen system and make another independent copy. That seems MUCH better than adding an optional defaulted parameter to the noise parameters. :-/

^ that's what every sane person feels like here; it is why i've decided to allow more official games included in minetest (nothing really exists yet, but it can now be done as people gain interest and time)

The new methods (PerlinNoise and SimplexNoise) are slower than the existing algorithm, but would be non-default. They might also result in the same or better performance in the end because you'd need less octaves to get a comparable noise quality.

I have the feeling too that if the recent lighting calculations really did speed things up by 10x or more, noise algorithm calls may not be much of a bottleneck. I'd love a way to benchmark the full map generation instead of just noise calls, if something like that exists.

That should not be difficult at all. The API I created is designed for composing noise easily. After construction, everything just uses a generic Noise interface, and shouldn't care what kind of concrete class it is actually talking to. This is basically a Decorator Design Pattern.

It would be very simple to also add a DynamicFractalNoise or something like that, that simply takes TWO noise inputs: one for the octave data, and one to use for the dynamic generation of scale and/or persistence.

There. I also edited the comment about IRC: "Unfortunately there may be some resistance to this change because someone else has recently revamped the noise and mapgen code and may not like it being changed again. I hope that doesn't show up when and if this is ready for a pull request, but even if it does it's still a fun exercise."

How does this sound for getting structs from the settings file? 1.) Give the settings code a descriptor with a name, type, and struct offset for each possible parameter; 2.) If a "{" is encountered, the struct will look for Lua-style "key = value" pairs; 3.) Otherwise it will read the values in the order of the offsets within the struct. This should preserve backwards compatibility AND allow optional, defaulted values to

There appears to be all of...ahem...2 calls to the settings code's getStruct() function currently in the code (on master) in any case. One is for NoiseParams, and the other is for a struct derived from it, that adds a single field.

PilzAdam: it would probably be a better idea to use the get-modify-register trick; local def = minetest.registered_nodes["default:lava_flowing"]; def.liquid_renewable = true; minetest.register_node(":default:lava_flowing", def)

PilzAdam: the function technic was using before was a copy&paste of that function as it perhaps existed 10 months ago. No clue how that happened. It broke when I phased out that copied function in favor of the official one.

yes. when i want to check out a reported grief, most of the time it's more useful to repair the damage manually - because that is a) by orders of magnitute faster, b) doesn't throw everyone else out and c) does not force me to ban players on ground of a single modified block

GIT: Uberi commited to Jeija/minetest-mod-mesecons: Add math library to luacontroller, and make sure to copy stuff so code can't get out of the sandbox. 6983db6d82 2013-03-23T14:49:25-07:00 http://git.io/k8CGjQ