Time Nick Message 08:08 celeron55 http://paulmillr.com/posts/github-pull-request-stats/#lang-stats 08:09 celeron55 >C++ 08:09 celeron55 8D 08:09 Calinou lol 08:09 Calinou you're making it go down :D 16:27 sweetbomber hello, anyone on? 16:27 sfan5 no 16:27 sfan5 as you can see the channel is completly empty [/sarcasm] 16:28 PilzAdam sweetbomber, that question is quite stupid in IRC; we have logs 16:28 sweetbomber sorry, just asked because just like me, sometimes i have irc open but not paying attention to it 16:29 sweetbomber anyway 16:30 sweetbomber ive been analysing the code, particularly the spawn code, and i noticed two things in code that i think deserve attention and that im willing to improve 16:30 celeron55 all these replies meant is: just shout your question :P 16:31 sweetbomber the first thing, is about the maximum spawn height: I noticed that it assumes water_level+6 as the maximum spawning height 16:31 hmmmm !calc ask 16:31 hmmmm well, Just *ask* a precise question (while clearly describing your problem) in the channel. Then wait for an answer. (Do not ask to ask, just ask.) 16:31 celeron55 it's quite old code; it wants to place the player someplace near the origin in some low place 16:32 sweetbomber i have version 0.4.6 from github 16:32 hmmmm how can you improve upon the spawning code? 16:32 hmmmm it does what it needs to perfectly fine 16:32 sweetbomber the question is that certain biomes could just be high, just like highlands 16:33 sweetbomber and then the spawning point needs to be high as well 16:33 PilzAdam one thing could be improved: sometimes you spawn in a tree 16:33 hmmmm so you'd like to be able to spawn in every biome 16:33 hmmmm pilzadam, that cannot be fixed 16:34 celeron55 hmmmm: of course it can, but it will be more complicated 16:34 sweetbomber i think there is not problem on spawning over a tree, i guess.. 16:34 celeron55 sweetbomber: what is the second thing? 16:34 hmmmm celeron, any ideas on how to fix that? :/ 16:35 PilzAdam sweetbomber, not over a tree, inside a tree trunk 16:35 celeron55 hmmmm: well, it'd need to wait until the map generator has generated the desired location and then fine-tune the spawn position to a final one 16:35 hmmmm right, who wants to do that 16:35 PilzAdam hmmmm, maybe in Lua register_on_spawnplayer()? 16:35 sweetbomber i have an idea to fix that, and if you agree, i can implement it. Basically inspect ground level, without any height limit 16:35 sweetbomber and set it as spawn level 16:35 sweetbomber the place to implement that i think is server.cpp 16:36 Exio the code changed for that in upstream 16:36 Exio when hmmmm fixed the "spawning too up 16:36 sfan5 if you would implement that and send a pull request, that'd be appreciated 16:36 Exio " or so 16:36 hmmmm sweetbomber, we're not really interested in having the player spawn in high places though. 16:36 sweetbomber I just wanted to discuss it with you, to know if it was a bug or a feature 16:36 hmmmm if we specifically put a limit there, it's not a bug... 16:37 ssieb hmmmm: why is that? What does it do if there is no low location? 16:37 hmmmm then it'll choose the 1000th randomly generated location anyway 16:37 hmmmm regardless of ground height 16:37 celeron55 sweetbomber: i guess what you need to put special attention towards is that the ground is not yet generated in certain cases of player spawning but rather will be after some seconds 16:37 sweetbomber My question arouse because i am experimenting with mapgen, and in high places, the player simply spawns underground 16:38 hmmmm sweetbomber, that might not be caused by what you pointed out 16:38 celeron55 so rather than a measured ground level, it currently then (or always?) relies on the guessed to-be-generated level reported by the mapgen 16:38 hmmmm instead, it could be because Mapgen::getGroundLevelAtPoint() is no longer accurate 16:38 sweetbomber in my case, the terrain was all at height 20... 16:38 sweetbomber hmmm, that was my second point 16:39 sweetbomber that im about to explain 16:39 sweetbomber getGroundLevelAtPoint uses the terraingeneration functions 16:39 sweetbomber to get the ground level 16:39 sweetbomber but what happens in a mp server where some area of the map was severely dug? 16:40 sweetbomber or completely covered by nodes? 16:40 hmmmm if it was completely covered by nodes, something else will be chosen 16:40 hmmmm if there was a big hole, well, then the player will fall in 16:41 hmmmm i don't get why people believe spawning position is such a big deal... is it because it's the first (minor) thing people have to complain about upon starting the game? :/ 16:41 celeron55 well, first impressions do matter 16:41 PilzAdam how does MC handle this? AFAIK you always spawn at x=0, z=o 16:41 PilzAdam *0 16:41 sweetbomber sorry, i am just volunteering to help out 16:42 celeron55 PilzAdam: it first generates the full area (full height) around 0,0 and then figures out the top position... at least when i last played it 16:43 PilzAdam there could be some kind of setting max_spawn so games can change it in their game specific minetest.conf if needed 16:43 hmmmm i personally see it as too small of a detail to matter at all, but if you really want to change the height at which players spawn at, it might be a good idea to make it configurable 16:43 hmmmm but there are already too many configurable things and this is bordering on ridiculous. i believe there's a static spawn point potion already for mods and such 16:44 Exio why is adding options "ridiculous"? 16:44 hmmmm adding an option to set the height range people can spawn at would really just be satisfying a *single* person's request 16:44 PilzAdam yea, but static spawn point is too static for a game 16:44 celeron55 derp 16:44 celeron55 if someone wants to fix something, he can fix it 16:44 sweetbomber besides, i think that some polishing is never unwelcome... 16:44 sweetbomber and since i am new to this code, i wanted to start with something easy, instead of going to hardcore stuff first 16:44 sweetbomber i am planning to contribute to mapgen afterwards... 16:45 sweetbomber anyway, do you agree i could implement code to inspect ground height accurately? 16:45 hmmmm I don't agree you could, it's much more difficult than you probably think it is 16:45 Exio he can always try 16:45 celeron55 yes; please just first be aware of all the nuances of what happens when you boot a world and want to put a player there (mainly the state of world loading) 16:46 hmmmm celeron, this goes back to what i was talking about a long time ago where there was a world pregeneration period before players are allowed to emerge 16:46 hmmmm rememeber that? and you said "let's not discuss something complicated like that" 16:47 celeron55 my opinion is that there should be a solid system for just asking for a position and it would then generate or load it that you could just synchronously request a position to be loaded, no matter what 16:47 celeron55 it would be useful for a variety of situations 16:47 sweetbomber i agree that players should only emerge after the world, i think it makes sense.. 16:47 celeron55 (to simplify code) 16:48 hmmmm i removed that from emergeBlock for a reason .. 16:48 hmmmm basically, now you're saying you want the serverthread to wait for something slow like the emergethread 16:49 hmmmm i'd really rather have an asychronous event for these sorts of things 16:49 celeron55 well whatever; but it should be doable in some way; currently it's doable only by a hack 16:49 hmmmm i would be okay with waiting on emergethread if it wasn't so slow 16:50 sweetbomber one thing fellows, regarding pull requests: I believe that your pull-request policy is one feature for pull, right? 16:50 sweetbomber *per 16:50 hmmmm yes 16:50 celeron55 yes (i don't know anyone who's pull rquest policy would be any different) 16:50 sweetbomber nice 16:51 sweetbomber well...lets just say that ive already seen some strange things in the industry 16:51 hmmmm anyway, if you'd like to have the player spawn higher, do make it a config entry 16:51 sweetbomber ok 16:51 hmmmm with the default what it currently is 16:52 hmmmm (0, 6) 16:52 hmmmm (well, water_level + that 16:53 hmmmm also you plan on doing things with the mapgen, but i just want to point out that you can't change anything visible with mapgen v6 anymore, mapgen indev is a separate mapgen for these sorts of things 16:53 hmmmm you can't change anything that would cause an inconsistency from already generated v6 maps* 16:53 sweetbomber im studying mapgen v7...will it be adopted? 16:53 hmmmm yes, but it's far from finished 16:53 celeron55 v7 is dictated by this hmmmm you are talking with 16:53 sweetbomber yes, i noticed that 16:53 hmmmm it also does some terrain things that are stupid that i do not like 16:54 sweetbomber i noticed that the terrain as some glitches 16:54 sweetbomber like one-block towers 16:54 sweetbomber and other stuff 16:54 hmmmm not glitches 16:55 sweetbomber i read some notch's statements, and he stated that he used some interpolation on perlin noise 16:55 hmmmm oh, to remove 'towers'? 16:55 sweetbomber this can at least cancel singularities on mp 16:55 sweetbomber on map 16:55 sweetbomber towers, and floating blobs 16:55 hmmmm i don't know, is it _really_ worth it..? 16:55 hmmmm i like floating blobs and towers 16:55 sweetbomber i dont know 16:56 sweetbomber i will test some algorightms latter 16:56 sweetbomber as i said, im still getting used to the code 16:56 sweetbomber lol 16:56 celeron55 it was for speed, and it was for removing small features from the base terrain (to allow flat areas to be generated automatically); and as far as i know, it's 3d noise interpolation that notch talked about 16:57 celeron55 interpolating 2d noise is quite boring and doesn't really result in anything 16:57 sweetbomber he stated that 3d noise was quite slow... 16:57 hmmmm he clearly hasn't seen our 3d noise implementation 16:57 hmmmm heheh 16:57 sweetbomber the interpolation was about height, i think 16:57 sweetbomber wow, you implement 3d noise? nice! 16:58 hmmmm huh? 16:58 celeron55 well, MT's noise implementation was very slow, but then hmmmm came and optimized it and now it's essentially free for non-crazy things 16:58 hmmmm of course we did, how do you think did what we do? 16:58 celeron55 (MT has always had 2d and 3d noise) 16:58 hmmmm yeah, previously minetest only had point-value noise, but i optimized it for batches 16:58 sweetbomber i will study that code 16:59 hmmmm you still use point-value noise, obviously, use your own judgement to tell what's better where 16:59 hmmmm your own judgement + profile it 17:00 sweetbomber in the long-term, do you think biomes should be hard-coded, or configurable, e.g. in a xml? 17:00 Exio the biomedef thingy 17:00 hmmmm they're already there in lua 17:00 hmmmm did you miss biomedef? :/ 17:00 Exio is already here :P 17:01 sweetbomber oh, i only saw the default biome defined in code, and the other ones commented out 17:01 hmmmm i don't think i have anything commented out... hmm? 17:02 hmmmm what are you looking at?? surely not the current head 17:03 sweetbomber the createBiome function 17:03 hmmmm in scriptapi? 17:04 hmmmm oh 17:04 sweetbomber biome.cpp 17:04 hmmmm that's a factory function, nothing real goes on in there 17:05 hmmmm see, mapgen v7 was something i wanted to do right away, but it got pushed aside for other more pressing issues, and i just re-started working on v7 about 2 months ago and i changed basically everything 17:05 hmmmm the past month or so i've been busy with finals, graduation, job seeking, etc. 17:05 hmmmm i really am still active though, i promise 17:06 * Exio lynches hmmmm 17:06 Exio ;P 17:06 hmmmm hey 17:07 * celeron55 mentions that's largely what kahrl said before he left for a full year some 14 months ago 17:07 hmmmm sweetbomber, i'm sorry, don't let createBiome() throw you off, the original intent of that was to have each biome "class" to have its own generateColumn() method (at that time i actually, foolishly thought that i'd be able to do terrain generation decently a column at a time with a single pass) 17:07 celeron55 8) 17:07 hmmmm s/foolishly/arrogantly/ 17:08 celeron55 terrain generation is tough shit and notch was a god for a reason! 17:09 hmmmm about that 17:09 celeron55 then they broke MC and now even we have a chance 17:09 celeron55 8) 17:09 hmmmm i am going to toy around more with positive 3d noise 17:09 hmmmm (but i honestly feel like it isn't completely necessary at this point) 17:10 sweetbomber ok 17:10 hmmmm mapgen v7 won't be ready until it's been completed and extensively evaluated by others, and tuned, etc. and even then it won't be the default for even longer 17:11 hmmmm you can't help but look at projects that just change things for the hell of it and see how they become hated (like gnome, firefox) 17:11 hmmmm but everything's okay if there's an option 17:12 celeron55 MT has had some things changed for the hell of it already 17:13 celeron55 not in the engine though, unless Lua is counted (it *was* done for the hell of it, largely) 17:14 hmmmm in the end, lua was worth it, it transformed minetest into a minecraft clone into an increasingly-generic voxel engine, which makes it something special 17:45 hmmmm from a minecraft clone*