Time |
Nick |
Message |
01:25 |
kahrl |
ugh... git diff|wc |
01:25 |
kahrl |
6018 18557 169140 |
01:26 |
kahrl |
I just cleaned up some code... |
01:26 |
PilzAdam |
looks like fun |
01:27 |
kahrl |
to be fair a lot of that was copy&paste, but still... |
02:13 |
|
ch98 joined #minetest-dev |
02:20 |
Exio4 |
kahrl: it is all your fault |
02:20 |
Tesseract |
kahrl: git diff --shortstat |
02:21 |
kahrl |
77 files changed, 3615 insertions(+), 3743 deletions(-) |
02:22 |
kahrl |
(wc is now at: 9194 29550 258584) |
03:20 |
|
mrtux_ joined #minetest-dev |
03:20 |
|
mrtux_ joined #minetest-dev |
03:54 |
|
Miner_48er joined #minetest-dev |
03:57 |
|
ssieb joined #minetest-dev |
04:14 |
|
diemartin joined #minetest-dev |
04:22 |
kahrl |
if anyone has nothing to do: https://github.com/kahrl/minetest/commit/3924f2b7625b113bf641cf9843f0342c948ce51c |
04:23 |
VanessaE |
oof |
04:23 |
VanessaE |
someone's been busy. |
04:25 |
kahrl |
wait, that's the wrong commit, try: https://github.com/kahrl/minetest/commit/98194f4d5d61882d1cf45f356fd1f868651d51bc |
04:25 |
VanessaE |
still huge :P |
04:27 |
kahrl |
I believe if you disregard the boilerplate comments and code added by new header/source files it removes more code than it adds |
04:28 |
kahrl |
(by making GUIEngine reuse the ScriptApi framework that's already in place for the game) |
04:30 |
Tesseract |
GitHub hates mobile devices. Even their app has huge performance issues. |
04:31 |
Tesseract |
kahrl: What about #862? It will take me far to long to do the 0.0.0.0, :: thing... |
04:34 |
kahrl |
what was the problem with 862 again? |
04:45 |
|
diemartin joined #minetest-dev |
05:20 |
|
kaeza joined #minetest-dev |
05:50 |
|
mrtux joined #minetest-dev |
06:00 |
|
neko259 joined #minetest-dev |
06:09 |
|
darkrose joined #minetest-dev |
06:38 |
celeron55 |
wtf kahrl |
06:38 |
celeron55 |
nobody is going to review that |
06:38 |
celeron55 |
8D |
06:39 |
hmmmm |
once thing i don't get is why you have two engine.logs |
06:39 |
hmmmm |
s/once/one/ |
06:41 |
kahrl |
hmmmm: in the docs? I copied that from lua_api.txt |
06:42 |
celeron55 |
as random nitpicking, i hate calling functions "fct" |
06:42 |
celeron55 |
"fn" and "function" and "func" are fine; "fct" is not |
06:43 |
kahrl |
again, just copied that :P but I could change it |
06:43 |
celeron55 |
i know 8) |
06:43 |
hmmmm |
so wait, what's the purpose of this |
06:43 |
hmmmm |
seems like some of it is just undoing what sapier did |
06:43 |
celeron55 |
nobody can say anything meaningful about this unless you make a summary of what it does |
06:44 |
kahrl |
celeron55: I have to sleep now but I will do tomorrow |
06:44 |
kahrl |
hmmmm: what in particular? |
06:44 |
hmmmm |
you're going to sleep tomorrow? excellent |
06:44 |
hmmmm |
let's focus on this now |
06:44 |
hmmmm |
ah, adding the lua_State parameter back to the script_* callbacks |
06:44 |
kahrl |
:P |
06:45 |
kahrl |
oh, you mean script_run_callbacks? |
06:45 |
hmmmm |
yeah |
06:46 |
kahrl |
I did that to make s_base.h smaller because it's included a bunch of times |
06:46 |
kahrl |
and it's really an internal thing |
06:46 |
kahrl |
(some of what I did there is remove unneeded includes and make include files smaller) |
06:47 |
hmmmm |
that's always welcome |
06:47 |
celeron55 |
i'll do a compile time benchmark |
06:47 |
* kahrl |
dozes off |
06:50 |
|
EdB joined #minetest-dev |
06:55 |
celeron55 |
with: |
06:55 |
celeron55 |
real 5m20.484s |
06:55 |
celeron55 |
user 9m5.074s |
06:55 |
celeron55 |
sys 0m19.885s |
07:01 |
celeron55 |
without: |
07:01 |
celeron55 |
real 5m7.871s |
07:01 |
celeron55 |
user 8m58.605s |
07:01 |
celeron55 |
sys 0m18.199s |
07:01 |
celeron55 |
it increases compile time a bit |
07:02 |
celeron55 |
of course the main benefit in smaller headers is shortening of incremental compiles, but that's very hard to compare |
07:02 |
hmmmm |
i say we keep all of minetest in a single .cpp file for maximum compile |
07:02 |
celeron55 |
8)) |
07:02 |
hmmmm |
and with clang it'd be zomgbbqfast |
07:04 |
celeron55 |
anyway i got these warnings from kahrl's branch; i guess those could be fixed at the same time: http://paste.dy.fi/v6d |
07:04 |
celeron55 |
they're once again just copied from the current code but anyway |
07:06 |
celeron55 |
but it's good to acknowledge that assuming headers are kept as lightweight as possible, incremental compile times tend to be reversely proportional to the number of compile units, and total compile time tends to be proportional to the amount of compile units |
07:07 |
celeron55 |
it isn't beneficial to go to either extreme |
07:08 |
celeron55 |
actually, with bloated headers that becomes much more apparent |
07:08 |
celeron55 |
...but only when non-header stuff is modified |
07:08 |
celeron55 |
with bloated headers a header modification is such a pain it's better to not even think about it |
07:09 |
* celeron55 |
blah blah |
07:09 |
celeron55 |
i'll go do something more productive than rant about obvious things -> |
07:13 |
hmmmm |
mapgen.h has that problem |
07:13 |
hmmmm |
gotta get around to fixing that sometime. |
07:29 |
celeron55 |
(also in modern C++ development you basically just put everything in templated headers and then buy a supercomputer to compile it... it's insane)' |
07:43 |
|
WilliamBundy joined #minetest-dev |
07:48 |
|
WilliamBundy joined #minetest-dev |
07:48 |
WilliamBundy |
Hello. |
07:48 |
|
smoke_fumus joined #minetest-dev |
07:48 |
WilliamBundy |
Does anybody have any words of wisdom regarding modifying the physics of Minetest? |
07:50 |
smoke_fumus |
WilliamBundy: garry's mod would be proud. |
07:51 |
WilliamBundy |
smoke_fumus, Not that extreme. |
07:52 |
WilliamBundy |
smoke_fumus, But I wouldn't be against trying to weld ODE or Bullet onto the engine |
07:52 |
WilliamBundy |
smoke_fumus, if it was possible to make that work with the voxel setting. |
07:53 |
smoke_fumus |
why bullet? go directly to physiX |
07:54 |
WilliamBundy |
Is that open source now? |
07:54 |
smoke_fumus |
nope its still propiretary, but nothing restricts you from using it as the component |
07:55 |
WilliamBundy |
I wonder how good its linux support is. |
07:55 |
* smoke_fumus |
shrugs |
07:56 |
smoke_fumus |
ps3/360 supports it. some mac games work with it too. though i don't remember which ones |
07:56 |
smoke_fumus |
arkham asylum to example |
07:57 |
WilliamBundy |
I'd personally prefer to go with the open source ones, especially if the minetest source is under GPL |
07:58 |
WilliamBundy |
But, yes, modifying the built-in physics of minetest. |
07:59 |
celeron55 |
many are probably against any such thing, but in any case we only allow LGPL or more free libraries (GPL or proprietary won't be ever accepted) |
08:00 |
WilliamBundy |
I'm sure ODE is under such a licence, Wolfire is using it in Overgrowth, a commercial release |
08:00 |
celeron55 |
ODE is under BSD so that is fine license-wise |
08:02 |
WilliamBundy |
It's a pretty drastic change though, any way you look at it. |
08:03 |
* Taoki |
fully supports having physics in MT. Either BulletX or ODE... Bullet is more popular though |
08:04 |
smoke_fumus |
popular doesn't mean good. |
08:04 |
WilliamBundy |
I'd want to do tests before running with an implementation. |
08:04 |
smoke_fumus |
Look at blender to example - overblown piece of crap. |
08:05 |
WilliamBundy |
smoke_fumus, or: free modeling software! Now I don't have to shell thousands on commercial ones! |
08:05 |
smoke_fumus |
WilliamBundy: ....wings 3d? |
08:06 |
smoke_fumus |
besides - stop being cheap skunk. 3dsmax has self-educational student license, it has per-project licensing and it has subscription licensing, not only prime buying price |
08:07 |
smoke_fumus |
but back to free ones. In wings 3d you are shaping clay with fingers. In blender you shaping clay too. With the friggin fork. |
08:07 |
|
Calinou joined #minetest-dev |
08:08 |
smoke_fumus |
which also needs to open its teeth through dozen of shortcuts |
08:08 |
kaeza |
wtf |
08:08 |
WilliamBundy |
Didn't know about Wings. Haven't used/seen/tried 3dsmax, nor have I had to do 3d modeling. |
08:09 |
smoke_fumus |
you see? |
08:09 |
smoke_fumus |
popular does not mean good |
08:09 |
smoke_fumus |
http://www.wings3d.com/ |
08:09 |
WilliamBundy |
Windows, OSX, and Ubuntu should be prime examples of that. |
08:10 |
* smoke_fumus |
shrugs |
08:10 |
smoke_fumus |
well, what are you offering as a replacement for most used system? |
08:10 |
WilliamBundy |
Not to mention Vanilla Minecraft, Halo4+, Call Of Duty 5+, Skyrim, etc. |
08:10 |
WilliamBundy |
For physics? There's a bunch of smaller ones which I've come across |
08:10 |
WilliamBundy |
Whose names I can vaguely remember |
08:10 |
smoke_fumus |
pfft. uhuh. cod and skyrim might've accmulated users yes. Not as big of an audience like for, say Doom2 |
08:10 |
smoke_fumus |
in total i mean |
08:11 |
WilliamBundy |
Now we're edging into differing definitions of popularity. |
08:11 |
smoke_fumus |
Timed waves > point splash |
08:12 |
WilliamBundy |
There are usually good reasons to go with the most popular choice in programming/development circumstances |
08:12 |
WilliamBundy |
I'm no fan of C++, but lots of people use it, which means I have to learn it. |
08:12 |
smoke_fumus |
or, well - you know - most of people are cheap skunks which don't see good software behind their own greed |
08:13 |
smoke_fumus |
also again - 3dsmax self-educational license is completely free on condition that you will use it only for non-commercial works |
08:13 |
smoke_fumus |
which in your case - is fine |
08:13 |
WilliamBundy |
It's not greed when the marginal value of the time wasted is less than the cost of the better software |
08:15 |
WilliamBundy |
Back to what I wanted help with, the physics code looks like it's spread out over player, localplayer, collision and environment |
08:15 |
celeron55 |
smoke_fumus: in fact it's not possible to include anything restricted to "non-commercial" in minetest |
08:16 |
smoke_fumus |
celeron55: you don't charge a penny for minetest |
08:16 |
smoke_fumus |
it is non-commercial |
08:16 |
WilliamBundy |
But I could make a game for it, and sell it. |
08:16 |
smoke_fumus |
AD from site doesn't count as they doesn't restrict model delivery to customer |
08:16 |
celeron55 |
our releases are under LGPL and CC BY-SA, which mean they can be used for any commercial purpose if wanted |
08:16 |
smoke_fumus |
yeap, and you will break license |
08:16 |
Calinou |
Minetest is FOSS, and thus ability to use it commercially is a requirement |
08:16 |
WilliamBundy |
So long as I released my changes. |
08:17 |
WilliamBundy |
smoke_fumus, No, not at all. |
08:17 |
celeron55 |
any license that disallows commercial usage is incompatible |
08:17 |
smoke_fumus |
celeron55: then you should point out in license agreement that some of the parts of game are CC BY-SA but models are non-commertical CC-NC |
08:17 |
smoke_fumus |
that will do it |
08:17 |
WilliamBundy |
celeron55, This is for source inclusion in core? |
08:18 |
celeron55 |
yeah and that'd blow right through of our values |
08:18 |
smoke_fumus |
no it will not |
08:18 |
smoke_fumus |
it will be basic undestanding of law |
08:18 |
celeron55 |
you can make a separate game that is licensed in whatever way you like of course |
08:18 |
WilliamBundy |
So long as modifications to your code are released. |
08:18 |
smoke_fumus |
that will break license too. you are the dev - you point out what licensed under what |
08:19 |
smoke_fumus |
if they change license from lgpl - they break it |
08:19 |
smoke_fumus |
its their own damn problems |
08:19 |
smoke_fumus |
same with CC-NC |
08:19 |
WilliamBundy |
smoke_fumus, Dual licencing: you choose the licence |
08:19 |
smoke_fumus |
you responsibilities lie behind YOUR part of contibution to the project |
08:19 |
WilliamBundy |
LGPL: any changes made to this code must be released, may be compiled with GPL-INcompatible libraries |
08:20 |
smoke_fumus |
if some jackass will download source, and release it along witn models - you and autodesk can sue him |
08:20 |
smoke_fumus |
for the model use specifically |
08:20 |
kaeza |
... |
08:20 |
celeron55 |
smoke_fumus: we don't do things like that; that'd be just plain dicky |
08:21 |
smoke_fumus |
No, that will be fair |
08:21 |
smoke_fumus |
he read license agreement |
08:21 |
smoke_fumus |
models were pointed out as CC-NC |
08:21 |
smoke_fumus |
his ass is busted now. Case closed. |
08:21 |
WilliamBundy |
smoke_fumus, Have you read the GPL and LGPL? |
08:22 |
smoke_fumus |
WilliamBundy: i'm talking about the case where you release say mintest with CC BY-SA but IN license agreement point out that MODELS are CC-NC and reusing them for commercial purpose would be illegal |
08:22 |
smoke_fumus |
since they are created on non-commercial license of 3dsmax |
08:22 |
smoke_fumus |
once jackass uses em to make a $ - you lay a lawsuit on his ass |
08:22 |
smoke_fumus |
since he broke user agreement |
08:23 |
smoke_fumus |
if you wish to do that before autodesk i mean :D |
08:23 |
WilliamBundy |
Why would you want proper 3d models in a big-voxel game? |
08:23 |
smoke_fumus |
but if HE uses these models which YOU released under CC-NC - you held no responsibility for HIS actions |
08:23 |
smoke_fumus |
just saying |
08:23 |
WilliamBundy |
celeron55, It's nice to see a community that embraces the openness of their source/game |
08:23 |
celeron55 |
when a release of minetest is made, part of the release is the licenses that we use; it's inseparable from what is released and it's part of our product, and part of what our users appreciate |
08:24 |
smoke_fumus |
no, your users mainly appreciate gameplay and having a good time with product :D |
08:24 |
WilliamBundy |
smoke_fumus, yeah, but then he'd be stupid (not having done his homework), and would only be liable to be sued by the makers of 3dsmax or whoever found out. |
08:25 |
WilliamBundy |
*if the found out |
08:25 |
smoke_fumus |
WilliamBundy: i know. i just saying that you CAN. doesn't mean that you SHOULD. |
08:25 |
celeron55 |
smoke_fumus: even if they don't directly appreciate it, they appreciate some results of the community that it creates |
08:25 |
smoke_fumus |
i agree on that |
08:27 |
celeron55 |
of course it's inefficient if you just look at the direct end result; nobody can argue with that; but it simply isn't the only priority here |
08:28 |
WilliamBundy |
What does BS stand for in the source? |
08:28 |
celeron55 |
https://github.com/minetest/minetest/blob/master/src/constants.h#L66 |
08:29 |
WilliamBundy |
Didn't know where to look, thanks. |
08:29 |
Taoki |
<WilliamBundy> What does BS stand for in the source? - Code that's considered bulls**t :P |
08:30 |
Taoki |
J/K... dunno what myself |
08:30 |
smoke_fumus |
:D |
08:30 |
smoke_fumus |
search google code by //* fuck or something like that |
08:30 |
smoke_fumus |
you would be surprised xD |
08:30 |
WilliamBundy |
Tilesize, essentially, making sure you're not breaking stuff with float/int conversions. |
08:31 |
smoke_fumus |
WilliamBundy: so, in minetest, does tilesize IS 1 standard opengl unit which is 1m? |
08:31 |
celeron55 |
(dunno if it makes more harm than good, but it's there and it's also embedded in all network/file formats so it's practically impossible get rid of it) |
08:32 |
WilliamBundy |
I don't think it's very important, overall, I was just wondering why it was there. |
08:32 |
smoke_fumus |
standardizing your inputs. certanly more good, except if you expect .RAW files. than you will need ugly import construction with rescaling |
08:33 |
smoke_fumus |
*then |
08:35 |
WilliamBundy |
Right now I'm most intent on making the movement feel more satisfying/realistic |
08:35 |
WilliamBundy |
Not really realistic, but believable. |
08:36 |
Taoki |
What I'd love to see physics for are dropped items and ragdoll deaths for dead mobs / players |
08:36 |
Taoki |
Yes, we can and should have ragdolls for something like Minetest :) |
08:36 |
Taoki |
Oh, and perhaps to make mined blocks drop in pieces... that too of course |
08:36 |
WilliamBundy |
I'd like to see blocks drop from broken nodes, but that's beyond me at this point. |
08:37 |
WilliamBundy |
First I'd like to make jumping feel more parabolic |
08:37 |
Taoki |
Yes. Imagine that instead of particles when breaking a node (or alongside them), a the block drops down in cracks that roll around the ground |
08:38 |
WilliamBundy |
That not only sounds difficult and time consuming, but also annoying gameplay-wise |
08:39 |
Taoki |
I think it would look very nice |
08:40 |
Taoki |
Can be small pieces to not be confusing |
08:40 |
WilliamBundy |
Oh, and another question: what's the theoretical limit of world-size in minetest? It seems to use something similar to cubic chunks (minecraft mod), so, greater than 65000x65000x65000? |
08:40 |
WilliamBundy |
Taoki, I don't understand the effect you're going for |
08:41 |
Taoki |
WilliamBundy: Mined blocks breaking and falling to pieces with realistic physics |
08:43 |
WilliamBundy |
At what density then? Usually, the texels are 1/16m, which would mean creating 32768 cubes |
08:44 |
WilliamBundy |
for all of them. |
08:44 |
Taoki |
Or, we can just have the dropped item fall (like in Minecraft) only with Bullet / ODE physics instead |
08:44 |
Taoki |
Yeah, that is a good question |
08:44 |
WilliamBundy |
The idea behind those are that they'd be opened up to lua |
08:44 |
Taoki |
Prolly best to have the item drop like in MC. But again, with real physics in our case |
08:44 |
Taoki |
sure |
08:45 |
WilliamBundy |
So map/game makers, could include complicated physics things in their games |
08:45 |
VanessaE |
technic has that, and it works fairly well |
08:45 |
Taoki |
Anyway, someone with enough experience should test and see which works best (BulletX or ODE) |
08:45 |
Taoki |
yes |
08:45 |
Taoki |
If they're added however, they should allow both physical dropped objects, as well as armature ragdolls. |
08:45 |
WilliamBundy |
VanessaE, You mean minecraft-style falling blocks? |
08:45 |
Taoki |
Imagine sheep ragdolling down the blocky hills when you hit them :) Or sand monsters, etc |
08:46 |
Taoki |
So... awesome |
08:46 |
VanessaE |
yup |
08:46 |
Taoki |
Yes, Technic has those |
08:46 |
VanessaE |
they don't fall to pieces like you guys were discussing |
08:46 |
WilliamBundy |
VanessaE, I think the falling item-block mechanic is one of the coolest subfeatures of minecraft |
08:47 |
WilliamBundy |
Very satisfying in the alpha versions to pick up 50 things at once and hear all of the little pops as they appear in your inventory |
08:47 |
VanessaE |
but if they fall, they can be made to fall to pieces too I'd think (fake it with a few randomly-chosen, large meshes that look like scattered pieces) |
08:47 |
Taoki |
Mods would allow that yes |
08:47 |
WilliamBundy |
If we're going that far with the physics, it might just be better to treat each block as a collection of fragments |
08:47 |
WilliamBundy |
And breaking them bit by bit with every strike |
08:48 |
WilliamBundy |
once ~60% are broken, one last strike breaks the rest. |
08:48 |
Taoki |
Would be even more awesome :) |
08:48 |
WilliamBundy |
But that wasn't my intention with the addition of a middleware physics engine. |
08:48 |
Taoki |
Yeah, that would be a separate feature |
08:49 |
WilliamBundy |
For cycles burned and programmer time used v. gameplay additions, I don't think it's worth it until we get better computers |
08:50 |
VanessaE |
WilliamBundy: almost sounds like that request I made sometime back for persistent node damage |
08:51 |
WilliamBundy |
Mostly, I'd like to see it used for mechanical power systems, entities, and the occasional effect. |
08:51 |
|
jin_xi joined #minetest-dev |
08:52 |
WilliamBundy |
VanessaE, would be an interesting game mode for modders to use |
08:52 |
WilliamBundy |
I can imagine it having lots of uses in a combat game |
08:52 |
WilliamBundy |
A per-node setting. |
08:53 |
Taoki |
Anway, as far as physics go, the important part is someone with the skill and knowledge to integrate ODE or BulletX into Minetest, and allow the LUA API to enable it on entities. |
08:53 |
WilliamBundy |
Taoki, First things first, adding hooks to existing physics in Minetest |
08:53 |
WilliamBundy |
Even more first things first: figuring out where the physics is and how it works. |
08:54 |
Calinou |
"ODE" as if it wasn't terrible |
08:54 |
WilliamBundy |
Calinou, I have no experience with it, I just know that it exists. |
08:54 |
Taoki |
There should probable be a set_physics function with balues such as: 0 = default simple physics (currently used for thrown items), 1 = BulletX physics, 3 = BulletX physics + armature ragdolls (if that entity is set to a rigged mesh, such as b3d or x) |
08:54 |
Calinou |
bullet is probably a better choice |
08:54 |
Taoki |
**values |
08:54 |
WilliamBundy |
Calinou, agreed. |
08:54 |
Taoki |
Erm 2 not 3 |
08:54 |
Taoki |
Yes, agreed too |
08:54 |
WilliamBundy |
Taoki, don't get ahead of yourself. |
08:55 |
Taoki |
ODE is nice but Bullet seems more firmly developed and common |
08:55 |
Calinou |
ODE: every game implementing it has a terrible and buggy implementation |
08:55 |
Calinou |
bullet: it works |
08:55 |
WilliamBundy |
Overgrowth? |
08:55 |
Taoki |
Calinou: Years ago when I tried it in opensim, Bullet looked worse than ODE. But both were fine |
08:56 |
WilliamBundy |
Anyway, this isn't a feature I'd consider until the UX/basic gameplay is at minecraft levels of polish. |
08:57 |
WilliamBundy |
Part of the big attraction of minecraft to modders/devs is the amount of stuff it does for you |
08:57 |
WilliamBundy |
Animations, default menus, extensible systems |
09:16 |
WilliamBundy |
Does the player have a real velocity property? or just speed, reset every frame on input? I can't find where the integration happens, so I don't know exactly what it does. |
09:47 |
|
sullome joined #minetest-dev |
10:36 |
|
iqualfragile joined #minetest-dev |
10:42 |
WilliamBundy |
With a newfound, though elementary, understanding of the movement code, my wtf/min are over 9000. |
10:43 |
|
EdB joined #minetest-dev |
10:53 |
|
Akien joined #minetest-dev |
10:54 |
|
Calinou joined #minetest-dev |
11:10 |
WilliamBundy |
Modifying other people's code is like playing old adventure games. |
11:17 |
celeron55 |
this code has been evolving continuously for three years, so there's all kinds of stuff to be found 8) |
11:18 |
WilliamBundy |
I've managed to minimally add something that fixes my pains with jumping/moving, but I'm beginning to think that strapping bullet on is a good idea. |
11:19 |
WilliamBundy |
I'll tease my changes into a pull request on github, if that's alright with you |
11:22 |
kaeza |
putting a Bullet in Minetest's HEAD seems a bit extreme |
11:23 |
kaeza |
</badpun> |
11:23 |
WilliamBundy |
What about it's trunk? |
11:23 |
WilliamBundy |
(is that worse?) |
11:26 |
celeron55 |
that means the same thing but in subversion's terms |
11:27 |
celeron55 |
good pun though actually, though 8) |
11:27 |
celeron55 |
-though |
11:27 |
WilliamBundy |
I've never used subversion |
11:27 |
WilliamBundy |
Thankfully. |
11:29 |
|
PilzAdam joined #minetest-dev |
12:01 |
WilliamBundy |
Is it planned to add minecraft-style block-dropping (rotating cubes) to minetest_game? |
12:01 |
sfan5 |
there are rotating cubes |
12:01 |
WilliamBundy |
Not by default? |
12:01 |
sfan5 |
but some mods still define some property in node defs that makes them not appear cubic |
12:01 |
sfan5 |
... |
12:01 |
Calinou |
you can drop them, but stuff mined directly goes into inventory. |
12:02 |
Calinou |
this is a feature, not a bug. |
12:02 |
Calinou |
there's no fun in having to collect stuff you mine, tbh |
12:02 |
sfan5 |
it was inventoryimage |
12:02 |
WilliamBundy |
Ah, that was always a feature I liked so |
12:02 |
Calinou |
there are mods for that |
12:02 |
sfan5 |
if there is no inventory image defined they will look cubic when dropped, otherwise flat |
12:02 |
WilliamBundy |
sfan5, after being mined |
12:03 |
* sfan5 |
points at what Calinou said |
12:03 |
WilliamBundy |
Yes, I know. |
12:30 |
Calinou |
https://github.com/minetest/minetest/pull/866 |
12:30 |
Calinou |
inb4 refusal |
12:30 |
Calinou |
WilliamBundy: there used to be less friction, this is no longer the case :P |
12:30 |
WilliamBundy |
In the air? |
12:31 |
WilliamBundy |
It feels pretty subtle to me. |
12:31 |
WilliamBundy |
I remember playing a version wayback when you floated everywhere (it felt like) |
12:33 |
WilliamBundy |
Would you prefer I rewrite the description telling of the immersion breaking jarring stop the player would come to? |
12:40 |
Exio4 |
what's up with the minetest.conf settings for movement_damping_ground and movement_damping_air? |
12:43 |
WilliamBundy |
If I say "What settings?" are you going to reply: "Exactly." |
12:43 |
WilliamBundy |
*? |
12:43 |
Exio4 |
nah :P |
12:43 |
Exio4 |
https://github.com/minetest/minetest/blob/master/minetest.conf.example#L320 |
12:43 |
Exio4 |
like those, plus the thing of they being managed by the server, not a client-side setting |
12:46 |
WilliamBundy |
Let me look at the headers |
12:47 |
WilliamBundy |
The movement code is only in LocalPlayr |
12:47 |
WilliamBundy |
LocalPlayer* |
12:48 |
WilliamBundy |
I'm assuming that the server must have a copy of that too |
12:48 |
Exio4 |
as far as i know, those settings are "managed" by the server, and the client just uses the ones that the server sends (or fallbacks to the defaults) |
12:49 |
Exio4 |
there isn't any "fly protection" right now |
12:49 |
WilliamBundy |
Settings-wise? All of those are constants in the code, which don't appear to be set by anythin.g |
12:49 |
Exio4 |
WilliamBundy: those settings in server's minetest.conf .. |
12:50 |
WilliamBundy |
# By default, all the settings are commented and not functional. |
12:50 |
WilliamBundy |
Does that mean they don't work at all? or aren't used? |
12:50 |
Exio4 |
that is the .example |
12:50 |
Exio4 |
look at defaultsettings.cpp |
12:51 |
|
troller joined #minetest-dev |
12:52 |
WilliamBundy |
I don't know what to say. Looks like lazy design/incomplete implementation |
12:53 |
WilliamBundy |
DRY violation |
12:55 |
Exio4 |
would you use doxygen for generating the configuration example? |
12:55 |
Exio4 |
good idea! |
12:55 |
WilliamBundy |
Not that, in player.cpp |
12:56 |
WilliamBundy |
I'm trying to find where these get set, if not in the constructor |
12:56 |
WilliamBundy |
/ Initialize movement settings at default values, so movement can work if the server fails to send them |
12:57 |
WilliamBundy |
Wouldn't it be better to have a copy of the default settings on hand and draw them from there? |
13:01 |
|
Akien_ joined #minetest-dev |
13:08 |
PilzAdam |
WilliamBundy, seems like you dont understand our config system |
13:09 |
WilliamBundy |
PilzAdam: Not yet, at least. |
13:09 |
WilliamBundy |
More and more by the second. |
13:10 |
PilzAdam |
defaultsettings.cpp contains the default values for settings that are needed by the engine; minetest.conf overrides these settings |
13:10 |
PilzAdam |
minetest.conf.example has nothing to do with this, this file is only for documentation |
13:10 |
WilliamBundy |
PilzAdam, I was looking for how it was all hooked together |
13:11 |
PilzAdam |
in case of the player physics the server has the settings and sends it to the client |
13:11 |
PilzAdam |
the settings in player.cpp are just fallback defaults in case the server doesnt send them (for some reason) |
13:12 |
WilliamBundy |
They're actually set in the client.cpp file under TOCLIENT_MOVEMENT |
13:12 |
PilzAdam |
yep |
13:13 |
WilliamBundy |
A simple fix? |
13:14 |
WilliamBundy |
add the stuff in defaultsettings, add a few lines to Server:SendMovement, and add a few lines to client. |
13:14 |
PilzAdam |
basically that |
13:14 |
PilzAdam |
but it requires a protocol version bump |
13:15 |
PilzAdam |
for now just read it in a try-catch block in the client |
13:15 |
PilzAdam |
so it doesnt crash if a new client connects to an old server |
13:17 |
WilliamBundy |
what should I catch for? |
13:17 |
PilzAdam |
SerializationError |
13:18 |
WilliamBundy |
Are clients supposed to be backwards compatible like that? |
13:18 |
PilzAdam |
yes |
13:20 |
PilzAdam |
btw, we plan to implement node-specific friction, does this conflict with your changes? |
13:20 |
WilliamBundy |
It shouldn't. |
13:21 |
WilliamBundy |
That was something I was going to look into doing myself. |
13:21 |
WilliamBundy |
Depending on how you choose to implement friction, my changes are a base for that. |
13:23 |
PilzAdam |
so basically doing this in server side settings would be wrong, we should move it to nodedef from the beginning on |
13:25 |
WilliamBundy |
I don't think so. |
13:27 |
WilliamBundy |
What happens in the default code is, when the player stops pressing a key, the target speed becomes zero |
13:27 |
PilzAdam |
first adding setttings and changing the protocol, and then later moving these settings to nodedef and changing protocol again doesnt seem good to me |
13:28 |
WilliamBundy |
Maybe the ground_damping part of it, but air damping might well be system-wide |
13:28 |
PilzAdam |
well, air is hardcoded in the core anyway |
13:30 |
WilliamBundy |
This changes it so that the target speed becomes a fraction of the previous speed, based on a damping value if no key was pressed. |
13:30 |
WilliamBundy |
So, actually, this is all to do with stopping motion, not resisting it. |
13:31 |
WilliamBundy |
Friction would have to change the speed while the key is pressed down. |
13:31 |
celeron55 |
why would you do that |
13:31 |
WilliamBundy |
Target speed under high friction is slower than under low friction |
13:32 |
celeron55 |
what does friction have to do with speed |
13:32 |
WilliamBundy |
friction is a force that opposes motion |
13:32 |
celeron55 |
eh |
13:32 |
WilliamBundy |
So, the net force is lower |
13:33 |
WilliamBundy |
therefore the max speed is lower |
13:33 |
celeron55 |
i guess i won't know what you're actually doing until you have made it |
13:33 |
WilliamBundy |
What you probably want is max max speeds mapped to nodedefs |
13:33 |
|
Zeitgeist_ joined #minetest-dev |
13:33 |
WilliamBundy |
I guess the "basic" version of the damping fix is already a pull request |
13:34 |
WilliamBundy |
It's not hooked into the settings, but it may not need to be. |
13:34 |
|
Neological joined #minetest-dev |
13:35 |
WilliamBundy |
Technically, in a game like this, we aren't implementing friction (for players at least, for entities it might be different), but more like difficulty moving through terrain |
13:58 |
celeron55 |
to talk on this high a level, i must mention that if walking in some places is made slower, then walking in some other places must be made faster |
13:59 |
celeron55 |
otherwise it averages at too boring |
13:59 |
celeron55 |
that's much of personal preference i guess though |
14:11 |
WilliamBundy |
The Better Than Wolves mod for minecraft implements this already |
14:11 |
WilliamBundy |
Though he added it to add incentive to road building. |
14:12 |
WilliamBundy |
In fact I'd call that mod a model for survival-type games |
14:12 |
WilliamBundy |
But I imagine FlowerChild would have a fit about that. |
14:16 |
WilliamBundy |
He changes it so that walking on stone, cobblestone, gravel, bricks, wood and some other ones is faster |
14:17 |
WilliamBundy |
Walking on grass/dirt is normal speed (or slower) |
14:17 |
WilliamBundy |
tall grass, snow, sand, leaves and some others are way slower |
14:31 |
harrison |
i was conceived at |
14:31 |
harrison |
Woodstock |
14:31 |
harrison |
in the back of a VW microbus |
14:31 |
harrison |
and raised in an anarchist commune |
14:31 |
harrison |
by wolves |
14:31 |
harrison |
with tiedyed fur |
14:33 |
WilliamBundy |
and? |
14:35 |
|
Calinou joined #minetest-dev |
14:40 |
harrison |
I no longer consider myself an anarchist. |
14:41 |
harrison |
Code testers needed for new renderer. Must have desktop i7 or better. |
14:43 |
WilliamBundy |
anomie is pretty terrible, but I think I could get used to anarchy. |
14:47 |
kaeza |
darkrose, https://dl.dropboxusercontent.com/u/100008207/screenshot_1842826857.jpg |
14:48 |
kaeza |
can you see those stripes in the leaves? |
14:50 |
sfan5 |
^ z-fighting |
14:51 |
darkrose |
yeah, wierd... you've got new style leaves (or whatever it is) turned off too |
14:51 |
kaeza |
yup, I don't like it |
14:51 |
kaeza |
(+ no smooth lighting |
14:51 |
kaeza |
) |
14:52 |
darkrose |
yeah, can reproduce, probably removed something I shouldn't have :D |
14:53 |
kaeza |
ah well, it ain't so bad after all |
14:53 |
kaeza |
maybe I should open an issue/whatever on gitorious? |
14:54 |
|
hmmmm joined #minetest-dev |
15:00 |
celeron55 |
by the way, how can you use gitorious? for all i've tried to do there, it's worse than anything |
15:00 |
celeron55 |
github and bitbucket are bad enough |
15:01 |
sfan5 |
github is bad? |
15:02 |
darkrose |
my only gripe with gitorious is it's lack of issue tracker... or extremely well hidden one if it is there |
15:03 |
celeron55 |
sfan5: well, github and bitbucket are the best out there, so maybe it's a bit unfair to call them bad... but it's not like there's nothing to improve |
15:03 |
sfan5 |
gitorious is really hard to use |
15:14 |
|
Jordach joined #minetest-dev |
15:29 |
|
rubenwardy joined #minetest-dev |
15:40 |
|
neko259 joined #minetest-dev |
15:47 |
thexyz |
gitlab is good |
15:47 |
thexyz |
if you need self-hosted one |
16:14 |
troller |
dirt_with_snow remover and weather stuff: https://github.com/proller/minetest/commit/b5a7b15c89bc0a36acec94c8a7454fd6fb5a9958 |
16:23 |
Exio4 |
you are doing the same thing that happened with finite_liquids |
16:24 |
troller |
happened what? |
16:24 |
PilzAdam |
its kinda funny how everyone tells you to develop it in a seperate branch and you simply ignore that |
16:25 |
troller |
i'm develop it in a separate branch and want to merge working things to master |
16:28 |
troller |
and this ^^ fixes forever staying dirt_with_snow after snow removing |
16:29 |
Exio4 |
you should have develop the 'whole weather feature set' and complete the TODO before pushing it to upstream |
16:29 |
Exio4 |
that is why branches are here |
16:30 |
troller |
and never push it to upstream because all features needs 1-2 years? |
16:30 |
troller |
or more |
16:32 |
Exio4 |
you are making a change now, a fix the other week |
16:32 |
Exio4 |
and a new feature the other |
16:36 |
troller |
who write ideal code and never fix it? |
16:36 |
Exio4 |
you write unfinished code and push it to upstream |
16:36 |
Exio4 |
it is different. |
16:37 |
troller |
i write finished small chunks |
16:38 |
troller |
some problems can occur after months of testing |
16:38 |
PilzAdam |
thats the problem, we dont want you to make small chunks |
16:39 |
PilzAdam |
nobody can see what goal you are aiming at, and its hard to judge if these things are good or not if you dont see the context |
16:40 |
troller |
and nobody will allow one big chunk |
16:40 |
troller |
my goal - interesting dynamic world |
16:41 |
PilzAdam |
well, if you think that your patch would never be merged then you probably work on the wrong feature |
16:44 |
troller |
nobody here wants big changes |
16:45 |
PilzAdam |
what makes you think that? |
16:46 |
troller |
experience of merging not big patches |
16:57 |
celeron55 |
it's a tough problem really |
16:58 |
celeron55 |
or, actually |
17:01 |
celeron55 |
well think of it this way: nobody will allow these small broken chunks |
17:01 |
celeron55 |
so a big working chunk is better |
17:01 |
celeron55 |
also, if you'd rebase your work as often as you currently push it, you woudln't have rebase problems |
17:01 |
celeron55 |
wouldn't* |
17:02 |
celeron55 |
the only problem that exists is forming some kind of trust between others and your work; i'd recommend working with some of the windows packagers to build test versions of your branch |
17:05 |
celeron55 |
we don't want to give you a way to hide a bad end result or bad performance or anything behind small creepy patches |
17:06 |
celeron55 |
you don't have a track record of doing good code and the right things; it's just a fact that you need to swallow |
17:10 |
hmmmm |
like the random version changes for no other reason than to support something *in the future* |
17:10 |
hmmmm |
"useful for debugging", "some mods can use it now" - really..? |
17:10 |
hmmmm |
useful for whose debugging |
17:11 |
hmmmm |
i don't know, maybe i should start paying closer attention and scrutinizing pull requests closer anymore |
17:11 |
hmmmm |
s/closer/more/ |
17:13 |
hmmmm |
i'll admit maybe it's my fault all this happened, because i unconsciously thought someone else would point out problems and other weird things with the pull requests |
17:14 |
hmmmm |
pull requests, requests to push, whatever |
17:16 |
PilzAdam |
I wonder who actually agreed to push the weather stuff |
17:23 |
celeron55 |
me i guess, but this isn't going really how i thought it'd go |
17:24 |
celeron55 |
this is a problem because *all* of what we have done in the past is just improving what we have had |
17:24 |
celeron55 |
weather is something we *haven't* had |
17:24 |
celeron55 |
so first of all, nobody wants to even talk about it |
17:24 |
celeron55 |
that's not a good ground to do reasons on |
17:25 |
celeron55 |
umm... i mean, decisions |
17:26 |
celeron55 |
it could be very bad for the long term to say "no more features", altough it's easy for the core devs at the current moment |
17:26 |
celeron55 |
that's why everyone should speak up about it |
17:30 |
celeron55 |
and ultimately there should be a decision whether it will be merged if it is executed reasonably well |
17:31 |
celeron55 |
if there is not, at least i am disappointed (and obviously proller is) |
17:34 |
celeron55 |
i could even use not answering something well argued to this issue as a reason for voting towards taking away core dev statuses, because having too many naysayers is definitely poisonous (however, those are tough decisions as it's a very slippy slope between too much badly coded hasty features and too much conservatism) |
17:34 |
harrison |
make me a core dev! we can switch to raytraced voxels! |
17:35 |
celeron55 |
*inserts harrison into the imaginary "hell no, never" list* |
17:35 |
Jordach |
haha |
17:36 |
harrison |
i thought you would say that |
17:36 |
harrison |
celeron55 what cpu do you dev on? |
17:36 |
* sfan5 |
bets on an Intel Celeron |
17:36 |
celeron55 |
doesn't sound like anything relevant |
17:37 |
harrison |
you are just insecure. i have that effect on some people. this is your house so i will pipe down before being asked. |
17:40 |
sullome |
Hello everybody. Is someone working on chat now? |
17:43 |
hmmmm |
you know, Celeron G1610s are great bang-for-the-buck processors |
17:44 |
hmmmm |
celeron, how much of a problem do you think it'll create if we revert the entire weather thing? |
17:45 |
hmmmm |
i really want to get 0.4.8 going like asap but there are too many unfinished things that just don't qualify as "stable" at all |
17:46 |
PilzAdam |
hmmmm, your schematic change needs to go in before 0.4.8 since it changes the API |
17:46 |
PilzAdam |
and we dont want to change the API of stable releases |
17:46 |
hmmmm |
pilzadam, i'm still trying to figure out if it's a good idea to change it or not |
17:46 |
PilzAdam |
sullome, what do you mean "working on chat"? |
17:46 |
hmmmm |
but the thing is, once we get 0.4.8 out, we can start doing the faster release model and people won't rely on upstream as much |
17:46 |
hmmmm |
as it'd be easier to break things without ill consequence |
17:46 |
celeron55 |
it can't be reverted completely in the strict meaning of that word (we're not dropping support for reading map version 26 as 25), but otherwise it wouldn't be too much of a problem i guess |
17:46 |
celeron55 |
a political problem it could be though |
17:47 |
hmmmm |
technically speaking, if things break in between versions then it's their fault for using something completely unstable |
17:47 |
hmmmm |
so we'd have much more freedom in that regard |
17:47 |
hmmmm |
and from now on |
17:47 |
hmmmm |
big features NEED to be fully developed into something useful in their own branch BEFORE pushing to upstream |
17:47 |
celeron55 |
that wouldn't make any sense because people have run worlds for a long time with possibly some version 26 stuff |
17:48 |
celeron55 |
we can't require those to revert to weeks old backups |
17:48 |
hmmmm |
like with voxelmanip and schematics and crap like that... those were all done in one go, and it worked out relatively painless (until people wanted me to tack shit on top of the schematics anyway) |
17:48 |
celeron55 |
and yes, this serves as a proof that big features should be developed to useful stage between going upstream |
17:49 |
celeron55 |
before* |
17:50 |
hmmmm |
come 0.4.8, can we add an explicit disclaimer that we aren't responsible for screwups that happen as a result of using unstable versions? the freedom to change things between versions is very important |
17:51 |
hmmmm |
so then if something didn't work out like the weather, we don't require hacks for things that never even officially made it in the first place |
17:51 |
hmmmm |
and schematic api as well |
17:52 |
celeron55 |
it would create a problem |
17:52 |
celeron55 |
the problem that the code would get way less testing |
17:52 |
sullome |
PilzAdam, (maybe my bad english) |
17:52 |
sullome |
Now: client type message, and then it show in chat. register_on_chat_send() in LUA don't overwrite default message processing, it just do something else. (Maybe I'm not right, I don't know.) |
17:52 |
sullome |
And I think, that this is bad. If I want to do (?) a local chat on my server, I can't do it by mods! If there is a way to disable default message processing, it would be better. |
17:52 |
sullome |
(Again, sorry for bad english) |
17:52 |
hmmmm |
(sorry for the bad lag) |
17:52 |
celeron55 |
currently we have community-run servers that run git head that make the code go through very real-world testing |
17:53 |
celeron55 |
and regular unstable builds that do the same thing |
17:54 |
PilzAdam |
sullome, the Lua function can override the default processing, but it cant disable that the client who has send it doesnt put it into his chat |
17:54 |
celeron55 |
it's not reasonable to move to a different development model unless some kind of a flag is added to worlds that make minetest ask users whether they want to potentially break it infinitely and that they require backups; or something similar so that there's less chance that people break stuff accidentally |
17:54 |
hmmmm |
like in FreeBSD, *practically nobody but developers* uses -CURRENT in the real world at all, and yet it somehow has a reputation of almost completely bugfree upon release |
17:55 |
hmmmm |
but then again i guess that's more doable because they have way more developers |
17:55 |
celeron55 |
they also don't advertise features in the midway of development and don't have end-user application developers (modders to us) that immediately use every kernel and system library feature when they can get their hands on them |
17:56 |
celeron55 |
there are many reasons why you're talking about a relatively large change to our culture |
17:57 |
celeron55 |
a workaround could be to switch development to a new real-unstable branch if that is desired |
17:57 |
celeron55 |
and then put enough bells and horns in the way of people getting it |
17:57 |
hmmmm |
well i think that's stupid because it merely centralizes instability instead of people just developing features in their own branches |
17:57 |
celeron55 |
it's been actually done before in MT's history |
17:57 |
celeron55 |
the need for it tends to be periodical |
17:57 |
sullome |
PilzAdam, Lua function can? Err... please, tell me how. I made a simple mod for testing... |
17:57 |
sullome |
minetest.register_on_chat_message(function(name, message) |
17:57 |
sullome |
minetest.chat_send_all(name .. " send a message!") |
17:57 |
sullome |
end) |
17:57 |
sullome |
And it's not work. Default processing still.... runs (?). |
17:58 |
celeron55 |
sullome: don't talk about modding in here |
17:58 |
hmmmm |
sullome, sounds like a modding problem, should probably discuss it in #minetest for better responses |
17:58 |
celeron55 |
go to #minetest or #minetest-mods or something |
17:58 |
sfan5 |
sullome: try adding "return true" |
17:58 |
sullome |
Sorry |
17:58 |
sullome |
Thanks |
17:58 |
|
sullome left #minetest-dev |
18:00 |
hmmmm |
but anyway |
18:00 |
hmmmm |
having a super unstable branch, i suppose, would be needed if more than one person is working on a huge new feature |
18:00 |
hmmmm |
we should write all of this procedure down actually |
18:01 |
hmmmm |
one person working on a new feature -> personal branch |
18:01 |
hmmmm |
multiple people working on a really huge new feature -> minetest repo branch |
18:04 |
celeron55 |
when has the second one even last happened |
18:05 |
hmmmm |
i guess lua's introduction? before me, of course |
18:05 |
hmmmm |
and i'm thinking we'd need to use it again for 0.5.x |
18:09 |
celeron55 |
it looks like a "next" branch was used when 0.4.0 was being made |
18:09 |
celeron55 |
when moving from 0.4.dev-* to that, i mean |
18:12 |
celeron55 |
there's really nothing like that going on currently so whatever, it shouldn't really be needed... except if weather is going to be developed as a non-personal thing |
18:14 |
hmmmm |
no, no, weather is a personal thing definitely. i'm saying this next branch is what we'd use for 0.5.x.. you know, *that*. |
18:14 |
celeron55 |
yeah i get that |
18:18 |
hmmmm |
so, er, i need more feedback on the schematic version change before i do it, because this *will* break things for people and it's important that it's the right decision |
18:19 |
hmmmm |
the thread on the forums didn't really work out as you can tell |
18:19 |
hmmmm |
i'd also have to use a modified version of readnode to read raw schematic data, one that sets param1 to 0xFF by default instead of 0 but i fear that this is inconsistent |
18:21 |
celeron55 |
i don't really want to get myself involved with the schematic thing; you should be able to handle it by yourself |
18:21 |
hmmmm |
the specifics of what would need to be changed are in that thread, https://forum.minetest.net/viewtopic.php?id=6808 so seriously, any feedback? i really wonder if this is worth it. i've also learned my lesson that tacking on ugly features for reverse compatibility when it's still somewhat early is a bad idea. |
18:21 |
celeron55 |
it's probably easier to do it in a more compatible way than you think though |
18:22 |
|
iqualfragile_ joined #minetest-dev |
18:22 |
hmmmm |
i know how to do it in a more compatible way, just fix up the values they give for the schematics. but that adds cruft |
18:22 |
celeron55 |
well if you're determined to stick with it, commit it already |
18:22 |
celeron55 |
every minute makes it worse |
18:23 |
celeron55 |
but breaking compatibility without valid enough reason doesn't make people happy anyway |
18:24 |
hmmmm |
if we keep adding workarounds for every change, we'll end up like windows |
18:24 |
celeron55 |
you can add a wrapper to builtin/deprecated.lua with a date in comments when it should be removed |
18:24 |
celeron55 |
and loud error loggings |
18:25 |
hmmmm |
i could, but the modders who wrote things using schematics already are active and can change their mods in no time at all |
18:25 |
celeron55 |
... |
18:26 |
celeron55 |
just do it god damnit |
18:26 |
celeron55 |
no need to be so pedantic |
18:26 |
hmmmm |
then if it doesn't work for an end user, they can say "oh, did you update to 0.4.8? you can't use the unstable version" |
18:26 |
hmmmm |
what? this is important |
18:26 |
hmmmm |
alright w/e. |
18:27 |
celeron55 |
my opinion will be, without change, to add it for a period to builtin/deprecated.lua and announce the change clearly on the forum; but it's still up to you what you do |
18:27 |
celeron55 |
actually, if it's just an unreleased modding api thing, nobody will care |
18:27 |
celeron55 |
it's like three magnitudes less important than file formats |
18:28 |
hmmmm |
that's great then |
18:28 |
PilzAdam |
hmmmm, a question about the new code: if I have 1 node (lets call it "a") in the schematic, but set the probability for it to 0, will this node be checked when you place the schematic, i.e. will it print "'a' not defined" if its missing? |
18:29 |
celeron55 |
as long as nobody fucks up file formats, there won't be much problems |
18:29 |
hmmmm |
pilzadam, yes it will |
18:29 |
PilzAdam |
thats not good |
18:29 |
hmmmm |
if you're wondering about ignore nodes, they're changed to air. |
18:29 |
hmmmm |
if you read the code you'd know that^ |
18:29 |
hmmmm |
air with 0 probability |
18:30 |
PilzAdam |
so I cant create schematics for minetest_game in a world that has a different node than "air" |
18:31 |
PilzAdam |
even if I change the probability of that airlike node to 0 |
18:31 |
hmmmm |
there will always be air, no matter what. |
18:31 |
PilzAdam |
what? |
18:32 |
PilzAdam |
imagine a custom game, e.g. a spacegame that has vacuumin instead of air |
18:32 |
hmmmm |
ignore and air are always registered so i don't see any problem |
18:32 |
hmmmm |
what's your point exactly? i don't get it |
18:32 |
celeron55 |
PilzAdam: well, even a space game will have air by the default "empty" node; it's just a naming thing |
18:33 |
PilzAdam |
if I create a schematic in that game and change all probabilities of the vacuum node to 0, then it would still complain if I want to place that schematic in minetest_game, since vacuum is not define there |
18:33 |
PilzAdam |
wouldnt it? |
18:34 |
celeron55 |
(the empty node being "air" is inherited directly from the very first versions of minetest) |
18:34 |
hmmmm |
no not at all |
18:34 |
hmmmm |
there is always a node titled "air", in every version |
18:34 |
hmmmm |
any game rather |
18:34 |
hmmmm |
it's builtin |
18:34 |
hmmmm |
there is literally no problem here |
18:34 |
PilzAdam |
I guess I suck at explaining :-) |
18:35 |
PilzAdam |
let me rephrase that: what do you write to the file if the probability of a node is 0? |
18:35 |
hmmmm |
whatever the node is that was at that position |
18:35 |
PilzAdam |
and it also checks the nodename in resolveNodenames(), even if you never actually place it? |
18:35 |
hmmmm |
that's correct |
18:36 |
PilzAdam |
I dont like that |
18:36 |
hmmmm |
there are things you'll never like |
18:36 |
hmmmm |
can you propose a clean solution to this? |
18:36 |
|
jin_xi joined #minetest-dev |
18:36 |
hmmmm |
er |
18:36 |
PilzAdam |
the previous way of writing ignore to the file instead, and then simply place air at ignores position was better |
18:37 |
hmmmm |
i'll just change it to air if the probability is 0 |
18:37 |
PilzAdam |
yea, air works too |
18:37 |
celeron55 |
i guess a more current explanation of the issue would be if someone builds something at the bottom of the ocean, creates a schematic and expects it to be placeable without water on the beach? |
18:37 |
hmmmm |
now there's no need for writing ignore in the schematic file ever, and we don't have to do an annoying check to see if the node was defined |
18:37 |
celeron55 |
(i don't understand anything about this though) |
18:37 |
PilzAdam |
celeron55, not really |
18:38 |
PilzAdam |
celeron55, it is possible to set the probabilty of each water node to 0, thus it will never place it |
18:38 |
PilzAdam |
but the problem is that it will still check if water is defined when placing it |
18:38 |
PilzAdam |
so you cant place it in a game that has no water, even if it never places the water |
18:39 |
hmmmm |
celeron, the "0 probability node" is equivalent to having some image with some (or many) pixels with an alpha of 0 |
18:39 |
celeron55 |
sounds like a problem that has a solution |
18:39 |
hmmmm |
for overlays like |
18:39 |
PilzAdam |
hmmmm, if you write air to the file, then it will replace the node at that position when placing, right? |
18:39 |
celeron55 |
my take on this is "just fix it, it's not like you can't" |
18:39 |
hmmmm |
there really is no problem after this, though |
18:40 |
hmmmm |
pilzadam, wha? |
18:40 |
hmmmm |
okay let's go through this again |
18:40 |
hmmmm |
we have a node that's marked as having 0 probability |
18:40 |
hmmmm |
to avoid the error you're talking about (which isn't really a problem because now you have replacement lists), we also change the node name at that position to air |
18:41 |
PilzAdam |
when placing that schematic, will it place the air node or simply skip the position? |
18:41 |
hmmmm |
so when it gets loaded and the names are resolved, the nodes that are never placed are marked as air but that's just for the sake of shutting the node resolving up |
18:41 |
hmmmm |
it skips the position! |
18:41 |
hmmmm |
that's the point! |
18:41 |
PilzAdam |
ok, good |
18:41 |
hmmmm |
if you wanted it to write an air node instead, you'd write a goddamn air node |
18:47 |
sfan5 |
celeron55: could you explain to me what packet "4f 45 74 03 00 01 00 03 ff dd 01 00 29 39 78 00 01 19 40" is supposed to be? |
18:48 |
sfan5 |
I get that it is a reliable packet from peer id 01, but I don't get what is inside the TYPE_ORIGINAL packet |
19:07 |
celeron55 |
it looks like a TOCLIENT_TIME_OF_DAY packet |
19:08 |
celeron55 |
it says the current time is 14712 and time speed is 72 |
19:09 |
celeron55 |
(00 29 = 0x29, just refer to clientserver.h from there on) |
19:21 |
kahrl |
celeron55, that first thing http://paste.dy.fi/v6d pointed to is strange |
19:22 |
kahrl |
there is an unsigned int bytes_read but the code checks if (bytes_read < 0)?! |
19:22 |
celeron55 |
oh don't care about strange things if they are strange; my GCC is some random broken version from a year ago :P |
19:22 |
kahrl |
no, the warning itself is right, it's the code that is strange :P |
19:23 |
celeron55 |
it sometimes gives warnings about things that make absolutely no sense, like a warning about indexing above boundaries in some place where there are no indexing found in a whole file 8) |
19:23 |
celeron55 |
oh, well that's indeed strange |
19:24 |
kahrl |
(the warning comes from the fact that irrlicht's io::IReadFile::read only returns nonnegative values but uses a signed type) |
19:25 |
kahrl |
er, getSize()* but it's the same with read() |
19:27 |
kahrl |
actually, CReadFile::getSize() can return negative values if the file is larger than 2GB. Not sure about memory files read from a zip, probably the same |
19:28 |
hmmmm |
more like Crap::getBrokenSize() |
19:29 |
hmmmm |
but then again, IIRC windows can't have zip files larger than 4gb |
19:30 |
hmmmm |
anyway i'm going to commit this https://github.com/kwolekr/minetest/commit/f12078263dd56cfbfa59a140d37f7f2d14fa2dde |
19:31 |
hmmmm |
sorry, https://github.com/kwolekr/minetest/commit/b592b1b8f845e634f36c4cd5382893a54b0688e5 |
19:32 |
PilzAdam |
there is no other place in lua-api.txt where we have hex numbers |
19:32 |
PilzAdam |
why dont you simply write 255? |
19:32 |
hmmmm |
because i used 0xFF in the core and forgot, i guess |
19:33 |
hmmmm |
anyway, look! https://github.com/kwolekr/minetest/commit/b592b1b8f845e634f36c4cd5382893a54b0688e5#L4R838 happy? |
19:35 |
kahrl |
we should replace all numbers in lua_api.txt with hex |
19:35 |
kahrl |
^ location = eg. {type="player", name="celeron0x37"} |
19:35 |
hmmmm |
you know, i always wondered why his number is 55. it's kinda arbitrary |
19:36 |
hmmmm |
why do people append numbers to their nicks anyway. |
19:36 |
PilzAdam |
I guess celeronFiftyFive was too long |
19:37 |
jin_xi |
55 stands for ee for shizzle |
19:38 |
kahrl |
Intel Celeron Registered Trademark LV, Esq. |
19:38 |
hmmmm |
i have an interview at Intel :)) |
19:40 |
kahrl |
go make the processors faster so we don't have to optimize minetest ;) |
19:41 |
kahrl |
we could finally port it to python |
19:42 |
jin_xi |
wow: Over the past twelve months, 98 developers contributed new code to Minetest. This is one of the largest open-source teams in the world, and is in the top 2% of all project teams on Ohloh. |
19:46 |
Exio4 |
kahrl: haha |
20:04 |
hmmmm |
ugh |
20:04 |
hmmmm |
proller i sware to god |
20:04 |
troller |
? |
20:05 |
hmmmm |
your changes to emerge.cpp makes a possible race condition |
20:05 |
hmmmm |
you need to modify the environment inside of an environment lock |
20:07 |
troller |
how to fix it? |
20:08 |
hmmmm |
don't bother, i'm doing it right now myself |
20:08 |
troller |
thank you |
20:09 |
|
drizz left #minetest-dev |
20:11 |
hmmmm |
troller, getHeat and getHumidity modify the block as well as returns it |
20:11 |
hmmmm |
don't you think it should be called getHeatAndUpdate |
20:12 |
troller |
maybe yes, its from first version - they have no cache |
20:12 |
hmmmm |
what's the point of heat_time and humidity_time? |
20:13 |
troller |
cache time |
20:13 |
hmmmm |
why are they separate i mean |
20:13 |
troller |
hm.. |
20:13 |
hmmmm |
shouldn't it be like weather_last_updated |
20:13 |
troller |
but it need to update heat from humidity and humidity from heat |
20:13 |
hmmmm |
when would you ever update them separately? |
20:14 |
Exio4 |
unfinished code ^ |
20:15 |
troller |
hmmmm, its new idea to join them |
20:16 |
hmmmm |
whatever, i'll leave it up to you to do that |
20:16 |
troller |
Exio4, finished code not exists |
20:16 |
Exio4 |
what? |
20:16 |
troller |
hmmmm, ok |
20:24 |
hmmmm |
the only thing you use SeverEnvironment for in getHeat/getHumidity is the game time |
20:24 |
hmmmm |
why don't you just pass the game time as a parameter instead? |
20:24 |
Tesseract |
kahrl: There wasn't anything wrong with it, you just mentioned that you would like to have bind_address = 0.0.0.0, :: ... and not have ipv6_server. But that would take a lot mort time to implement. |
20:26 |
Exio4 |
|
20:26 |
Exio4 |
er |
20:26 |
Exio4 |
fail |
20:28 |
* troller |
testing server with d = sqlite3_exec(m_database, "PRAGMA synchronous = NORMAL", NULL, NULL, NULL); |
20:29 |
troller |
hmmmm, game time as a parameter to getHeat/getHumidity ?? |
20:29 |
Exio4 |
to the class that contains getHEat/Humidity |
20:29 |
Exio4 |
Heat* |
20:29 |
Exio4 |
(i guess) |
20:29 |
hmmmm |
it's just not correct for a member of Map to deal with the environment, it's supposed to be separate from that |
20:30 |
hmmmm |
the environment has a map |
20:31 |
hmmmm |
oh, by the way, |
20:31 |
hmmmm |
map->getHeat(m_server->m_env, MAP_BLOCKSIZE*i->first ,i->second); is wrong |
20:31 |
hmmmm |
that second parameter should be getBlockPos(i->first) |
20:32 |
hmmmm |
it'll be incorrect for negative positions |
20:32 |
Exio4 |
can anyone tell me why the got merged at first? |
20:32 |
Exio4 |
it got* |
20:32 |
hmmmm |
it was a really huge patch and nobody actually went through each thing and scrutinized it |
20:33 |
Exio4 |
the only who said "yes" was c55 and he stated that he didn't try, yet PilzAdam, (sfan5 iirc), and some other people complained a bit about it |
20:33 |
Exio4 |
s/try/try it/ |
20:33 |
hmmmm |
i complained about it too for a more fundamental reason, that is, it's more or less something for a mod to do |
20:34 |
hmmmm |
there are definite plans for client side lua in the future, so adding something as static and specific as this is pretty ugly |
20:34 |
Exio4 |
well, lets see who didn't complained, the list then may be shorter ;) |
20:35 |
troller |
(f32)env->getGameTime() * env->getTimeOfDaySpeed() , env->getTimeOfDayF(), -- pass all as params??? |
20:36 |
hmmmm |
troller, i'm doing it right now |
20:36 |
hmmmm |
i don't see where you use those however |
20:36 |
troller |
getHeat |
20:37 |
hmmmm |
oh |
20:37 |
hmmmm |
wow |
20:37 |
hmmmm |
i completely missed those |
20:38 |
hmmmm |
give me some time to think |
20:39 |
hmmmm |
you know, in this case, doesn't this belong in ServerEnvironment? |
20:39 |
hmmmm |
the heat and humidity have nothing to do with the map itself |
20:39 |
hmmmm |
but rather the environment in which the map resides |
20:40 |
hmmmm |
i'm going to move ServerMap::getHeat/Humidity to ServerEnvironment, because it makes more sense |
20:41 |
troller |
whats with Map::getHeat(v3s16 p) ? |
20:42 |
hmmmm |
those are fine, since they only query data from the map |
20:42 |
troller |
its now only for debug on client, but.. |
20:42 |
troller |
ok |
20:42 |
hmmmm |
those really could be called getHeat and getHumidity |
20:42 |
hmmmm |
since they do nothing more than retrieve the data |
21:19 |
|
kaeza joined #minetest-dev |
22:10 |
|
smoke_fumus joined #minetest-dev |
22:39 |
kahrl |
some include file statistics: http://paste.dy.fi/n8Q |
22:39 |
kahrl |
this is the number of headers included in each source file, including deep includes, using the code in my scriptapicleanup branch |
22:40 |
kahrl |
(it doesn't count headers of external libraries) |
23:37 |
kahrl |
who would have thought? adjacency sets are faster than an adjacency matrix: http://paste.dy.fi/n9V |
23:53 |
kahrl |
I wonder if there's any way to make server.h less fat |
23:53 |
kahrl |
all the lua api source files need it |
23:54 |
kahrl |
stuff like ServerThread can be moved to server.cpp |
23:54 |
kahrl |
should I replace most of the class-type fields in Server with pointers? (so that forward declarations can be used) |
23:56 |
Exio4 |
will it help for the cases that when you change a .h you need to recompile 95% of the source code, other time? |
23:57 |
Exio4 |
;P |
23:57 |
kahrl |
hopefully |