Time Nick Message 00:01 zistack Hi. 00:05 zistack I'm from the Linux User Group at UCI, and we were thinking about making some changes to minetest. We wanted to touch base before we got started. 00:08 paramat hi, not many devs are around currently (most are in Europe) but feel free to discuss 00:09 paramat well, 3 of us are around :) 00:10 paramat university of califonia, irvine? 00:10 zistack Yes. 00:10 kurennon Yeah 00:10 zistack There's a few of us in here right now. 00:10 nickolas360 Yeah, kurennon and I are also part of the group. 00:11 paramat nice, always good to have interest 00:12 zistack Long-term, we'd like to see the game engine have some proper concurrency, but the codebase isn't currently ready for such a change. 00:12 zistack In the short term, we were thinking of performing some architectural cleanup in preparation for that. 00:12 paramat see https://github.com/minetest/minetest/blob/master/CONTRIBUTING.md essentially fork, branch, pull request in git 00:12 paramat ok 00:13 zistack We've already read through the available resources on contributing to the project. 00:13 paramat best thing to do is to open an issue to discuss your ideas at https://github.com/minetest/minetest/issues 00:13 zistack We're here because the changes we're thinking of would touch large parts of the codebase. 00:14 paramat and/or discuss here during european daytime to catch more devs 00:14 nickolas360 Yeah, discussing here for a bit sounds like a good idea. 00:14 nickolas360 When's the best time to do so? 00:15 paramat personally i'm not good with MT architecture stuff, you would want to discuss with nerzhul rubenwardy sfan5 00:16 nickolas360 When would they be online? 00:17 paramat erm, best is late afternoon or evening EU time 00:17 paramat it varies when they are around 00:19 `z Are they active over the weekends? 00:20 paramat oh and discuss with celeron55 too, the original creator of MT, although he is not active as a dev currently 00:20 paramat yes weekends too 00:22 zistack How much does the codebase churn right now? 00:23 paramat not a lot since we're short on dev time =) 00:25 zistack Cool. We might not have to worry about stepping on too many people's toes then. 00:25 Andrej1 LOL im screencapping that for future reference if you dont mind 00:27 zistack I don't mind, but would you mind explaining why that's funny? 00:27 paramat but we are certainly very active, github will have more stats for you 00:28 nickolas360 Yeah, there appears to be a pretty good stream of commits. 00:28 paramat .. a small number of active core devs 00:30 nickolas360 Right. If all goes well, Minetest should be seeing some more active development in the near future. 00:34 paramat we're also keen to attract new dev talent and work on any part of the code. we have plenty of issues, 777 00:35 paramat i hope the silly name doesn't put people off too much, it's actually a very good FOSS voxel engine 00:35 paramat the name just 'stuck' early on and was never changed 00:36 Andrej1 paramat why are you doing this? https://pastebin.com/Mpx11XBp first you owe noone anything - and should be grateful for doing 'much more than obliged', then you are very keen to attract new devs and work on any part of the code 00:37 Andrej1 please do not waste developer time on purpose? 00:37 nickolas360 paramat: I don't mind the name, really. Once you hear a name a few times, you don't really notice it anymore. 00:40 Andrej1 nickolas360 you are being baited in like a mouse into a mousetrap, the first time you dont 100% agree on something it will be https://pastebin.com/jQ8ig6Ps 00:42 paramat Andrej1 you've taken that the wrong way, and i don't waste people's time on purpose 00:43 paramat hm? that 2nd paste doesn't mean what you suggest, we were discussing how to name a thread label 00:45 Andrej1 you were discussing how the people submitting you code are 2nd class citizens, and how these ''contributor, not developer'' do not count as developer interest for a feature 00:46 paramat the 'owe you nothing' actually page makes a lot of good sense, it's just the title that seems harsh 00:46 Andrej1 if the gentlemen here are attempting to develop features, they would fall under the not-developer-interest, which must be disconcerting 00:46 paramat "you were discussing how the people submitting you code are 2nd class citizens" no, you have taken that the wrong way 00:47 paramat Andrej1 what's your github username out of interest? 00:49 Andrej1 i am not looking to be bullied right now, please apply at a later date 00:50 paramat i was discussing what name to use for 'core devs', for me 'devs' means 'core devs', but some others use 'devs' to mean contributors too, we were discussing some confusion that arose due to that 00:52 Andrej1 Okay then, but how am I to interpret this?: https://github.com/minetest/minetest/pull/7058 followed by https://pastebin.com/aaa5bk7U 00:53 paramat you seem to have bookmarked stuff you have somehow strangely interpreted as unpleasant. seems you are trying too hard to bash core devs 00:54 paramat 'bullied' heh 00:55 paramat yes some contributors have bad attitude, and i did say 'almost' and we didn't ignore. it was half-joking 00:56 Andrej1 sure laugh while you are able to do whatever you want. laughing is healthy 03:55 VanessaE ^^ had to read the discussion first. sorry I wasn't around, grocery store. 03:56 VanessaE as for some alternate to "core dev", I see no need for one. 06:23 nerzhul i tend to see what do they want, because another breakage is not needed currently, but the ideas are interesting if the modifications are incremental 06:30 zistack Initially, we're not interested in breaking mod compatibility. 06:30 zistack Actually, we'd like to avoid that for as long as possible. 06:32 nickolas360 Yes, and that includes client-server compatibility too. Initially, everything should be backward-compatible. 06:35 nerzhul what do you want to do exactly ? 06:35 nerzhul and what is your interest in minetest ? 06:35 longerstaff13 whoa, a lot went down in here overnight 06:36 nerzhul currently we are releasing a bugfix release and we should release our next feature release ASAP, i tend to say your changes are welcome after the 0.5.0 release, but discussion can happen before and some changes can be intergrated into it 06:37 nerzhul and i want more TDD on MT to ensure we have a good code quality base 06:39 zistack We want to clean up Minetest's domain model so that adding concurrency is possible without breaking everything to hell. 06:40 nerzhul it's an interesting idea, i started thi scleanup years ago but it's not easy 06:40 nerzhul the first part i want to see in this model is the client 06:40 nerzhul if you want to work on it, the rendered and the client part should be splited in two threads communicating with events 06:40 zistack We want to start by pulling out the graphics stack into something clean. 06:40 nerzhul this permits to have independent renderer 06:40 zistack That is actually not the best way. 06:41 nerzhul what do you want to do ? and what is your experience in development ? :) 06:41 zistack But it will be a while before we start adding actual concurrency. 06:41 zistack I have a B.S. in CS, and am working on a PhD in Computer Engineering. 06:41 nerzhul yeah, we have such spaghettis in the historical code 06:42 nerzhul you are two friends who wants to contribute on MT because you like voxel games ? or it's a technical defi ? 06:42 zistack My field of expertise is concurrency, but I've also dabbled in graphics and other things. 06:42 nerzhul nice :) 06:42 nickolas360 We have about four people planning to work on this. We're part of the Linux User Group at the University of California, Irvine. 06:43 zistack Initially, we wanted to write our own game for minetest, but we realized that some of the things that we wanted to do weren't really possible as things currently stand. 06:43 nerzhul nice, and MT is a base for some reasearch or something ? :) 06:44 zistack We also noticed some major architecural issues, and figured we would start by fixing some of those. 06:44 nerzhul yeah the codebase is quite old in some parts, what do you want to add in your game which are limited by the engine ? 06:44 zistack This is really just a fun project for our group. 06:44 nickolas360 Yeah, I think it's mainly that we enjoy Minetest as a game, we find its technical side interesting, and we like the fact that it's free and open source and runs on Linux, of course. 06:44 nerzhul great, i will be happy to review your PRs keep them tested with unittests as more as possible :) 06:44 zistack Well, it's currently hard to do anything with the world generator, and it's gross to see mods having to do things like loop over every player in the game every game tick. 06:45 zistack Plus the obvious performance bottleneck of having one thread for the server's update loop. 06:45 nerzhul oh it should not be difficult to do there, you need a tick + player loop in lua, but yes the 1 thread model is quite problematic but it's not easy to have another thread for the server as lua can run only in one code and needs access to all resources :p 06:46 zistack There's also substantial improvement that could be made to the way different render types are handled. 06:46 nerzhul yeah :) 06:47 zistack I am more than familiar with the technical limitations involving Lua and threads. I've considered using it in my own projects before. There are things that can be done. 06:49 nerzhul nice :) 06:49 nerzhul good luck then :) 06:51 ANAND I'm glad to see the increased interest in Minetest :D 06:51 zistack How do you guys feel about loading the world generators as plugins (not Lua)? 06:53 ANAND pre-compiled? 06:53 zistack Yes. 06:53 ANAND Sure to see a decent performance boost there... 06:55 zistack Well, they're currently compiled into the game, right? I don't see that the performance would be different, unless you're referring to how mods try to do their own thing anyways at times. 07:09 zistack Anyhow, it's midnight for some of us. We're planning on being here sometime this weekend to discuss further. 07:14 nerzhul zistack they are compiled in the engine 07:14 nerzhul the plugin only permit to have dynamic mapgen loading unloading, permitting to extend the game keeping the engine as is 07:21 nickolas360 Yes, the plugins would handle only mapgen. Allowing mapgen to be brought outside the engine would make Minetest more extensible and open up a number of possibilities. 07:21 nickolas360 Ideally, these would be written as mods in Lua just like everything else, but for mapgen, the necessary performance simply isn't feasible. 07:21 nickolas360 So compiled plugins loaded as shared libraries would be a good alternative. 07:51 nerzhul exact, it's why we have both worlds but only core is good 07:59 sfan5 Andrej1: do you intend to continue disrupting development chat in here? 08:03 sfan5 nickolas360: since you guys plan to make some significant changes, it'd be helpful to have an overview of all the things you intend to change 08:03 sfan5 out of interest, what are the "things that we wanted to do [that] weren't really possible as things currently stand"? 08:17 * celeron55 pops in 08:18 celeron55 the suggested changes indeed seem very vague and we've seen them before, generally these ideas don't result in much in the way of actual PRs 08:22 celeron55 any compatible performance improvements are always welcome, be it architectural or not, that one is certain 09:20 nickolas360 celeron55: zistack can provide more details, but it's currently 2 AM here so I think he's sleeping. 09:20 nickolas360 I know that some goals of ours are to allow the server's update loop (and associated mods) to run concurrently, add concurrency to the world generator(s), and provide more control over world generation to mods/plugins. 09:20 nickolas360 There are also some deficiencies in the modding API that cause mod authors to resort to looping over all players every game tick to monitor state changes -- we're also looking to add improvements in this area. 09:20 nickolas360 I don't believe a lack of actual PRs is a worry -- we have a team committed to putting in actual development time. 09:20 nickolas360 Again, though, if you'd like to discuss this in more detail, zistack's the person to talk to. I'll be in touch with him soon. 09:30 nerzhul mapgen already has concurrency 11:23 celeron55 nickolas360: modding api improvements is another thing that tends to be well received 11:25 Krock 00:23 paramat not a lot since we're short on dev time =) 11:25 Krock 00:25 zistack Cool. We might not have to worry about stepping on too many people's toes then. 11:25 Krock Well this is not always the case 11:25 Krock Sometimes PRs also stall for other reasons than merge conflicts - mainly performance or concept issues 11:26 Krock but it's great to see interest in this project and people who are willing to contribute a bit 11:26 celeron55 nickolas360: i would enjoy looking at a proposed design for more concurrency in the server, it doesn't seem like exactly a trivial thing to code 11:28 celeron55 or a proof of concept 11:28 celeron55 whichever seems less work 11:29 celeron55 given the documentation available, making that is bound to be a tad... exploratory, i'd say 11:33 Krock Indeed an example or overview page would be very helpful. Especially because I wonder how pre-compiled plugins should be made which are portable - or at least require minimal effort and/or dependencies to compile 11:35 nerzhul Krock look at scriptdev2 and mangos 11:35 nerzhul it's a more wide example of a such usage 11:35 nerzhul the core engine mangos provide the generic API to manage NPCs and other objects, the scriptdev2 library has all World of Warcraft NPCs intelligence, and mangos provide the default example library 11:36 nerzhul and it compiles on UNIX + Windows 11:37 Krock hmm interesting 11:40 nerzhul the main design in scriptdev2 is each AI is a child class of NPCAI which is the generic class in core engine 11:40 nerzhul and all those class register at the library loading into core, and each NPCID can have one NPCAI reference and uses it 11:41 nerzhul for our usage, imagine Mapgen in core, and we move mapgens in one library (at the beginning) 11:41 nerzhul it was one of my ideas, but don't forget this can have a little performance penalty 21:08 paramat game #2131 +1 21:08 ShadowBot https://github.com/minetest/minetest/issues/2131 -- Small tweaking (alignment - client tab) by kilbith 21:09 paramat ugh 21:09 paramat game#2131 21:09 ShadowBot https://github.com/minetest/minetest_game/issues/2131 -- Place hidden instead of visible fireflies on mapgen by Ezhh 21:10 Shara It's simple tiny change. 21:10 paramat merge whenever 21:10 Shara Sure, will in a bit 21:11 Shara I skipped labels because it's hard to resist just adding bug related ones when it's for fireflies :D 21:11 paramat heh 23:28 paramat #7355 code is simple 23:28 ShadowBot https://github.com/minetest/minetest/issues/7355 -- Mapgen flags: Add 'biomes' global mapgen flag by paramat