Time |
Nick |
Message |
00:04 |
|
jojoa1997 joined #minetest-dev |
00:07 |
|
jojoa1997|PC joined #minetest-dev |
00:07 |
|
jojoa1997|PC left #minetest-dev |
00:12 |
|
kaeza1 joined #minetest-dev |
00:19 |
|
smoke_fumus joined #minetest-dev |
00:26 |
|
OWNSyouAll_DESK1 joined #minetest-dev |
00:30 |
|
nyuszika7h joined #minetest-dev |
00:31 |
|
ssieb joined #minetest-dev |
00:32 |
|
ShadowNinja_ joined #minetest-dev |
00:32 |
|
mrtux_ joined #minetest-dev |
00:35 |
|
Exio joined #minetest-dev |
00:38 |
|
IceCraft joined #minetest-dev |
00:48 |
|
kaeza joined #minetest-dev |
00:52 |
|
dexter0 joined #minetest-dev |
00:52 |
|
smoke_fumus joined #minetest-dev |
00:52 |
|
VanessaE joined #minetest-dev |
00:52 |
|
BrandonReese joined #minetest-dev |
00:52 |
|
thexyz joined #minetest-dev |
00:52 |
|
RealBadAngel joined #minetest-dev |
00:52 |
|
khonkhortisan joined #minetest-dev |
00:52 |
|
salamanderrake joined #minetest-dev |
00:52 |
|
darkrose joined #minetest-dev |
00:52 |
|
Tracerneo joined #minetest-dev |
00:52 |
|
OWNSyouAll_DESKT joined #minetest-dev |
00:53 |
|
OWNSyouAll_DESKT joined #minetest-dev |
01:11 |
hmmmm |
hmmm |
01:12 |
hmmmm |
you know, the whole "here's the default, just change it if it's not default" paradigm is out the window now that i have to allocate all noiseparams |
01:21 |
hmmmm |
alright, i guess proller had the right idea |
01:22 |
hmmmm |
i won't even do that though |
01:23 |
hmmmm |
if i just leave it as null, that'll be fine.. if it crashes, then it's clearly an internal problem, not a problem with the way i made the interface |
01:25 |
hmmmm |
the whole point of having the default defined constants for noiseparams was: here are the initial, default values for this mapgen. great, try getting the values from map metadata, okay, then try getting them from the config, and so on |
01:26 |
hmmmm |
honestly, the entire mapgen parameter system is fucked. it's totally overcomplicated for what it is |
01:26 |
hmmmm |
but before i start calling it crap, how can i do it better? |
01:27 |
hmmmm |
make more assumptions? |
01:31 |
|
jojoa1997 joined #minetest-dev |
01:33 |
hmmmm |
i can simplify things somewhat and clean up bad code by making defaults for the Settings when the map metadata is read |
01:35 |
hmmmm |
set all the defaults to an empty string so 1). it doesn't throw a stupid exception, preventing the rest of the metadata from being read, and 2). i'd be able to tell which settings need to be fetched from the config at least |
01:36 |
hmmmm |
but what i really want the default to be is the contents of the global config |
01:37 |
hmmmm |
map metadata has the highest precedence, then config, then defaults, so it'd make sense to write the defaults, write the config, then write the map metadata |
01:38 |
hmmmm |
i guess the reason why i read the config only after the metadata fails is to prevent duplicate work |
01:39 |
hmmmm |
and then on top of all this nonsense, i still have to handle the fixed seed specially |
01:39 |
|
kaeza1 joined #minetest-dev |
01:50 |
hmmmm |
you know, it'd probably be better if i just expand Settings to do what i want it to do |
01:51 |
hmmmm |
getNoEx() |
02:28 |
|
ShadowNinja joined #minetest-dev |
02:57 |
|
ecube joined #minetest-dev |
08:02 |
|
Calinou joined #minetest-dev |
10:47 |
|
Calinou joined #minetest-dev |
11:04 |
|
serengeor joined #minetest-dev |
11:04 |
|
ImQ009 joined #minetest-dev |
11:30 |
|
PilzAdam joined #minetest-dev |
12:59 |
|
serengeor joined #minetest-dev |
13:21 |
|
smoke_fumus|2 joined #minetest-dev |
13:22 |
|
smoke_fumus joined #minetest-dev |
13:31 |
|
iqualfragile joined #minetest-dev |
13:39 |
|
VanessaE joined #minetest-dev |
14:09 |
|
hmmmm joined #minetest-dev |
14:09 |
|
ImQ009 joined #minetest-dev |
15:07 |
|
Jordach joined #minetest-dev |
15:07 |
|
Jordach joined #minetest-dev |
15:18 |
|
rubenwardy joined #minetest-dev |
15:46 |
|
dexter0 joined #minetest-dev |
15:52 |
|
rubenwardy joined #minetest-dev |
16:17 |
|
Calinou joined #minetest-dev |
16:21 |
|
dexter0 joined #minetest-dev |
17:48 |
|
PilzAdam joined #minetest-dev |
17:51 |
|
kahrl joined #minetest-dev |
18:08 |
|
Calinou joined #minetest-dev |
18:17 |
|
sapier joined #minetest-dev |
18:22 |
|
ssieb joined #minetest-dev |
18:44 |
|
rubenwardy joined #minetest-dev |
18:52 |
|
ImQ009 joined #minetest-dev |
19:46 |
|
ShadowNinja joined #minetest-dev |
19:52 |
|
Taoki joined #minetest-dev |
20:10 |
|
salamanderrake joined #minetest-dev |
20:10 |
|
Jordach joined #minetest-dev |
20:10 |
|
Jordach joined #minetest-dev |
20:32 |
|
ShadowNinja joined #minetest-dev |
20:35 |
sfan5 |
can I commit a fix for the uk translation? its annoying that I need to fix it myself before making a win32 build |
20:36 |
PilzAdam |
link? |
20:36 |
sfan5 |
well, I don't have a link |
20:36 |
sfan5 |
i'll just add "\n" to the entry that causes the problem |
20:37 |
sfan5 |
add = prepend |
20:37 |
PilzAdam |
seems good then |
20:37 |
sfan5 |
ok |
20:37 |
Jordach |
when did we have a united kingdom translation |
20:38 |
sfan5 |
https://github.com/minetest/minetest/commit/f9b5771274f662ed12c209c3f1b563eb29d99ca7 |
20:39 |
sfan5 |
that translation contains russian things, but whatever |
20:39 |
sapier |
uk translation with russian entrys? |
20:39 |
sfan5 |
yeah |
20:40 |
sfan5 |
look at it: https://github.com/minetest/minetest/blob/master/po/uk/minetest.po |
20:40 |
sapier |
sounds wrong to me ... isn't anyone else puzzled too? |
20:40 |
PilzAdam |
sfan5, seems to work fine |
20:41 |
|
ShadowNinja joined #minetest-dev |
20:49 |
|
kaeza joined #minetest-dev |
21:05 |
sapier |
does anyone have an idea how to portably call unzip from within minetest? |
21:06 |
Calinou |
os.execute()? |
21:06 |
sapier |
portably ;-) |
21:06 |
sapier |
"unzip" most likely isn't available on windows ;) |
21:07 |
PilzAdam |
who cares about windows ;-) |
21:07 |
sapier |
I do as I want to improve usability of minetest |
21:08 |
sapier |
I already managed to create a ingame mod manager fixing common mod problems on it's own but this isn't very usefull if those users most likely to do those mistakes can't use it |
21:10 |
sapier |
e.g. mod having wrong dirname |
21:11 |
|
kaeza1 joined #minetest-dev |
21:30 |
|
serengeor joined #minetest-dev |
21:44 |
PilzAdam |
any objections to this: https://github.com/Warr1024/minetest/commit/4c2459852968f4564688fe356407367c791de67e |
21:44 |
PilzAdam |
I have tested it and it works fine |
22:10 |
|
tucebrin joined #minetest-dev |
22:10 |
tucebrin |
i need assistance |
22:12 |
PilzAdam |
tucebrin, note that this channel is for core development only; go to #minetest for anything else |
22:12 |
tucebrin |
may i pm you? |
22:12 |
tucebrin |
its just a simple thing |
22:12 |
PilzAdam |
sure |
22:31 |
kahrl |
sapier: include the minizip source (adjusted as needed) |
23:09 |
sapier |
looks reasonable kahrl ... I guess I have to add some filesystem handling support to core in order to get mod/game whatever management done in a portable way |
23:14 |
sapier |
https://github.com/sapier/minetest/tree/next_gen_main_menu prototype mod and game manager , enable by setting "main_menu_game_mgr" and "main_menu_mod_mgr" in minetest.conf to 1 |
23:15 |
|
ShadowNinja joined #minetest-dev |
23:15 |
sapier |
I'm going to move the filesystem functions to core, it's way more portable than doing this in lua |
23:17 |
|
Warr1024 joined #minetest-dev |
23:18 |
Warr1024 |
Would changing the server-side FOV to 180 really have a significant impact on bandwidth? |
23:18 |
Warr1024 |
I thought that the blocks sent to the client were rate-limited somehow... |
23:18 |
sapier |
as you say "somehow" ;-) |
23:18 |
Warr1024 |
...so that would mean that you'd get wider near-terrain faster, and it'd take a bit longer to get far terrain...? |
23:19 |
sapier |
as far as I know player fov is used to determine wich blocks to send ... but I'm not sure if this is the only limitation |
23:19 |
Warr1024 |
I guess it doesn't seem right to leave it locked in at 72 and have a 72-degree swath in the middle of your vision get loaded, and have to turn your head to get the rest. |
23:19 |
Warr1024 |
sapier: the server doesn't know the player's FOV, it uses a hard-coded 72-degrees. |
23:20 |
sapier |
ok maybe 72 degrees have been a evaluated value ... maybe they were just some number set when programming ... who knows ;-) |
23:20 |
Warr1024 |
I started the work on adding a TOSERVER_FOV packet to the proto, so the server would know each player's REAL FOV, and send the correct blocks. |
23:21 |
Warr1024 |
that would be a more optimized solution, but it's significantly more code, and complexity, added than the fixed 180 solution. |
23:21 |
sapier |
how do you protect server from malicious clients? |
23:21 |
hmmmm |
erm |
23:21 |
sapier |
e.g. player fov 360 |
23:21 |
Warr1024 |
well, clients can't specify an FOV more than 170 degrees, actually. |
23:21 |
hmmmm |
probably not a good idea to do that |
23:21 |
Warr1024 |
do which? |
23:22 |
hmmmm |
_i_ have plans to rip that entire FOV thing out and just send everything in a D-sized radius |
23:22 |
Warr1024 |
yeah, I like that idea... |
23:22 |
hmmmm |
there'd have to be a loading screen though |
23:22 |
Warr1024 |
even though you're sending blocks behind the client, it's pretty easy for them to just whip their head around... |
23:23 |
hmmmm |
so that first radius of blocks is completely loaded when the client actually starts to play |
23:23 |
Warr1024 |
ah, I see |
23:23 |
hmmmm |
every time the player moves and crosses a block boundary, the blocks in the new radius that weren't sent are then sent |
23:23 |
sapier |
do we know how performance is effected by a change like that? |
23:23 |
hmmmm |
so the edge of the radius keeps getting updated this way |
23:23 |
hmmmm |
it shouldn't matter in theory |
23:23 |
sapier |
maybe it's even a improvement .. I just don't have any idea ;-) |
23:23 |
hmmmm |
the performance is going to be roughly the same |
23:24 |
hmmmm |
you're still sending the same amount of blocks in the same timeframe |
23:24 |
hmmmm |
just in a different order |
23:24 |
hmmmm |
as for setting the FOV wider, well |
23:24 |
hmmmm |
having the server know any sort of FOV is a bad idea |
23:24 |
Warr1024 |
if network bandwidth is an issue, then the better solution is probably bandwidth limiting and better traffic prioritization, instead of trying to limit FOV server-side. |
23:25 |
sapier |
I assume latency is more an issue than bandwidth |
23:25 |
hmmmm |
perhaps you should check out https://github.com/minetest/minetest/commits/client_requests_blocks_2 |
23:25 |
Exio |
sapier: actually, it is both |
23:25 |
hmmmm |
should also see an increase in performance if TCP is used to transfer blocks |
23:25 |
Exio |
as sending stuff is very slow |
23:25 |
sapier |
oh :-) I remember your connection is quite slow exio |
23:25 |
hmmmm |
the main bottleneck in singleplayer at least is the mesh making |
23:26 |
hmmmm |
so even though the client might receive the blocks fast enough and all, it can't make the meshes for them fast enough |
23:26 |
Warr1024 |
hmmmm: yeah, that's a pain point for me on my Atom n450 :-) |
23:27 |
Exio |
i'd actually like the "client_requests" way for that |
23:27 |
Warr1024 |
so the idea is to have the client tell the server what blocks it needs instead of having the server use the player position tracking data and sending them unsolicited? |
23:28 |
sapier |
I don't think this is a good idea warr1024 |
23:29 |
Warr1024 |
which idea isn't good? |
23:30 |
Exio |
limiting that server-sidely |
23:30 |
sapier |
allowing client to request data ... this way you need a client to guess whats required and server needs to do same thing to protect itself |
23:30 |
Exio |
but allowing the clients to request "how many" do they way |
23:30 |
Exio |
s/way/want/ |
23:30 |
Warr1024 |
ok, well, that makes sense if the blocks client-side are stale and only the server knows they've changed... |
23:31 |
Warr1024 |
yeah, sorry, I'm late to the party, so to speak, and am still learning the internals. |
23:31 |
Exio |
sapier: moving stuff to the client seems something what needs "to be done" |
23:31 |
sapier |
no problem ... we all are ;-) except maybe celeron ;-) but I assume not even he knows every single detail |
23:31 |
hmmmm |
the reason why that's "something to be done" is because the FOV check is cpu intensive |
23:32 |
hmmmm |
if we remove the FOV check completely, then we don't need the client to request the blocks anymore |
23:32 |
Exio |
why not? |
23:32 |
hmmmm |
why would you? |
23:33 |
Exio |
i'm not saying the client requesting the blocks |
23:33 |
Warr1024 |
I guess all the client needs to do is ACK/NAK whether it successfully received the blocks, and the server can just decide and prioritize the blocks to send to the player. |
23:33 |
sapier |
a client never will know what blocks have been changed by other players ... server still needs to be able to override clients requests to speedup display of changes |
23:33 |
Exio |
but "limiting" the radius |
23:33 |
hmmmm |
you can move it to the client if you'd like, but like sapier said, if you'd like to protect against abuse you're going to have to duplicate drawing up a list of which blocks that the client needs anyway |
23:33 |
Warr1024 |
Exio: you're saying have the client send its draw range to the server so the server doesn't waste time sending blocks to the client that won't be immediately drawable? |
23:34 |
Exio |
exactly |
23:34 |
Exio |
what will be the point of having a radius of 15 mapblocks in memory in a netbook if it can barely render some near ones? |
23:34 |
Exio |
s/will/would/ |
23:34 |
Warr1024 |
you could do that, but if the server prioritizes near blocks first anyway, it doesn't necessarily hurt to send them, as you might need them later... |
23:35 |
Warr1024 |
after all, that's less the server will have to send once you start walking. |
23:35 |
sapier |
I don't think having them in memory is a problem ... loading and transfering most likely are the critical paths |
23:35 |
Exio |
as there is no client-side prediction for most of stuff, you need to wait (atm) for the whole world to load to be able to do stuff |
23:35 |
Exio |
like using a bucket |
23:35 |
Exio |
the whole world around* |
23:36 |
Warr1024 |
yeah, the process of emerging a new player is tricky for me on my netbook. |
23:36 |
Warr1024 |
I noticed that my player sprite enters the world, and its controls are uninitialized, almost immediately |
23:36 |
sapier |
you'll always need to wait for server ;-= prediction just fools user to not recognize he's waiting ,-) |
23:36 |
Warr1024 |
but it can take up to half a minute to load item visuals, during which time I'm exposed and vulnerable... |
23:37 |
Exio |
nah, not that |
23:37 |
Warr1024 |
I was thinking I should file a bug about it, since IIRC one of the other devs said that we should probably change that sequence. |
23:37 |
PilzAdam |
if I want to delte all meshes in MeshUpdateThread::m_queue_out should I create a destrcutor in MeshUpdateThread or loop through m_mesh_update_thread.m_queue_out in ~Client() and delte it there? |
23:37 |
PilzAdam |
*delete |
23:38 |
Exio |
sapier: if you want to play an online game |
23:38 |
Exio |
you do NOT want to see the lag |
23:38 |
sapier |
I theory the one creating the mesh is responsible for deleting it |
23:39 |
Exio |
i mean, being able to identify it, yes |
23:39 |
Exio |
but affecting the gameplay thanks "to that"? |
23:40 |
sapier |
exio I'm completely with you about hiding the lag but there's a tradeoff when moving to client ... if you move to much you either open up far more ways for a client to crash your server or need to do doublecalculations |
23:41 |
Exio |
both sides needs to share stuff |
23:41 |
|
tucebrin left #minetest-dev |
23:42 |
sapier |
sharing between multiple partners is one of the big (in general) unsolved issues of computer sciences ;-) |
23:42 |
Exio |
or you will end with a quake3 where you can't play with more than 150 ms of latency without getting a shitty gameplay, or a game where for cheating you just comment safety-checks |
23:42 |
Exio |
s/needs/need/ |
23:42 |
Warr1024 |
The amount of stuff NOT happening on the client was actually one of the things I really liked about minetest as compared to certain other mine* games. |
23:43 |
Exio |
sapier: i mean the server and the client |
23:43 |
Exio |
you can't let the client "manage alone" the movement, as you can't let the server alone do that |
23:43 |
Exio |
you need to do some stuff in the client and server |
23:43 |
Warr1024 |
I hate when client-side prediction tells me that something happened that the server rejected, and I get rewinds... |
23:43 |
sapier |
it's not only server <-> client it's server <-> n* clients |
23:45 |
Exio |
sapier: hmm, "you open X door", when you right click - some code runs on the client(for example), and it changes "door:closed" to "door:open" with some other code for doing that in reverse |
23:45 |
Exio |
if the packets are sent in order(?) the player would open it, join in the house, and then close the door |
23:46 |
sapier |
and what happens if some other player in right same moment does same? |
23:46 |
Exio |
that would be like a race-condition, actually in MC if you open a door what got open by other player it "keeps open" (iirc) |
23:46 |
Exio |
didn't try for a while |
23:47 |
Exio |
(or gets toggled, i can't recall atm) |
23:47 |
sapier |
difficult to handle in consistent way with prediction |
23:47 |
Exio |
what do you suggest for that, making the client wait "always" for the server? |
23:48 |
Exio |
for some of that stuff, i mean |
23:48 |
sapier |
I don't want to suggest something at current point of discussion I just point at the issues I recognize |
23:49 |
sapier |
I want to finish some of my open tasks prior starting a new one ;-) |
23:49 |
Exio |
i actually would prefer a race-condition-based client-side prediction more than a based-on-server-response |
23:56 |
|
ShadowNinja joined #minetest-dev |
23:59 |
PilzAdam |
anything against this: https://github.com/PilzAdam/minetest/commit/9397b5de083fabe2e93c55de5bf90e5c75bbe9c1 ? |