Time |
Nick |
Message |
00:01 |
JohnnyComeL8ly |
est31: How do you use this terminal feature? |
00:06 |
JohnnyComeL8ly |
kahrl: Do you know how to use it? |
00:10 |
kahrl |
JohnnyComeL8ly: minetestserver --worldname a --terminal |
00:10 |
JohnnyComeL8ly |
kahrl, I did... (thanks), but I need to know how to utilize it. |
00:11 |
kahrl |
ah |
00:11 |
kahrl |
well you can simply type stuff, and when you press enter it will be sent to chat |
00:11 |
JohnnyComeL8ly |
luizrpgluiz would be happy to know I got it working.... :-P |
00:11 |
JohnnyComeL8ly |
Oh, ok. |
00:12 |
kahrl |
it supports the usual commands, of course |
00:12 |
JohnnyComeL8ly |
So, cat ~/someTXTdoc.txt will make it appear in the chat? |
00:12 |
kahrl |
er, no |
00:12 |
kahrl |
minetest chat commands |
00:12 |
kahrl |
like /status, /teleport |
00:12 |
|
paramat left #minetest-dev |
00:13 |
JohnnyComeL8ly |
So, what does --terminal or ncurses do here? |
00:13 |
kahrl |
ncurses is needed to manage the terminal |
00:14 |
kahrl |
so you can type a command while other people's chat is updated at the same time |
00:14 |
JohnnyComeL8ly |
So, I could grant fly to a player from terminal? |
00:14 |
kahrl |
sure |
00:15 |
JohnnyComeL8ly |
Oh, that explains the ] that was at the end of the log in the terminal.... You've been most helpful, kahrl. |
00:15 |
kahrl |
you're welcome :) |
00:16 |
kahrl |
also if you press esc you'll get to a small menu |
00:16 |
kahrl |
with a typo in it :P |
00:18 |
JohnnyComeL8ly |
That is awesome! |
00:19 |
JohnnyComeL8ly |
Bye. |
01:04 |
|
gregorycu joined #minetest-dev |
01:12 |
|
Supertan1er2 joined #minetest-dev |
01:37 |
est31 |
kahrl, note that currently I do process input in utf-8 format |
01:38 |
kahrl |
yeah, I saw that after I said it |
01:38 |
est31 |
I dont really remember why I've used ncursesw instead of ncurses |
01:38 |
kahrl |
apparently ncurses without the w doesn't really support locales well |
01:38 |
kahrl |
for compatibility with old unixes, I guess |
01:39 |
est31 |
that can be it |
01:39 |
est31 |
I've heard that ncurses 6 or so will fix it |
01:39 |
gregorycu |
17% of the client time is spent drawing clouds lol |
01:40 |
est31 |
gregorycu, thats why there is simple clouds |
01:40 |
gregorycu |
Still... |
01:41 |
est31 |
and thats why at joining a game clouds arent drawn for the time in which the nodes are initialized |
01:41 |
est31 |
bc there the bottleneck is gfx |
01:41 |
est31 |
and clouds would waste time |
01:58 |
gregorycu |
I can make collecting profiling date take 3% of the time it used to. However, it means drawing the profiling data is 42% slower |
01:59 |
gregorycu |
Collecting profiling data happens whether you have the graphs turned on or off though. |
02:00 |
gregorycu |
I'll make a PR and people can decide |
02:01 |
est31 |
will it require c++11? |
02:01 |
gregorycu |
No |
02:02 |
gregorycu |
Replacing a vector with a deque |
02:02 |
gregorycu |
(Using a vector as a queue is very slow) |
02:02 |
est31 |
I'm very sure nrz will +1 it |
02:03 |
est31 |
and I'm very sure nrz has already done it in his branch |
02:03 |
kahrl |
gregorycu: how about using a vector as a ring buffer |
02:03 |
kahrl |
that should be fast for updating and iterating |
02:03 |
gregorycu |
Probably faster than both |
02:03 |
est31 |
yea |
02:03 |
|
Puka joined #minetest-dev |
02:03 |
gregorycu |
Do we have a ring buffer type? |
02:03 |
kahrl |
I don't think so |
02:04 |
est31 |
write one |
02:04 |
est31 |
there is some container.h file I think in util |
02:06 |
gregorycu |
Writing a ring buffer... Feels like uni |
02:09 |
gregorycu |
I agree with you guys that a RB is the way to go, not likely to easily have my PR approved though |
02:09 |
gregorycu |
Or at least as easily as using an existing container |
02:10 |
est31 |
well if that container works and so on |
02:10 |
est31 |
just don't make the size a template argument |
02:17 |
hmmmm |
alrighty I found the problem with irrlicht |
02:17 |
est31 |
? |
02:18 |
hmmmm |
irr::core::vector3d<float>::getLength() is returning -inf for X=-0.f, Y=0.f, Z=0.f |
02:18 |
hmmmm |
I bet it's wrong SSE instructions being placed |
02:24 |
gregorycu |
Were we going to get rid of irrlicht at some stage? |
02:26 |
est31 |
gregorycu, you said you had a non irrlicht minetest it on your zeno account |
02:26 |
gregorycu |
lol |
02:27 |
gregorycu |
Did I tell you about my other project |
02:27 |
gregorycu |
And that's getting minetest off Lua |
02:27 |
gregorycu |
:P |
02:28 |
hmmmm |
should I be reporting these bugs to clang, do you think? |
02:28 |
hmmmm |
or are they going to say, "not our problem, you're using undefined behavior in this really dumb odd edge case" |
02:29 |
VanessaE |
probably both, hmmmm |
02:29 |
gregorycu |
If it's UB, they will say the latter |
02:29 |
hmmmm |
not entirely sure what's UB and what isn't |
02:29 |
gregorycu |
I know a clang tester, I could ask him |
02:29 |
gregorycu |
Where is the code? |
02:30 |
hmmmm |
the first clang-3.8-related-bug was a result of UB but you clearly expect a compiler to not act like that |
02:30 |
* gregorycu |
digs up his copy of the standard |
02:30 |
hmmmm |
this one I think is a result of misplaced SSE instructions and not a result of UB |
02:30 |
hmmmm |
"oh yeah we know about this already" |
02:30 |
est31 |
do you have a minimal example, not using irrlicht |
02:30 |
hmmmm |
"just use --f-no-sse" |
02:30 |
hmmmm |
"problem solved" |
02:30 |
hmmmm |
not yet |
02:30 |
est31 |
perhaps its irrlicht bug |
02:31 |
hmmmm |
you know I sorta wonder if printf is telling me the truth |
02:31 |
hmmmm |
because it doesn't always print the exact floating point numbers |
02:31 |
hmmmm |
sometimes it's off by a unit in last place |
02:31 |
est31 |
make it dump the memory |
02:31 |
hmmmm |
maybe that -0.0 could be -0.0000004 or something |
02:33 |
gregorycu |
T getLength() const { return core::squareroot( X*X + Y*Y + Z*Z ); } |
02:33 |
gregorycu |
This function? |
02:35 |
est31 |
kahrl, do the other combinations in the code work for you? |
02:35 |
est31 |
and which terminal do you have |
02:35 |
hmmmm |
looks innoccuous |
02:36 |
hmmmm |
if you extract that specific function and try it, it won't work |
02:36 |
hmmmm |
trying something though... |
02:36 |
kahrl |
est31: xfce4-terminal 0.6.3 |
02:37 |
kahrl |
est31: haven't noticed any other problematic keys, but I haven't tested them systematically |
02:38 |
gregorycu |
I think your printf is lying to you |
02:38 |
est31 |
kahrl, can you rebase your patch then I can put it onto the branch |
02:38 |
est31 |
or do you want it merged after my pr |
02:39 |
hmmmm |
well it's possible, I'm going to check that right now |
02:39 |
hmmmm |
the last compiler bug only happened in a very specific context |
02:40 |
hmmmm |
okay looks like printf did lie |
02:41 |
hmmmm |
http://fpaste.org/285897/14464320/ |
02:42 |
gregorycu |
You sure? |
02:42 |
gregorycu |
Isn't INF 0x4000000 |
02:42 |
hmmmm |
not sure, i'm checking |
02:43 |
kahrl |
est31: https://github.com/kahrl/minetest/commit/9f5f389720497d0d1c310ff5203d4f166d672904 |
02:44 |
hmmmm |
exponent is 001101010b |
02:44 |
hmmmm |
err, 0011 0101 i meant |
02:44 |
gregorycu |
There is an is_inf function |
02:44 |
hmmmm |
I dunno man it just looks like a denormalized number to me |
02:45 |
est31 |
thanks kahrl pushed |
02:45 |
hmmmm |
infinity, negative or positive, must have exponent == 128 |
02:45 |
hmmmm |
this isn't infinity |
02:46 |
gregorycu |
Sorry, isinf() |
02:47 |
hmmmm |
or !isfinite() :-) |
02:52 |
gregorycu |
You should be able to whip up an equiv testcase right? |
02:52 |
hmmmm |
not necessarily |
02:53 |
gregorycu |
How are you repro this? |
02:53 |
hmmmm |
I run minetest and walk around until the bad numbers start propogating |
02:54 |
hmmmm |
I have a quick and dirty "if (!isfinite(m_speed.X)) { printf("bad bad thing here\n"); asm("int $3"); }" |
02:55 |
gregorycu |
Ok |
02:56 |
|
Miner_48er joined #minetest-dev |
02:56 |
gregorycu |
What arch are you on? And are you able to print the bit representation of the numbers |
02:56 |
gregorycu |
Ah, you've done that |
02:56 |
gregorycu |
0x00000000 0x00000000 0x1a800000 |
02:57 |
hmmmm |
http://fpaste.org/285899/43299914/ |
02:58 |
hmmmm |
so it's definitely taking the surrounding context into consideration since i can't reproduce it here |
03:03 |
hmmmm |
it's optimizing out a lot of the intermediate steps in my test case I think |
03:04 |
hmmmm |
http://fpaste.org/285900/46433389/ |
03:04 |
hmmmm |
see how it transforms my 0x1a800000 to 4273916046374600704 |
03:06 |
gregorycu |
There are also compiler switches that control what happens where there is a divide by zero |
03:07 |
gregorycu |
(I'm lost for ideas) |
03:07 |
hmmmm |
not going to get anywhere until i look at the assembly produced for the same code in mt |
03:11 |
est31 |
man thats smart |
03:11 |
est31 |
http://www.minetest.net/donate redirects to http://www.minetest.net/development/ |
03:11 |
est31 |
quite a statement lol |
03:11 |
gregorycu |
lol |
03:14 |
gregorycu |
clearFPUException has popped out at me |
03:16 |
gregorycu |
hmmmm: Trying adding some of that shit to your test case, if you can |
03:19 |
hmmmm |
I dunno man but clang 3.8 is freaking bugged |
03:20 |
hmmmm |
I'm comparing 3.4.x output to 3.8.x output |
03:21 |
hmmmm |
the 3.4.x is much more compact and looks almost exactly like my sample case's output |
03:24 |
hmmmm |
hmm |
03:25 |
hmmmm |
3.8.x almost makes it look like it duplicates the work... the first half looks almost identical to 3.4.x but it gets weird when 3.8.x uses rsqrtss instead of sqrtss |
03:25 |
hmmmm |
just a disclaimer, i have absolutely no idea what rsqrtss does. |
03:26 |
gregorycu |
Such low level stuff is generally beyond me |
03:26 |
hmmmm |
okay, rsqrtss is reciprical square root, i.e. 1/sqrt(x) for lighting things |
03:26 |
hmmmm |
why the fuck does it do this |
03:27 |
hmmmm |
and more importantly, how can I force my minimal test case to do this |
03:27 |
gregorycu |
It replaces sqrt with rsqrtss ? |
03:27 |
est31 |
well then it makes sense that its infinite |
03:27 |
est31 |
1/0 = inf |
03:27 |
gregorycu |
lol |
03:27 |
gregorycu |
Sounds so retarded |
03:28 |
gregorycu |
It doesn't invert the result does it |
03:28 |
hmmmm |
http://fpaste.org/285901/43489014/ |
03:29 |
hmmmm |
this buggy bullshit is slated to become the default CC for FreeBSD 11 |
03:29 |
hmmmm |
which means I absolutely need to fix this or else I'll be stuck with a broken minetest when I go to update |
03:30 |
est31 |
hehe yea just like me with the irrlicht 1.8.2 bug |
03:31 |
hmmmm |
it's not just like a little broke |
03:31 |
hmmmm |
within ~20 seconds of moving around your player freezes up and you can't do anything |
03:31 |
est31 |
the irrlicht bug made the client crash the moment it started |
03:31 |
est31 |
you didnt even come to mainmenu |
03:31 |
gregorycu |
Does -ffast-math do anything? |
03:32 |
hmmmm |
dunno |
03:32 |
gregorycu |
Can you try? :) |
03:32 |
hmmmm |
i don't know how much more effort i want to put on this right now |
03:32 |
hmmmm |
i have other things i wanted to work on |
03:44 |
est31 |
yeey the ncurses PR passed 1k lines |
03:45 |
est31 |
btw kahrl is there a way of using cmake's own curses finding utilities? |
03:47 |
hmmmm |
hmm |
03:47 |
hmmmm |
alright so I can't get my hands on 3.7, the exact version nerzhul reported the original bug using |
03:47 |
hmmmm |
he didn't report anything about this floating point bug which makes me suspect that it doesn't exist in 3.7 |
03:48 |
hmmmm |
clang 3.8 is the current development version, so I think this is something that might get fixed before release |
03:48 |
hmmmm |
it seems like they know of some kind of SSE bug |
03:49 |
hmmmm |
current workaround for clang 3.8 users: use -O0 or -mno-sse |
05:15 |
|
Puka_ joined #minetest-dev |
05:39 |
|
Puka joined #minetest-dev |
05:42 |
|
Puka_ joined #minetest-dev |
05:46 |
|
Puka joined #minetest-dev |
06:09 |
|
Player2 joined #minetest-dev |
06:14 |
hmmmm |
oh cool :-) |
06:14 |
|
jin_xi joined #minetest-dev |
06:14 |
hmmmm |
i just discovered -mllvm -print-before-all |
06:14 |
hmmmm |
this will help me track the source of the errant optimization |
06:33 |
|
Hunterz joined #minetest-dev |
06:45 |
|
srifqi joined #minetest-dev |
07:28 |
celeron55 |
hmmmm: i bet clang is just taking way too many freedoms with our -ffast-math |
07:28 |
celeron55 |
try removing that flag and see if it still messes it up |
07:28 |
gregorycu |
Great minds |
07:34 |
hmmmm |
i already switched back to clang 3.4 and recompiled |
07:35 |
hmmmm |
i could switch back and try it again but FUCK. THAT. i'm not waiting another 5 minutes for it to compile |
07:41 |
celeron55 |
http://stackoverflow.com/questions/7420665/what-does-gccs-ffast-math-actually-do |
07:41 |
celeron55 |
"Third, it makes the assumption that all math is finite, which means that no checks for NaN (or zero) are made in place where they would have detrimental effects. It is simply assumed that this isn't going to happen." |
07:42 |
celeron55 |
how does this imply that it's allowed to make a result that is infinite? 8) |
07:42 |
hmmmm |
it doesn't |
07:43 |
celeron55 |
this gets kind of complicated though; there are a lot of things going on with -ffast-math |
07:44 |
hmmmm |
from what I understand, the main problem is when the compiler is too clever for its own good and attempts to combine v3f::getLength() and v3f::normalize() |
07:44 |
hmmmm |
normalize is the thing that requires inverse square root |
07:45 |
celeron55 |
there are also partial flags that enable or disable only certain math optimizations |
07:45 |
hmmmm |
like est says, though, if the norm of the vector is 0, the result of that operation will be infinity |
07:45 |
hmmmm |
that's definitely documented behavior for rsqrtss |
07:45 |
celeron55 |
i don't know where clang's documentation is but here are gcc's ones: https://gcc.gnu.org/wiki/FloatingPointMath |
07:46 |
hmmmm |
honestly I could have fun with this all day |
07:46 |
est31 |
so the problem is that the function works super well in 99.999999% of the cases, in the remaining part it freaks out |
07:46 |
est31 |
almost all inputs are ok, no |
07:46 |
est31 |
? |
07:46 |
hmmmm |
but it's probably not worth my while because clang 3.8 is a devel version and this bug is somewhat known already |
07:46 |
hmmmm |
I'm going to just leave it go and I bet by the time 3.8 is released it'll work fine |
07:47 |
celeron55 |
that's how i've been handling an usb sybsystem crash in the linux kernel for the past two years and it hasn't gone away 8) |
07:48 |
hmmmm |
talked to some people on #llvm and they basically said that I need to first track down the errant optimization by going through all the IR logs after optimizing |
07:48 |
hmmmm |
man lemme tell you |
07:48 |
hmmmm |
nobody has time for this shit: http://llvm.org/docs/LangRef.html |
07:49 |
est31 |
LLVM IR? |
07:49 |
est31 |
nice thing |
07:49 |
est31 |
rust compiles to it |
07:49 |
hmmmm |
there are 4 IR levels |
07:49 |
est31 |
but I know nothing about it :) |
07:50 |
celeron55 |
hmmmm: what is the status of client-side scripting now? |
07:50 |
hmmmm |
LLVM IR, DAG IR, MachineInst IR, and MachineInstructions |
07:50 |
hmmmm |
hmm |
07:50 |
hmmmm |
client side scripting is still a work in progress :-) |
07:50 |
hmmmm |
I took a break from it for a while |
07:50 |
celeron55 |
i have days when i might start doing it myself |
07:51 |
est31 |
hmmmm wanted to do it I think |
07:51 |
celeron55 |
okay, i'll assume that means you have nothing and i won't be doing duplicate work |
07:51 |
est31 |
and didnt want sb else to do it |
07:51 |
hmmmm |
haha |
07:51 |
hmmmm |
no I really do have a large part of the basic infrastructure down |
07:51 |
celeron55 |
you're taking too long; your turn is over as far as i am concerned |
07:51 |
hmmmm |
ok fine then :-) |
07:51 |
celeron55 |
publish it so that i can look at it |
07:52 |
hmmmm |
I'm gonna be honest I did lose interest |
07:53 |
celeron55 |
i'm not going to steer away from replacing all of it with something simpler if i feel like it though |
07:53 |
|
nrzkt joined #minetest-dev |
07:53 |
celeron55 |
too complex things are very effective in removing motivation |
08:01 |
|
Darcidride joined #minetest-dev |
08:09 |
hmmmm |
celeron55: I'd like to see what you come up with, besides, what I do have didn't really take that long |
08:10 |
hmmmm |
the majority of the effort is really in deciding policy-wise how things should work and interact with each other |
08:10 |
celeron55 |
show it to me still; i'm sure it will help coming up with either something different or something very similar |
08:10 |
est31 |
yea agreed it should be spoken about before its implemented |
08:11 |
celeron55 |
it has been spoken about a lot; that's not really an issue |
08:11 |
celeron55 |
this is just about making proper use of existing work |
08:12 |
hmmmm |
okay you got me I have practically nothing =] |
08:12 |
celeron55 |
i want to see a diff no matter how small it is |
08:14 |
|
Lunatrius joined #minetest-dev |
08:20 |
|
proller joined #minetest-dev |
08:33 |
hmmmm |
do you kind of see what I was going for? |
08:39 |
celeron55 |
i guess it's kind of what you described some months back |
08:40 |
hmmmm |
coding it up is the easy part, anybody can do that |
08:40 |
hmmmm |
the difficult task is to define a good interface |
08:41 |
est31 |
yup |
08:41 |
hmmmm |
i started jotting down ideas for what parameters each event should include but they may be wrong |
08:41 |
hmmmm |
or dumb |
08:41 |
celeron55 |
i'm probably going to approach this quite differently but we'll see |
08:42 |
hmmmm |
and then there are the obvious problems with the inherent asynchronousity of client scripting |
08:42 |
celeron55 |
i don't have anything in mind |
08:42 |
hmmmm |
but also a lot of advantages :-) |
08:46 |
celeron55 |
interfaces are easy to define once you know what you want from them |
08:47 |
|
alish joined #minetest-dev |
08:48 |
celeron55 |
i predict that this isn't going to end up quite like anyone has imagined if i am the one who does this based on what i think is actually useful in subgames |
08:49 |
celeron55 |
so prepare your butts |
08:49 |
hmmmm |
now hold on, why don't you talk about it first before generating throwaway work |
08:50 |
celeron55 |
i'm probably going to go quite far with the thing i described earlier about physics modifiers |
08:50 |
|
CraigyDavi joined #minetest-dev |
08:50 |
hmmmm |
I guess |
08:50 |
celeron55 |
having a huge lua environment that does freeform asynchronous stuff is not quite what i fancy |
08:50 |
celeron55 |
nor is it very useful in practice |
08:51 |
hmmmm |
it checks all the boxes in the requirements we defined up front |
08:51 |
est31 |
celeron55, you want it to run in the render thread ?! |
08:51 |
hmmmm |
if you go with the current execution model for server-side scripting you'll have to battle performance problems |
08:51 |
|
alish left #minetest-dev |
08:51 |
celeron55 |
i want to start from very direct and easy-to-debug and easy-to-understand things that people will immediately find uses for |
08:51 |
est31 |
basically let the client be single threaded too |
08:52 |
hmmmm |
btw I readded this PR https://github.com/minetest/minetest/pull/3329 |
08:52 |
hmmmm |
it got automatically closed somehow |
08:53 |
est31 |
I like its idea |
08:53 |
celeron55 |
i like to think (now before i've even done anything) these client-side lua scripts a bit like shaders |
08:53 |
|
CraigyDavi joined #minetest-dev |
08:53 |
celeron55 |
they shouldn't be in control or have access to everything |
08:54 |
celeron55 |
except maybe for the asynchronous huge environment that might exist some day; but it's only one of the things one might want to use |
08:55 |
hmmmm |
what kind of subgames do you have in mind? |
08:56 |
|
nrzkt joined #minetest-dev |
08:57 |
celeron55 |
not really anything right now except that i would very much like to enable all kinds of vehicles to operate properly |
08:57 |
est31 |
would already cover like 70% of the use cases |
08:58 |
hmmmm |
right we're obviously going into this with different use cases in mind |
08:58 |
hmmmm |
what i personally wanted to do was fix all the problems for every time we said "oh, darn, if only we had lua on the client problem X wouldn't exist" |
08:59 |
hmmmm |
node placement prediction, latency, control over visual effects, etc. |
08:59 |
|
alish joined #minetest-dev |
08:59 |
est31 |
node placement isnt that important I think |
09:00 |
hmmmm |
maybe not in the grand scheme of things, but minetest is incredibly hacky |
09:00 |
est31 |
I mean sure there is all the protection thingy, but thats better controled on the server than on the client |
09:00 |
hmmmm |
i never intend for client decisions to supercede server decisions |
09:00 |
hmmmm |
both of them would make the same decisions and default to the server's in case the results don't match up |
09:01 |
hmmmm |
but I just think it's really stupid when you try to break a chest and it gets mined, but then it reappears instantly |
09:01 |
hmmmm |
what any other "game" would do in that situation would make a sound giving you instant feedback that what you're doing is wrong, and simply not allow the action to take place |
09:02 |
est31 |
well if we add a feature that disables sneak glitch on the client, then all server owners will embrace that and will use it regardless that that is poinless |
09:02 |
hmmmm |
the logic simply doesn't exist on the client for this, and the result is latency |
09:02 |
hmmmm |
the latency helps a lot to break my game immersion |
09:02 |
hmmmm |
same with mobs |
09:02 |
est31 |
yup mobs are a problem right now |
09:03 |
hmmmm |
I mean if celeron wants to make vehicles go zoom that's nice too but has almost nothing in common with my grand plan |
09:03 |
nrzkt |
mobs is not a problem actually. The problem is the lua latency |
09:03 |
hmmmm |
it seems to me like these are two separate systems that just both happen to use lua scripting |
09:04 |
nrzkt |
it's why mobs are a bit laggy |
09:04 |
est31 |
you got them work in your fork? |
09:04 |
nrzkt |
it works yes |
09:05 |
|
alish left #minetest-dev |
09:05 |
nrzkt |
without problem, the only problem i see is where there are many players, and then load, the acceleration server side is a problem for me because mobs continue on their velocity whereas they should stop :s |
09:06 |
nrzkt |
i can run 10k mobs without lag, except on the rendering |
09:06 |
|
chat6185 joined #minetest-dev |
09:06 |
chat6185 |
hi |
09:07 |
celeron55 |
i think these systems have more common ground than hmmmm thinks, but there for sure are some things that only one of them can do and the other can't |
09:09 |
nrzkt |
but a pure C++ implementation of mobs is far better, but everybody doesn't want mobs. Another problem with mobs, Lua / C++ implementation independant is the path finding which is not easy and does some strange things where there is a bit lag :) (like mobs jumping without reason) |
09:10 |
|
AliSh joined #minetest-dev |
09:10 |
AliSh |
hello |
09:11 |
celeron55 |
ideally i would like to have a full lua-based abstraction layer between user input and what the client sends to the server, and i guess that could include a pre-check for whether a node is mineable; i don't know at this point |
09:11 |
est31 |
I think something being there is better than nothing and big plans |
09:12 |
celeron55 |
but this should allow for some forms of content-specific immediate feedback that minetest is lacking |
09:13 |
celeron55 |
like, who needs anything asynchronous for invoking a sound effect or a bunch of particles |
09:17 |
hmmmm |
you don't need it, but being asynchronous is a way to guarantee no time will be spent in lua where it matters |
09:17 |
hmmmm |
the client is soooo much more timing sensitive than the server is |
09:18 |
hmmmm |
you realize the golden rule of real-time systems is to not allow the execution of things with arbitrary timings, right? |
09:19 |
celeron55 |
the golden rule if immediate feedback is to not queue the feedback calculation into some complex threaded system to get a result sometime when it is too late |
09:19 |
hmmmm |
if you want to make lua execution synchronous, you'd have to somehow guarantee that its execution is bounded (probably with the lua debug instruction stepper, but that has the awful side-effect of slowing down execution a ton) |
09:19 |
celeron55 |
of* |
09:20 |
hmmmm |
if the feedback calculation is slow enough to give you a result "when it's too late", it definitely would be too late in the render thread |
09:20 |
celeron55 |
well that's why it shouldn't be |
09:20 |
hmmmm |
I don't know, how do games like Far Cry do it? they have client side lua scripting |
09:21 |
celeron55 |
i guess i could move user input processing into a background thread and pass it to the main thread only after it has been processed |
09:21 |
celeron55 |
that's kind of weird though |
09:24 |
celeron55 |
anyway, i know the issue; at this point how i deal with it does not depend on what you have to say about it |
09:25 |
celeron55 |
hopefully there will be some kind of natural enough way of handling this |
09:29 |
celeron55 |
hmmmm: generally games have competent programmers behind them and don't have to worry about systems being completely misused |
09:29 |
celeron55 |
so i'm not so sure if that would apply to minetest in the slightest |
10:18 |
|
PilzAdam joined #minetest-dev |
10:22 |
|
julienrat joined #minetest-dev |
10:36 |
gregorycu |
I agree with celeron55. We should add a python scripting layer. |
10:38 |
|
julienrat left #minetest-dev |
10:42 |
est31 |
man dude dont troll |
10:42 |
gregorycu |
Not a fan of python? |
10:43 |
est31 |
I hate it. |
10:43 |
gregorycu |
Wow |
10:43 |
gregorycu |
That was unexpected |
10:43 |
nrzkt |
est31 why ? |
10:44 |
est31 |
well a language is combined between the technical aspects and its preferences |
10:45 |
est31 |
about the technical aspect, it is very dynamically oriented, that's nothing wrong but there are tons of languages out there that do the same |
10:45 |
est31 |
and about the preferences, they are mostly shit |
10:45 |
est31 |
I mean why the hell do you have __init__.py? |
10:46 |
gregorycu |
lol |
10:46 |
est31 |
or that thing that you dont see where your blocks close |
10:46 |
gregorycu |
Ahh, you mean whitespace being meaningful? |
10:47 |
est31 |
well whitespace is meaningful in almost all languages |
10:47 |
est31 |
it separates words |
10:47 |
est31 |
inta=b wont compile |
10:47 |
est31 |
int a =b does |
10:47 |
gregorycu |
In python inta=b will compile :) |
10:47 |
gregorycu |
Ironically |
10:48 |
est31 |
Also the combination of scripting language and OOP total BS |
10:49 |
gregorycu |
It seems to work well, in practice |
10:50 |
gregorycu |
Though I don't know good scripting languages like Lua |
11:04 |
nrzkt |
est31: python works very well, yesterday i does a redis => pgsql output for my MT map (7.8M blocks), 8 mins :D |
11:05 |
est31 |
well, thats string copy |
11:06 |
nrzkt |
string copy + conversion binary<->utf8 :p |
11:06 |
nrzkt |
it also converts my 75k accounts + privs from the MT files to pgsql entries in 1sec :p |
11:08 |
gregorycu |
I'm trying to embed python in C++, it's "fun" |
11:12 |
|
AliSh joined #minetest-dev |
11:20 |
|
Darcidride joined #minetest-dev |
11:31 |
gregorycu |
Cheers bro |
11:47 |
|
Taoki[mobile] joined #minetest-dev |
11:58 |
kahrl |
re: <est31> btw kahrl is there a way of using cmake's own curses finding utilities? |
11:58 |
kahrl |
well, that cmake module I wrote does that by calling find_package(Curses) in case it can't find ncursesw by itself |
11:59 |
kahrl |
find_package(Curses) won't look for ncursesw so we can't use it for that |
12:06 |
|
DFeniks joined #minetest-dev |
12:08 |
celeron55 |
what |
12:08 |
celeron55 |
python? why on earth |
12:08 |
celeron55 |
that's ridiculous; it's just another scripting language |
12:09 |
celeron55 |
and worse at being embedded |
12:09 |
celeron55 |
we have had this discussion before; no use repeating it |
12:11 |
|
AliSh joined #minetest-dev |
12:12 |
gregorycu |
Python is better than Lua |
12:12 |
gregorycu |
But yes, no use repeating it |
12:12 |
celeron55 |
what |
12:12 |
est31 |
in which way is it better |
12:12 |
celeron55 |
i'm not going to end this discussion to you saying python is better than lua |
12:12 |
est31 |
lua is better in all points |
12:12 |
celeron55 |
do you want a kick or something |
12:12 |
gregorycu |
(I will concede that Lua is better than Python to end this discussion) |
12:13 |
celeron55 |
no |
12:13 |
celeron55 |
i want you to concede that they are both similar languages and neither is better |
12:13 |
est31 |
okay python is faster |
12:13 |
est31 |
but only in Calinou's benchmark |
12:13 |
celeron55 |
because that is a fact |
12:13 |
gregorycu |
They are better at different things |
12:13 |
est31 |
never trust a benchmark you havent faked etc etc |
12:16 |
AliSh |
guys i wanna to fill my freetime with something in programming and i am searching for games. my primary dev language is .net but i also know java,c,cpp,python and so on. could anyone help to decide on that? i am web and office automation dev. i havent any exp on game dev |
12:16 |
AliSh |
i dont like to dev on .net:) |
12:16 |
est31 |
what is .net? |
12:16 |
gregorycu |
C# |
12:17 |
celeron55 |
lol |
12:17 |
AliSh |
but its my job and i respect it |
12:17 |
est31 |
I know VB.net |
12:17 |
AliSh |
yes |
12:17 |
gregorycu |
(Not really - but close enough) |
12:17 |
gregorycu |
You know the shittest .NET |
12:17 |
celeron55 |
welcome to open source, where we don't even know what .net is |
12:17 |
AliSh |
:)))) |
12:17 |
celeron55 |
instead we use other shitty technologies |
12:17 |
gregorycu |
Why are you here? |
12:17 |
est31 |
but free shitty ones! |
12:18 |
celeron55 |
AliSh: what do you need us to decide? that's a weird question |
12:18 |
AliSh |
i was searching for java game and i have palyed minecraft and mineetest before. now i am trying to decide. therefore i am here. |
12:18 |
gregorycu |
Decide what? |
12:19 |
AliSh |
hellp to my decision. |
12:19 |
celeron55 |
if you want a java game, don't come here; it's not what this is |
12:19 |
est31 |
well you cant program for minecraft unless you are mojang employee or you violate their IP |
12:19 |
AliSh |
i love java and cpp |
12:19 |
gregorycu |
hmm... |
12:19 |
gregorycu |
Troll or stupid |
12:19 |
est31 |
you can program for minetest, even if you call us idiots and send us patent lawsuits |
12:19 |
est31 |
copyright lawsuits not allowed |
12:19 |
nrzkt |
gregorycu, what do you think about a MT interface with Cobol ? :D |
12:20 |
gregorycu |
There are probably elements of Cobol that would be better than Lua |
12:20 |
est31 |
meh disregard that |
12:20 |
AliSh |
and i couldnt make decesion for finding opensource project. i mean java or cpp |
12:20 |
* est31 |
talkin shit |
12:20 |
celeron55 |
AliSh: well, feel free to contribute something to minetest; it's really just a matter of writing something that people want and creating a pull request |
12:21 |
gregorycu |
Like my excellent pull request, that only needs one more +1 |
12:21 |
celeron55 |
or some of the many projects related to minetest |
12:21 |
nrzkt |
gregorycu, i set mine |
12:22 |
AliSh |
i will try. |
12:22 |
gregorycu |
That was release mode :P |
12:24 |
|
zat joined #minetest-dev |
12:25 |
|
AliSh left #minetest-dev |
12:26 |
gregorycu |
Thank you est31 |
12:47 |
est31 |
okay question do we merge PRs like #3309 that have multiple, not very closely related commits like there un-squashed, or should they be squashed? |
12:47 |
ShadowBot |
https://github.com/minetest/minetest/issues/3309 -- AreaStore cleanup by ShadowNinja |
12:48 |
est31 |
SN wants to merge them un-squashed, so I wonder whether we want to go that way |
13:00 |
|
est31 joined #minetest-dev |
13:01 |
est31 |
(I don't really care myself, as long as we don't merge PRs with closely related changes or where followup commits do nothing else than fix regressions of earlier commits) |
13:02 |
|
FR^2 joined #minetest-dev |
13:27 |
|
blaze joined #minetest-dev |
13:46 |
|
hmmmm joined #minetest-dev |
14:08 |
|
julienrat joined #minetest-dev |
14:19 |
|
julienrat joined #minetest-dev |
15:02 |
celeron55 |
est31: i guess maybe it could be merged un-squashed |
15:08 |
gregorycu |
As it turns out, vector + sort + unique is sometimes faster than set |
15:08 |
celeron55 |
that shouldn't be news to anyone |
15:09 |
gregorycu |
The news is Map::spreadLight can be made faster by using vector+sort+unique |
15:10 |
celeron55 |
yes, that might be news |
15:15 |
gregorycu |
I can make spreadLighting() go from 50% of transformLiquids(), down to 30% |
15:16 |
gregorycu |
spreadLight is about 10% CPU running around in singleplayer |
15:17 |
nrzkt |
gregorycu, noticed same usage in singleplayer with valgrind |
15:17 |
gregorycu |
(I'm on windows, by the way) |
15:18 |
celeron55 |
make sure to measure performance with optimizations enabled |
15:18 |
celeron55 |
because if you're just optimizing against an unoptimized implementation of std::set, that's dumb |
15:18 |
gregorycu |
:/ |
15:18 |
gregorycu |
I'm doing the Release With Debug Info |
15:19 |
celeron55 |
it's -O1; you will have to measure your final patch with -O2 too |
15:20 |
celeron55 |
s/measure/compare/ |
15:23 |
gregorycu |
Apparently that O2 |
15:29 |
|
deltib__ joined #minetest-dev |
15:29 |
|
jin_xi joined #minetest-dev |
15:30 |
gregorycu |
All this excitement is too much for me |
15:30 |
gregorycu |
I'm off to bed |
15:30 |
|
JohnnyComeL8ly joined #minetest-dev |
15:33 |
|
dzho_ joined #minetest-dev |
15:33 |
|
Lunatrius` joined #minetest-dev |
15:36 |
|
sfan5 joined #minetest-dev |
15:36 |
|
ekem joined #minetest-dev |
15:37 |
jin_xi |
really thinking about other languages for scripting? let me propose guile! its the best and does it all! |
15:41 |
|
proller joined #minetest-dev |
15:42 |
|
VanessaE joined #minetest-dev |
16:05 |
|
JohnnyComeL8ly joined #minetest-dev |
16:08 |
|
rom1504 joined #minetest-dev |
16:17 |
|
kaeza joined #minetest-dev |
16:51 |
|
Amaz joined #minetest-dev |
16:58 |
|
Krock joined #minetest-dev |
17:06 |
|
Fixer joined #minetest-dev |
17:06 |
|
ShadowBot joined #minetest-dev |
17:11 |
|
ShadowBot joined #minetest-dev |
17:11 |
|
ShadowBot joined #minetest-dev |
17:16 |
|
Hunterz joined #minetest-dev |
17:19 |
celeron55 |
i wonder if people get mad at me if i merge those two PRs that i made |
17:20 |
hmmmm |
yes, they would |
17:20 |
hmmmm |
there's a review process that you'd be otherwise bypassing |
17:21 |
hmmmm |
minetest development isn't the wild west any longer |
17:23 |
nrzkt |
wild wild west ! |
17:28 |
celeron55 |
by the way, is the subsystem maintainer stuff being utilized at all now or not? |
17:29 |
celeron55 |
it seems to me that it is not, at all |
17:29 |
hmmmm |
i think it's kind of a dumb concept |
17:30 |
hmmmm |
in practice it functioned as a way for less-competent individuals to shovel in their own shitty code without peer review |
17:30 |
celeron55 |
should it be officially taken out from use then? |
17:30 |
hmmmm |
absolutely |
17:30 |
|
est31 joined #minetest-dev |
17:31 |
hmmmm |
if other developers don't understand what's going on in that section of the code, well, there's an opportunity for them to learn something new |
17:31 |
celeron55 |
well the underlying issue it tried to solve was that nobody was willing to spend the time reviewing something like that |
17:32 |
|
ShadowBot joined #minetest-dev |
17:32 |
|
ShadowBot joined #minetest-dev |
17:32 |
celeron55 |
but solving or "solving" it like that doesn't really result in very good quality |
17:33 |
celeron55 |
you have to keep in mind that at that time you weren't active, for example, and somebody not being active really hinders the review process |
17:33 |
est31 |
I just wanted to point out that I fully agree with hmmmm on this point. the maintainer system creates a hugely broken up codebase, and even the kernel has problems with it. Just read linus' latest rant there he talks about code that was in network code a long time which he really didnt like and now he wants it removed. better have it all reviewed by some other people than the maintainer, then the likelihood that code quality differs from subsystem |
17:33 |
est31 |
to subsystem gets smaller. Not eliminated, but smaller. |
17:35 |
|
ShadowBot joined #minetest-dev |
17:38 |
|
PilzAdam joined #minetest-dev |
17:39 |
|
ElectronLibre joined #minetest-dev |
17:43 |
celeron55 |
i removed all the useless crap from this page then: http://dev.minetest.net/Organisation |
17:45 |
Krock |
+1 for clean, TL;DR texts |
17:46 |
hmmmm |
I think est is referring to greg kroah-hartmann's propencity to allow lower-quality code get in because he wants to avoid conflict and strong words |
17:46 |
hmmmm |
linus cracked down on that recently IIRC |
17:46 |
hmmmm |
yeah I tried being agreeable for a period of time and look at where it got minetest |
17:46 |
celeron55 |
i can see the pattern too 8) |
17:47 |
hmmmm |
now, "no" should be the default answer to any PR until everybody is fully convinced that the project is so much better with this patch |
17:48 |
celeron55 |
well |
17:48 |
hmmmm |
it's not just poor quality code that should get denied, but meaningless changes that don't really help much |
17:49 |
hmmmm |
you should always ask yourself, "how does what I'm doing make minetest better than it was a commit ago" |
17:54 |
celeron55 |
this might be obvious, but: the only way that approach can work is if all members of the core team trust each other... which is true for any approach though; in this approach failure to achieve that results in no changes being made; in some other approach it results in random changes being made |
17:55 |
celeron55 |
the underlying issue with minetest is always the coherency of the core team |
17:55 |
|
Calinou joined #minetest-dev |
17:56 |
celeron55 |
it's a hard issue because there exactly isn't a flow of people into minetest where we could just pick ones that agree with eg. me |
17:57 |
celeron55 |
it's incredible that this team is as big and as coherent as it is now, to be honest |
17:57 |
celeron55 |
even while it's bad compared to something else |
17:58 |
hmmmm |
i guess it must be because i have no life |
17:58 |
hmmmm |
i stick around for a video game that i don't even play |
17:58 |
celeron55 |
well that's what i'm doing too; it's kind of stupid |
17:58 |
hmmmm |
i must be a fuckin nerd |
17:58 |
|
ShadowNinja joined #minetest-dev |
17:59 |
hmmmm |
lol SN's real name is Owen |
17:59 |
hmmmm |
he's like that office supply guy from Less Than Perfect |
17:59 |
celeron55 |
www.minetest.net doesn't say anymore that minetest is developed by a bunch of lunatics, by the way |
18:00 |
celeron55 |
i think that has been the only right way of putting it |
18:00 |
hmmmm |
mental illness is not something that just goes away |
18:01 |
hmmmm |
but uh, on a serious note, I think an important change in minetest's governance is where we realized as a team that minetest may be community-driven but certainly not community-managed |
18:02 |
PilzAdam |
does any of the devs actually play Minetest? |
18:02 |
hmmmm |
i think a short time after you "quit" around 0.4.6 people decided that minetest "belongs" to "everybody" |
18:02 |
hmmmm |
so everybody felt like we were obligated to accept our contributions |
18:03 |
hmmmm |
s/our/their/ |
18:03 |
hmmmm |
that's where the quality took a nose dive and now we're just about recovered from that |
18:03 |
hmmmm |
i think |
18:03 |
celeron55 |
i like the sound in that; it means the quality set up by me was good! |
18:04 |
hmmmm |
well you are a decent dev |
18:04 |
hmmmm |
but more than that, it was being written mostly by a single person |
18:04 |
hmmmm |
so all of your designs can be coherent and consistent |
18:04 |
hmmmm |
and you have much more knowledge of the internal design and are aware of subtle side effects |
18:05 |
celeron55 |
i think you can't really say what you are saying without actually putting up the numbers about how many and how buggy things have been made in each period of development |
18:06 |
hmmmm |
fair enough |
18:06 |
celeron55 |
i know it feels like what you are saying, but it might just feel like it and actually still be generally fine |
18:06 |
|
twoelk joined #minetest-dev |
18:07 |
celeron55 |
the number of features made when the community explosion happened was rather large; we would simply not have those by now if it didn't happen |
18:09 |
celeron55 |
altough |
18:10 |
celeron55 |
we don't actually have data about which ones of those are actually good enough for actual usage either |
18:10 |
hmmmm |
remember the finite liquid/weather mess |
18:10 |
hmmmm |
i'd also argue that particlespawners was bad |
18:10 |
celeron55 |
object attachments is one of them; it's quite crappy in any real use |
18:11 |
hmmmm |
in terms of implementation quality or design? |
18:11 |
celeron55 |
both |
18:12 |
celeron55 |
but what makes it the worst is the server's tendency to not update things at a regular interval in real use |
18:13 |
celeron55 |
you can attach something to something, but the end result is almost useless due to other factors 8) |
18:16 |
|
nrzkt joined #minetest-dev |
18:18 |
|
ShadowBot joined #minetest-dev |
18:18 |
|
ShadowBot joined #minetest-dev |
18:20 |
|
Darcidride joined #minetest-dev |
18:25 |
|
Robert_Zenz joined #minetest-dev |
18:42 |
|
Miner_48er joined #minetest-dev |
18:48 |
nrzkt |
PilzAdam, maybe i'm late, but i can say i'm playing on my server, yes |
18:52 |
|
zupoman joined #minetest-dev |
19:01 |
|
younishd joined #minetest-dev |
19:01 |
crazyR |
i think sometimes, the best ideas come from those that lack the ability to implement them. of in some cases can implement them but in a dirty manor. Quality of commits are important as hmmmm is committed too but like celeron55 mentioned Minetest probably wouldn't have progressed this far without the hackery that was merged previously. I suppose there needs to be some sort of compromise or maybe even a developer that is willing to fine |
19:01 |
crazyR |
tune/fix/improve commits deemed to be hackery etc... just my 2 pence lol :S |
19:05 |
|
rubenwardy joined #minetest-dev |
19:06 |
|
paramat joined #minetest-dev |
19:15 |
paramat |
hi hmmmm i'd like to merge #3324 soon, please can you review when you have time? all standard biome-API-mapgen stuff i'm fairly sure it's ok |
19:15 |
ShadowBot |
paramat: Error: Delimiter not found in "Page is too big or the server took too much time to answer the request." |
19:16 |
|
ShadowBot joined #minetest-dev |
19:16 |
|
ShadowBot joined #minetest-dev |
19:16 |
|
jin_xi joined #minetest-dev |
19:16 |
paramat |
https://github.com/minetest/minetest/pull/3324 |
19:17 |
|
ShadowBot` joined #minetest-dev |
19:18 |
|
ShadowBot joined #minetest-dev |
19:18 |
|
ShadowBot joined #minetest-dev |
19:18 |
Krock |
just.... wow, great job, paramat! |
19:19 |
paramat |
needs so much tuning though, that's the hard part |
19:19 |
|
ShadowBot joined #minetest-dev |
19:19 |
|
ShadowBot joined #minetest-dev |
19:20 |
celeron55 |
paramat: what's the speed of it in this form compared to being a mod? |
19:20 |
celeron55 |
i'm sure you have had to say this a million times but whatever |
19:21 |
paramat |
in core 100ms per chunk, as a mod 2s per chunk |
19:21 |
|
ShadowBot` joined #minetest-dev |
19:21 |
hmmmm |
lol :/ |
19:22 |
paramat |
looks like i broke bot |
19:22 |
hmmmm |
paramat: I did look at it a little yesterday |
19:22 |
hmmmm |
need to take a closer look |
19:22 |
hmmmm |
pretty standard stuff I guess |
19:22 |
paramat |
yeah |
19:22 |
|
ShadowBot joined #minetest-dev |
19:22 |
|
ShadowBot joined #minetest-dev |
19:23 |
paramat |
except 3d noise for all caves and tunnels, doesn't use cavegen.cpp |
19:27 |
celeron55 |
how am i supposed to use this |
19:29 |
paramat |
? |
19:29 |
celeron55 |
hmm, creating a world using --server --world seems to work |
19:29 |
paramat |
oh it's hidden |
19:29 |
celeron55 |
is it even possible to use a hidden map generator from the menu; it resets to v5 |
19:30 |
celeron55 |
and doesn't let use something from the config that it thinks isn't valid |
19:30 |
|
jin_xi joined #minetest-dev |
19:30 |
celeron55 |
i guess manually editing minetest.conf and --server --world is the only way to start a world with a hidden mg |
19:30 |
paramat |
needs a mod to 'set mapgen parameters' |
19:30 |
celeron55 |
oh, maybe that too |
19:31 |
paramat |
i can paste if you want |
19:31 |
celeron55 |
i spawned at the middle of a huge and deep ocean so i think i already got what i wanted |
19:32 |
paramat |
ah spawn may fail because of 'findspawn' not finding low land |
19:32 |
paramat |
but that's configurable now |
19:33 |
paramat |
it's on a big scale so fly for a few kns |
19:33 |
celeron55 |
i had to fly 1500 nodes to get to dry land 8) |
19:33 |
paramat |
lol |
19:33 |
celeron55 |
watershed 5/5 |
19:34 |
celeron55 |
in all its ridiculousness |
19:34 |
paramat |
there's huge lava caves at y = -768 |
19:36 |
paramat |
it's not a copy of the watershed mod, closer to my 'riverdev' mod and a development of those 2 |
19:50 |
|
ShadowBot_ joined #minetest-dev |
19:56 |
|
paramat left #minetest-dev |
19:57 |
|
ShadowBot joined #minetest-dev |
19:57 |
|
ShadowBot joined #minetest-dev |
19:58 |
hmmmm |
I welcome paramat's mapgens in the core tbh |
19:58 |
hmmmm |
they're very nice looking and exactly the kind of thing other people would want to play on |
19:59 |
celeron55 |
they need to be handled a bit differently though, like this one which can create a large ocean where the current spawn algorithm can't find a location to spawn in by defaul |
19:59 |
celeron55 |
+t |
20:00 |
celeron55 |
large features are nice but you can't handle them like small ones |
20:01 |
hmmmm |
large features help to make the map more interesting and less "random crap" but i feel like their charm is broken by the current sendblocks algorithm |
20:01 |
hmmmm |
there's this huge cool looking mountain right in front of your face but you can't see it because the blocks aren't received yet |
20:01 |
hmmmm |
:| |
20:02 |
|
Puka joined #minetest-dev |
20:02 |
hmmmm |
after a certain difference we need to prioritize transparent blocks vs. blocks with opaque content but i wonder how much that would help |
20:02 |
|
ShadowBot` joined #minetest-dev |
20:03 |
|
ShadowBot joined #minetest-dev |
20:03 |
|
ShadowBot joined #minetest-dev |
20:04 |
PilzAdam |
hmmmm, the client should request blocks from the server, instead of the server guessing which blocks the client may want to have |
20:04 |
PilzAdam |
this would also allow modified clients to generate maps on running servers |
20:04 |
|
ShadowBot joined #minetest-dev |
20:04 |
|
ShadowBot joined #minetest-dev |
20:06 |
|
ShadowBot joined #minetest-dev |
20:06 |
|
ShadowBot joined #minetest-dev |
20:07 |
celeron55 |
i wouldn't say that so lightly when it already was attempted once by someone and resulted in only spectacular lagginess and bugs that stopped the whole algorithm from doing anything |
20:08 |
celeron55 |
yes it needs to improved; how exactly? that's for the one who is going to do it |
20:10 |
* twoelk |
remembers trying to keep a Mt.Meru in memory for making screenshots while not allowed to use fly |
20:22 |
rubenwardy |
are completely blank blocks - full of air - compressed to neglibility? |
20:23 |
hmmmm |
i would assume they're 18 bytes |
20:23 |
hmmmm |
(i.e. 17 bytes for the gzip header and 1 byte for the actual data) |
20:25 |
celeron55 |
of course they are (a block has multiple zlib-compressed pieces appended one after another though and some raw data, but the end result is not much) |
20:25 |
|
ShadowBot` joined #minetest-dev |
20:26 |
|
ShadowBot joined #minetest-dev |
20:26 |
celeron55 |
more than anything else it's the matter of logistics of managing thousands of blocks |
20:27 |
celeron55 |
and prioritizing them |
20:27 |
|
ShadowBot joined #minetest-dev |
20:28 |
celeron55 |
altough, if you want to see a mountain, it's not thousands of blocks |
20:28 |
celeron55 |
it's more like tens of thousands |
20:29 |
celeron55 |
that starts to be very expensive to process and probably needs a server-side cache of simplified versions of blocks |
20:29 |
|
ShadowBot` joined #minetest-dev |
20:29 |
twoelk |
having to find a 2km high mountain by bumping into it can be annoying :-P |
20:31 |
Sokomine |
at least it'll be possible to find out that it's a mountain if it's steep enough. if not, you'll never notice |
20:31 |
|
ShadowBot` joined #minetest-dev |
20:32 |
celeron55 |
i would really like to experience a long-distance first-person view of watershed though |
20:32 |
* twoelk |
sees a ghost of farmesh grinning in the fog |
20:32 |
celeron55 |
maybe i need to implement that before anything |
20:33 |
|
ShadowBot` joined #minetest-dev |
20:33 |
celeron55 |
there are a lot of things to do i guess |
20:33 |
hmmmm |
how are you going to do it? |
20:34 |
celeron55 |
i am not seeing any farmesh ghosts grinning in the fog, but i did implement something related to this in buildat |
20:34 |
hmmmm |
farmesh is really difficult to implement now |
20:35 |
hmmmm |
maybe it sorta worked at one point in history when the mapgen was simple and totally static |
20:35 |
celeron55 |
i am not going to explain; explaining always eats away motivation because you feel like you did something while you actually didn't do anything |
20:35 |
hmmmm |
true |
20:35 |
hmmmm |
ok then |
20:37 |
celeron55 |
it's not like anyone else is going to do it anyway |
20:38 |
twoelk |
http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-tools/1261810-eihort-an-opengl-world-viewer-latest-0-3-14-2013 <- ever seen this in action, it is or was extremely fast in comparism to mc - but it was reading only |
20:40 |
celeron55 |
it's not hard to render a lot of stuff |
20:41 |
celeron55 |
just collect everything in one buffer, throw it at the GPU and let it render it |
20:41 |
celeron55 |
updating it dynamically while a game is attempting to run smoothly is much harder |
20:42 |
celeron55 |
altough, i don't think rendering individual nodes is going to get us where we want |
20:43 |
celeron55 |
or, get me where i want |
20:46 |
twoelk |
just thought as open source there might be ideas hidden there - or rather hoped |
20:54 |
hmmmm |
heh you don't think I want this as well? |
20:55 |
hmmmm |
in any case a strategy that would "work" (but be very intensive) might be to store a mipmap of mapblocks |
20:55 |
hmmmm |
i think we might've talked about htis already |
21:02 |
Sokomine |
quite likely. it's a wish that comes up whenever playing. trying to build a tower or climb a mountain in order to get a better view just seems natural - and it's surprising (when new to the game) that the landmark just isn't visible from afar |
21:06 |
celeron55 |
how do i pass -Wnodeprecated-declarations to cmake so that it would pass it to g++ |
21:06 |
celeron55 |
this thing floods me with useless warnings that make it very hard to see the errors that actually matter |
21:07 |
celeron55 |
oh, i was using a different build type than i thought |
21:30 |
|
Puka_ joined #minetest-dev |
21:43 |
|
Darcidride joined #minetest-dev |
21:56 |
|
sloantothebone joined #minetest-dev |
22:02 |
|
Darcidride joined #minetest-dev |
22:07 |
|
Player2 joined #minetest-dev |
22:14 |
|
sloantothebone joined #minetest-dev |
22:20 |
|
sloantothebone joined #minetest-dev |
22:21 |
|
luizrpgluiz joined #minetest-dev |
22:22 |
|
luizrpgluiz left #minetest-dev |
22:44 |
|
JohnnyComeL8ly joined #minetest-dev |
22:53 |
|
paramat joined #minetest-dev |
22:57 |
paramat |
celeron55 > ".. a long-distance first-person view of watershed .." reminded me of http://i.imgur.com/jyTVdYC.png the variable-zoom 3D minimap of lua watershed |
22:59 |
celeron55 |
what was the scale in that particular picture? |
23:00 |
paramat |
1 node is 1 mapblock |
23:02 |
celeron55 |
ok, yeah; the actual challenge is making each of those look like they were a real-life mapblock while not rendering much more than that for each of them |
23:02 |
celeron55 |
real-life... i mean real-sized |
23:03 |
celeron55 |
i came up with some tricks in buildat that i can try to use i guess |
23:03 |
celeron55 |
rendering nor transferring |
23:04 |
hmmmm |
cool |
23:04 |
hmmmm |
are those voronoi cell-based biomes? |
23:05 |
paramat |
no heat/humidity noises selecting 9 or so biomes, as in the watershed mod |
23:06 |
hmmmm |
ahh |
23:06 |
hmmmm |
I didn't realize heat/humidity selection could result in such shapes |
23:07 |
hmmmm |
honestly for as good as the heat/humidity intersection biome system works, i hate the shapes they make |
23:07 |
paramat |
both spread 1000, 3 oct, 0.5 persist |
23:10 |
paramat |
but in riverdev mod i use 3 oct, 0.4 persist, i feel heat/humidity should vary fairly smoothly, it also reduces tiny biomes and narrow biome stripes |
23:10 |
paramat |
i was actually considering persist 0.4 for the biome API |
23:15 |
|
ShadowBot joined #minetest-dev |
23:15 |
VanessaE |
^^^^ should be fixed now. |
23:16 |
VanessaE |
network outage affecting dac.com. apparently it confused ShadowBot :) |
23:17 |
paramat |
good |
23:21 |
paramat |
0.4 persist seems just enough for decent shapes while also reducing small-scale detail |
23:34 |
paramat |
mmh but then MT has always used 0.5 and the smaller scale detail is nice, think i'll leave it as is :} |
23:40 |
|
Puka joined #minetest-dev |
23:48 |
|
Puka_ joined #minetest-dev |
23:54 |
paramat |
to make findSpawnPos more robust and compatible with larger mapgens i suggest we increase the number of attempts (and therefore range), a slightly slower spawn is preferable to being buried at (0,0,0). i'll make a PR |
23:57 |
hmmmm |
I dunno paramat... |
23:57 |
paramat |
however this means players scattered even wider |
23:58 |
celeron55 |
i think it should do what it does now, and then if it doesn't find a spawn, move on to a large area suitable for watershed |
23:59 |
paramat |
another idea: let the mapgen decide what vertical spawn range to allow. currently it's water level + 16, but should be set per mapgen |