Time |
Nick |
Message |
01:07 |
|
Hijiri joined #minetest-dev |
01:57 |
|
pozzoni joined #minetest-dev |
02:35 |
|
est31 joined #minetest-dev |
02:46 |
|
Zeno` joined #minetest-dev |
04:07 |
|
Hijiri joined #minetest-dev |
05:02 |
est31 |
is this << stuff really that bad? |
05:03 |
est31 |
When I edit or read network code, I'm interested in the logic |
05:03 |
est31 |
what the program does |
05:03 |
est31 |
I dont want to waste my time scrolling over |
05:04 |
est31 |
resp_pkt.putString(str); |
05:04 |
est31 |
resp_pkt.putInt(1); |
05:04 |
est31 |
resp_pkt.putCString(str,3); |
05:04 |
est31 |
and so on |
05:04 |
est31 |
and splitting it up just hides the problem |
05:05 |
est31 |
because then you can't get an overview of what happens |
05:05 |
est31 |
with << I can use kate's doubleclick word highlight feature and quickly see where data is accessed |
05:05 |
est31 |
ok that one is perhaps replaceable by doubleclicking resp_pkt |
05:19 |
est31 |
Zeno`, about #2657, do you know whether /MT option is harmful or bad? |
05:19 |
ShadowBot |
https://github.com/minetest/minetest/issues/2657 -- Fix several MSVC issues by SmallJoker |
05:19 |
est31 |
because if not then I'll merge the patch |
05:20 |
est31 |
(cant test though) |
05:32 |
est31 |
whatever, its used elsewhere too |
05:32 |
est31 |
people will have to recompile when they update windows their fault |
05:33 |
est31 |
(or perhaps windows has binary compatibility?) |
05:33 |
est31 |
I think I remember faintly of linus saying something around that linux doesnt promise binary compat |
05:33 |
est31 |
perhaps that was meant in comparison with windows |
05:36 |
Zeno` |
I have no idea what the MT option is |
05:37 |
Zeno` |
oh multithreaded linking |
05:37 |
Zeno` |
umm, I dunno tbh |
05:37 |
est31 |
MD is multithreaded too |
05:37 |
est31 |
but src/cmakelists.txt has mt too |
05:37 |
Zeno` |
:/ |
05:38 |
est31 |
so then, if the binary interface of windows sys libs change, users are already screwed |
05:38 |
Zeno` |
I really don't know. Krock is (basically) the only one who makes MSVC builds so... |
05:40 |
est31 |
what do you think about adding this to gitignore: |
05:40 |
est31 |
+## Files related to minetest development cycle |
05:40 |
est31 |
+/*.patch |
05:41 |
Zeno` |
It'd be nice |
05:41 |
est31 |
Then I'm merging |
05:41 |
Zeno` |
I have it already in my personal repo |
05:41 |
est31 |
there are tracked files inside build/android but those arent catched because its /*.patch and not *.patch |
05:42 |
|
Hunterz joined #minetest-dev |
05:42 |
est31 |
pushed |
05:45 |
hmmmm |
est31, you've got to remember to add newlines to the end of files |
05:45 |
est31 |
didnt I? |
05:46 |
hmmmm |
not for test_utilities.cpp |
05:46 |
hmmmm |
but thank you for adding a unit test |
05:46 |
hmmmm |
we need more of this |
05:46 |
hmmmm |
oh and not for json/CMakeLists.txt either |
05:46 |
hmmmm |
your editor should have an option to add newlines to the end of files |
05:46 |
est31 |
hmmmm, I added them: https://github.com/minetest/minetest/commit/6626a3f72f66703a161abccab90cffcec31c3932 |
05:46 |
hmmmm |
if you don't do this it causes an undisableable compiler warning, and git/github moan about it too |
05:47 |
est31 |
I dont see the red "newline missing" symbol |
05:47 |
hmmmm |
oh okay |
05:47 |
hmmmm |
it showed that in the pull request |
05:47 |
est31 |
yes krock didnt add them |
05:47 |
hmmmm |
ohh derr |
05:47 |
est31 |
I removed them |
05:47 |
hmmmm |
that's krock's patch not yours |
05:47 |
hmmmm |
sorry |
05:47 |
est31 |
added them* |
05:48 |
est31 |
I also moved the s32 cast out like Zeno` suggested at my patch |
05:48 |
Zeno` |
? |
05:48 |
est31 |
I wrote return (s32)(f < 0.f ? (f - 0.5f) : (f + 0.5f)); |
05:49 |
Zeno` |
oh ok |
05:49 |
est31 |
instead of return (f < 0.f ? (s32)(f - 0.5f) : (s32)(f + 0.5f)); |
05:49 |
Zeno` |
yep |
05:49 |
hmmmm |
you don't really need that cast |
05:49 |
hmmmm |
it's implicit due to the return type |
05:49 |
Zeno` |
you don't but see my comment in the PR |
05:49 |
est31 |
yes Zeno` has said that |
05:50 |
hmmmm |
i don't see it |
05:50 |
est31 |
its outdated |
05:50 |
hmmmm |
oh nevrmind it hid it |
05:50 |
hmmmm |
man |
05:50 |
hmmmm |
yet another hack tacked onto our make system |
05:51 |
Zeno` |
I was concerned that somebody might one day change the return type to double to match C's round() and stupidly remove the cast |
05:51 |
hmmmm |
that cmake file is frankly a wreck |
05:51 |
hmmmm |
it's because nobody here really, truly understands CMake more than one needs to be to be functional with it |
05:56 |
Zeno` |
quite funny really. I'm normally the one getting angry about casts where they're not necessary :D But in this case it's more "functional" (if you get my drift) |
06:02 |
|
selat joined #minetest-dev |
06:03 |
est31 |
btw, free does need casts, when you are freeing a const void * pointer |
06:04 |
Zeno` |
err |
06:04 |
est31 |
otherwise it wont compile |
06:04 |
Zeno` |
you should not be freeing const void pointers lol |
06:04 |
est31 |
they are freed automatically??? |
06:04 |
Zeno` |
no |
06:04 |
est31 |
so leak them? |
06:04 |
Zeno` |
but why is it const? |
06:05 |
est31 |
because API |
06:05 |
est31 |
shitty API |
06:05 |
Zeno` |
(or rather why is it pointing to const data) |
06:05 |
Zeno` |
well if it's a shitty API then yeah, you'd need to cast it because you're free()ing something that is supposed to be constant |
06:06 |
Zeno` |
Where does this occur? |
06:06 |
est31 |
I just dont understand why C allows to modify const data |
06:06 |
est31 |
https://github.com/minetest/minetest/pull/2620/files#diff-4655ab09ebe57e0ea50afe7ea42c7973R90 |
06:06 |
est31 |
thats the method |
06:06 |
est31 |
or some other inside that file |
06:07 |
Zeno` |
Oh, that's the developer's attempt at being opaque |
06:07 |
Zeno` |
I don't see where the free is though |
06:08 |
Zeno` |
ah |
06:08 |
Zeno` |
ok |
06:08 |
Zeno` |
that's dumb :) |
06:09 |
Zeno` |
it shouldn't be const in the first place if the caller has to free it :/ |
06:09 |
est31 |
eg here https://github.com/minetest/minetest/pull/2620/files#diff-34f48ad91ac6c202ac60b0348ae90e30R1024 |
06:09 |
Zeno` |
anyway, not our problem I guess |
06:10 |
Zeno` |
crazy |
06:11 |
est31 |
so when "should" const be used? |
06:11 |
Zeno` |
when the data is constant |
06:11 |
Zeno` |
and you should not modify it |
06:11 |
Zeno` |
(or you're passing something to a function where the function does not modify it) |
06:12 |
est31 |
I guess I'll change the library then |
06:12 |
Zeno` |
Nah leave it |
06:13 |
est31 |
I've more or less forked it |
06:13 |
est31 |
https://github.com/est31/csrp-gmp |
06:14 |
est31 |
already 12 patches by me :) |
06:18 |
sofar |
do you want me to ask some folks to do a security review of it? |
06:18 |
est31 |
would be great :) |
06:18 |
sofar |
my first comment would be: kill SHA-1 |
06:18 |
est31 |
I guess though that minetest itself needs one too |
06:19 |
sofar |
it likely does |
06:19 |
est31 |
I dont use sha-1 |
06:19 |
sofar |
README says it's in the code |
06:19 |
sofar |
that's what I saw |
06:20 |
est31 |
yes old authentication uses sha-1 |
06:20 |
est31 |
ah you are at csrp-gmp |
06:20 |
sofar |
am I looking at the wrong tree? |
06:20 |
est31 |
no |
06:21 |
est31 |
csrp-gmp and my srp patch for minetest are different things |
06:21 |
est31 |
I try to keep them even but one of the changes is the hash method |
06:21 |
est31 |
btw, sha-1 isn't *that* bad for password hashing |
06:22 |
est31 |
I mean sha-1 is still strong for second-preimage attacks |
06:24 |
hmmmm |
i think since it's technically a fork of csrp we're using now, you should clean up the interface at some point |
06:24 |
hmmmm |
i.e. cut that crap where the author attempts to make the srp structure opaque |
06:24 |
hmmmm |
it's messy |
06:24 |
est31 |
why? |
06:24 |
hmmmm |
like i said... mess |
06:25 |
est31 |
so people start relying on the internal struct, the implementation changes, and bam they have a problem |
06:25 |
hmmmm |
i very much, highly, highly doubt people will not rely on the internal struct. |
06:26 |
hmmmm |
when's the last time you've seen people access a FILE ? |
06:26 |
est31 |
so where exactly does the ugliness show up? |
06:26 |
hmmmm |
when you need to cast things just in order to free them |
06:26 |
hmmmm |
so either that or don't leak any details at all and put it all in srp_free() or something |
06:27 |
est31 |
there is something like that |
06:27 |
hmmmm |
why aren't you using it then |
06:27 |
est31 |
I am |
06:27 |
est31 |
its only catching a small part |
06:27 |
hmmmm |
huh |
06:27 |
est31 |
I'll document what is freed and what not |
06:29 |
est31 |
I've updated the PR and fixed most things |
06:29 |
est31 |
the casts are still open |
06:30 |
est31 |
about auth.{cpp,h} location, where do you think they should be? |
06:30 |
est31 |
read this: https://github.com/minetest/minetest/pull/2620#discussion_r29312976 |
06:30 |
hmmmm |
i think the main directory |
06:30 |
hmmmm |
authentication is a central part of multiplayer |
06:31 |
hmmmm |
it's not a utility at all |
06:31 |
hmmmm |
that's like if i put mapgen.cpp in util |
06:32 |
hmmmm |
script apis in l_util.cpp doesn't necessarily mean that they expose functionality from src/util/ |
06:32 |
hmmmm |
i mean what about l_setting_set()? that's in settings.cpp |
06:33 |
hmmmm |
just because a directory is 'cramped' doesn't mean that you should put a new file in an inappropriate location... we need to move other files to a more organized area |
06:33 |
est31 |
yea the cramped argument is bad |
06:34 |
hmmmm |
hrmm |
06:34 |
est31 |
ok then ill put it into main src dir |
06:34 |
est31 |
what about srp.cpp? move it too? |
06:34 |
hmmmm |
i never wrote out my file-move-migration roadmap |
06:34 |
hmmmm |
hrmm |
06:34 |
hmmmm |
i thought it was srp.c |
06:34 |
est31 |
no I made it cppp |
06:34 |
hmmmm |
i have mixed feelings |
06:34 |
est31 |
because I used pcgrandom |
06:35 |
hmmmm |
should it be considered third party code?? |
06:35 |
est31 |
I want to keep the diff between that file and csrp-gmp small |
06:36 |
est31 |
if you want I can move csrp-gmp to the minetest group so that all of you can change it |
06:37 |
hmmmm |
hmm |
06:38 |
hmmmm |
so you don't consider srp.cpp part of minetest, or do you? |
06:38 |
hmmmm |
it's up to you i think |
06:38 |
hmmmm |
how do you get randomness in your fork? do you just read everything from the system random? |
06:39 |
est31 |
yes |
06:39 |
est31 |
urandom |
06:39 |
sofar |
that's all you can do |
06:39 |
sofar |
or use PRNG or a hw PRNG |
06:39 |
est31 |
urandom is ususally fast enough |
06:39 |
est31 |
and it is also secure |
06:40 |
hmmmm |
hmm |
06:40 |
hmmmm |
why did you use PcgRandom again?? |
06:40 |
hmmmm |
I mean if you're using the hardware random already for seeds to pcgrandom i'm not sure what the point is |
06:41 |
hmmmm |
we assume that the system random is secure |
06:41 |
est31 |
yea perhaps thats a good idea |
06:41 |
est31 |
just what to do on exotic platforms? |
06:41 |
hmmmm |
mmeh |
06:42 |
est31 |
I mean right now we are initializing pcgrandom with a constant and some time there |
06:42 |
hmmmm |
i don't know |
06:42 |
hmmmm |
well the implementation for pcgrand is simple enough |
06:43 |
est31 |
I can use it under MIT? |
06:43 |
hmmmm |
why not add a very small portable version of pcgrandom? |
06:43 |
hmmmm |
yes |
06:43 |
est31 |
great |
06:43 |
hmmmm |
what is your current license? |
06:43 |
est31 |
MIT |
06:43 |
hmmmm |
ok |
06:44 |
hmmmm |
as for the seed I would've recommended something like |
06:44 |
hmmmm |
((intptr_t)getpid() ^ (intptr_t)time(NULL) ^ (intptr_t)printf); |
06:45 |
hmmmm |
hrmm |
06:45 |
hmmmm |
or wait, getpid() is posix |
06:45 |
est31 |
I'm doing this right now: https://github.com/minetest/minetest/pull/2620/files#diff-2f6369328116e9b654242a7597658a48R534 |
06:45 |
hmmmm |
time(NULL); is good |
06:45 |
hmmmm |
hrmm |
06:46 |
hmmmm |
I would say gettimeofday() but compatibility for that frankly sucks |
06:46 |
hmmmm |
the problem with time(NULL) is that the seed is the same for instances started within that same second |
06:46 |
hmmmm |
gettimeofday() has a reasonable difference |
06:46 |
hmmmm |
why do things need to be so imcompatible!? |
06:47 |
est31 |
yea :/ |
06:50 |
est31 |
this is why its good to have threading in c++11 |
06:50 |
est31 |
no need to use porting tricks |
06:50 |
hmmmm |
hindsight is 20/20 |
06:50 |
est31 |
? |
06:51 |
hmmmm |
in any case I'm looking through my c89 spec and it doesn't seem like there's any really good ISO C conformant way to get a seed other than time(NULL) |
06:51 |
hmmmm |
sorry :/ |
06:54 |
est31 |
what about clock() ? |
06:55 |
hmmmm |
oh yeah that helps actually |
06:55 |
hmmmm |
time(NULL) ^ clock() |
06:55 |
est31 |
great |
06:56 |
hmmmm |
clock helps but you can't really be sure about its quality |
06:56 |
hmmmm |
nothing is defined about it other than it's monotonically increasing |
06:57 |
est31 |
lol |
06:57 |
hmmmm |
rather, there is CLK_TCK |
06:57 |
hmmmm |
hrmm |
07:05 |
|
nore joined #minetest-dev |
07:12 |
est31 |
so I'll use pcgrandom for non-windows operating systems where no /dev/urandom is available. on other platforms I think its better to have a resource which is reseeded |
07:12 |
est31 |
from time to time |
07:25 |
kahrl |
on windows you could use CryptGenRandom |
07:30 |
est31 |
yup using that |
07:31 |
est31 |
(not for the patch but for csrp-gmp) |
07:31 |
est31 |
goal is to unify, then cryptgenrandom seems best |
07:56 |
|
kilbith joined #minetest-dev |
07:59 |
est31 |
hmmmm, how would you propose to open files? |
07:59 |
est31 |
not with FILE * then with what? |
08:00 |
hmmmm |
why not file? |
08:00 |
est31 |
<hmmmm> when's the last time you've seen people access a FILE ? |
08:00 |
hmmmm |
that was referring to opaque structures |
08:00 |
est31 |
ah ok |
08:04 |
|
Yepoleb joined #minetest-dev |
08:09 |
est31 |
ok, now using unified random |
08:12 |
|
cib0 joined #minetest-dev |
08:18 |
|
Anchakor joined #minetest-dev |
08:20 |
|
FR^2 joined #minetest-dev |
08:22 |
|
Calinou joined #minetest-dev |
09:11 |
sfan5 |
>Minetest aef1b41 |
09:11 |
sfan5 |
what the fuck is this |
09:12 |
sfan5 |
where is the version |
09:12 |
sfan5 |
[...] "Minetest/aef1b41 (Linux/3.19.3-3-ARCH x86_64)" "-" |
09:12 |
sfan5 |
also this is wonderful for statical purposes |
09:12 |
sfan5 |
not |
09:14 |
sfan5 |
..would be nice if it could displays the version if there are no tags in the repo |
09:14 |
sfan5 |
-s |
09:14 |
|
selat joined #minetest-dev |
09:21 |
est31 |
here we are again |
09:21 |
est31 |
lemme see I had a PR for that... |
09:22 |
est31 |
sfan5, #2357 might help |
09:22 |
ShadowBot |
https://github.com/minetest/minetest/issues/2357 -- Make git version discovery work on master by est31 |
09:22 |
est31 |
only user agent modifications have to be done |
09:23 |
|
Megaf_ joined #minetest-dev |
09:26 |
sfan5 |
est31: that code looks hacky |
09:26 |
sfan5 |
what i would do is just fix it next release (tag master, not stable-0.4) |
09:26 |
sfan5 |
(or merge them or whatever) |
09:27 |
est31 |
why does it only display the hash? |
09:28 |
est31 |
so in theory it should output something with 0.4.11, no? |
09:31 |
sfan5 |
i used --depth=1 |
09:31 |
sfan5 |
that means there are no tags in the repo |
09:31 |
sfan5 |
a lot of android versions have this too |
09:32 |
sfan5 |
it would way easier to identify them if they still had the version |
09:32 |
sfan5 |
it's not like tags are the only way to get the version |
09:38 |
est31 |
yes |
09:38 |
est31 |
I think I have a fix |
09:38 |
est31 |
(at least in my brain, have to code and test it) |
09:57 |
est31 |
sfan5, what about this: https://github.com/est31/minetest/commit/4a9c8ce10bc8fcc652fc57d99f691d91ad8f0487 |
09:58 |
est31 |
Its same behaviour as before when there are tags, only printing something like "0.4.12-dev-4a9c8ce" when no tags are found in history |
09:59 |
sfan5 |
that looks like it might work |
10:12 |
|
err404 joined #minetest-dev |
10:13 |
|
cib joined #minetest-dev |
11:02 |
|
OldCoder joined #minetest-dev |
11:02 |
|
MinetestForFun joined #minetest-dev |
11:03 |
|
MinetestForFun joined #minetest-dev |
11:06 |
|
Player_2 joined #minetest-dev |
11:12 |
|
est31 joined #minetest-dev |
11:46 |
|
Kopharex joined #minetest-dev |
11:46 |
Kopharex |
Hello everyone |
11:47 |
Kopharex |
I was wondering if someone could explain to me, a humble c++ beginner, how the minetest world generation works. |
11:53 |
celeron55_ |
at what level? |
11:54 |
celeron55 |
are you interested about the overall framework or maybe about the noise techniques, or what? |
11:55 |
Kopharex |
I'm interested in a generic overview |
11:55 |
Kopharex |
I'd like to create a world generation library as an exercise |
11:56 |
Kopharex |
I got that perlin noise is used to create chunks, but i'm not sure how you actually do that |
11:56 |
Kopharex |
The parameters in the noise function etc... |
11:57 |
Kopharex |
and how that doesn't result in completely different chunks |
11:57 |
Kopharex |
I'd like to understand so i can write a diagram for myself to use |
11:57 |
celeron55 |
so you _do_ want to know about how perlin noise is used |
11:57 |
Kopharex |
Yes, if you don't mind. |
11:59 |
celeron55 |
i'm going to try to google a good introduction to this before trying to explain myself, because this is quite common in game programming |
11:59 |
Kopharex |
Thanks |
12:01 |
celeron55 |
hmmh, well i think you can just search for "perlin noise world generation" and get a lot of information, but i'll say a thing about chunked generation |
12:01 |
celeron55 |
the thing about perlin noise is, you can query the value at a coordinate independently of anything else you might be doing |
12:02 |
celeron55 |
and given the same seed and coordinate and parameters, it's going to be predictable |
12:02 |
Kopharex |
i see |
12:03 |
celeron55 |
so minetest can generate a chunk, and not care about what happens near it; it uses the global coordinate system to query the perlin noise so it's naturally contiguous between chunks |
12:05 |
celeron55 |
this is of course possible only as long as the generator isn't modified |
12:06 |
Kopharex |
ok |
12:06 |
Kopharex |
so that's how the terrain is generated |
12:06 |
Kopharex |
what about oceans? |
12:06 |
celeron55 |
well i mean, that's how we keep it contiguous between chunks |
12:07 |
Kopharex |
do you just set water under a level after the generation happened? |
12:07 |
celeron55 |
of course there are many things related to for example performance and storage that you need to keep in mind, but the subject gets kind of broad if we go there |
12:07 |
celeron55 |
there's generally a constant water height |
12:07 |
Kopharex |
ok |
12:08 |
Kopharex |
how do you create biomes after the generation? |
12:08 |
Kopharex |
there were cells i recall |
12:08 |
celeron55 |
some generators (see paramat's work) manage to make rivers and small lakes that can be at higher elevations |
12:08 |
celeron55 |
i'm not familiar with how he does those |
12:09 |
celeron55 |
there are quite many biome systems |
12:09 |
celeron55 |
the simplest ones just use a few pre-selected noise parameters and have hardcoded logic for deciding based on those biome noises |
12:10 |
Kopharex |
ok |
12:10 |
celeron55 |
some create eg. a humidity and temperature noise and base their biome selections on those |
12:12 |
Kopharex |
what if i have a container of biomes, dynamically added |
12:12 |
celeron55 |
i think the built-in "v5"/"v7" biome system uses something like that and dynamically allocates biomes to a 2d result space of those two noises... or something |
12:13 |
Kopharex |
some biomes include conditions, right? |
12:13 |
celeron55 |
https://github.com/minetest/minetest/blob/master/src/mg_biome.cpp#L86 |
12:13 |
Kopharex |
like the minecraft extreme hills biome |
12:13 |
celeron55 |
this is how the built-in biome system decides which biome to use |
12:14 |
celeron55 |
each biome has an ideal point in those two parameters and it picks the one that is closest to whatever the noises say at a given position |
12:14 |
Kopharex |
i see |
12:15 |
Kopharex |
thanks for the info, i'll try to work out a flowchart. |
12:15 |
celeron55 |
i don't think minetest's internal implementations ever looks up anything from the biome when generating the ground shape |
12:15 |
celeron55 |
but of course a fancier system could |
12:16 |
|
OldCoder joined #minetest-dev |
12:17 |
celeron55 |
you'll need to strike a balance between useless and useful complexity; useless complexity tends to make things slower and hard to understand and tune |
12:18 |
Kopharex |
i was also thinking that being indipendent units chunks would be perfect for threaded optimization |
12:19 |
celeron55 |
yeah it is; note that when you generate for example trees, the trees must be able to be placed between the chunks so that parts of them are on both of them |
12:19 |
celeron55 |
you need some kind of a merge algorithm at the end |
12:20 |
celeron55 |
or some other way of dealing with it |
12:20 |
Kopharex |
couldn't you just pick a block and generate the structure around it? |
12:20 |
celeron55 |
MT's multithreaded generation is kind of broken at the moment because that functionality is a bit broken |
12:21 |
celeron55 |
pick a block? |
12:21 |
Kopharex |
yeah, pick a block that satisfies a set of condiotions |
12:21 |
Kopharex |
like if you wanted to create a mineshaft |
12:22 |
celeron55 |
you mean, avoid crossing the chunk edges? |
12:22 |
Kopharex |
no, just using the block as a reference point |
12:22 |
celeron55 |
oh or are you referring to the way MC generates structures? |
12:22 |
celeron55 |
that's indeed a possibility |
12:23 |
Kopharex |
say i want to generate a tree, i pick a block on the ground, put a log there, get the one on top of it and put another log there |
12:23 |
Kopharex |
seems more elegant to me |
12:24 |
celeron55 |
i mean, minecraft generates structes so that it re-generates them as many times as how many chunks they can possibly touch, and always discards the generation that would go on a neighboring chunk |
12:24 |
celeron55 |
in that case you can't ever cheat at all and everything must use predictable seeded pseudorandom algorithms |
12:25 |
Kopharex |
ok |
12:25 |
celeron55 |
(otherwise the neighboring chunks won't connect properly) |
12:25 |
celeron55 |
structures* |
12:26 |
celeron55 |
that's fully threadable though, so you might want it |
12:39 |
Kopharex |
i was reading about the simplex perlin noise |
12:39 |
Kopharex |
it is a registered patent |
12:39 |
Kopharex |
it means i can't use it for commercial purposes, right? |
12:40 |
celeron55 |
dunno; we use just the regular stuff |
12:40 |
Calinou |
is it still patented today? |
12:40 |
celeron55 |
oh wait, we actually support simplex too |
12:40 |
Calinou |
https://en.wikipedia.org/wiki/Simplex_noise |
12:41 |
Calinou |
“Uses of implementations in 3D and higher for textured image synthesis are covered by U.S. Patent 6,867,776 |
12:41 |
Calinou |
, if the algorithm is implemented using the specific techniques described in any of the patent claims.†|
12:42 |
Kopharex |
so...? |
12:43 |
celeron55 |
well, personally i don't care |
12:45 |
Kopharex |
If i manage to create such a library i'd like to be able to use it in commercial games as well |
12:45 |
Kopharex |
and not get sued doing it |
12:46 |
celeron55 |
the general answer to this is that you should ask an actual lawyer |
12:46 |
|
ElectronLibre joined #minetest-dev |
12:47 |
Kopharex |
I'll go with the classical noise just to be safe. |
13:44 |
|
selat joined #minetest-dev |
14:06 |
|
johnnyjoy joined #minetest-dev |
14:40 |
|
hmmmm joined #minetest-dev |
14:42 |
|
ElectronLibre joined #minetest-dev |
15:05 |
|
VanessaE joined #minetest-dev |
15:33 |
|
cib0 joined #minetest-dev |
16:15 |
|
rubenwardy joined #minetest-dev |
16:16 |
VanessaE |
minetest_gave devs: what's the status of https://github.com/minetest/minetest_game/issues/451 ? |
16:17 |
VanessaE |
(short version: no-rotate flag for nodes for the screwdriver mod to check) |
16:35 |
|
err404 joined #minetest-dev |
16:57 |
|
MinetestForFun joined #minetest-dev |
16:58 |
|
Amaz joined #minetest-dev |
17:16 |
|
Krock joined #minetest-dev |
17:30 |
|
Amaz joined #minetest-dev |
17:37 |
|
rubenwardy joined #minetest-dev |
18:13 |
|
kaeza_ joined #minetest-dev |
18:33 |
Calinou |
celeron55, minetest.net seems to be having issues? |
19:16 |
celeron55 |
well what the hell |
19:16 |
celeron55 |
this server sucks |
19:34 |
|
leat2 joined #minetest-dev |
20:03 |
|
Darcidride joined #minetest-dev |
20:27 |
|
Hijiri joined #minetest-dev |
20:30 |
|
paramat joined #minetest-dev |
20:33 |
ShadowNinja |
I noticed that the forum mixed content warnings are from the theme -- it's using the favicon and background image from the main site's theme instead of providing it's own. |
20:34 |
ShadowNinja |
It shoudln't do that anyway since the sites are seperate, may have different themes, and shouldn't have their availability tied together, |
20:37 |
paramat |
any thoughts on #2662 ? back later |
20:37 |
ShadowBot |
https://github.com/minetest/minetest/issues/2662 -- Make cloud radius settable in .conf |
20:37 |
|
paramat left #minetest-dev |
20:38 |
|
Amaz joined #minetest-dev |
20:56 |
|
err404 joined #minetest-dev |
21:34 |
|
jin_xi joined #minetest-dev |
21:34 |
|
Wayward_Tab joined #minetest-dev |
21:39 |
|
Darcidride joined #minetest-dev |
23:55 |
hmmmm |
hmm |
23:56 |
hmmmm |
i'd like to move away from making new settings |
23:56 |
hmmmm |
we have too many settings the way it is and each of them are quite game-specific to begin with |