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 |
01:22 |
|
proller__ joined #minetest-dev |
01:28 |
|
kurennon joined #minetest-dev |
01:43 |
|
ANAND joined #minetest-dev |
01:48 |
|
Tmanyo joined #minetest-dev |
02:06 |
|
paramat left #minetest-dev |
02:45 |
|
YuGiOhJCJ joined #minetest-dev |
02:53 |
|
AndroBuilder_ joined #minetest-dev |
02:57 |
|
Xio joined #minetest-dev |
03:25 |
|
kurennon joined #minetest-dev |
03:54 |
|
Andrej1 was kicked by VanessaE: Andrej1 |
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. |
04:12 |
|
Cornelia joined #minetest-dev |
04:14 |
|
Andrej1 joined #minetest-dev |
04:41 |
|
kurennon joined #minetest-dev |
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 |
|
reductum joined #minetest-dev |
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:23 |
|
Amaz joined #minetest-dev |
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:12 |
|
proller joined #minetest-dev |
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 |
08:33 |
|
ANAND joined #minetest-dev |
08:34 |
|
proller__ joined #minetest-dev |
08:40 |
|
Gael-de-Sailly joined #minetest-dev |
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 |
09:32 |
|
proller joined #minetest-dev |
09:40 |
|
proller__ joined #minetest-dev |
09:59 |
|
ANAND joined #minetest-dev |
10:00 |
|
ANAND joined #minetest-dev |
10:03 |
|
Wuzzy joined #minetest-dev |
10:06 |
|
ANAND joined #minetest-dev |
10:55 |
|
Krock joined #minetest-dev |
10:57 |
|
proller joined #minetest-dev |
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:28 |
|
lumberJ joined #minetest-dev |
11:29 |
celeron55 |
given the documentation available, making that is bound to be a tad... exploratory, i'd say |
11:32 |
|
Fixer joined #minetest-dev |
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 |
11:44 |
|
twoelk joined #minetest-dev |
11:45 |
|
Beton joined #minetest-dev |
11:59 |
|
Beton_ joined #minetest-dev |
13:00 |
|
proller__ joined #minetest-dev |
13:38 |
|
Gael-de-Sailly joined #minetest-dev |
13:43 |
|
Taoki joined #minetest-dev |
13:54 |
|
Krock joined #minetest-dev |
13:57 |
|
ANAND joined #minetest-dev |
15:42 |
|
proller__ joined #minetest-dev |
16:19 |
|
Player-2 joined #minetest-dev |
16:19 |
|
antims joined #minetest-dev |
16:37 |
|
Cornelia joined #minetest-dev |
16:58 |
|
YuGiOhJCJ joined #minetest-dev |
17:12 |
|
indiana joined #minetest-dev |
18:12 |
|
entuland joined #minetest-dev |
18:40 |
|
Krock joined #minetest-dev |
19:47 |
|
proller__ joined #minetest-dev |
20:03 |
|
paramat joined #minetest-dev |
20:20 |
|
proller__ joined #minetest-dev |
20:52 |
|
proller__ joined #minetest-dev |
20:52 |
|
entuland joined #minetest-dev |
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 |
21:45 |
|
Wuzzy joined #minetest-dev |
21:52 |
|
Fixer joined #minetest-dev |
22:16 |
|
AndroBuilder joined #minetest-dev |
22:22 |
|
AndroBuilder_ joined #minetest-dev |
22:28 |
|
fwhcat joined #minetest-dev |
22:35 |
|
proller__ joined #minetest-dev |
23:20 |
|
paramat joined #minetest-dev |
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 |
23:50 |
|
proller__ joined #minetest-dev |
23:58 |
|
zorman2000 joined #minetest-dev |