Minetest logo

IRC log for #minetest-dev, 2013-05-17

| Channels | #minetest-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

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 ?

| Channels | #minetest-dev index | Today | | Google Search | Plaintext