Time Nick Message 02:38 paramat hmmmm, do you want to add eased 3d noise before mgv5 is merged, in order to get as close as possible to the original? for speed we could use eased for terrain noise only, the cave noises possibly don't need it, the shape of dirt/sand/gravel/lava blobs and the wetness noise cetainly don't. im considering making a pull request soon, but the uneased 3d noise looks noticeably different (not in a bad way, people like it, 02:38 paramat but it's not completely faithfull to the original) 02:38 hmmmm yeah i'd rather wait 02:38 hmmmm eased noise is next on my list btw 02:38 hmmmm i just need to fix this one more bugger 02:39 hmmmm i should be able to get it done tonight hopefully 02:39 paramat okay good 02:54 Zeno` hmmmm, I asked sfan5 to add the WIP tag to #1756 last night (you can check the logs if you wish). Can you now remove it please? 02:54 ShadowBot https://github.com/minetest/minetest/issues/1756 -- Refactor the game by Zeno- 02:55 hmmmm jesus christ 02:55 Zeno` ? 02:55 hmmmm what's with all those commits 02:55 * Zeno` looks around for a cross 02:55 hmmmm did you do a git pull 02:55 Zeno` well, I thought I'd leave them until someone asked me to squash 02:56 Zeno` git pull for...? 02:56 hmmmm oh no 02:56 hmmmm those really are all your own commits 02:56 hmmmm jeez 02:56 Zeno` yeah... 02:56 ShadowNinja Haha. 02:56 hmmmm this is huge 02:57 VanessaE_ better to show his work, eh? 02:57 Zeno` well, that's why I didn't squash 02:57 hmmmm so yes it should be squashed and it needs to be heavily reviewed 02:57 hmmmm there's going to be a lot of review going on before that is finally merged 02:57 Zeno` of course 02:57 ShadowNinja IMO squash related things, but it doesn't have to be one gigant commit. 02:58 Zeno` I've been using it as my client for 2 weeks now and no issues, but of course it needs review 02:58 Zeno` would be silly otherwise 03:00 hmmmm hmm 03:00 ShadowNinja Zeno`: // Why? (Original code did this, but for 25ms) -- It's for computers that don't limit FPS automatically. 03:01 hmmmm okay so the basic premise of your refactor is to break up the_game() into methods of a class with the main local variables of the_game as member variables 03:01 Zeno` no I mean... it's not normally going to execute that line anyway 03:01 hmmmm great stuff 03:01 Zeno` hmmmm, basically reorganise it but it ended up being a class instead of lots of static functions (seemed to make more sense) 03:01 Zeno` ta 03:02 hmmmm should the class delcaration be in game.h instead? hrmm 03:02 hmmmm line 1483, style nag: 03:02 hmmmm if (!sound_is_dummy) delete sound; 03:02 hmmmm if statement bodies never go on the same line 03:02 hmmmm even if they are "trivial" 03:02 Zeno` ShadowNinja, because it calls limitFps() I mean. Well... maybe or maybe not. I'd rather see another smaller class public. Or just the function. There is a lot of stuff in there no other file ever needs to know about 03:03 Zeno` I think I can fix line 1482 03:03 Zeno` 1483 03:03 hmmmm well there are lots of inconsistencies around 03:03 ShadowNinja Zeno`: If it isn't used remove it. :-) 03:03 hmmmm like 1530; why do you surround that if statement with brackets but no the if statement below it? 03:04 hmmmm the style is to not include brackets around control statements if the control statement body is one line 03:05 ShadowNinja Zeno`: Mixing tabs and spaces for alignment or indentation is a definite no-no: https://github.com/minetest/minetest/pull/1756/files#diff-0951ae0a3be68531536ef9707cd40c08R140 03:05 hmmmm struct AppFlags could be turned into a bitfield 03:05 Zeno` hmmm, I will be going through looking for style stuff today or tomorrow. I think I mentioned this to someone else (I wanted to do it last) 03:05 ShadowNinja Zeno`: Tabs for indentation, spaces for alignment, no mixing. 03:05 hmmmm also, why are things like random_input or simple_singleplayer_mode left out? 03:06 Zeno` ShadowNinja, noted 03:06 Zeno` hmmmm, left out? 03:06 hmmmm left out of AppFlags 03:06 Zeno` not needed after init 03:07 Zeno` I need to change the name of that struct but can't come up with a better name yet 03:07 hmmmm it could be turned into an anonymous struct defined inside of MinetestApp 03:08 Zeno` adding a comment (for both of those) 03:08 hmmmm i really like it so far though 03:08 hmmmm well i like organization in general 03:09 Zeno` well, that's the main thing I was after 03:09 Zeno` organisation... the code isn't really different atm, just rearranged kind of 03:09 hmmmm the functional pieces of code are organized though 03:10 hmmmm that helps a lot 03:13 Zeno` Yeah. There are things I still don't /quite/ like but I figured it best to get this tested etc first 03:13 Zeno` e.g. processClientEvents() could probably be cleaner 03:14 Zeno` Some of the FIXME's in there are in the original code. If I didn't understand or couldn't fix I left the comment 03:25 Zeno` Actually maybe random_input and simple_singleplayer_mode should be in that struct you mentioned before 03:26 Zeno` even though they're not used after init... I'll work something out regarding those 03:26 Zeno` actually they are anyway 03:27 * Zeno` makes a note 03:33 hmmmm I wonder if I should drop support for earlier versions of MT schematics 03:33 hmmmm starting with 0.5.0 or something 03:34 hmmmm and modify the current format to be easily parsed by lua 03:34 hmmmm also going to include file offset information so people don't need to parse data structures in the file in order to get to the information they really want 03:35 hmmmm perhaps an identifier field for each 03:35 hmmmm man, schematics are a wreck. i don't know what i was thinking when i did this. 03:36 hmmmm i was thinking with a pre-luavoxelmanip mentality. 03:36 hmmmm if i had to do it again, i'd re-implement schematics in lua. 03:49 Zeno` let's do it again then! 03:49 Zeno` well, not me :( 03:58 hmmmm finalized version: 03:58 hmmmm https://github.com/kwolekr/minetest/commit/d274cbfce6ed39f5b7ad41261ede8c0fad7e980a 03:58 hmmmm looking for some feedback 03:58 hmmmm I did quite a bit of work since the last time I pushed that WIP version 04:02 Zeno` https://github.com/kwolekr/minetest/commit/d274cbfce6ed39f5b7ad41261ede8c0fad7e980a#diff-ee46eda7cb01d5dc22c1fb9c34449b20R103 04:03 Zeno` BI ome :) 04:03 hmmmm oh meh 04:03 hmmmm i'll fix that in a cleanup commit 04:03 Zeno` just sayin' :) Yep 04:03 hmmmm that typo's been in there since god knows when 04:04 hmmmm biome.cpp's getting a bit of an overhaul anyway, in particular that function with the way it helpfully (/s) deletes the biome for the caller 04:05 Zeno` I can't comment much because I am unfamiliar with these parts of the code 04:05 Zeno` But it *looks* nicer 04:07 Zeno` ShadowNinja, https://github.com/Zeno-/minetest/blob/refactor_the_game/src/game.cpp#L1999 I remembered why I added the WHY comment 04:07 paramat the biome API has discontinuities at y=47, i might attempt to fix that 04:07 Zeno` Why is limiting fps different for whether clouds are shown or not? 04:08 Zeno` e.g. I would do it like the main loop (and just limitFps() without the if/else) but I wondered if there was a particular reason for that 04:08 Zeno` Looking at in now... there probably was no reason 04:08 Zeno` at it* 04:09 hmmmm paramat, the biome api doesn't have a bug, the mapgen's attempt to add biome-specific soil does :) 04:10 hmmmm i spent a lot of time trying to fix that and i never got it 100% right. if you look at the code you'll notice I do a lot of guessing of what the nodes above and below that don't exist could be 04:10 Zeno` I'm removing it 04:10 hmmmm no zeno 04:10 hmmmm we want to limit FPS if clouds are shown 04:11 hmmmm otherwise that'd take up 100% cpu for nothing but a menu 04:11 hmmmm otherwise we'd be rendering clouds scrolling (granted, very nice clouds) as fast as the gpu allows 04:14 Zeno` hmmmm, but it's doing sleep(25) in leiu of limiting FPS 04:14 Zeno` I'm still limiting FPS.... 04:14 hmmmm hmm 04:14 hmmmm try it 04:14 Zeno` just doing it the same way as the rest of the game 04:15 hmmmm I could've sworn we had the same regression where somebody else said "oh! that's useless, i'll remove it" and then people start noticing the cpu pegged at 100% anymore 04:15 Zeno` still behaves the same 04:16 hmmmm okay then 04:16 Zeno` and still limit fps if cloud_menu_background is true or false 04:17 Zeno` perhaps it was because of the way it was originally structured (limitFps() is a new function) 04:18 paramat hmmmm, my idea for light is: in 1st half of 'calclighting', instead of propagating lightmax down as columns, spread it as narrow cones that widen by 1 node every mapblock, this way shadows 'taper' instead of ' decay'. it may be too slow to be worth the questionable gains though, but this is the only way i can think of acheiving shadow decay 04:19 hmmmm paramat, don't bother trying to fix lighting 04:19 hmmmm it's screwed 04:20 hmmmm no matter what you do you're going to have major issues with blocks that haven't been generated yet 04:20 hmmmm GPU lighting is the way forward 04:21 Zeno` yep all good. CPU did not go above 5% while connecting to a remote server with menu_clouds = false 04:21 hmmmm paramat, did i show you this? http://pastebin.com/yqkhkDfH 04:21 paramat yes i remember that 04:22 hmmmm that's my half-assed attempt at fixing the fake lighting 04:23 paramat well yes i agree my idea may just produce another set of lighting glitches, but with slower code, it's barely worth trying, except for interest 04:23 hmmmm hey... try it 04:23 paramat lol 04:23 hmmmm i'm just saying don't be surprised if it never fully works ;) 04:23 hmmmm minetest is so frustrating because you have to guess the state of blocks above you 04:23 paramat im used to buggy lighting, it doesn't bother me at all 04:24 paramat all my recent mapgens use 'overgeneration' to fix border issues, this is what i will try in mgv5 and 6 to tackle y=47 04:25 hmmmm too bad minetest has unlimited vertical space 04:25 hmmmm all of this would be trivial if we did mapblocks in vertical slices like minecraft 04:25 paramat yep 04:26 paramat the cubic chunks are why im here though 04:26 hmmmm also enjoying the increased difficulty? 04:26 paramat its worth it ;) 04:29 hmmmm paramat, thoughts on my commit? 04:29 hmmmm unless people speak up i'm going to assume you're all thinking LGTM and i'll push it to upstream 04:30 VanessaE_ I'm only thinking: test the ever loving fuck out of it after you push it :P 04:31 hmmmm i think it'll be worth it to add unit tests to schematics at the very least 04:35 Zeno` hmmmm, looks good as far as I can see 04:47 paramat hmmmm, i looked through it in an unsuccessful attempt to understand it 04:48 hmmmm hah :/ 04:49 hmmmm here goes nothing 04:50 hmmmm watch that commit screw something up big now 04:51 paramat 'i trust you' 04:52 hmmmm i really don't want to do the noiseparams thing 04:52 hmmmm oh god 04:52 hmmmm just kill me now 04:52 Zeno` well you have to stay up for a few hours to get commit feedback so may as well do noise params 04:52 hmmmm the noiseparams struct-to-string has got to be the worst idea possibly ever 04:53 hmmmm i can't do this without breaking minetest 04:53 hmmmm fuck 04:54 hmmmm because of this cute thing: if (f && *f) { //error, mismatched number of fields and values 04:55 Zeno` it is cute, isn't he 04:55 hmmmm why did i do this 04:55 hmmmm why couldn'tve i just added namespaces to settings 04:55 hmmmm this was such a horrible idea 04:56 hmmmm alright i'm going to tell you what i'm going to do 04:56 hmmmm i'm going to add namespaces to settings, and then sneak in a routine to convert noiseparam strings to this new thing when they run minetest 04:57 hmmmm hopefully in a couple months or so everybody will have the new format for noiseparams in their config files and then i remove all support for struct-to-string 04:58 paramat this is your project that will add eased noise option? 04:58 hmmmm i'll add eased noise without the noiseparams option for now 05:02 paramat good 05:06 paramat https://cdn.mediacru.sh/pqaTzAXt4y-T.png 'riverdev' mapgen mod has a silly name like 'mine-test' and is essentially watershed2: slightly simpler rivers and worldwide path networks 05:07 hmmmm wow that looks awesome 05:07 hmmmm I should look into making a specialty mapgen sometime... i could probably do some nifty things not constrained by having to generalize things 05:13 paramat that would be cool! 05:40 Zeno` hmmmm, is there a better tag than WIP? WIP makes it sound like I intend to do further changes beyond the commit I just pushed (which I don't intend to do unless specifically asked). Is there, for example, a "Please test" tag or something? 05:41 hmmmm PTAL? 05:41 Zeno` what is AL? 05:41 hmmmm Please Take A Look 05:41 hmmmm hrm 05:41 hmmmm how about TEST 05:41 Zeno` yeah, something... anything but WIP (do you see what I mean by it kind of being the wrong tag?) 05:42 hmmmm WIP -> TEST -> done 05:42 Zeno` Yeah TEST would probably be fine 05:42 Zeno` Yes, that's a sensible flow I think 05:42 hmmmm do you not have permissions to create a new tag? 05:42 Zeno` nope 05:42 hmmmm i might not either 05:43 hmmmm there 05:43 hmmmm I created "Testing" 05:43 Zeno` Thanks :) 05:43 Zeno` I can't add tags either so can you update pleasE? 05:43 hmmmm wait a minute, are you a core developer? 05:44 Zeno` no 05:44 hmmmm oh 05:44 Zeno` I dunno what I am 05:44 Zeno` I am Zeno 05:44 Zeno` lol 05:44 hmmmm i don't see your pull request 05:45 Zeno` https://github.com/minetest/minetest/pull/1756 05:45 hmmmm oh 05:47 Zeno` nice colour as well 05:47 Zeno` thank you 05:47 hmmmm you don't get to choose the color 05:47 Zeno` thank you github for the colour 05:53 hmmmm just found a pretty huge bug 05:53 Zeno` :( 05:54 Zeno` I hope it's not mine :3 05:55 hmmmm it's definitely mine 05:57 Zeno` good to be found then. Unless fixing it screws up existing maps or something 06:03 hmmmm https://github.com/kwolekr/minetest/commit/b994a7af130cb8219fc0c546454317cb105c7322 06:03 hmmmm comments? 06:04 * paramat looks 06:12 Zeno` well, nitpick, but personally instead of memset(result, 0, sizeof(float) * bufsize); I would do memset(result, 0, sizeof *result * bufsize); 06:13 paramat i like the noise magic and the magic seeds =D 06:14 Zeno` i like the function pointer... neat 06:18 Zeno` actually, why the memset()s at all? 06:18 Zeno` the generate noise functions don't fully populate the arrays? 06:19 Zeno` err, hmm 06:20 paramat lots of cleaning up as well, good work! 06:27 Zeno` oh I see, it's additive 06:27 hmmmm paramat, to use it, add a 4th parameter of "true" to calls to Noise::perlinMap3d() 06:28 hmmmm this interface will definitely change in the future 06:36 paramat hmmmm okay and thanks for this. here's a new type of mapgen https://forum.minetest.net/viewtopic.php?f=9&t=10481 09:19 paramat https://cdn.mediacru.sh/-KdgFtFHgKGg.png < new eased 3D noise now working in mgv5. https://cdn.mediacru.sh/Fe9gWHUvdDTI.png < example of small but significant difference from uneased noise 09:45 Zeno` https://github.com/minetest/minetest/pull/1776 11:10 nore thoughts on #335 and #301 ? 11:10 ShadowBot https://github.com/minetest/minetest/issues/335 -- fix screen flickering black when rendering to texture by doserj 11:10 ShadowBot https://github.com/minetest/minetest/issues/301 -- Use wielditem drawtype for all nodes in item_entity by PilzAdam 11:11 nore ... 11:11 nore I mean those: 11:11 nore https://github.com/minetest/minetest_game/pull/335 11:11 nore and https://github.com/minetest/minetest_game/pull/301 11:11 nore sfan5, BlockMen ^ 11:30 Zeno` nore, has 335 been fixed in #1756? 11:30 ShadowBot https://github.com/minetest/minetest/issues/1756 -- Refactor the game by Zeno- 11:36 nore Zeno`, I don't know :) I thought about 335 of minetest_game 11:36 Zeno` oh, sorry 11:37 Zeno` clicked your first link heh 11:46 Megaf Zeno`: My server crashed a new stability record for minetest, 9 days :P 11:47 Megaf then I restarted it to back it up and update it 11:47 Zeno` nice :) 11:47 Megaf well done minetest team 11:47 Megaf It was really stable 13:55 proller who is approver of d274cbf ? 16:07 RealBadAngel proller, whats wrong with this commit? 16:32 hmmmm proller still talks here? I thought everyone had him on ignore 16:36 RealBadAngel ;) 16:36 Amaz XD 16:37 PenguinDad hmmmm: sometimes people want to listen to his comments :P 16:39 shadowzone I don't put people on ignore very often. 16:39 Calinou The point of /ignore is to be discrete about it, not announce it to the channel. That's just taunting the person, and is extremely childish. Not to mention the fact that you can tell who the dramatic ones are on IRC. 17:01 proller RealBadAngel, all commits must be approved by other devs? or only yours ?