Minetest logo

IRC log for #minetest-dev, 2015-11-03

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

All times shown according to UTC.

Time Nick Message
00:00 paramat with water level + 128 all spawns are close to (0, 0)
00:00 celeron55 ehm
00:00 celeron55 you're forgetting that watershed generates huge oceans
00:00 paramat oh yeah
00:00 celeron55 don't forget that
00:01 twoelk if water at sawn then add boat :)
00:01 paramat heh
00:02 twoelk you may leave out the tiger though
00:02 celeron55 boating 1500 nodes is not fun
00:02 twoelk ok add some rations
00:03 paramat the big oceans are a dilemma, maybe i'll only allow those away from world centre
00:05 twoelk mmh like my old dream with a mt.meru at the center? (drool)
00:06 paramat i actually considered a multi-level world with a connecting tower at (0,0)
00:07 hmmmm maybe there should be a new strategy instead making another tweak to a fundamentally flawed algorithm
00:08 hmmmm this should really be information provided by the mapgen
00:08 twoelk http://www.woelknet.de/pages2/minetest/screenshots/lone-isle.jpg <- another suggestion for watershed spawn :D
00:08 hmmmm getPlayerSpawnArea() ?
00:08 hmmmm getIdealSpawnLocation()?
00:09 twoelk if we get a mapgen preview, couldn't that be used?
00:10 hmmmm huh?
00:10 hmmmm no idea what you mean by that.
00:11 twoelk thought I heard talk about seed preview in this channel
00:11 twoelk or whatever it was called
00:13 twoelk :( cant find it
00:13 Puka joined #minetest-dev
00:14 paramat hmmmmm ok, i know you are thinking of working on findSpawnPos. a range of +-1000 nodes is big enough
00:15 paramat core watershed needs a lot of work. i may well bias it towards dry land, or at least near world centre
00:17 twoelk http://irc.minetest.ru/minetest-dev/2015-07-09#i_4315545
00:19 Puka_ joined #minetest-dev
00:20 paramat well a simple auto-mapgen-preview could provide an 'ideal spawn location'
00:21 paramat it would be code in the mapgen file that just uses the basic terrain height noise to find an area of dry land
00:21 paramat easy to do
00:22 paramat it means the primary player spawn area could be a few 1000n away from 0,0
00:24 paramat perhaps it could provide the central point around which the existing findSpawnPos extends it's search
00:32 paramat one idea behind watershed/riverdev is variation on every scale. the largest (8000-16000 nodes) being average terrain height, some areas being continents with large lakes, in other areas the tops of the mountain ridges form chains of islands in huge oceans
00:34 est31 joined #minetest-dev
00:36 est31 hmmmm, can you please give people a chance to answer on your answers on a PR before merging it?
00:36 hmmmm you said +1 if I fix the documentation
00:36 hmmmm I fixed the documentation
00:36 est31 no you didnt
00:36 hmmmm yes I did
00:36 est31 "Queue all blocks in the area from `pos1` to `pos2`, inclusive, to be asynchronously fetched from memory, loaded from disk, or if inexistent, generates them."
00:37 est31 I have asked you to change it "generates them" to "generated"
00:37 est31 -it
00:37 hmmmm that's incorrect English grammar
00:37 est31 whats there ,thats incorrect english grammar
00:38 est31 I admit I'm not the native speaker here tho
00:38 est31 but why not say then: "Queue all blocks in the area from `pos1` to `pos2`, inclusive, to be asynchronously fetches them from memory, loads them from disk, or if inexistent, generates them."
00:38 hmmmm wait a minute
00:38 hmmmm this isn't the right sentence
00:39 hmmmm oh
00:40 hmmmm what happened was that I thought the sentence was "Fetched from memory, loaded form disk, or if inexistent, generates them"
00:40 hmmmm you know how in the Lua API a new line sometimes ends the sentence of documentation
00:41 est31 the line break was after "asynchronously".
00:42 hmmmm well it's a simple fix, who cares
00:43 est31 This really seemed like pushed in a rush
00:43 est31 My mapgen did take more than 2 secs and it didnt print the update
00:43 est31 but lemme check again
00:44 hmmmm oh that's another thing
00:44 hmmmm it's "at least 2 seconds after the next environment step"
00:44 hmmmm so if you're using a lua mapgen and serverthread is blocked on generation, it'll take longer than 2s
00:44 hmmmm this is literally unavoidable
00:44 est31 no prob with that I tried with mgv6 vanilla mtgame
00:45 est31 no mods active
00:45 est31 hmm seems to work now
00:45 est31 nvm then
00:46 est31 heisenbug
00:46 est31 :)
00:46 hmmmm it's simple
00:46 hmmmm I chose literally the simplest way to demonstrate the correct usage of this callback mechanism to do something useful the players might want
00:47 hmmmm of course it's not perfect though because of the mentioned locking issues
00:48 est31 ok
00:48 est31 well that cant really be avoided
00:48 est31 not unless you fix the locking stuff
00:48 est31 which that pr wasnt about
00:49 est31 and its useful already now
00:49 hmmmm you can't fix the locking stuff without having separate lua environments
00:49 hmmmm we'll eventually have to do that
00:49 hmmmm i still haven't decided if i want to use lua lanes or the serialization library we have for the main menu
00:51 est31 pipe it through python
00:53 sloantothebone joined #minetest-dev
01:00 sloantothebone joined #minetest-dev
01:17 hmmmm oh uh oh i really understand what happened now
01:18 hmmmm i had two instances of kwrite open on lua_api.txt at the same time
01:18 hmmmm i edited one and then i mistook it for the other and when i updated the old version to have optional params it overwrote my edited sentence
01:19 JohnnyComeL8ly That's too bad... at least you caught the mistake.
01:34 Supertan1er2 joined #minetest-dev
02:05 JohnnyComeL8ly joined #minetest-dev
02:12 cheapie joined #minetest-dev
02:13 Supertanker2 joined #minetest-dev
02:23 paramat left #minetest-dev
02:25 JohnnyComeL8ly joined #minetest-dev
02:41 gregorycu joined #minetest-dev
02:42 gregorycu What's happening nigs
02:53 gregorycu So, I've been thinking
02:54 gregorycu The ways settings are shared across threads has always offended me
02:55 gregorycu The fact there is locking to read a setting, is pretty bad
02:55 gregorycu Especially because it seems that the server component and the client component share the same settings map
02:56 JohnnyComeL8ly Offended you?
02:56 gregorycu Yes, as a professional
02:57 JohnnyComeL8ly Well, it doesn't sound too professional to say that.
02:57 gregorycu I couldn't care less what sounds professional
02:58 gregorycu Anyway, back on track, I think I'll do some work to remove the contention with the settings
03:17 JohnnyComeL8ly joined #minetest-dev
03:18 hmmmm [09:55 PM] <gregorycu> The fact there is locking to read a setting, is pretty bad
03:19 hmmmm there is a lot of contention in g_settings on singleplayer
03:19 gregorycu Yeah, I figured as much
03:19 hmmmm because of the way it's shared between both client and server and both loops hit hard on it
03:19 hmmmm est has a PR to speed up Settings that we just didn't get around to merging
03:20 hmmmm you don't need to worry, it's getting worked on
03:20 gregorycu There are other ways to share data, apart from locks, segmentation is one way, we can segment between client/server, or segment per thread
03:20 gregorycu Oh, ok
03:20 hmmmm thread local settings
03:20 hmmmm heh
03:20 hmmmm TLS
03:20 gregorycu It works, in practice :)
03:21 JohnnyComeL8ly TLS security is in the works too? (Or wrong TLS?)
03:21 hmmmm I'm honestly not too sure which settings are set in threads other than where they're used
03:21 hmmmm TLS is completely unnecessary
03:21 gregorycu In that case, yeah, it would be
03:21 gregorycu Obviously, we want proper segmentation between server and client in any case
03:21 Hijiri which channel does modding discussion/questions go?
03:21 hmmmm minetest already has a key exchange by virtue of authenticating with SRP, all that needs to be done is a cipher for encryption over UDP
03:21 JohnnyComeL8ly #minetest
03:22 Hijiri alright, thanks
03:22 gregorycu Well, guess I'll go back to optimizing lighting :)
03:22 JohnnyComeL8ly np
03:26 gregorycu Where does infostream go?
03:49 hmmmm ?
03:53 gregorycu Couln't make it log to file, just changed the level to warn
04:00 paramat joined #minetest-dev
04:03 hmmmm check out debug_log_level
04:14 paramat gregorycu good to see you around, i remember you worked on the liquid flow code, i'm keen to see this fixed if you are ever inspired to work on it #2977 hmmmmm suggests a new method in the thread. it would be good to have tidy columns of water falling from floatlands
04:15 gregorycu Let me take a look
04:16 gregorycu Is kwolekr == hmmmm ?
04:17 paramat yes
04:19 gregorycu What's the problem? Distill it down for me. When there are floatlands, water doesn't go through unloaded blocks?
04:19 gregorycu Unloaded chunks?
04:20 paramat it hits ignore in an ungenerated mapblock and then stops and and spreads outwards horizontally
04:21 paramat (-and)
04:21 gregorycu Urgh
04:21 gregorycu What should it do? Stop spreading right?
04:22 paramat a column of water should just stop, not spread outwards, then when the block gets generated/loaded whatever it should continue down as a column
04:23 gregorycu Or spread out horizonally if that block is land
04:23 paramat yeah
04:23 paramat might be a difficult one to solve it seems
04:23 gregorycu mm.... maybe
04:24 gregorycu Lol, it's been so long, how do I give myself a bucket?
04:26 paramat creative mode or /giveme bucket:bucket_water
04:27 gregorycu Thanks
04:31 gregorycu Ok, yeah, I understand the approach
04:32 gregorycu Gotta figure out a way to test this
04:33 gregorycu Fuck me single player is slow
04:33 paramat erm i have some floatland mods i'll find you one..
04:34 gregorycu I need to toggle and untoggle chunk loading
04:36 paramat hm
04:37 gregorycu I'll add a command to unload/load pointed to block
04:37 gregorycu (blockchunk)
04:37 gregorycu lol, actually, how the fuck would loading work
04:38 paramat didn't 'disable camera update' do that (f4?) but it may have been removed
04:40 paramat 'keymap_toggle_update_camera = ' it's there but no key assigned
04:41 hmmmm gregorycu:  There is the /emergeblocks command to load a block
04:41 gregorycu In debug, it's f4
04:41 hmmmm there is no command to unload a block though
04:41 gregorycu Maybe I should add one
04:41 hmmmm that would technically require a complete overhaul of the way blocks are retrieved by the client
04:42 gregorycu urgh
04:42 gregorycu Maybe I won't add one
04:43 gregorycu I'll look at this in 30 min, I should get my perf improvement submitted
04:46 hmmmm hmmm
04:47 gregorycu gregorycu
04:48 hmmmm let's see what's on my todo list..
04:49 hmmmm mostly annoying things like switch all the ore/decoration gen stuff to PcgRandom
04:49 hmmmm and move log level conversions to log.cpp
04:50 hmmmm i was supposed to resume client side modding after that but celeron took it over (phew, that's a load off my chest)
04:50 hmmmm hmmm
04:50 hmmmm I'll do the water thing I guess, or do you want to?
04:51 gregorycu Go for it
04:51 gregorycu I made it fast, you can make it work
04:52 hmmmm ultimately, i'd want water and lighting computations would have their own threads
04:52 hmmmm that's a bit further off into the future though :/
04:52 hmmmm need to do a lotta other stuff before then
05:07 gregorycu So, looks like I made spreadLight 3.5x faster
05:09 hmmmm cool stuff
05:09 hmmmm how's that?
05:10 gregorycu Inside spreadLight it would assemble a set::set iteratively
05:10 gregorycu It only added to the set, and at the end of the function, it would recursively call spreadLight
05:11 gregorycu Anyway, if you replace the std::set with a std::vector+sort+unique you get better perf
05:12 gregorycu std::set is great if you need uniqueness guaranteed at all times, but sometimes less optimal if you don't mind duplicates temporarily
05:12 Miner_48er joined #minetest-dev
05:14 gregorycu Not claiming 3.5x improvement on all arch, would be good if someone could test on linux (I'm on win x64)
05:15 gregorycu Maybe it's only 2.5x, my maths is a little wonky I think
05:16 paramat nice
05:22 hmmmm gregorycu:  do you mind writing a unit test to compare exact results of spreadLight()?
05:22 hmmmm just to make sure there are no regressions here
05:22 gregorycu How does one write a speed unit test?
05:22 gregorycu or do you mean correctness?
05:22 hmmmm dunno, not particularly concerned about speed though.
05:23 hmmmm looking for correctness.
05:24 gregorycu That's a pretty big task
05:24 hmmmm need to make sure "optimizations" don't break things
05:26 gregorycu Well, in answering your question, I would mind
05:26 gregorycu (No offense intended)
05:33 deltib joined #minetest-dev
05:37 hmmmm people need to get into the habit of writing unit tests
05:38 hmmmm as a developer, I want assurance that an optimization of some feature will not modify the output of said feature to something unexpected
05:38 sofar that kind of discipline is really hard to teach new programmers
05:39 sofar and tools are more of a barrier than help, often
05:39 gregorycu I am in the habit of writing unit tests, just not going to do it for this change
05:39 hmmmm well okay then :/
05:40 gregorycu I'd have to understand exactly how the Map class works
05:40 gregorycu Because there are heaps of methods, and no clear SoC
05:41 hmmmm fair enough =D
05:41 hmmmm somebody's gotta fix all this stuff at some point though
05:42 gregorycu Yeah, would be nice if the light spreading engine wasn't part of map for instance
05:42 hmmmm minetest is so close to going bankrupt, it's in such TD
05:42 gregorycu lol
05:42 hmmmm but no, the users want features
05:42 gregorycu My sole job in RL is to wind back the technical debt
05:43 hmmmm the pull request section never dips below 90
05:43 hmmmm would-be contributors keep piling them on
05:43 hmmmm then get angry when they sit for too long
05:44 hmmmm my past 5 or 6 commits have been, "Fix thing"
05:44 hmmmm speaking of which, it doesn't look like est fixed the getTimeOfDay mutex
05:53 gregorycu What should i do?
05:55 hmmmm whatever you feel like :-)
05:57 gregorycu What would benefit MT the most?
05:57 gregorycu And don't say unit tests
05:58 hmmmm trashing the whole thing and starting from scratch
05:58 hmmmm i don't know, do i look like a business analyst to you?
05:59 hmmmm do you play minetest?
05:59 gregorycu No
05:59 hmmmm well then why work on it
05:59 gregorycu For funsies
05:59 hmmmm if you spent enough time in the code the problems would be immediately obvious
05:59 gregorycu I mean, to spend quality time with you folk
06:00 hmmmm and it'd drive you insane
06:00 gregorycu When I go to play singleplayer, it's slow as shit
06:00 hmmmm "slow" how
06:00 hmmmm FPS?
06:00 gregorycu Jerky, FPS is poor
06:00 hmmmm ya
06:00 gregorycu I'm putting that down to the shared settings
06:00 hmmmm it's not
06:00 hmmmm the FPS problems are mostly due to crappy rendering code
06:01 hmmmm things are not getting occluded that should be for example
06:02 hmmmm also the frustrum culling got F'd up the last time somebody touched it btw
06:02 gregorycu isBlockInSight is broken?
06:02 hmmmm I think so yea
06:02 hmmmm it's all broken
06:02 hmmmm god dammit
06:02 gregorycu lol
06:04 hmmmm https://github.com/kwolekr/minetest/commit/6ba4f3775e9b2a5bacb2537c058728a67222b67d  PTAL
06:06 paramat ah the warning during compiling, nice
06:10 gregorycu I'll take a look at isBlockInSight
06:11 hmmmm paramat what compiler do you use
06:12 hmmmm you know what I'm going to make a pull request for this commit just in case
06:13 paramat erm i'm not sure how to find out
06:13 hmmmm cc --version
06:13 hmmmm lol -.-
06:15 paramat cmake version 2.8.12.2 ?
06:16 hmmmm on second thought nevermind
06:18 paramat ok :]
06:20 gregorycu haha wtf
06:21 gregorycu You're funny paramat. I like you.
06:21 gregorycu hmmmm: With regards to isBlockInSight, it doesn't appear to be horribly broken
06:21 hmmmm it's subtly broken though
06:21 gregorycu Does look a little wrong in places though
06:21 gregorycu Yeah
06:22 hmmmm so things look great at ground level
06:22 hmmmm fly up 100 nodes, turn full view range on, look down at the ground
06:22 hmmmm fly up 100 more, then look down again
06:22 gregorycu how does one fly?
06:22 hmmmm hmm I don't know
06:23 hmmmm i changed the keybinding from the default, but I press "F"
06:23 paramat '/grant singleplayer all' turn on fly with 'k'
06:23 hmmmm yep KEY_KEY_K
06:25 gregorycu Well, it seems to show less than it should
06:25 hmmmm there was some "optimization"
06:25 hmmmm it worked fine before, now it doesn't work fine...
06:26 gregorycu Sounds like something I'd do, but worse
06:27 hmmmm actually nvm it wasn't an optimization, it was a fix:  https://github.com/minetest/minetest/commit/1369503aba1ae0c64e6c25b32cc5552bbdead8fb
06:28 hmmmm / WTF is this? It can't be right
06:30 paramat ah the way blocks disappear at screen corners, something to do with fov?
06:31 gregorycu Yeah
06:31 gregorycu Surely we are second-guessing opengl here
06:33 gregorycu Can't we just ask it if a point will be inside the frustum
06:34 paramat i use a 16:9 ratio game screen and get this problem a lot
06:34 hmmmm gregorycu:  the problem is that code needs to run on the server too
06:34 gregorycu oh
06:35 hmmmm the client just so happens to use isBlockInSight() as well for its own frustrum culling
06:35 hmmmm when it goes to render the map in ClientMap::renderMap()
06:35 gregorycu Seems a bit wrong though
06:35 hmmmm also the occlusion culling in renderMap() is totally fucked
06:35 gregorycu How does the server use isBlockInSight
06:35 hmmmm you can look straight at a wall and it'll still render blocks in back
06:36 hmmmm it uses it to determine which blocks to send to the client
06:36 gregorycu Maybe the client could pull?
06:36 hmmmm the client doesn't request which blocks it wants from the server, the server keeps track of where the client's position and rotation and sends it the blocks it determines the client needs
06:36 hmmmm well
06:37 hmmmm it's been attempted before
06:37 hmmmm it doesn't really help anything except make things laggier
06:37 hmmmm it's the "client request blocks" branch
06:38 gregorycu ok
06:38 gregorycu In any case, surely the server needs to load blocks more aggressively than the client
06:38 gregorycu Or rather, send more aggressively
06:39 gregorycu If I'm a client and I do a 180 turn, won't it take a while for the server to send me the blocks?
06:39 hmmmm yea it does
06:39 hmmmm that's the dumb part
06:39 hmmmm blocks in the client's view frustrum should probably be prioritized, but blocks in back of the player still ought to get loaded as well
06:40 hmmmm you can notice this especially if you fall off a cliff and look straight up
06:40 hmmmm you'll keep stopping because none of the blocks below you are getting sent until you're right on top of them
06:40 gregorycu Well, I'm thinking that all blocks within a certain radius of the client should be sent, and the client can request other blocks
06:41 hmmmm yea I wanted to do that for a while
06:41 hmmmm but i never had the guts to make such a huge change
06:41 hmmmm well putting things into perspective it really isn't
06:42 gregorycu Maybe a good first step is to split it so the server and client uses two different functions
06:42 gregorycu Then change the server to be more aggressive in sending
06:43 gregorycu Means drawing can be optimal at the very least
06:45 gregorycu I know duplicated code is bad, but I think these are two concepts which _happen_ to have the same implementation at the moment
06:51 HighTechGamer_ joined #minetest-dev
06:54 Hunterz joined #minetest-dev
06:55 paramat left #minetest-dev
07:28 gregorycu lol, this code works well... Just... "don't look down"
07:35 celeron55 i like sapier's stance on the "rewriting minetest from scratch" thing
07:36 celeron55 that is, it still isn't wise because we don't have solutions to many of the problems we have, and we wouldn't have then either
07:37 celeron55 that and the fact that minetest has an enormous amounts of features that you don't even realize are there until you start rewriting it and realize how much work there is
07:39 celeron55 we don't exactly have code around that isn't doing anything, and that can be said of over 100k lines of code
07:41 gregorycu I think he was only half-joking
07:42 celeron55 i don't think hmmmm is ever going to start rewriting minetest but it still is a thing that many people have mind so i might as well state these things once in a while
07:42 celeron55 have in mind*
07:42 hmmmm (:
07:42 hmmmm I'm just kidding
07:43 hmmmm but sometimes it really is worth it to nuke something from orbit and re-code it from scratch
07:43 hmmmm at work I inherited this scrappy russian coded bug-filled network driver that bluescreens if you sneeze around it
07:44 celeron55 MT would be there if we had a lot of time for this, but we don't, so the smartest thing to do is just to stick with it
07:44 hmmmm the whole thing was written from the ground up with sloppy, horrible coding practices, tons of copy pasted code, overcomplicated mechanisms, and a total disrespect for testability
07:45 est31 joined #minetest-dev
07:45 gregorycu Yeah, whoever started this project should be ashamed of themselves
07:45 est31 wtf
07:45 gregorycu Oh, hi est31
07:46 hmmmm [02:45 AM] <est31> wtf
07:46 hmmmm ^ minetest in a nutshell
07:46 gregorycu hmmmm was just brutally bagging the creator of minetest, whoever that was
07:46 est31 hah
07:47 hmmmm FWIW celeron tried to rewrite minetest
07:47 hmmmm it's called "buildat"
07:47 celeron55 and it's not a rewrite
07:47 est31 thats no rewrite
07:47 gregorycu it's not a rewrite
07:47 est31 lol
07:47 hmmmm BS you can't convince me otherwise
07:48 nrzkt joined #minetest-dev
07:48 celeron55 you can kind of compare it in terms of amount of work, but its issues come mainly from the fact that it tries to be quite different
07:48 hmmmm but it's the way minetest would have been written if you had traveled back in time
07:48 celeron55 i would have gotten it into a usable state in the time i used if it was a rewrite of minetest
07:49 hmmmm or i mean if you had knowledge of the future
07:49 celeron55 but very bare-bones
07:49 hmmmm build dat shit, yo
07:49 celeron55 well maybe, or maybe not; let's say it's one of the ways i might have chosen to write minetest if i knew the future
07:50 hmmmm ok it's time to start drinking beers
07:50 hmmmm once i hit ballmer's peak it'll be time to start coding
07:53 gregorycu How does one go from aabbox3d<s32> to aabbox3d<f32>
07:53 hmmmm i'm pretty sure there's no constructor to do that conversion for you
07:53 gregorycu Yeah, that's fucking annoying
07:55 gregorycu irrlich is being a dick
07:56 hmmmm btw your nemesis Zeno` was last working on an irrlicht abstraction layer and replacing it with Ogre3d
07:56 gregorycu A noble cause, there is hope for him yet
07:57 hmmmm he disappeared about a month or two after you disappeared
07:57 hmmmm and then just 2 or 3 days ago he left a comment on a PR
07:57 gregorycu Yeah, sorry for disappearing
07:58 hmmmm it's ok I used to disappear for a while
07:58 nrzkt IRL > MT :D
07:58 est31 hmmmm, PTAL https://github.com/est31/minetest/commit/12fd36af2de845daa1364b0542914841d22372a7
07:58 est31 and nrz :)
07:58 hmmmm thank you
07:58 hmmmm that wasn't so hard, was it?
07:58 nrzkt est31, why not use fucking atomics ?
07:59 nrzkt those variables could be atomic :)
07:59 est31 nrzkt, because its doing too complex operations on the variables in order to be atomic
07:59 nrzkt lol
07:59 hmmmm oh gregorycu I have the perfect thing for you to do
07:59 est31 nrzkt, really
07:59 hmmmm add MSVC intrinsics for Atomic
07:59 est31 look at the stepTimeOfDay method
07:59 gregorycu lol
07:59 gregorycu std::atomic bro
07:59 hmmmm we don't have C++11 until Debian stops being a snail
08:00 est31 you can't run two instances of that method simultaneously with atomics
08:00 gregorycu I think we can, does anyone even use Debian?
08:00 celeron55 debian already supports C++11
08:00 est31 and until PilzAdam installs newer linux
08:00 hmmmm gregorycu:  there is an abstraction layer for C++11 atomics anyway
08:00 est31 he has 12.04 LTS
08:01 celeron55 the only reason we wouldn't use C++11 is because old versions of MSVC don't support it and people insist on using them
08:01 gregorycu I'll do this fustrum shit first
08:01 celeron55 and the fact that BSDs don't have recent compilers installed by default
08:01 nrzkt est31, maybe rewriting stepTimeOfDay to be atomic compliant is better ? :)
08:01 gregorycu My visual studio doesn't have full C++11 support
08:01 nrzkt celeron55 not a problem
08:01 hmmmm btw celeron I updated to FreeBSD 10
08:01 celeron55 and the fact that some people here use some incredibly old enterprise distributions on servers that don't support C++11
08:01 nrzkt clang 3.4 is pretty well
08:01 hmmmm it's just 9.x that has that problem
08:01 hmmmm 9.x is -STABLE right now
08:01 celeron55 none of those should be concerns to us, franly
08:01 celeron55 frankly*
08:02 hmmmm CentOS?
08:02 nrzkt look at std::put_time in c++11; supported by clang 3.4 and not by GCC 5.0...
08:02 nrzkt RHEL7 is okay
08:02 hmmmm using really outdated packages != stable
08:02 celeron55 oh, well, also, one reason is that nothing supports full C++11 yet, and we have to define a subset if we use it
08:02 celeron55 quite a large subset, but a subset anyway
08:02 hmmmm well
08:03 gregorycu As it turns out, the most important features are the ones that everyone supports
08:03 hmmmm yeah
08:03 hmmmm we can remove a lot of platform specific threading code
08:03 hmmmm and we have move constructors
08:03 hmmmm and foreach loops
08:03 hmmmm and...
08:04 est31 unordered map
08:04 hmmmm that's really good^
08:04 hmmmm lol speaking of foreach loops I randomly looked at freeminer the other day and proller made one of those "fix" commits
08:04 hmmmm for (auto o : <container here>) {
08:04 nrzkt unordered_map give ~15% perf on some maps like the node resolver, tested on my forked, and set in production now :)
08:05 hmmmm not a reference to o, he did an actual copy
08:05 hmmmm inserting subtle bugs
08:05 hmmmm lolol
08:05 nrzkt hmmmm, proller is not a reference sometimes :)
08:05 hmmmm man
08:05 hmmmm freeminer is the perfect example of what not to do with minetest
08:06 nrzkt maybe, i haven't looked their code very much, i have my own
08:06 hmmmm i am glad it exists
08:06 nrzkt also: std::mutex is not as fast as in UNIX on Windows
08:07 est31 one fork better than no fork
08:07 gregorycu Zeno wouldn't like switching to C++11
08:07 est31 two forks better than one fork
08:09 hmmmm fork muh dongles
08:10 nrzkt it's for my experimentations in production mode :)
08:10 nrzkt MT is also an interesting study case , but i could not propose every change as a PR :p
08:12 nrzkt for example my tests on the libapr integration on MT could not be proposed as a PR /p
08:12 hmmmm never heard of libapr
08:13 hmmmm there must be 5000 different kinds of these exact libraries out there already
08:13 jin_xi joined #minetest-dev
08:14 nrzkt libapr is the threading,mutex,socket lib used by apache & tomcat
08:14 nrzkt :p
08:14 nrzkt i think you heard
08:14 est31 isnt tomcat java?
08:14 hmmmm they start out as a small and focused collection of platform specific code bits, sort of like our util directory
08:14 est31 and for java the JRE provides that stuff
08:14 hmmmm and then some devs get this bright idea - "what if we were to make this util directory into our own toolkit!  people would love to use our toolkit library, apache style ;)"
08:15 celeron55 apache's libraries are pretty competent though
08:15 nrzkt celeron55, yes
08:15 hmmmm this toolkit library exists for every large project
08:16 hmmmm and they all have roughly the same amount of content and they're all really good
08:16 hmmmm it's just that programmers are like crack addicts
08:16 celeron55 they make sense for large server applications because you want to get as much speed as possible with disregard to portability and how difficult the thing is to compile
08:16 est31 there is no way I can have READ AND SET access to an atomic variable?
08:16 hmmmm they love coding shit like this because it's so satisfying
08:16 hmmmm but ultimately useless imho
08:16 gregorycu Reason: cannot convert from  'irr::core::vector3d<irr::s16>' to 'const irr::core::line3d<irr::s16>'
08:17 gregorycu Great
08:17 nrzkt apache runtime library has a long long time experience, and i would try to experiment their approch :) i looks similar to pthread for threading and same for mutex but they give one thing: i don't care about portability, they already done a very good multiplatform code for me :p
08:17 celeron55 hmmmm: apache would be doing those libraries internally anyway, so they just publish them with almost zero extra effort
08:17 celeron55 that's really what is going on
08:18 hmmmm somebody out there polished it up into a proper library
08:18 hmmmm they must've been sooo proud of themselves too
08:18 celeron55 do you realize apache has quite a lot of projects that they use these base libraries for?
08:18 nrzkt est31: yes tomcat is java but you can remplace some JAVA connectors like BIO to NIO and better libAPR, then your tomcat can handle massive connections. It's why we have tested and designed our tomcat for industry in production at work
08:18 celeron55 those are not some one-off things
08:19 celeron55 i'm not saying any of apache's things suit minetest though
08:20 nrzkt celeron55, i didn't say it, but i said libapr is a very good library which has some age and which has been improved over time and which is now on 80% world wide web servers :p
08:23 est31 I mean e.g. you have a variable flt, and its a float
08:23 est31 then you want to get its value, and set it to 0 the same time
08:23 est31 so that when another thread does that operation, it gets either 0, or the value if its faster
08:24 est31 but no way your thread and the other thread both believe they have got the content of flt
08:24 celeron55 there's no instruction for doing that atomically in x86
08:24 gregorycu huh?
08:24 est31 I need that to adjust integer conversion skew
08:25 est31 thats why the environment has m_time_counter
08:25 gregorycu Compare and swap?
08:25 gregorycu What am I missing
08:25 celeron55 ...or is there
08:25 est31 Compare and swap would work but I'd need a while loop for it
08:25 celeron55 does that work for floats? if it does and exist on other platforms too, then it should be possible 8)
08:25 gregorycu cas loop
08:26 gregorycu It's a thing
08:26 est31 and we have no cas just yet
08:26 est31 our atomic abstraction layer just simply doesnt have it
08:27 celeron55 it's not exactly hard to add it there
08:28 celeron55 they are just wrappers to GCC builtin functions
08:33 est31 man I really dont want to mess with that code
08:34 est31 I could, but in two weeks SN will come along and think my implementation is "too complicated"
08:34 est31 and will propose a "cleanup"
08:34 gregorycu Are you a scaredy cat?
08:34 est31 which will replace my code with a hacked together improper implementation
08:34 hmmmm "AreaStore, fixed!  ShadowNinja style ;-)!"
08:35 celeron55 i wouldn't be afraid of ShadowNinja
08:35 hmmmm "Logging, cleaned up!"
08:35 est31 "don't care about clock skew anding with 0 is ugly"
08:35 hmmmm "Threading, cleaned up!"
08:35 est31 it IS ugly but thats the best way to do it in my eyes
08:36 hmmmm "I added 3x as many preprocessor if statements."
08:36 hmmmm "I also underscored all of the variables."
08:36 hmmmm "It is much better this way."
08:36 celeron55 we should be more afraid of hmmmm than ShadowNinja now that hmmmm decided that quality is everything that matters 8)
08:38 * est31 afraid of nobody, not even the enderman, whoever the enderman is. I know the enderman isnt real!
08:38 est31 gotta go bbiab
08:56 celeron55 hmm
08:56 celeron55 this is kind of hard to design
08:56 celeron55 i need to decide where the distant map rendering data and functionality will go
08:57 celeron55 well i guess it can just live inside Client like pretty much absolutely everything else
08:59 gregorycu What is distant map rendering data?
09:28 Megaf joined #minetest-dev
10:06 est31 joined #minetest-dev
10:07 gregorycu Hooray \o/ he is back
10:07 est31 okay eliminated all issues, except one.
10:09 Puka joined #minetest-dev
10:09 est31 celeron55, I'd think the server should do it, just like the lighting. It has the map.
10:13 est31 otherwise the client has to download the whole map in raw form
10:13 est31 including all the stuff it doesn't need like the metadata
10:14 est31 (metadata arent needed for drawing objects far away, right??)
10:14 est31 the server can probably do it like with lighting, and update the "far away info" like the lighting, when the map changes
10:14 est31 would be how I'd do it
10:15 est31 lol I said "like with lighting" too often
10:20 gregorycu You really love lighting
10:22 est31 light is the sun of my life.
10:23 gregorycu I have no idea what I'm doing
10:23 gregorycu Frustum culling
10:24 nrzkt joined #minetest-dev
10:26 est31 nrzkt, https://github.com/est31/minetest/commit/ef0a9b18607fc062f4310124a8b877231754c932
10:26 est31 but doesnt compile yet
10:26 est31 I'm the first to use Atomic, so I have to sort out the compilation bugs caused by it first lol
10:28 est31 so there is no real way around that race condition that commit adds
10:28 est31 other than back to locks
10:28 est31 or making the code that is under lock smaller
10:29 est31 ermm
10:29 est31 disregard that <est31> or making the code that is under lock smaller
10:30 est31 what I wanted to say is "You can add locks here and their scope will be smaller than before, and they will be needed for less methods, but you still will need locks"
10:30 rubenwardy joined #minetest-dev
10:31 nrzkt courage !
10:32 turtleman_ joined #minetest-dev
10:47 Fixer joined #minetest-dev
11:00 est31 joined #minetest-dev
11:02 Darcidride joined #minetest-dev
11:23 est31 oh great, no atomic floats
11:23 est31 well, then we can forget it.
11:35 celeron55 est31: are you implying that the client can magically render the stuff without any code added to the client just if the server knows about the things?
11:35 est31 no
11:35 celeron55 i think you are kind of missing the point of what i'm doing 8)
11:35 est31 what do you want to do
11:35 celeron55 i want to add the code so that the client can render the things
11:36 celeron55 but don't worry, i'm already on my way
11:36 est31 but I wonder how it would work if the client requests blocks from the server and no further changes to the protocl
11:36 est31 protocol*
11:37 celeron55 i'm adding stuff to the protocol too
11:37 est31 what you add?
11:39 celeron55 well, it's probably going to be a message using which the client asks stuff from the server and a message where the server puts the answer
11:39 celeron55 this is not exactly rocket science to be honest
11:39 est31 and the answer will b in mapblocks?
11:39 est31 be*
11:40 rubenwardy Is this for a farmesh like system?
11:40 celeron55 in larger subdivisions of mapblocks than nodes, i'm thinking
11:40 rubenwardy Level of detail would be awesome
11:40 est31 how does the client know there is something, and not air for 2k?
11:40 celeron55 why are you asking so much
11:40 celeron55 it's like you wanted to do this instead
11:41 est31 no, do it, I shut up.
11:46 est31 your project, not mine.
11:48 ItalianCoder joined #minetest-dev
11:49 ItalianCoder left #minetest-dev
11:50 Calinou joined #minetest-dev
12:36 Puma_rc joined #minetest-dev
13:08 DFeniks joined #minetest-dev
13:18 PilzAdam joined #minetest-dev
13:22 leat joined #minetest-dev
13:43 Puma_rc left #minetest-dev
14:19 kaeza joined #minetest-dev
14:33 est31 joined #minetest-dev
14:33 est31 can sb review #3334
14:33 est31 https://github.com/minetest/minetest/pull/3334
14:33 * VanessaE pokes ShadowBot
14:34 est31 ShadowBot gone ShadowNinja gone why is all the shadow gone
14:34 ShadowBot est31: Error: You must be registered to use this command. If you are already registered, you must either identify (using the identify command) or add a hostmask matching your current hostmask (using the "hostmask add" command).
14:36 nrzkt ShadowBot, did you love est31 ?
14:37 VanessaE yesterday's network outage pissed her off :)
14:38 nrzkt her ?
14:38 nrzkt ShadowNinja is a woman ? :)
14:38 est31 no female bot
14:39 nrzkt oh, ShadowBot is a woman :p
14:39 nrzkt ShadowBot did you like Justin Bieber ?
14:39 nrzkt ShadowBot, doesn't like me :p
14:39 nrzkt est31, seems okay for me
14:39 VanessaE all bots are female, apparently.
14:40 est31 pushing then
14:43 nrzkt VanessaE, are you a bot ? :p
14:44 VanessaE nope
14:49 zat joined #minetest-dev
14:52 Darcidride_ joined #minetest-dev
14:56 kahrl est31: I looked through the ncurses PR code a bit a didn't notice any more problems
14:56 kahrl est31: except perhaps it would be more performant to use addstr instead of printw in a few places
14:57 kahrl also perhaps addwstr to write wide strings directly instead of doing wide_to_utf8 first
14:58 kahrl but that might have bad side effects
15:15 Hunterz joined #minetest-dev
15:19 est31 yea, better we use addstr
15:21 Player2 joined #minetest-dev
15:23 JohnnyComeL8ly joined #minetest-dev
15:23 est31 do you +1 ?
15:28 est31 okay kahrl changed the printw to addstr
15:28 kahrl yes, although I think BlockMen (or someone else) should try building on windows again before it is merged
15:29 kahrl since the whole curses detection in cmake was changed
15:29 CraigyDavi joined #minetest-dev
15:29 est31 ok
15:30 ADFENO joined #minetest-dev
15:30 celeron55 lol
15:30 celeron55 the scene node id of ClientMap is statically set to 666
15:31 ADFENO Hi- .... :O
15:31 celeron55 this is clearly some of the first ever lines of code in minetest
15:34 ADFENO Well... Hi, does the development wiki has a translation templete or a special page one can use to create translations for other pages? Or does the wiki recognizes subpages with ISO language codes and inserts links to these subpages in the beginning of the parent page when such translation exists?
15:37 ADFENO I'm asking because I'm planning to translate some of the development wiki text on my free time every Tuesday. :D
15:41 ADFENO Hm.... I guess I'll have to create subpages for the time being.
15:44 celeron55 umm
15:44 celeron55 don't mess up it too much
15:44 celeron55 is there a difference between wiki.minetest.net and dev.minetest.net?
15:46 ADFENO I don't know since I don't visit wiki.minetest.net. I usually visit dev.minetest.net because a lot of mates of mine are into modding, although their mods are written in Brazillian Portuguese.
15:47 est31 dev. is both about coredev and moddev
15:47 est31 I guess coredev needs no translation, but moddev, why not.
15:48 _occl_cul_per_bl joined #minetest-dev
15:48 ADFENO That's my first thought. :D
15:49 celeron55 let me investigate this a bit
15:53 celeron55 i wonder who actually knows how to set up the multilanguage stuff in mediawiki
15:53 ADFENO At first I was going to contribute to "the Brazilian Minetest community" (as one of my mates from there says) but then I thought: "Perhaps it's better to contribute to the Minetest communnity directly".
15:53 celeron55 for some reason wiki.minetest.net has it but dev.minetest.net does not, and i can't find a difference in configuration regarding to that
15:55 celeron55 Calinou?
15:55 celeron55 ShadowNinja?
15:55 ADFENO Perhaps we must investigate more on the languages tag "{{languages}}". :D
15:55 celeron55 pls help
15:55 celeron55 i tried adding that tag but it does nothing
15:55 celeron55 on this page http://dev.minetest.net/Modding_FAQ
15:57 celeron55 bleh
15:57 celeron55 well i am stuck until somebody who actually understands mediawiki comes up
15:57 hmmmm joined #minetest-dev
15:57 kahrl I think you have to create http://dev.minetest.net/Template:Languages
15:57 celeron55 and then it magically works? why would it
15:58 celeron55 well i guess i'll copy it from wiki.minetest.net
15:58 kahrl well yeah, use the source from http://wiki.minetest.net/index.php?title=Template:Languages&amp;action=edit
15:59 kahrl it uses a couple other templates too, looks like
16:00 ADFENO A-ha!....
16:00 ADFENO It REALLY seems that you have to create the template. :D
16:01 ADFENO But that's OK... Now we have something to play with. :D
16:03 celeron55 okay looks like i added things for german as a test
16:03 celeron55 you need to make a version of this for your language http://dev.minetest.net/Template:Languages/de
16:03 ADFENO Oh right. :D
16:04 celeron55 then you can just add the stuff and create new pages in that language exactly like in wiki.minetest.net
16:05 celeron55 like this http://dev.minetest.net/Modding_FAQ/de
16:07 celeron55 looks like Calinou set up this system on wiki.minetest.net early this year
16:08 celeron55 i added {{Languages}} on the protected main page
16:08 ADFENO Hm... Just a minor bug (don't worry, I won't pick on anyone for this, :D) when viewing the English page, the templete equivalent to "Language" seems to be creating a link to some non-existing page. However, the equivalent on the German test page, is right as it displays "Sprache" (I don't speak German, but it seems to be "Language", and besides, the bug disappears there). :D
16:08 celeron55 i think i fixed that already
16:09 ADFENO Oh... He's quick :D
16:09 ADFENO Working fine now. :D
16:11 ADFENO Well... Another day, another progress. It was really interesting to help you on this. I'm sorry for not being able to translate a page right now, but my free time is now over. I'll try to be back next Tuesday. :D
16:12 ADFENO Bye.
16:12 ADFENO left #minetest-dev
16:27 nrzkt joined #minetest-dev
17:00 Hunterz joined #minetest-dev
17:03 VargaD_ joined #minetest-dev
17:12 luizrpgluiz joined #minetest-dev
17:14 Krock joined #minetest-dev
17:27 luizrpgluiz left #minetest-dev
17:38 PilzAdam joined #minetest-dev
17:43 proller joined #minetest-dev
17:45 Robert_Zenz joined #minetest-dev
17:47 rubenwardy joined #minetest-dev
18:04 Darcidride joined #minetest-dev
18:22 leat joined #minetest-dev
18:42 est31 joined #minetest-dev
19:13 kahrl Krock: I don't know much about how to customize the cmake gui
19:13 kahrl (I always use it from the command line)
19:14 kahrl one thing that should definitely be done though: https://gist.github.com/kahrl/5fbe9e56fd57778da833
19:15 est31 will apply
19:19 kahrl cmake-gui with advanced settings only shows CURSES_FORM_LIBRARY, CURSES_INCLUDE_PATH and CURSES_NCURSESW_LIBRARY here
19:19 kahrl and ENABLE_CURSES, of course
19:21 Krock kahrl, example: set(CURSES_NCURSESW_LIBRARY "" CACHE PATH "Path to file <xyz.abc> for ncurses library")
19:22 Krock A short description where the path goes to.. like it's done with other libraries. See also README
19:24 kahrl ugh, I hate how cmake has no manpage anymore
19:26 est31 rly? still has it, for me.
19:26 est31 man these guys got an exception
19:26 est31 "August 24, 2015"
19:26 kahrl No manual entry for cmake
19:26 est31 seems they got the new version in after the window closed for 15.10...
19:26 kahrl you have to type something like: cmake --help-manual cmake|less
19:27 est31 wtf
19:27 est31 well still better than GNU info lol
19:27 kahrl heh yeah
19:29 kahrl hrmm, could be a bug with gentoo's ebuild for cmake
19:29 kahrl or it only installs with the doc useflag
19:29 kahrl oh well
19:40 kahrl yeah, looks like it was gentoo. moving on...
19:41 est31 I've thought you've installed arch?
19:43 kahrl yeah but a botnet took that machine over
19:43 est31 lol
19:44 est31 and they installed gentoo right?
19:44 kahrl yep
19:44 est31 yea probably a wise choice.
19:45 kahrl heh
19:45 est31 :)
19:45 est31 well, if you have such an event, there really isn't much fun about it.
19:46 est31 I mean for pokemon you can say "but I want to do it this way" or that way etc
19:46 est31 but with arch there are tons of guides out there how to install
19:47 kahrl well, you have the choice between parted, fdisk, cfdisk, sfdisk, ...
19:47 kahrl sfdisk would have been fun
19:50 kahrl also that tug of war between the noppers and the ctrl-c-ers while it was installing packages was pretty fun
19:50 est31 lol
19:54 JohnnyComeL8ly joined #minetest-dev
20:03 younishd joined #minetest-dev
20:14 kahrl dang there goes Krock :P
20:15 kahrl anyway: est31: here's a few additional DOCs: https://gist.github.com/kahrl/e6c67a01bc45089509ad
20:15 kahrl I don't think I can add DOCs for the variables that are set by FindCurses.cmake, unfortunately
20:19 est31 ncurses commit has 1227 insertions
20:19 est31 why cant it be 110 more :)
20:19 * est31 adds lots of newlines to group code
20:19 est31 lol jk
20:25 est31 I really should take some time to read this http://en.cppreference.com/w/cpp/language/implicit_cast
20:25 est31 but not today
20:25 est31 bye I'm gone
20:33 paramat joined #minetest-dev
20:40 luizrpgluiz joined #minetest-dev
20:42 paramat nore PilzAdam sfan5 any comments on game#718 ?
20:42 paramat https://github.com/minetest/minetest_game/pull/718
20:43 PilzAdam why is snow so close to desserts?
20:43 PilzAdam also, won't this break existing worlds?
20:44 paramat unfortunately that's unavoidable when world is equally split into frozen, temperate and tropical
20:45 paramat remember this map has shrunk biomes
20:45 paramat this is for the biome api only, not mgv6
20:45 paramat so mgv5/v7/fractal/flat
20:46 PilzAdam there are existing worlds with these mapgens, since it's selectable from the GUI
20:46 paramat mgv6 has the same division of snow, temperate and tropical biomes
20:47 paramat yes but the biome api, it's biomes, and mgv5/v7 are all unstable
20:47 PilzAdam there is nothing in the GUI that indicates this
20:48 paramat we could add notes
20:50 PilzAdam I guess the PR is good; the GUI thing was a mistake in the past
20:52 paramat when world area is equally divided into 3 by noise, the extremes of noise tend to form blobs and the mid-values tend to form a web inbetween the blobs, the web appears thin in places of transition between frozen and tropical blobs
20:53 paramat however the thresholds, octaves and persistence are all identical to mgv6 so it's consistent
20:55 paramat reducing persistence to 0.4 might help though, less small-scale variation
20:56 paramat maybe i'll do another map with 0.4 to test
20:57 paramat thanks
21:03 paramat yeah they do get too close together, we may have to use 0.4, i'll test and post a map for consideration
21:17 Miner_48er joined #minetest-dev
21:23 Hunterz left #minetest-dev
21:24 Robert_Zenz joined #minetest-dev
21:34 paramat hmmmm while i remember, we need a way to copy an .mts schematic into the luavoxelmanipulator (without the lighting update). browsing the forums i'm seeing a lot of modders using 'place schematic' during mapgen, sometimes multiple times, which is slow and causes lighting bugs
21:48 paramat left #minetest-dev
22:15 asl97 joined #minetest-dev
23:07 gregorycu joined #minetest-dev
23:08 gregorycu joined #minetest-dev
23:11 gregorycu So, pretty much gave up on the frustum stuff last night
23:12 gregorycu It left me too frustrumurated
23:12 gregorycu See what I did there
23:20 gregorycu_ joined #minetest-dev
23:26 sloantothebone joined #minetest-dev
23:49 Player2 joined #minetest-dev
23:56 asl joined #minetest-dev

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