Time |
Nick |
Message |
00:00 |
RealBadAngel |
i will repeat it once again. you have broken a mod that was a standard for minetest modding. thus you have broken many mods out there |
00:00 |
sapier |
vanessae are you telling standard is what loudest part of community is using? :-) |
00:00 |
VanessaE |
sapier: yes. |
00:00 |
RealBadAngel |
all this without even askin the community |
00:00 |
VanessaE |
:) |
00:00 |
VanessaE |
sapier: or more to the point, what is used the most |
00:00 |
sapier |
oss projects aren't democracy (at least most) |
00:00 |
PilzAdam |
RealBadAngel, the only thing that is "broken" is that you have double generation of ores if you have morores with the latest dev version of minetest |
00:01 |
VanessaE |
and when there's only one, by definition it is a defacto standard |
00:01 |
VanessaE |
(if people use it anyway) |
00:01 |
sapier |
no vanessae you don't have any way to tell "what is used most" you can only tell what you think is used most based uppon some subjective readings |
00:01 |
PilzAdam |
RealBadAngel, and this is easy to fix |
00:01 |
VanessaE |
sapier: I'm basing it on a google search :) |
00:02 |
RealBadAngel |
PilzAdam, you still dont getting the point of it... |
00:02 |
sapier |
lol and of course google already knows about all those ppl not writing to any forum but playing minetest |
00:02 |
PilzAdam |
RealBadAngel, you said I "broke" moreores, but I didnt |
00:02 |
VanessaE |
heh |
00:03 |
VanessaE |
well what would you have me base that metric on? |
00:03 |
sapier |
I don't suggest any metric as we can't ever tell what most ppl use we can only guess |
00:04 |
RealBadAngel |
PilzAdam, not just moreores. everything around... |
00:04 |
PilzAdam |
what is broken then? |
00:04 |
VanessaE |
every server, every texture pack, every mod that has moreores now has to make an adaptation. |
00:04 |
sapier |
so neither can you proove you're right nor can I or anyone else give a guaranteed telling what is used |
00:04 |
PilzAdam |
VanessaE, no |
00:04 |
VanessaE |
s/has/has or uses/ |
00:05 |
PilzAdam |
only TP have to rename the textures, thats all |
00:05 |
RealBadAngel |
PilzAdam says "no" because for him change was trivial, take this, trash that |
00:06 |
RealBadAngel |
now we do have weeks of work to adapt his taste |
00:06 |
PilzAdam |
but if you see all the other textures that are new/changed in 0.4.6, then thats a little change compared to them |
00:06 |
PilzAdam |
RealBadAngel, actually 0 sec. of work |
00:06 |
PilzAdam |
you can use everything as is |
00:07 |
PilzAdam |
only Calinou has to fix the double generation, thats all |
00:07 |
VanessaE |
PilzAdam: it's one thing to rename a couple of textures, it's another to have to *copy* them to support two different sets of the same object |
00:07 |
RealBadAngel |
lol |
00:07 |
RealBadAngel |
you do believe in what you are typing? |
00:07 |
PilzAdam |
yes |
00:08 |
RealBadAngel |
superb. |
00:08 |
PilzAdam |
try it, get latest minetest_game with latest common, install morores and everything works fine |
00:08 |
VanessaE |
you keep making enough of these arbitrary changes and there won't be any modding community left. |
00:09 |
VanessaE |
because no one is going to want to have to keep making little updates to their mods just because of an arbitrary change |
00:09 |
RealBadAngel |
ofc it works fine, double item, twice as much ores |
00:09 |
sapier |
guys you're killing minetest development persisting in no changes of mod api to happen |
00:09 |
VanessaE |
hrm, a little repetitive there, sorry |
00:09 |
RealBadAngel |
and modders sittin out there rewritting their mods |
00:09 |
VanessaE |
sapier: we're not talking about the API. |
00:09 |
VanessaE |
we're talking about the default set of mods and how they affect the modding community as well as the players |
00:10 |
RealBadAngel |
to fix your like and dont like ore stuff |
00:10 |
sapier |
this is just extended part of api |
00:10 |
VanessaE |
s/mods/mods, nodes, items/ |
00:10 |
PilzAdam |
VanessaE, Calinou has nothing against adding only parts of morores to default |
00:11 |
VanessaE |
PilzAdam: maybe not but the REST of us do! |
00:11 |
RealBadAngel |
PilzAdam, btw, you have said youre not using such mods like technic etc |
00:11 |
PilzAdam |
but the rest has nothing to change |
00:11 |
PilzAdam |
RealBadAngel, yes |
00:11 |
RealBadAngel |
so how the heck you know if everything iis allright? |
00:11 |
RealBadAngel |
lier |
00:11 |
PilzAdam |
because I know how the API works? |
00:12 |
RealBadAngel |
so youre wrong |
00:12 |
PilzAdam |
what do you have to change? |
00:12 |
PilzAdam |
(in technic or other mods) |
00:13 |
PilzAdam |
hint: the answer is nothing |
00:13 |
RealBadAngel |
lemme answer it |
00:13 |
RealBadAngel |
for nothing |
00:13 |
RealBadAngel |
you should do the following |
00:13 |
RealBadAngel |
1) take moreores mod |
00:14 |
RealBadAngel |
2) keep the namespace |
00:14 |
RealBadAngel |
3) insert the mod into commons |
00:14 |
RealBadAngel |
then it would be nothing |
00:14 |
sapier |
i don't think this is correct moreores != default |
00:14 |
RealBadAngel |
shit, bucket ~= default |
00:15 |
RealBadAngel |
and lotsa others |
00:15 |
PilzAdam |
RealBadAngel, you dont have to change anything in the current state |
00:15 |
PilzAdam |
so keep saying "everything is broken" |
00:16 |
VanessaE |
PilzAdam: "broken" in the oldskool sense of the word, as in "this is done so wrong as to be worthy of intense argument" |
00:16 |
VanessaE |
broken doesn't, in this context, mean not working. |
00:16 |
RealBadAngel |
and literally translated: fucked up |
00:17 |
VanessaE |
other synonyms include "botched", "screwed", and "clusterfuck" |
00:18 |
RealBadAngel |
btw, anybody counted how much memory takes those aliases? |
00:19 |
RealBadAngel |
all of them i mean |
00:19 |
VanessaE |
right about now, PilzAdam is gonna say "bye" and sign off. |
00:19 |
sapier |
good god everyone wants forced map loading by entities any you really ask about memory consumption of aliases? |
00:20 |
RealBadAngel |
im old school coder |
00:20 |
PilzAdam |
VanessaE, yes, because its sleeping time in germany |
00:20 |
VanessaE |
sapier: there's a simple solution to that issue: hard limits on how much of the map can be loaded at any one time |
00:20 |
PilzAdam |
but I will stay a bit longer |
00:20 |
VanessaE |
whether by a mod or by the players |
00:20 |
sapier |
so when a player joins he sees nothing ... not quite a solution |
00:20 |
PilzAdam |
how many ores do you want to have in the default game? |
00:21 |
Exio |
100 |
00:21 |
VanessaE |
sapier: no, when the player joins, the engine decides "hey, I have too much map loaded.. okay, let's throw away thos stuff over here, no one's there now" |
00:21 |
RealBadAngel |
123 and 1/3th |
00:21 |
Exio |
i want a rainbow |
00:21 |
VanessaE |
PilzAdam: seven. |
00:21 |
VanessaE |
coal, iron, copper, tin, silver, gold, mithril. |
00:21 |
RealBadAngel |
we just wanted to merge moreores |
00:21 |
VanessaE |
(I don't personally care much about diamonds) |
00:21 |
RealBadAngel |
know minetest standard |
00:21 |
sapier |
that impies enging can decide why something is loaded thus additional runtime information needs to be added to any loaded block |
00:21 |
VanessaE |
so 8 ores if you include diamonds too. |
00:21 |
RealBadAngel |
which Calinou defended like a lion to be not bigger than this |
00:22 |
VanessaE |
sapier: the engine already has such code in it by virtue of timeouts for how long a mapblock stays loaded. |
00:22 |
PilzAdam |
RealBadAngel, no, we wanted to add in more ores, and only parts of them from moreores |
00:22 |
VanessaE |
you's just have to expire it a little sooner. |
00:22 |
Exio |
i have an alias callled "/modsmt" |
00:22 |
RealBadAngel |
read moreores topic if you dont believe |
00:22 |
Exio |
should i use it PilzAdam? |
00:22 |
VanessaE |
you'd* |
00:22 |
sapier |
but engine doesn't know if its loaded by entity or player what to unload that block right behind player or that one in front of a entity |
00:23 |
RealBadAngel |
PilzAdam, so lets say i will take wheels from your carts mod, merge it there |
00:23 |
PilzAdam |
RealBadAngel, yes, because Calinou is right, too many ores arent good for the game |
00:23 |
VanessaE |
how are they bad for the game?> |
00:23 |
RealBadAngel |
and say wheels were the only thing i liked and game needed |
00:23 |
sapier |
it's simple to unload something but hard to decide what is best |
00:23 |
RealBadAngel |
rest you can take |
00:23 |
PilzAdam |
RealBadAngel, you know how stupid that is? |
00:23 |
VanessaE |
what do they effect if the user isn't doing anything with them? |
00:23 |
RealBadAngel |
ofc |
00:23 |
RealBadAngel |
that was the point |
00:23 |
Exio |
does anyone know what "dev" means? |
00:23 |
VanessaE |
they're just random dots on a map if the user doesn't care about them, jesus H christ in a cartoon |
00:24 |
RealBadAngel |
to show how stupid thing you have done |
00:24 |
PilzAdam |
RealBadAngel, you are comparing wheels with ores |
00:24 |
Exio |
the bug of two ores will be fixed when 0.4.6 gets released |
00:24 |
sapier |
pilzadam maybe it's easyer to add/remove moreores than continuing this endless discussion |
00:25 |
PilzAdam |
VanessaE, if people find ores in the game, they want to do something with it |
00:25 |
Exio |
i don't like the idea of moreores in common |
00:25 |
PilzAdam |
and its nonsense to add ores wich dont have any use at all |
00:26 |
PilzAdam |
sapier, no, because its not good for the game |
00:26 |
RealBadAngel |
modders, users, players finding use for it |
00:26 |
RealBadAngel |
this is free world game |
00:26 |
sapier |
but it's bad for the game if core developers get mad on each other because of this issue |
00:26 |
PilzAdam |
RealBadAngel, you see the default game as a bunch of resources for modders, right? |
00:27 |
RealBadAngel |
partially yes |
00:27 |
Exio |
cuz the core devs can't understand "THIS IS NOT THE STABLE RELEASE" |
00:27 |
PilzAdam |
RealBadAngel, it isnt, its a game |
00:27 |
sapier |
and as far as I understand pilzadam sees default game as a consistent game itself |
00:27 |
Exio |
the moreores thing will be fixed in 0.4.6 when calinou updates it |
00:27 |
PilzAdam |
sapier, exactly |
00:27 |
sapier |
with full moreores ore set added consistency is lost |
00:27 |
RealBadAngel |
its is a sandbox offering elements to play with |
00:28 |
PilzAdam |
Exio, yes, I already said that |
00:28 |
RealBadAngel |
not a complete game with a mission |
00:28 |
Exio |
+ aliases == backward compt |
00:28 |
VanessaE |
it IS a resource for modders as much as it's a game damn it! |
00:28 |
Exio |
well, let me check |
00:28 |
Exio |
what is the real problem? |
00:28 |
PilzAdam |
it should be playable without mods |
00:28 |
VanessaE |
if it wasn't a resource for modders, then why the hell is there a modding API to begin with? |
00:28 |
sapier |
vanessae true but if you can't do anything with ores it's more feeling of a limited demo than a game |
00:28 |
PilzAdam |
and not: "You want a use for tin? install a mod!" |
00:29 |
Exio |
just double gen of ores? that will be fixed, aliases will be for stuff working, and the main game will be playable |
00:29 |
Exio |
will be in minetest_game* |
00:29 |
RealBadAngel |
exio: but also namespace is wrong |
00:29 |
PilzAdam |
Exio, thats what Im talking about the last hour |
00:30 |
Exio |
namespace |
00:30 |
Exio |
? |
00:30 |
RealBadAngel |
mod shall be put as moreores without friggin aliases |
00:30 |
VanessaE |
PilzAdam: how about "you want a use for tin? it's coming soon." |
00:30 |
PilzAdam |
RealBadAngel, why? |
00:30 |
Exio |
so you mean, just add a mod what is *called* moreores to a "game"? |
00:30 |
sapier |
what about unregister_ore("default:copper") |
00:30 |
sapier |
? |
00:30 |
RealBadAngel |
because it is WRONG |
00:30 |
Exio |
who said that? |
00:31 |
RealBadAngel |
bad alloc said that |
00:31 |
Exio |
the aliases are for compatibility, not "gameplay" |
00:31 |
Exio |
eh? |
00:31 |
sapier |
or alias "default:copper" to moreores:copper? |
00:31 |
PilzAdam |
sapier, there is no unique identifier for register_ore() calls |
00:31 |
Exio |
sapier: moreores:copper -> default:copper |
00:31 |
Exio |
aliases in that way, working and so on |
00:31 |
sapier |
yes but maybe this would be a solution? |
00:31 |
Exio |
no |
00:31 |
PilzAdam |
sapier, we already have this aliases |
00:32 |
RealBadAngel |
go on insert 10k of aliases in the game that supposed to be lightweight |
00:32 |
Exio |
ok, i have a good idea |
00:32 |
PilzAdam |
there is no problem, except that RBA and VanessaE want all ores to be merged |
00:32 |
sapier |
yes I know of the aliases I was talking about the register/unregister thing |
00:32 |
Exio |
PilzAdam: rollback the git repo to 0.1 |
00:32 |
PilzAdam |
Exio, thats a nice idea |
00:32 |
VanessaE |
PilzAdam: exactly. All ores - lumps - ingots - blocks. that's all. |
00:32 |
VanessaE |
no silly tools |
00:32 |
PilzAdam |
because people obviously are against changes here |
00:32 |
hmmmm |
guys what the hell |
00:32 |
hmmmm |
chill the fuck out |
00:33 |
RealBadAngel |
:) |
00:33 |
Exio |
hmmmm: nobody likes your mapgen |
00:33 |
VanessaE |
PilzAdam: we are against changes that don't carry a complete set of whatever it is you are cherry-picking from |
00:33 |
PilzAdam |
hmmmm, we are just starting to have fun |
00:33 |
Exio |
PilzAdam: +1 at that |
00:33 |
Exio |
this started to get funny! |
00:33 |
PilzAdam |
VanessaE, you just think Minetest is good as is, and all changes are bad if they touch anything that exists |
00:33 |
sapier |
we can't add changes while keeping endles compatibility |
00:34 |
VanessaE |
PilzAdam: I repeat: we are against changes that don't carry a complete set of whatever it is you are cherry-picking from |
00:34 |
sapier |
this is true for api as well as content |
00:34 |
hmmmm |
i agree with the cherry picking from moreores |
00:34 |
sapier |
core already contains lots of compatibility stuff and it's getting more and more |
00:34 |
hmmmm |
moreores has some things we don't really want |
00:34 |
RealBadAngel |
sapier: its not like this, adding this change could be done without need to rebuild mods at all |
00:34 |
hmmmm |
the whole "take everything or leave it" mindset is very unflexible and not necessary |
00:35 |
hmmmm |
i already gave you guys a decent solution |
00:35 |
PilzAdam |
RealBadAngel, it is already done like this |
00:35 |
VanessaE |
hmmmm: maybe but we're only talking about five lousy ores. |
00:35 |
VanessaE |
or in this case two or three. |
00:35 |
hmmmm |
it lets us add what we want without breaking compatibility |
00:35 |
hmmmm |
yes, but they change the gameplay.. |
00:35 |
sapier |
rba that impies minetest has to include every silly stuff just because its coupled to things we want ... not quite best way to do it |
00:35 |
Exio |
[21:34:46] <RealBadAngel> sapier: its not like this, adding this change could be done without need to rebuild mods at all |
00:35 |
Exio |
tell me what you need to rebuild |
00:35 |
Exio |
the aliases are here |
00:35 |
RealBadAngel |
hmmmm, youre more experienced low level coder. please tell me how having hundreds of aliases defined may affect engine? |
00:36 |
PilzAdam |
Exio, he dont want to belive that its nothing |
00:36 |
hmmmm |
by hundreds of aliases you mean like 20 |
00:36 |
VanessaE |
strange, I still seem to be able to dig, build, fight, kill mobs, the same as I did before I added this extra ore over here. where's the issue? |
00:36 |
hmmmm |
vanessa, you have a bazaar of ores in your inventory now |
00:36 |
RealBadAngel |
hmmmm, this case. we are counting |
00:36 |
VanessaE |
hmmmm: indeed I do. |
00:36 |
PilzAdam |
VanessaE, and they are all useless |
00:36 |
VanessaE |
and they don't seem to have caused a problem for anyone who plays on my server. |
00:36 |
PilzAdam |
*most of them |
00:36 |
Exio |
survival or creative? |
00:36 |
VanessaE |
Exio: creative. |
00:36 |
RealBadAngel |
lately i can see aliases are used as a solution for everything misplaced |
00:37 |
PilzAdam |
VanessaE, because its a creative server with a trash can |
00:37 |
Exio |
if i get something in survival, i want an use for it |
00:37 |
PilzAdam |
^ |
00:37 |
VanessaE |
every block has a use automatically - you can build with it. |
00:37 |
sapier |
maybe we should start stripping of deprecated things some time ;-) |
00:37 |
Exio |
VanessaE will kill you sapier |
00:37 |
Exio |
VanessaE: "build" != "survival" |
00:38 |
Exio |
the idea of survival is not just building, is "surviving" |
00:38 |
VanessaE |
Exio: survival still involves building stuff. |
00:38 |
VanessaE |
protective structures against MOBs if nothing else |
00:38 |
sapier |
I know exio but this has to be done I'm starting to find more compatibility code in core than actual function code the last weeks |
00:38 |
PilzAdam |
VanessaE, yes, a dirt house |
00:39 |
PilzAdam |
I dont need useless tin blocks for that |
00:39 |
VanessaE |
PilzAdam: oh, I see - so what you're really saying is that survival is all that matters, doesn't need anything at all, and piss on the creative users? |
00:39 |
Exio |
do you want a example~? lapis lazuli blocks in minecraft, they are useless outside building |
00:39 |
PilzAdam |
VanessaE, no |
00:39 |
RealBadAngel |
then think about tin cans |
00:39 |
RealBadAngel |
for paint for example |
00:39 |
Exio |
they are used in survival and .. nothing in survival |
00:40 |
Exio |
unless you make the ore very common, using it for building is ... i'd say impossible |
00:40 |
RealBadAngel |
and add fuckin content using resources |
00:40 |
Exio |
just digging one hour for a 4x4 house? |
00:40 |
Exio |
they are used in creative and ... nothing in survival ** |
00:41 |
RealBadAngel |
and dont think one change HAVE to go together with immediately massive use of it by common |
00:41 |
RealBadAngel |
i made formspec backrounds, you have woke up several months later using this |
00:41 |
Exio |
there is already a lot of stuff what is "useless" without mods |
00:41 |
RealBadAngel |
and you have not cried that it was useless before |
00:42 |
PilzAdam |
VanessaE, additions to default should be usefull for both, creative and survival, since both include it |
00:42 |
RealBadAngel |
PilzAdam, so find use for it |
00:42 |
VanessaE |
PilzAdam: then why are wool blocks, dyes, and vessels included? |
00:42 |
RealBadAngel |
allow others to do so |
00:42 |
VanessaE |
why is jungle grass included? |
00:42 |
PilzAdam |
VanessaE, they arent in default |
00:42 |
VanessaE |
what about that other grass? |
00:42 |
PilzAdam |
and they arent included in survival |
00:42 |
hmmmm |
mmmm |
00:42 |
VanessaE |
most of those are in common. what do they add to the game? |
00:43 |
VanessaE |
any of the games |
00:43 |
Exio |
i like the idea of grass/jungle_grass |
00:43 |
RealBadAngel |
but dont say when it is about to be added it doesnt have any use |
00:43 |
hmmmm |
hey guys, how about this justification for the current ores: |
00:43 |
hmmmm |
i like them |
00:43 |
PilzAdam |
VanessaE, thats decoration of the landscape |
00:43 |
VanessaE |
PilzAdam: but they have no USE. |
00:43 |
Exio |
they make the terrain look nice |
00:43 |
|
dexter0 joined #minetest-dev |
00:43 |
VanessaE |
and as usual, you ignored half of my question. |
00:43 |
Exio |
god, VanessaE |
00:43 |
hmmmm |
i like them, and so does everybody else |
00:43 |
RealBadAngel |
Exio +1 |
00:43 |
Exio |
you need to understand |
00:43 |
VanessaE |
why are vessels, wool, dyes included? they are utterly useless in any game right now and were from the start. |
00:44 |
hmmmm |
if we considered another ore, and we ALL liked it, we'd add that too |
00:44 |
PilzAdam |
hmmmm, right |
00:44 |
PilzAdam |
VanessaE, we have every ore in default that everybody agrees on |
00:44 |
hmmmm |
it doesn't have to have a use |
00:44 |
VanessaE |
so now it requires unanimous vote? ehm.. |
00:44 |
hmmmm |
yeah..... why not? |
00:44 |
VanessaE |
hmmmm: but PilzAdam JUSt said it had to have a use. |
00:44 |
Exio |
what? |
00:44 |
hmmmm |
well i disagree with him |
00:44 |
RealBadAngel |
hmmmm, uses will come when theyre in |
00:44 |
hmmmm |
realbadangel, and what about the mods? |
00:45 |
VanessaE |
[03-28 20:42] <PilzAdam> VanessaE, additions to default should be usefull for both, creative and survival, since both include it |
00:45 |
Exio |
i missed something |
00:45 |
RealBadAngel |
they already use them |
00:45 |
hmmmm |
if anything had a dependency on moreores previously, it'll still work the same |
00:45 |
hmmmm |
all that needs to be changed is moreores |
00:45 |
hmmmm |
and it's very simple to do |
00:45 |
PilzAdam |
hmmmm, I already told him that |
00:45 |
Exio |
i just don't get ONE thing, the stuff will work as before, when 0.4.6 gets released (when calinou will do it) |
00:45 |
hmmmm |
the core is not breaking its back for a *SINGLE MOD* |
00:45 |
RealBadAngel |
yup, copy it to common |
00:45 |
PilzAdam |
hmmmm, he doesnt want to believe it |
00:46 |
Exio |
RealBadAngel: hey, that is a cool idea |
00:46 |
Exio |
add every mod you have in mod releases to common |
00:46 |
RealBadAngel |
:P |
00:46 |
PilzAdam |
Exio, time for your statement :-) |
00:46 |
Exio |
add yours carts mod PilzAdam |
00:46 |
Exio |
and boats, i want boats |
00:46 |
Exio |
aaand! i want some X mod in common! |
00:47 |
sapier |
I'm with exio just copy every mod do mod common :-) .... just kidding of course |
00:47 |
hmmmm |
i just don't get how people can have such strong feelings over some blocks that just aren't defined by default |
00:47 |
PilzAdam |
hmmmm, they think everything is broken without them |
00:47 |
RealBadAngel |
excuse me: can you tell me whats that? |
00:47 |
RealBadAngel |
https://github.com/minetest/common/tree/master/mods/bucket |
00:47 |
Exio |
? what's up? |
00:48 |
Exio |
a bucket mod, it has uses, recipes, and so on |
00:48 |
RealBadAngel |
exio, tell me what is that code |
00:48 |
RealBadAngel |
ok |
00:48 |
RealBadAngel |
now tell me whats this: |
00:48 |
RealBadAngel |
https://github.com/minetest/common/tree/master/mods/stairs |
00:48 |
hmmmm |
notice who they're made by |
00:49 |
RealBadAngel |
https://github.com/minetest/common/tree/master/mods/screwdriver |
00:49 |
RealBadAngel |
https://github.com/minetest/common/tree/master/mods/vessels |
00:49 |
hmmmm |
but does it make sense to include only part of stairs? |
00:49 |
PilzAdam |
RealBadAngel, everything ok? |
00:49 |
RealBadAngel |
you were sayin sir? |
00:50 |
Exio |
that got converted on a "who haz a bick dick" competition between kids |
00:50 |
hmmmm |
my counterargument to this is: |
00:50 |
sapier |
what's a screwdriver? and why it this in common? |
00:50 |
RealBadAngel |
no, my point is place for moreores is in common |
00:50 |
hmmmm |
a lot of those mods were made by celeron and karhl, the people who were writing the core too |
00:50 |
hmmmm |
so they know exactly what they wanted when they wrote those |
00:50 |
PilzAdam |
sapier, its a tool to open locked doors |
00:50 |
Exio |
RealBadAngel: moreores in common |
00:50 |
hmmmm |
and then some other things like screwdrivers, you can't select a couple screwdrivers and not the rest |
00:50 |
Exio |
moreores in common |
00:51 |
hmmmm |
you can't just have, say, left-pointing stairs |
00:51 |
hmmmm |
but for moreores, yes |
00:51 |
hmmmm |
you can have a couple ores |
00:51 |
hmmmm |
we like some parts of moreores, but we don't like all of them |
00:51 |
hmmmm |
we don't all like everything* |
00:51 |
sapier |
I see ... still I don't understand why this is in common ... but i don't have to understand everything |
00:51 |
hmmmm |
there are some people who do like everything |
00:51 |
PilzAdam |
the reason why we added moreores in isnt that we wanted to include the mod, but more ores to the default game for a good gameplay |
00:52 |
hmmmm |
but that would make the people who don't like everything unhappy |
00:52 |
PilzAdam |
*parts of moreores |
00:52 |
Exio |
and if you want things what are actually only provided by moreores |
00:52 |
Exio |
you will install moreores (when 0.4.6 gets released) |
00:52 |
hmmmm |
but serious, what's wrong with the 'check if the node exists already' idea to determine what version of common it is? |
00:52 |
VanessaE |
and if you have it already as part of a long-running server? |
00:53 |
PilzAdam |
hmmmm, nothing |
00:53 |
VanessaE |
you end up with double ore gen and ores being generated only in lua. |
00:53 |
hmmmm |
what's wrong with updating moreores? |
00:53 |
VanessaE |
some ores* |
00:53 |
PilzAdam |
VanessaE, not if you use the stable version |
00:53 |
hmmmm |
guys |
00:53 |
hmmmm |
don't worry |
00:53 |
Exio |
be happy |
00:53 |
hmmmm |
i'll make sure everything is coordinated so there are no periods of breakage |
00:53 |
VanessaE |
hmmmm: the need to update it multiple times, maybe? |
00:53 |
sapier |
another suggestion ..... what's wrong with "if you want latest mod use latest core!"? |
00:54 |
Exio |
calinou doesn't like that |
00:54 |
hmmmm |
so how about this: |
00:54 |
Exio |
everything is caused by calinou (aka "blame calinou") >:) |
00:54 |
hmmmm |
right now i'll have calinou update his mod |
00:54 |
RealBadAngel |
lol |
00:54 |
sapier |
mobf for example never supports old core versions, if someone requires an old version she/he can use old mobf versions |
00:54 |
hmmmm |
so it'll work for both versions |
00:54 |
hmmmm |
so you guys can put the new version in |
00:55 |
Exio |
hmmmm: then they will get other thing "to bother" |
00:55 |
hmmmm |
then when 0.4.6 comes out, you can just update the core |
00:55 |
RealBadAngel |
ok lets say we can all live with it |
00:55 |
RealBadAngel |
but the aliases |
00:55 |
hmmmm |
what of the aliases? |
00:55 |
Exio |
what is EXACTLY wrong with aliases? |
00:55 |
hmmmm |
the default mod is making the aliases to moreores |
00:55 |
hmmmm |
not the other way around |
00:56 |
hmmmm |
we're coordinating with calinou on this |
00:56 |
RealBadAngel |
unnecesary memory consumption |
00:56 |
hmmmm |
=/ |
00:56 |
hmmmm |
lame excuse |
00:56 |
Exio |
do i need to ask other time |
00:56 |
Exio |
what is wrong with aliases? |
00:56 |
Exio |
10 kb more of ram when the "leak" is in other place? |
00:56 |
hmmmm |
grasping straws |
00:56 |
Exio |
just limiting the game will not fix the issue |
00:56 |
hmmmm |
exio, more like a half a kB for all those strings |
00:57 |
RealBadAngel |
leaving mod with its name (even stripped for commons use) means no aliases needed at all |
00:57 |
Exio |
i said 10 kb because RealBadAngel said +1000 aliases |
00:57 |
Exio |
RealBadAngel: stripped == even more broke stuff |
00:57 |
hmmmm |
let's just not break things --; |
00:57 |
RealBadAngel |
no, just put there those defs pilzadam chosen |
00:58 |
Exio |
and then add aliases for fixing the missing things in the stripped version? |
00:58 |
RealBadAngel |
what for? |
00:58 |
RealBadAngel |
moreores would be just moreores then |
00:58 |
Exio |
[21:57:02] <RealBadAngel> leaving mod with its name (even stripped for commons use) means no aliases needed at all |
00:59 |
RealBadAngel |
stripped content i meant |
00:59 |
Exio |
yes, exactly |
00:59 |
Exio |
how are you going to fix the issue of missing tools / blocks what are in the "full version"? |
00:59 |
Exio |
replacing mods in the common game what should be part of upstream? good solution eh |
01:00 |
Exio |
and what is wrong with adding a 1kb more of ram usage? when using a 512x texture pack is using 6 gb or 7 |
01:00 |
RealBadAngel |
calinou will just fill out missing parts |
01:00 |
Exio |
it doesn't matter, and actually, even my OLD computer can handle 1kb more of ram usage |
01:00 |
Exio |
RealBadAngel: how? |
01:00 |
RealBadAngel |
that approach is never good for complex projects |
01:01 |
Exio |
OOP is not good for what i think, but meh, minetest is coded in c++ and lua |
01:01 |
RealBadAngel |
we are fighting for milisecond here and there and you say fuck some kilobytes? |
01:01 |
Exio |
[21:55:42] <hmmmm> what of the aliases? |
01:01 |
Exio |
[21:56:10] <RealBadAngel> unnecesary memory consumption |
01:01 |
Exio |
you said the "why not aliases" |
01:02 |
RealBadAngel |
after some period of happy adding things this way we can fail |
01:02 |
RealBadAngel |
we already do with contstat bad alloc crashes |
01:02 |
hmmmm |
we get bad alloc crashes because of jeija's trampoline mod |
01:03 |
Exio |
. |
01:03 |
Exio |
that iis not even related |
01:03 |
hmmmm |
that has nothing to do with consuming too much memory |
01:03 |
Exio |
is * |
01:03 |
RealBadAngel |
I dont have this mod installed |
01:03 |
Exio |
it is an infinite while loop |
01:03 |
RealBadAngel |
and see this error several times a day |
01:03 |
sapier |
i think aliases are minor related to bad_alloc ;-) |
01:03 |
hmmmm |
if you have a bad std::alloc crash, please report it and give a traceback... |
01:04 |
RealBadAngel |
you can generate it for yourself. run clean game |
01:04 |
RealBadAngel |
start extit to menu |
01:04 |
RealBadAngel |
and repeat |
01:04 |
RealBadAngel |
until you got it |
01:04 |
Exio |
it is caused by other thing |
01:04 |
hmmmm |
oh that you're talking about |
01:04 |
sapier |
thats not an alias problem but texture cache |
01:04 |
Exio |
^ |
01:04 |
Exio |
RealBadAngel: https://github.com/minetest/minetest_game/blob/master/mods/legacy/init.lua |
01:04 |
sapier |
game isn't really cleant up on exit |
01:05 |
Exio |
here we go, you have a lot of aliases |
01:05 |
Exio |
that mod is useless add the whole 0.3 core because it will make mt use less ram! |
01:05 |
sapier |
lol ... a lot |
01:05 |
Exio |
i missed the word "useless" before aliases |
01:05 |
sapier |
I've just added almost same number of compatibility methods to support old scriptapi style :-) |
01:07 |
Exio |
https://github.com/minetest/minetest/issues/142 |
01:08 |
Exio |
RealBadAngel: you mean this ^ |
01:08 |
Exio |
or some bug related to that? |
01:08 |
hmmmm |
i am actually quitting and going back to the menu multiple times |
01:08 |
RealBadAngel |
no |
01:08 |
RealBadAngel |
no glithches |
01:08 |
hmmmm |
i must've done it like 20 times and ram is now 36mb more than it was when i started it |
01:08 |
RealBadAngel |
but ordinary out of memory error |
01:08 |
hmmmm |
but i am getting some textures corrupted, and i keep seeing the textures getting rendered on the loading screen |
01:09 |
RealBadAngel |
i may get it faster because of 128x tp |
01:09 |
Exio |
s/may // |
01:09 |
Exio |
it is a leak in the texture pack, not the aliased stuff |
01:09 |
VanessaE |
hmmmm: seeing the textures rendering on the loading screen is a good thing, that needs to be formalized. it gives the user some feedback. |
01:10 |
VanessaE |
that is, assuming there's no way to get rid of the cause of it entirely. |
01:10 |
hmmmm |
might be hard to do |
01:10 |
hmmmm |
i really don't know much about the graphics part but |
01:10 |
VanessaE |
c55 once said it's a side effect of irrlicht's render-to-texture function I think. |
01:10 |
hmmmm |
yeah i figured as much |
01:10 |
RealBadAngel |
afaik it already uses draw place to render items |
01:10 |
sapier |
i suggest adding kahrls patch and find out what really triggers the irrlicht problems when textures are cleant up |
01:11 |
RealBadAngel |
let it be formally display |
01:11 |
PilzAdam |
VanessaE, we need a real loading screen |
01:11 |
VanessaE |
PilzAdam: it's better than nothing. |
01:11 |
hmmmm |
i don't think we should be drawing things like that where it'd render |
01:12 |
hmmmm |
unless you want all the items to have a powder blue background |
01:12 |
RealBadAngel |
hmmm, hold on, will look for a vid |
01:13 |
RealBadAngel |
http://www.youtube.com/watch?v=ySI38AOIfAA |
01:13 |
VanessaE |
wrong vid, rba |
01:13 |
VanessaE |
oh there it is |
01:13 |
VanessaE |
at about 33 seconds in |
01:13 |
RealBadAngel |
watch this side effect of recording (normally it is not vissible) |
01:14 |
VanessaE |
why DOES the engine render those anyway? |
01:14 |
VanessaE |
are they for the inventory or something? |
01:14 |
RealBadAngel |
yes |
01:14 |
VanessaE |
why not display the actual object in-game? |
01:14 |
hmmmm |
? |
01:14 |
VanessaE |
er, in-game object. |
01:14 |
RealBadAngel |
this is exactly items visuals checkbox |
01:14 |
PilzAdam |
VanessaE, disable preload_item_visuaks |
01:14 |
PilzAdam |
*visuals |
01:14 |
hmmmm |
dunno, you can do that if you'd like |
01:15 |
VanessaE |
I know what makes them render, guys - it was my griping about the startup time that got preload item visuals flag added in the first place. |
01:15 |
hmmmm |
we'd have to add a new formspec field though |
01:15 |
VanessaE |
but that doesn't explain WHAT uses those renderings. |
01:15 |
PilzAdam |
the inventory |
01:15 |
VanessaE |
ok |
01:15 |
VanessaE |
so why do we need that at all? |
01:16 |
VanessaE |
why does the engine bother to render those objects when it can just directly display them as it does in-world? |
01:16 |
PilzAdam |
because its faster, I guess |
01:16 |
Exio |
uhm...? |
01:16 |
VanessaE |
faster? |
01:16 |
VanessaE |
um |
01:16 |
PilzAdam |
I mean , drawing them in the inv is faster |
01:17 |
VanessaE |
I doubt that |
01:17 |
PilzAdam |
dunno |
01:17 |
VanessaE |
the video card can render them a fuckload faster than the CPU |
01:17 |
PilzAdam |
just a guess |
01:17 |
sapier |
maybe this preload could be done in a separate thread in background? |
01:18 |
hmmmm |
ha ha |
01:18 |
hmmmm |
no we need them all before the user can see them |
01:18 |
hmmmm |
(inventory) |
01:18 |
hmmmm |
but anyway, you did give me an idea |
01:18 |
VanessaE |
so draw the inventory like you draw the rest of the screen - with real 3d objects (and not renderings thereof). |
01:18 |
hmmmm |
like what if we don't render to a texture, what if we just render the actual cube, maybe slowly jiggling up and down or rotating back and forth |
01:19 |
hmmmm |
in the inventory screen |
01:19 |
VanessaE |
i just said that! |
01:19 |
VanessaE |
(but I see no reason for it to move around) |
01:19 |
sapier |
don't see any problem if a non existing one is requested it's generated on the fly ... ok this will slow down FIRST inventory open ... but currently whole game is slowed down |
01:19 |
hmmmm |
more livelyhood |
01:19 |
VanessaE |
well if they just rotate really slowly, I guess that's okay |
01:20 |
VanessaE |
fast enough to be noticable, but slow enough to not be distracting |
01:20 |
sapier |
just have a try if inventory background is opaque you don't have to draw world this reducing graphics load drasticaly ... this should be enough to display some additional nodes |
01:22 |
RealBadAngel |
or somebody write irrlicht snippet to generate inventory image and make it mandatory when registering node |
01:22 |
RealBadAngel |
or item |
01:22 |
Exio |
does anyone know where are the memory leaks? |
01:22 |
sapier |
irrlicht textures arent freed |
01:23 |
RealBadAngel |
no time spent on generating them then and startup of game blazing fast. and no glitches later |
01:23 |
sapier |
kahrls patch did this but for whatever reaseson those textures were still in use on start of new game |
01:23 |
RealBadAngel |
sapier, i do have such code here |
01:23 |
RealBadAngel |
by cornernote |
01:23 |
RealBadAngel |
its built ingame |
01:23 |
RealBadAngel |
to create such images for wikis |
01:24 |
sapier |
thats creepy make a modder add a picture of a node ... |
01:24 |
RealBadAngel |
how much it differs from creating the texture actually? |
01:25 |
VanessaE |
RealBadAngel: yeah, he said once that he actually captures the output of the render-to-texture step and just dumps that to disl |
01:25 |
VanessaE |
disk* |
01:25 |
sapier |
you have to keep them in sync ... keeping things in sync that already are fully defined by one instance is always a source of error |
01:25 |
RealBadAngel |
make a simple tool for texture creators just |
01:25 |
sapier |
we already have a texture cache why not cache inventory images too? |
01:26 |
sapier |
this could be done without bothering modders |
01:26 |
VanessaE |
sapier: I suggested that months ago. |
01:26 |
VanessaE |
no one listened. |
01:26 |
sapier |
most likely because of pain isn't big enough ;-) |
01:27 |
RealBadAngel |
and yet game needs 2 minutes to start here |
01:27 |
RealBadAngel |
see? bit to bit |
01:27 |
sapier |
I know when I added texture caching it took me 5 minutes to start game with a local server |
01:27 |
VanessaE |
startup time for me is tolerable, I'm thinking more of memory usage, and more importantly that stupid, old, long-standing bug where inventory textures don't match the actual in-world objects |
01:27 |
VanessaE |
you place a lava and you get leaves. |
01:28 |
sapier |
vanessae thats the cleanup bug, caching wouldn't help anything |
01:28 |
VanessaE |
sapier: seems to happen to people right out of the first start of the game, I doubt that's a cleanup issue |
01:28 |
VanessaE |
and it doesn't happen to everyone |
01:28 |
PilzAdam |
bye |
01:29 |
sapier |
texture atlas isn't very big maybe those ppz atlas is already overrrun |
01:29 |
RealBadAngel |
atlas is already dead |
01:29 |
RealBadAngel |
and obsolete |
01:29 |
sapier |
is it removed? |
01:29 |
RealBadAngel |
not yet |
01:30 |
RealBadAngel |
only disabled by default |
01:30 |
sapier |
any you're sure those ppl aren't playing minetest with old config files? |
01:30 |
RealBadAngel |
045 disables it by default |
01:31 |
VanessaE |
sapier: the problem is unrelated to the texture atlas. |
01:31 |
Exio |
still, there a lot of mem leaks and "gpu mem leaks" and so on |
01:31 |
sapier |
valgrind and efence ;-) ... yes I know its slow |
01:31 |
RealBadAngel |
ah, it reminded me something |
01:32 |
RealBadAngel |
thx to different approach and not using "^transform" way to rotate textures |
01:32 |
RealBadAngel |
just for default facedired nodes |
01:32 |
VanessaE |
RealBadAngel: speaking of that, |
01:32 |
VanessaE |
pm, please |
01:33 |
RealBadAngel |
on Vanessae's server memory usage dropped by 400mb |
01:35 |
sapier |
lol definitely lost: 51,697 bytes in 649 blocks ... after running minetest for 30 seconds |
01:35 |
sapier |
indirectly lost: 61,808,379 bytes in 1,595 blocks |
01:35 |
sapier |
possibly lost: 102,525,126 bytes in 29,373 blocks |
01:35 |
sapier |
seems noone did bother about cleaning up on close |
01:35 |
Exio |
what cpu sapier? and how many FPS? |
01:36 |
sapier |
not playable ;-) |
01:36 |
Exio |
ok, how many FPM? |
01:36 |
Exio |
frames per minute :P |
01:36 |
sapier |
aproximatly 30 fpm |
01:36 |
Exio |
pretty good versus my netbook |
01:36 |
Exio |
4~6 fpm i'd say with valgrind |
01:37 |
sapier |
but even if its slow it's a good hint where to start cleaning up |
01:37 |
VanessaE |
fpm? heh |
01:37 |
Exio |
yeah! :P |
01:37 |
sapier |
you know everyone can play if you have fps ... its a challange to play with fpm |
01:38 |
Exio |
xD |
01:38 |
RealBadAngel |
think chees |
01:38 |
RealBadAngel |
and play fph |
01:39 |
sapier |
playersao is missing initialization |
01:40 |
VanessaE |
hmmmm: so, live objects in the inventory -> TODO ? :-) |
01:40 |
hmmmm |
ugh i'm not doing it |
01:40 |
VanessaE |
haha |
01:41 |
sapier |
I have to complete scriptapi patch ;-) |
01:41 |
VanessaE |
I have to learn C++ some time this decade. |
01:41 |
|
ds-2k joined #minetest-dev |
01:41 |
VanessaE |
RealBadAngel has stuff to do also |
01:41 |
VanessaE |
c55 won't do it |
01:41 |
VanessaE |
thexyz I dunno about |
01:42 |
VanessaE |
darkrose is mia again :-) |
01:42 |
RealBadAngel |
i wonder why this code is so damn slow |
01:43 |
RealBadAngel |
game renders thousends of block |
01:44 |
hmmmm |
it might have something to do with the drawing-to-screen part |
01:44 |
Exio |
this morning i said, every time i read the backlog you have new things in your TODO list |
01:44 |
Exio |
this day wasn't an exception |
01:45 |
VanessaE |
hmmmm: interesting, if generic answer :-) |
01:45 |
hmmmm |
i'm saying that if we had a way to render it to a texture in memory, that'd be much faster |
01:45 |
VanessaE |
ah |
01:45 |
hmmmm |
but it's that it has to actually wait for the card to draw it on the screen in order to grab it |
01:46 |
VanessaE |
well still, the idea of rendering it at all is kinda....dumb |
01:46 |
hmmmm |
that being said |
01:46 |
hmmmm |
what if we did more than one at a time |
01:46 |
hmmmm |
i better take a shower |
01:47 |
RealBadAngel |
what for you need a shover to code? |
01:47 |
VanessaE |
yeah, you're covered in bits |
01:47 |
RealBadAngel |
use keyboard |
01:47 |
hmmmm |
lol |
01:47 |
* VanessaE |
picks a "0" off of hmmmm's shoulder |
01:47 |
VanessaE |
see? look how filthy this thing is |
01:47 |
hmmmm |
haven't showered in two days |
01:47 |
hmmmm |
feeling pretty gross |
01:47 |
hmmmm |
and i don't want to go to sleep like this |
01:48 |
hmmmm |
also it'd keep me awake longer, which i need to do, so i don't go to bed at 4 am and wake up at noon again |
01:48 |
hmmmm |
i usually take a nap at 7 and that screws everything up |
01:48 |
hmmmm |
but the point is: i'm going to be AFK for like 30 minutes |
02:02 |
|
sapier left #minetest-dev |
02:12 |
|
ds-2k left #minetest-dev |
02:21 |
hmmmm |
back. |
02:21 |
hmmmm |
i was wondering why i felt the need to say that in the channel, and i think it's because i treat IRC like my own stream of consciousness, which is why i tend to talk so much |
02:21 |
VanessaE |
wb |
02:22 |
VanessaE |
nothing wrong with that |
02:22 |
VanessaE |
I think a lot of us do the same thing |
02:22 |
hmmmm |
i talk about unnecessary details all the time, like i didn't even realize i typed in the word 'shower' before, i just said it |
02:22 |
hmmmm |
this is a really bad habit that i try hard to supress and fail |
02:22 |
VanessaE |
it's not really a bad habit |
02:22 |
VanessaE |
think of it this way: |
02:22 |
hmmmm |
well it decreases the signal-to-noise ratio |
02:22 |
VanessaE |
what is your primary memory supplement? |
02:23 |
hmmmm |
ginsing? |
02:23 |
VanessaE |
haha |
02:23 |
hmmmm |
or however you spell it |
02:23 |
VanessaE |
I meant what you do to boost your memory capacity - I expected either "a stack of books" or "google", or words to either effect. |
02:23 |
hmmmm |
no idea |
02:24 |
VanessaE |
point is, you use technology as an extension of your brain and your senses, but you don't rely solely on it. |
02:24 |
hmmmm |
perhaps |
02:24 |
hmmmm |
yes, indeed, that was it |
02:24 |
VanessaE |
so it's really not bad. |
02:24 |
hmmmm |
i said "i need to take a shower" out loud in the channel so that i remember to actually go do it, and not just keep aimlessly browsing the internet and chatting it up |
02:24 |
hmmmm |
that makes sense |
02:24 |
VanessaE |
see? |
02:25 |
VanessaE |
if that's what you have to do, then you do it |
02:25 |
hmmmm |
i need to work on l_find_nodes_near() |
02:25 |
VanessaE |
same reason people leave themselves sticky notes. |
02:28 |
VanessaE |
besides, if there isn't any signal to interrupt, there's no reason to worry about the noise |
03:03 |
|
jojoa1997|Tablet joined #minetest-dev |
03:45 |
darkrose |
VanessaE: I'm not mia, just busy elsewhere >.> |
03:46 |
VanessaE |
hah, I though that might get your attention |
04:08 |
|
kaeza1 joined #minetest-dev |
04:19 |
jojoa1997|Tablet |
with the new collision thing added to minetest does that mean player bump inot eachother? |
04:21 |
VanessaE |
nope. |
04:22 |
|
thexyz joined #minetest-dev |
05:42 |
|
darkrose joined #minetest-dev |
05:42 |
|
darkrose joined #minetest-dev |
06:08 |
hmmmm |
hmm |
06:08 |
hmmmm |
i think Minecraft blocks are bigger than minetest blocks |
06:08 |
hmmmm |
or at least were, in Classic |
06:08 |
VanessaE |
minecraft generates whole columns by 16x16 no? |
06:08 |
hmmmm |
i mean nodes |
06:08 |
VanessaE |
OH |
06:09 |
hmmmm |
their blocks are our nodes |
06:09 |
VanessaE |
that's a good question |
06:09 |
VanessaE |
from every video I've seen it doesn't look that way though |
06:09 |
hmmmm |
but yeah i think their blocks are 16 pixels, ours are 10 |
06:09 |
VanessaE |
ours are 16. |
06:09 |
hmmmm |
they are? |
06:09 |
VanessaE |
*nod* |
06:09 |
hmmmm |
BS 10.0 |
06:10 |
VanessaE |
to be fair, you can't really measure them in pixels though |
06:10 |
hmmmm |
i was going through my first ever map and everything just seems so much tinier |
06:10 |
hmmmm |
maybe half of it is thanks to flying, run mode and whatever |
06:11 |
VanessaE |
might be |
06:11 |
VanessaE |
see, with my texture pack a node is "512 pixels", but of course is still a 1m cube |
06:12 |
VanessaE |
a quick google says the same of minecraft classic |
06:12 |
VanessaE |
(assuming what I found has any believability to iy) |
06:12 |
VanessaE |
(it*) |
06:14 |
hmmmm |
hmm |
06:14 |
hmmmm |
ah that's what it meant by pixels |
06:14 |
hmmmm |
but the 1m thing |
06:14 |
hmmmm |
how do we know it's 1m |
06:14 |
hmmmm |
i never thought the cubes looked like 1m |
06:14 |
VanessaE |
wel |
06:14 |
VanessaE |
well |
06:15 |
VanessaE |
we know the player's eyes are at 1.6m, so the player is 2m |
06:15 |
VanessaE |
that's like hard-coded or something |
06:16 |
VanessaE |
interesting reasoning I saw on in the search results though: A door is usually about a meter wide, and in-game they are of course one block/node wide by 2 tall. |
06:16 |
VanessaE |
usually, in reality I mean |
06:16 |
hmmmm |
so that's pretty much their entire basis for saying 2 meters? |
06:16 |
hmmmm |
err, 1 meter |
06:16 |
VanessaE |
beats me, but that's how the players seem to rationalize it |
06:17 |
VanessaE |
you's have to ask notch :) |
06:17 |
VanessaE |
you'd |
06:17 |
VanessaE |
or whoever wrote infiniminer |
06:17 |
hmmmm |
i can't articulate exactly why, but it doesn't feel like blocks are 1m |
06:18 |
VanessaE |
I know, it indeed doesn't |
06:18 |
hmmmm |
and yeah, you're right, that BS constant doesn't have to do with the size of nodes |
06:18 |
VanessaE |
but at the same time, so often it seems like they're farking huge |
06:19 |
hmmmm |
in theory, changing BS should change everything |
06:20 |
hmmmm |
but it doesn't seem to have an effect on apparent size of nodes |
06:20 |
VanessaE |
the value is probably just a maginifier or something |
06:20 |
VanessaE |
magnifier* |
06:20 |
VanessaE |
or not. |
06:20 |
hmmmm |
hrm weird |
06:20 |
VanessaE |
of course the easiest is to just change the size of the player relative to the world. |
06:21 |
VanessaE |
why move the world if all you have to do is move the camera, right? |
06:21 |
hmmmm |
right |
06:21 |
hmmmm |
that's what BS should do though |
06:21 |
hmmmm |
hmm |
06:21 |
hmmmm |
dunno weird |
06:21 |
hmmmm |
i'm not going to dwell on it too much |
06:22 |
ShadowNinja |
hmmmm: player size and such are also based on BS |
06:22 |
VanessaE |
of course doing that also has a minor side effect of reducing the effective size of the map, and there's the small issue of people's structures suddenly being akin to dollhouses.... ;) |
06:22 |
hmmmm |
shadowninja, i just tried BS = 16.0 and BS = 10.0, nothing visually changed, i compared the two screenshots |
06:25 |
hmmmm |
oh |
06:25 |
hmmmm |
duh |
06:25 |
VanessaE |
light bulb time? |
06:25 |
hmmmm |
i don't notice anything because everything else changes along with it |
06:25 |
hmmmm |
what i want to change actually is the player to world size ratio |
06:27 |
darkrose |
just make the player about 2/3 its current width... then look at a player model standing in the world and it all starts to make sense |
06:28 |
ShadowNinja |
I saw the camera height somewhere, maybe camera.cpp? |
06:32 |
hmmmm |
yes, definitely, i'm absolutely certain that blocks in minecraft classic were larger, relative to the player |
06:32 |
hmmmm |
the abysmal draw range also helped make it seem even larger |
06:39 |
hmmmm |
oh my, seems to be problems in Map::unspreadLight() |
06:40 |
hmmmm |
i was noticing that the ServerThread was awful unresponsive when using singlenode mapgen, so i checked it out, and it appears that a getBlockNoCreate() in unspreadLight() called in a Map::updateLighting on a server tick keeps throwing exceptions and it keeps catching them |
06:42 |
hmmmm |
which seems to happen when liquid flows into an inexistant block |
06:42 |
hmmmm |
how do i fix this.... |
06:44 |
VanessaE |
form mod consensus needed... |
06:44 |
VanessaE |
forum* |
06:44 |
VanessaE |
(offtopic) |
06:45 |
VanessaE |
eh, ignore that. |
06:45 |
hmmmm |
jordan's licencing? |
06:45 |
VanessaE |
yeah. |
06:46 |
VanessaE |
I thought it was decided that non-free licenses weren't allowed in -Releases |
06:46 |
hmmmm |
*shrug* no clue here |
08:22 |
celeron55 |
VanessaE: NoDerivs is completely disallowed; that's not even a question worth of asking this time |
08:22 |
celeron55 |
noncommercial is arguable, no derivatives is utterly wrong |
08:22 |
VanessaE |
as I thought. |
08:22 |
VanessaE |
but my memory, as you well know, isn't entirely trustworthy. |
08:23 |
celeron55 |
i think i'll add some clarifying words to the guidelines |
08:23 |
VanessaE |
good idea. |
08:23 |
VanessaE |
GAH |
08:23 |
VanessaE |
stupid thing |
08:23 |
VanessaE |
that stupid "Leave a redirect topic in the forum" checkbox ha gotta go. |
08:24 |
VanessaE |
(it's too easy to forget to check it off) |
08:24 |
celeron55 |
you should direct stuff about the forum to thexyz; he is the only one with access to the running instance's source code |
08:25 |
VanessaE |
ok |
08:25 |
VanessaE |
I'll keep that in mind. |
08:25 |
VanessaE |
(for some reason I thought you sort of admin'd it and he just hosted) |
08:31 |
celeron55 |
added "Disallowed licenses" to http://forum.minetest.net/viewtopic.php?pid=14697 |
08:31 |
celeron55 |
that wasn't there before because i didn't think anyone would seriously try to use a license that disallows all derivatives |
08:32 |
VanessaE |
that works. |
08:32 |
VanessaE |
hah! |
08:32 |
VanessaE |
first time I noticed the rickroll link in that post :D |
08:33 |
celeron55 |
just to clarify: we do allow such licenses for texture packs though |
08:34 |
celeron55 |
as long as it doesn't become too frequent |
08:35 |
VanessaE |
if it does, we can work out some kind of basic rules then. |
08:35 |
VanessaE |
for now I see no reason to mess with that. |
08:35 |
celeron55 |
(mainly to allow MC texture packs to be ported without licensing issues) |
08:43 |
VanessaE |
ok, bedtime for me...about 4 hours late. |
08:47 |
|
proller joined #minetest-dev |
08:49 |
celeron55 |
umm |
08:49 |
celeron55 |
hmm |
08:52 |
celeron55 |
yes, the item texture generation is slow probably because it needs to do a full render cycle for each item |
08:53 |
celeron55 |
i guess there is plenty of overhead in such a one |
08:56 |
celeron55 |
altough, i have no idea how some other game might handle such or whether such is actually generally done anywhere |
09:08 |
|
prestidigitator joined #minetest-dev |
09:09 |
prestidigitator |
Hey dev folks! I've got some Simplex Noise for your pleasure, and it's SWEET! http://forum.minetest.net/viewtopic.php?pid=79748#p79748 |
09:16 |
celeron55 |
a comparison would be useful; i don't see how anyone could do any objective evaluation based on those screenshots |
09:18 |
prestidigitator |
True. Actually there may not be a lot of qualitative difference at this point, but I am absolutely amazed that the performance is as good as it is, honestly. That's the sweetest part. LOL. |
09:19 |
prestidigitator |
I'll work on a tangible comparison though. |
09:19 |
prestidigitator |
Might even be worth trying fewer octaves of noise and seeing if we could get away with, e.g. 3 instead of 5. |
09:19 |
prestidigitator |
THAT should increase performance, if it works out! |
09:20 |
|
darkrose joined #minetest-dev |
09:20 |
|
darkrose joined #minetest-dev |
09:22 |
prestidigitator |
I may even try out that thing of varying fractal persistence next. It should be incredibly easy given the Decorator Design Pattern the object-oriented interface has. |
09:23 |
celeron55 |
i think many people would appreciate if you had your code already up on github or so |
09:24 |
prestidigitator |
I'll have to clean up the history a little, but I'll push it to my fork soon, and create a pull request probably in the next couple days. |
09:24 |
celeron55 |
there's probably something in it that needs to be modified for upstream anwyay, so it's good to let people find such out early |
09:25 |
prestidigitator |
Yeah. I'll make sure and merge upstream's master branch as close to the time I create the pull request as possible. |
09:28 |
proller |
prestidigitator, you want to parse some config strings with lua ? |
09:28 |
|
darkrose joined #minetest-dev |
09:29 |
proller |
or it will be in special noise.config.lua ? |
09:29 |
prestidigitator |
Yeah. I have a working prototype of that, but I'm holding it off for a second phase. |
09:31 |
prestidigitator |
Oh. No. What I did is took the code that parses structs from settings.h and modified it to take a descriptor object holding info about the C++ struct fields instead of a straight string. Then I created a Lua state with an empty environment to parse it. |
09:32 |
prestidigitator |
I test the first (non-whitespace) character of the value, and if it is not a "{" then I replace all parens with curly braces in order to take care of the vectors and wrap the whole value in "{". Then I prepent "return " and pass it to Lua. |
09:33 |
prestidigitator |
Other than values that the C++ code asks settings.h to parse as a struct, the settings file is not affected. So it's still the same basic syntax, even up to getting the np... = .... from a line of the file. |
09:34 |
prestidigitator |
Other methods could certainly work too though. I'm not too hung up on it. |
09:35 |
prestidigitator |
That's an interesting idea, taking a second config file. |
09:36 |
|
sapier joined #minetest-dev |
09:36 |
prestidigitator |
Actually it would be a good way to phase the config file completely to Lua, if that was interesting to people. Create game.conf and game.conf.lua, and merge all the values, taking the ones from the Lua file first if they exist in both places. |
09:37 |
prestidigitator |
That would allow existing config files to live unmolested. |
09:37 |
sapier |
moving config file to lua will take any chance to get security enabled/disabled on per config base |
09:37 |
prestidigitator |
Security? In what sense? |
09:38 |
sapier |
currently security patches use a special set of prefixed config switches that are not allowed to be changed if security is enabled |
09:38 |
prestidigitator |
Oh. I think I see what you might be getting at. The way I was thinking was as a completely independent Lua state, totally separate from the interpreter used for mods. |
09:38 |
celeron55 |
note that the Settings class is used for network serialization and such too; if you make it slower or modify it's behavior, you need to make a second version of it for those purposes |
09:39 |
sapier |
if full config file handling would be done in lua you wouldn't have any chance to stop it from being changed |
09:39 |
prestidigitator |
Ahh. Okay. Interesting. I'd say the second version would be a good idea anyway. I wouldn't think Lua should be used for basic client/server communication. Hmm. |
09:39 |
celeron55 |
but anyway, i think the right path to take here is minimal changes to other things while getting the noise thing done |
09:40 |
prestidigitator |
Oh, yes. No settings file changes for now. Just the basic API. |
09:40 |
celeron55 |
what i want to do is put you and hmmmm in the same discussion again once you have stuff in github |
09:41 |
prestidigitator |
Ah. Err, okay. :o |
09:41 |
sapier |
I've had a look at jmutex and was wondering if it's possible that jmutex posix implementation behaves completely different from win32 one in terms of recursion |
09:41 |
celeron55 |
i think you two can agree in something that makes nobody sad |
09:42 |
prestidigitator |
I hope so. I really hope the performance numbers help him feel more comfortable with it. I was surprised myself! |
09:42 |
sapier |
as far as I understood win32 documentation a CRITICAL_SECTION oject is recurive by default while a normal pthread mutex isn't |
09:42 |
prestidigitator |
Hmm. If that's true about mutexes, it might be worth looking at the Boost threads library. |
09:43 |
prestidigitator |
(Which has a version written on top of Windows threads, by the way.) |
09:43 |
sapier |
is boost stable in between last time I tried to compile something with boost I had to update boost twice a week |
09:43 |
prestidigitator |
That's true, but there IS a setting for pthread mutexes that makes them recursive. |
09:44 |
celeron55 |
boost is pretty much a no-go here; it's too bloated for it's purposes |
09:44 |
sapier |
I know but it isn't set |
09:44 |
prestidigitator |
Boost isn't a single library, but a huge colletion of them. I believe Boost's thread library only depends on like the Boost time/date library and one other. I HATE many of the Boost libraries, but the threading one is pretty good and clean. |
09:44 |
sapier |
so currently same code on linux and windows should do completely different things (if I'm correct) |
09:45 |
celeron55 |
C++11 threads are more in the spirit of minetest; they can be used once all of our supported platforms have it (do they now?) |
09:45 |
prestidigitator |
Ah. That's a thought. |
09:45 |
prestidigitator |
No idea. |
09:45 |
sapier |
can someone tell me which version of gcc supports cx11? |
09:45 |
celeron55 |
we support the version of gcc in debian stable, visual studio 2010 and newest clang |
09:46 |
sapier |
still we should fix jmutex if my interpretation is correct |
09:47 |
celeron55 |
sapier: http://gcc.gnu.org/projects/cxx0x.html |
09:47 |
celeron55 |
that's for gcc |
09:47 |
celeron55 |
debian stable has... 4.6 i think |
09:47 |
sapier |
as CRITICAL_SECTION can't be switched to non recursion mode (at least msdn documentation tells this) we should use a (slower) recursive mutex too |
09:47 |
celeron55 |
here's a good list for all compilers: http://wiki.apache.org/stdcxx/C++0xCompilerSupport |
09:48 |
prestidigitator |
g++ 4.7's man page says "The 2011 ISO C++ standard plus amendments. Support for C++11 is still experimental, and may change in incompatible ways in future releases". At least as of the version Ubuntu 12.10 has. |
09:48 |
sapier |
do we require full cx11 compatibility? |
09:48 |
sapier |
not even 4.8 has reached this state |
09:48 |
celeron55 |
sapier: how is that relevant to us |
09:49 |
sapier |
I don't know those features missing in gcc4.8 don't seem to be relevant to us (as far as I understand) |
09:49 |
celeron55 |
"they can be used once all of our supported platforms have it" refers to any single feature of C++11 by their own |
09:49 |
celeron55 |
not the full thing |
09:49 |
sapier |
ok |
09:49 |
sapier |
so we only have to wait until wheezy is released |
09:50 |
sapier |
but as far as I know c++ threads aren't a full replacement for phreads |
09:50 |
prestidigitator |
I believe there's actually a library that puts a pthreads API on top of Windows threads too. It's possible that might give some consistency. Then again, maybe that's what jmutex is supposed to do anyway? |
09:51 |
prestidigitator |
No idea about licensing on that one. |
09:52 |
sapier |
ok I'm wrong according to cppreference thread documentation c++ threads seam quite as good as jthread |
09:53 |
sapier |
but they are missing thread prioritys ... if we want to make minetest multithreaded we most likely will require this |
09:53 |
celeron55 |
apparently VC10 doesn't support C++11 threads and never will |
09:53 |
sapier |
ok so no c++ threads anytime soon |
09:54 |
sapier |
I suggest only fixing jmutex to behave same way in linux and windows for the time being |
09:55 |
prestidigitator |
If Windows' default is recursive, fixing the pthreads version should be very easy. |
09:55 |
celeron55 |
sapier: or we could just define that our mutex implementation is free to behave recursively or non-recursively; that isn't really a problem other than in very special cases |
09:56 |
sapier |
it's no problem yes but it should be same on linux and windows |
09:56 |
sapier |
stop it is a problem |
09:56 |
sapier |
if you define it's free you have to assume it's non recursive |
09:56 |
celeron55 |
yes, you have to code like it's non-recursive |
09:57 |
sapier |
... might be even better .. but more difficult to handle |
09:57 |
celeron55 |
i'm fine with switching to recursive pthreads though, if the windows one indeed is stuck to being recursive |
09:58 |
sapier |
it's the quick solution ...as atm mutexes aren't used very excessive the speed penalty might not be noticed within linux |
09:59 |
celeron55 |
the non-recursive pthread mutexes are multiple times faster than recursive windows ones i think |
09:59 |
sapier |
but I'll have look if it's possible to make scriptapi behave fine with non recursive mutexes ... functions called from within scriptapi as well as modapi might be a problem ... maybe I need to add aditional functions to get this done |
10:00 |
celeron55 |
the other windows implementation (the inter-process one, i guess that's non-recursive) selectable in jmutex by a flag is way slower |
10:00 |
prestidigitator |
All you have to do is call pthread_mutex_init() with an attribute object you've called pthread_mutexattr_settype(..., PTHREAD_MUTEX_RECURSIVE_NP) on. |
10:01 |
sapier |
yes but we need to be sure we want to use the slow recursive mutexes |
10:02 |
sapier |
semaphores (events) are heavy operations compared to mutexes (at least on most architectures) |
10:02 |
prestidigitator |
True. Honestly I doubt they are that much slower though. Hmm. |
10:03 |
sapier |
mutex speed does make a difference but only if called thousands of times per second (which may happen in some programs) ... i don't know if minetest uses locking this way |
10:03 |
prestidigitator |
Well, I believe recursive mutexes just lock a non-recursive mutex and check on a thread ownership variable. |
10:04 |
Kray |
recursive mutexes are bad because they indicate the program is structured poorly |
10:04 |
prestidigitator |
Right. Hopefully most operations are done using mostly independent state on the different threads. |
10:05 |
prestidigitator |
I'd have to disagree there. It CAN indicate this, but there are well designed programs that can still recursively lock mutexes. |
10:05 |
sapier |
which is exactly what minetest is considering locking kray ;-) |
10:06 |
sapier |
imho locking is done way to heavy within minetest this is like the big kernel lock in linux was some years ago |
10:09 |
prestidigitator |
I haven't really dug enough to get a sense of that yet myself. I did create the noise API I am working on with concurrency in mind. The noise generation itself is completely re-entrant. To generate blocks of noise, callers pass in a result buffer. |
10:09 |
prestidigitator |
Somewhat better than the existing API, where the results are stored in the noise object itself. |
10:10 |
prestidigitator |
So to safely generate noise independently on different threads, the whole noise object would have to be copied. |
10:10 |
prestidigitator |
Not that big of a deal, until you realize that many objects hold a noise object... |
10:14 |
prestidigitator |
Anyway, I should probably be getting some sleep. |
10:14 |
sapier |
ok I've just enabled locking without recursion lets see where I'm gonna be stuck |
10:15 |
prestidigitator |
Uh oh! Good luck! :-) |
10:15 |
prestidigitator |
Good talking to you. Goodnight folks. |
10:16 |
|
prestidigitator left #minetest-dev |
10:17 |
sapier |
lol no lockup at all due to big minetest lock :-) |
10:42 |
|
proller joined #minetest-dev |
10:58 |
|
iqualfragile joined #minetest-dev |
11:26 |
|
darkrose joined #minetest-dev |
11:54 |
|
PilzAdam joined #minetest-dev |
11:56 |
sapier |
PilzAdam are used to locks and how they are used in core? |
11:56 |
|
rubenwardy joined #minetest-dev |
11:56 |
PilzAdam |
no |
11:57 |
sapier |
:-/ I try to understand how this is done |
12:06 |
|
Pepsininja joined #minetest-dev |
12:08 |
Pepsininja |
Hello:) |
12:08 |
rarkenin |
Hi. |
12:09 |
Pepsininja |
You use this too Rark? |
12:09 |
rarkenin |
Occasionally. IRC is a meeting place for people/developers. :) |
12:10 |
|
Pepsininja joined #minetest-dev |
12:10 |
Pepsininja |
Gtg |
12:30 |
sapier |
ok I've investigated env lock, there's no way this lock can ever be taken from anyone outside of server thread. Can someone tell me what's this lock good for at all? |
12:33 |
sapier |
argh ... eclipse has hidden a file ... there is exactly one other thread ... emerge thread |
12:37 |
sapier |
and emerge thread protects map operations by using env lock ... most other occurences of env lock don't do anything with map ... imho this lock is used as "let me be the only one doing anything"-lock |
12:38 |
celeron55 |
it protects the environment, consisting of the nodes and objects |
12:38 |
celeron55 |
and lua |
12:38 |
sapier |
so "protect everything" is very close |
12:40 |
sapier |
for example to send time to players env lock is taken ... I don't see any dependency of time and map ... is there a hidden one? |
12:41 |
celeron55 |
could be that there is none for that, but previously was |
12:41 |
sapier |
most env locks have been commented within client maybe they have been necessary once |
12:41 |
celeron55 |
you need to take into account who may write the data, and who may read the data |
12:42 |
celeron55 |
sapier: don't let that fool you; the client was made single-threaded a while back as far as environment goes |
12:43 |
sapier |
yes that's why I'm asking I know it's difficult to make locks more specific but currently it's a one thread or another thread lock resulting in almost single thread performance |
12:43 |
|
Jordach joined #minetest-dev |
12:44 |
celeron55 |
in order to do that, you need to define smaller atomic operations for everything that needs to be done |
12:44 |
celeron55 |
currently there is only one atomic operation, which is "do anything that modifies anything in the game state" |
12:44 |
sapier |
that's what I suggest to aim at |
12:44 |
celeron55 |
"modifies or reads", that is |
12:44 |
sapier |
it's not a thing to be done at once of course |
12:45 |
sapier |
sorry gtg |
12:45 |
celeron55 |
well i don't really want to discuss this either so whatever 8) other things to do |
13:06 |
|
troller joined #minetest-dev |
13:31 |
PilzAdam |
I merged the sound_place field for tools and the new damage system together into one branch, since they both require a new protocoll version: https://github.com/PilzAdam/minetest/commits/dev |
13:31 |
PilzAdam |
all changes are fully backwards compatible |
13:39 |
PilzAdam |
pull request: https://github.com/minetest/minetest/pull/576 |
13:45 |
|
rarkenin joined #minetest-dev |
14:10 |
|
hmmmm joined #minetest-dev |
14:18 |
hmmmm |
http://forum.minetest.net/viewtopic.php?pid=79748#p79748 <---- something's not right here |
14:19 |
hmmmm |
the point-noise functions are about 30x slower than my batch noise generation |
14:23 |
hmmmm |
and i am reading the backlog from that guy now... oh god... "decorator design pattern"? |
14:23 |
hmmmm |
all the things i thought would happen are happening with this guy |
14:24 |
hmmmm |
yeah, his code is definitely not making its way in without heavy modification to actually fit with minetest |
14:28 |
celeron55 |
you have a lot of presuppositions considering you haven't seen a single line of code |
14:29 |
hmmmm |
i have good intuition much of the time |
14:29 |
celeron55 |
i suggest not so openly disliking it before you have actually seen it; it does no good to anyone |
14:29 |
celeron55 |
nor this project |
14:29 |
hmmmm |
decorator design pattern though |
14:29 |
celeron55 |
they're just words |
14:29 |
hmmmm |
did he just finish a software engineering course at his school and he's eager to javafy minetest? |
14:30 |
hmmmm |
why not draw up some UML diagrams too |
14:30 |
hmmmm |
make a use flowchart |
14:30 |
Kray |
why not? |
14:30 |
hmmmm |
start shitting up the source code with doxygen comments |
14:30 |
|
serengeor joined #minetest-dev |
14:30 |
Kray |
doxygen comments in the source is a good thing |
14:31 |
hmmmm |
they're ugly, space consuming, and often uninformative |
14:31 |
Kray |
it allows generating nice documentation of APIs |
14:31 |
Kray |
they are not uninformative if you don't write them to be such |
14:32 |
Kray |
you have to document somewhere, so why not where the code that's being documented resides? |
14:32 |
hmmmm |
because it's too distracting |
14:32 |
Kray |
it's distracting to have well documented and commented code? |
14:32 |
Kray |
gtfo |
14:33 |
hmmmm |
you seem to think that comments turn something that was unreadable before into something that's easy to understand |
14:33 |
Kray |
nope |
14:33 |
hmmmm |
just by talking about what the parameters are in a full sentence instead of a word or phrase |
14:34 |
PilzAdam |
hmmmm, if you have time can you look at this: https://github.com/minetest/minetest/pull/576 ? it needs to be merged before 0.4.6 to make the new swords work correctly |
14:34 |
|
rarkenin joined #minetest-dev |
14:34 |
Kray |
wat |
14:36 |
hmmmm |
PilzAdam, it looks nice I guess, i can't comment on its functionality though |
14:36 |
|
iqualfragile joined #minetest-dev |
14:36 |
hmmmm |
you know, damage is something that I would've thought would best be done completely in lua |
14:36 |
hmmmm |
doesn't matter though |
14:36 |
PilzAdam |
no, the client predicts it |
14:37 |
celeron55 |
these days i'm actually in for trying doxygen, but i'm leaving actual usage (there is a patch around that puts in the few required pieces to the build system) for those who mainly code things |
14:37 |
hmmmm |
that's a challenge for the bar api, client-side prediction |
14:37 |
hmmmm |
celeron, have you seen the average doxygen comment? |
14:37 |
hmmmm |
a lot of code is self-explanatory to begin with |
14:37 |
hmmmm |
there is some that isn't, like profiler i'd argue |
14:38 |
celeron55 |
we can just set up a policy that any self-explanatory code shall not be written extra documentation for |
14:38 |
hmmmm |
but there, you'd just need a block comment at top to explain in two or three sentences what is going on |
14:39 |
hmmmm |
i just fear having a 10-12 line comment for a 4 line function whose usage is totally described by the function name, parameters, and parameter types |
14:40 |
hmmmm |
oftentimes what's needed is to talk about what the function does, not its parameters and what not |
14:40 |
Kray |
"code is self-explanatory" |
14:40 |
celeron55 |
ehm... do you not think i would like such ones? |
14:40 |
Kray |
no, it isn't |
14:40 |
hmmmm |
doxygen encourages doing that |
14:40 |
celeron55 |
if such would appear, i'd just go remove it myself if nobody else did |
14:41 |
celeron55 |
seriously, we're not so dumb that we couldn't use doxygen to our advantage |
14:41 |
hmmmm |
but where do we draw the line |
14:42 |
celeron55 |
a few examples should do well |
14:42 |
hmmmm |
and then people will say it's incomplete because it doesn't document all of the methods of something |
14:42 |
hmmmm |
and then we're going to get pull requests for complete commentary on the code |
14:43 |
celeron55 |
maybe initially have a policy of no methods whatsoever to be documented, and only a file top level comment allowed - so it's nicely browseable in a browser, and keeps the actual code compact |
14:43 |
hmmmm |
"oh yeah will someone merge my pull request, i fixed minetest by giving fizzbuzz() a doxygen style comment and encapsulated it in an interface with a decorator design pattern" |
14:43 |
celeron55 |
:D |
14:45 |
hmmmm |
but anyway i like the last idea better |
14:45 |
hmmmm |
i want to keep code with code mostly |
14:45 |
celeron55 |
let's say also that only those who have worked on some code are allowed to add the doxygen comment about it, so it stays actually relevant (zero "i++; // Increment i by one" stuff) |
14:47 |
Exio |
but the i++ is very hard to understand |
14:47 |
Exio |
add macros like #define Increment_Variable_by_One(i) i++; |
14:47 |
celeron55 |
anyway, this won't happen until somebody actually wants to handle this |
14:48 |
celeron55 |
but it's allowed assuming the discussed things will be done correctly |
14:48 |
Kray |
hey, ++i ! |
14:48 |
Kray |
i++ in unoptimized !1 |
14:49 |
hmmmm |
that was the whole point of COBOL |
14:49 |
hmmmm |
it was verbose so that middle managers could read the code like any other document |
14:49 |
hmmmm |
and we know how fun COBOL is |
14:50 |
hmmmm |
java definitely has elements of this with the verbosity |
14:50 |
hmmmm |
languages that are naturally terse (like C/++) are best left alone |
14:52 |
celeron55 |
(middle managers don't need to understand code at all though; their purpose is to serve the people who actually do stuff in things they don't want to do) |
14:53 |
|
IceCraft joined #minetest-dev |
14:53 |
iqualfragile |
you can do i++ in java, too |
15:01 |
|
rubenwardy joined #minetest-dev |
15:08 |
hmmmm |
celeron, your dungeon game won't break if everything is set to a light value of 0x0F, right? |
15:09 |
sapier |
why is block generation split into intit and finish? |
15:10 |
hmmmm |
ahh nevermind, that won't work, you don't call set node with an explicit param1 |
15:10 |
hmmmm |
sapier, locking |
15:10 |
sapier |
I still don't understand? |
15:11 |
sapier |
init is done within one lock finish within another |
15:11 |
hmmmm |
makeChunk() is called in between the two |
15:11 |
PilzAdam |
celeron55, do you want to look at the serialization? https://github.com/minetest/minetest/pull/576 |
15:11 |
hmmmm |
you don't want to call makeChunk() while the environment is locked, that's braindead |
15:11 |
sapier |
ok I'll have alook what this does |
15:12 |
sapier |
I try to understand where env lock is used for what in order to replace it by smaller locks ... e.g. a map lock where only map operations are done |
15:12 |
hmmmm |
you'll have trouble |
15:12 |
hmmmm |
i was looking at the same exact code you're looking at now |
15:13 |
sapier |
primary goal is to enable scriptapi to run with no lock at all ... currently all scriptapi calls are done under envlock ... wich isn't quite fast |
15:14 |
sapier |
but I'm in early stage of investigation atm |
15:16 |
hmmmm |
https://github.com/minetest/minetest/commit/b0f39da131bc24a41c5d5c8a03d06192937a4568 |
15:20 |
|
celeron55 joined #minetest-dev |
15:27 |
celeron55 |
sapier: it might usually not make sense to run scriptapi without a lock - because the vast majority of the time the only thing the scripts are going to do is mess around with everything in the environment |
15:28 |
celeron55 |
but dunno |
15:29 |
hmmmm |
celeron, do you have any ideas on how to fix Map::updateLighting() from taking insane amounts of CPU time from the server thread when a liquid is flowing into an inexistant block? |
15:29 |
sapier |
inventory actions aren't modifying map, entity interaction isn't modifying map, crafting doesn't modify map ... there are at least some situations where a map lock is not necessary |
15:29 |
celeron55 |
hmmmm: no |
15:29 |
celeron55 |
>inventory actions aren't modifying map |
15:29 |
celeron55 |
they can be modifying node metadata |
15:30 |
sapier |
if it's a node inventory and not a detached one |
15:31 |
celeron55 |
but what do you achieve by letting the global lua run without a lock? node placements and the constructors of special nodes and so on need to run in it, blocking everything anyway |
15:31 |
hmmmm |
hah, this is fun, if you have some water and lava source nodes at the edge with nothing but air surrounding them, they make some pretty cool terrain thanks to the new lava cooling and the way liquids spread |
15:31 |
celeron55 |
it would possibly be more reasonable to make a system for allowing some kind of script threads maybe |
15:32 |
sapier |
that's exactly what I want to do but it's useless unless It can't run asynchronously to server |
15:33 |
sapier |
if this thread requires env lock taken to run it'd exclude server thread vice versa |
15:33 |
celeron55 |
well, just disable the whole environment and server api from the threads and just allow serialized data to go in and out |
15:34 |
sapier |
isn't worth the work as you couldn't do anything with a script environment stipped down that much |
15:34 |
celeron55 |
you can then 1) do blocking i/o in them, 2) launch one in on_generated to build some terrain in the background, passing the copied table of originally generated nodes to it 8) |
15:34 |
celeron55 |
not sure if this is really viable, but it's one of possible approaches |
15:35 |
sapier |
that's why I want more specific locks to make those threads run asynchronously as long as possible |
15:35 |
sapier |
if someone places a node from lua I don't have any chance but locking map |
15:35 |
sapier |
but if someone punches a entity i don't need to bother about map |
15:35 |
celeron55 |
sapier: what do you want to do in non-locked lua? |
15:36 |
celeron55 |
you need to know the answer to that before you can design anything |
15:36 |
sapier |
e.g. entity interaction inventory interaction |
15:37 |
sapier |
lua based pathfinding for example took 1s to fetch data from map but several hundreds to calculate ... I know if something is that heavy it'd not be done in lua but it's a good example for locks just not required for so long |
15:40 |
sapier |
But I'll do some investigations how much time is wasted within lock not required to be wasted |
15:48 |
hmmmm |
sapier, it would probably help to have some APIs for manually unlocking/locking the environment back, to be used at the modder's own careful discression.. |
15:48 |
hmmmm |
that's what i would do anyway. |
15:50 |
|
rubenwardy left #minetest-dev |
15:54 |
celeron55 |
basically, here is why it has been left like that - it'll take much effort to figure out how to do it so that it can actually bring some benefit |
16:13 |
sapier |
I know it's lots of effort but as cpu's don't get faster anymore but only get additional cores amdals law is most important for any application doing paralelizable computation |
16:16 |
|
dexter0 joined #minetest-dev |
16:18 |
|
Zeg9 joined #minetest-dev |
16:19 |
|
rubenwardy joined #minetest-dev |
16:37 |
|
celeron55 joined #minetest-dev |
16:57 |
sapier |
hmmm for some cases this might be usefull but I don't think modders should bother to take env lock when adding a single block |
16:58 |
sapier |
excuse me I meant node of course |
17:02 |
celeron55 |
obviously it can be automated when the modder doesn't care |
17:11 |
sapier |
according to profiler there is time consumed within lua functions that don't need a lock ... it's about 0.06 if here's almost nothing to be done within lua |
17:14 |
hmmmm |
holy crap i am such an idiot |
17:18 |
hmmmm |
https://github.com/minetest/minetest/commit/5b854f95d2144710493520151aafc48a887ac1b3 |
17:18 |
hmmmm |
why didn't anybody tell me i did something dumb |
17:19 |
PilzAdam |
we want you to find your bugs yourself :-) |
17:33 |
|
rubenwardy joined #minetest-dev |
18:03 |
|
Calinou joined #minetest-dev |
18:21 |
|
proller joined #minetest-dev |
18:47 |
PilzAdam |
celeron55, sorry for repeating, but can you look if I have done something dumb to the serialization: https://github.com/minetest/minetest/pull/576 ? |
18:52 |
celeron55 |
it seems to be roughly right |
18:52 |
celeron55 |
you've screwed up the documentation though |
18:53 |
PilzAdam |
wich documentation? lua-api.txt? |
18:53 |
celeron55 |
damage_groups = {fleshy=100}, <- this example is ridiculous |
18:53 |
celeron55 |
a tool that makes 100hp of damage |
18:54 |
PilzAdam |
oh |
18:55 |
PilzAdam |
anything else? |
18:55 |
celeron55 |
and after "List of damage for groups of entities.", add "See "Entity damage mechanism"", and also after line 473 |
18:55 |
celeron55 |
so that it's easy to find how it actually is supposed to work |
18:55 |
celeron55 |
oh and |
18:56 |
celeron55 |
hmm, i think it's good enough after that |
18:57 |
celeron55 |
i think this may leave some old misinformation somewhere but i can't immediately find such |
18:59 |
PilzAdam |
ok, thx |
19:02 |
PilzAdam |
maybe in "Known damage and digging time defining groups" add "percentage of damage caused by damage group fleshy" to fleshy |
19:03 |
celeron55 |
umm hmm |
19:03 |
celeron55 |
no |
19:04 |
celeron55 |
the mention about percentage should be added under "Groups of entities" |
19:05 |
celeron55 |
from "Known damage and digging time defining groups" the line "Valid ratings for these are 0, 1, 2 and 3, unless otherwise stated." should be removed |
19:05 |
celeron55 |
or alternatively changed to... well no, it doesn't belong there |
19:05 |
celeron55 |
it's supposed to be just a list |
19:06 |
celeron55 |
the 1...3 thing for digging time is explained elsewhere already |
19:08 |
celeron55 |
lua_api.txt should be minimal but accurate 8) |
19:09 |
hmmmm |
celeron, was it l_find_node_near() that was being slow? |
19:09 |
hmmmm |
there are a lot of calls to l_find_node_near(), but they all take <= 1ms |
19:09 |
PilzAdam |
updated |
19:10 |
celeron55 |
>there are a lot of calls |
19:10 |
celeron55 |
there are a fuckton of calls, made by leaf decay |
19:10 |
VanessaE |
moretrees uses the lua hook for that as well. |
19:10 |
VanessaE |
(for the same reason) |
19:11 |
celeron55 |
l_find_node_near should be optimized to be as light as possible for light queries |
19:11 |
celeron55 |
not something that takes as much as "<=1ms" |
19:11 |
PilzAdam |
Ill push it now |
19:11 |
hmmmm |
there are a lot of other functions called more than that which take longer than 2ms |
19:11 |
hmmmm |
i'm not wasting my time |
19:12 |
celeron55 |
could be |
19:12 |
hmmmm |
haha j/k, i'm not like that |
19:12 |
celeron55 |
that's just one thing that easily popped out by inspecting with callgrind/kcachegrind |
19:13 |
celeron55 |
leaf decay will actually cache the result on it's own so it gets easier over time |
19:13 |
hmmmm |
but i'm going to need to add a microsecond precision timer, something that's long overdue |
19:13 |
VanessaE |
plants_lib also uses it during mapgen time. |
19:14 |
VanessaE |
(just mentioning these because they're the two heaviest mods I know of that would benefit from a speedup in that function) |
19:23 |
hmmmm |
well this isn't as simple as it should be |
19:23 |
hmmmm |
irrlicht doesn't have anything other than ms |
19:23 |
celeron55 |
you need to add a platform-specific one to porting.h |
19:23 |
hmmmm |
yeah i had to do that anyway |
19:23 |
celeron55 |
posix has gettimeofday, windows has something else |
19:24 |
hmmmm |
i know, i know |
19:24 |
celeron55 |
why don't you just do it then and stop talking :P |
19:24 |
hmmmm |
for the hell of it, i expanded timing to seconds, microseconds, and nanoseconds |
19:25 |
hmmmm |
ah, you have to specify whether or not a timetaker is quiet now in order to use that, oh well |
19:28 |
hmmmm |
and for nanoseconds i guess i can use clock_gettime() |
19:28 |
sapier |
I like it :-) |
19:45 |
|
Taoki joined #minetest-dev |
19:49 |
hmmmm |
hrmm |
19:49 |
hmmmm |
does anybody have Windows to test something? |
19:51 |
VanessaE |
hmmmm: got Win2k via virtualbox over here... |
19:51 |
VanessaE |
(on husband's machine) |
19:51 |
hmmmm |
haha, no thanks |
19:51 |
VanessaE |
heh |
19:51 |
hmmmm |
I mean an actual machine that can run minetest |
19:52 |
VanessaE |
well it works enough to play his pinball games :D |
19:52 |
VanessaE |
but no, nothing handy that actually has win installed |
19:56 |
|
Calinou joined #minetest-dev |
19:56 |
Exio |
hmmmm: for testing what? |
19:57 |
hmmmm |
well, two things I guess. my implementations of getTimeUs and getTimeNs for windows, and to see how slow l_find_nodes_in_area really is for other people |
19:57 |
Exio |
how should i test that? |
19:57 |
Exio |
any virus.exe? :P |
19:57 |
hmmmm |
oh, well hold on a minute |
19:57 |
hmmmm |
not at the moment |
19:58 |
hmmmm |
actually i can do this without dragging other people around |
19:58 |
hmmmm |
nevermind |
19:58 |
|
kaeza joined #minetest-dev |
20:00 |
Exio |
ok... |
20:00 |
hmmmm |
sorry :p |
20:00 |
* Exio |
throws lava at hmmmm's computer |
20:00 |
hmmmm |
lava! |
20:00 |
hmmmm |
hopefully not a lava source |
20:01 |
Exio |
it is a NON RENEWABLE lava source |
20:03 |
hmmmm |
haha |
20:03 |
hmmmm |
/ CLANG SUCKS DONKEY BALLS |
20:03 |
Exio |
i saw that when grep-ing |
20:05 |
|
jojoa1997|Tablet joined #minetest-dev |
20:08 |
Calinou |
it does :> |
20:08 |
Calinou |
well, not really |
20:08 |
Calinou |
but it bugs with a lot of programs |
20:09 |
hmmmm |
clang is nice because it has a BSD license and it's quite fast these days.. i am looking forward to freebsd 10 where it's the default cc |
20:09 |
hmmmm |
well, let's be honest, anything is better than gcc 4.2.2 |
20:29 |
Calinou |
I don't really care about compile speed (MSVC ALWAYS wins in this anyway, no need to compile), just about the resulting binary speed :P |
20:29 |
Calinou |
or the fun intel compilers :p |
20:29 |
|
rarkenin joined #minetest-dev |
20:35 |
VanessaE |
Calinou: you forgot to delete gold, copper, bronze nodes from moreores :-) |
20:36 |
VanessaE |
(and tools, items) |
20:38 |
sfan5 |
bug: |
20:39 |
sfan5 |
ERROR[main]: WARNING: updateListener: invalid value |
20:39 |
sfan5 |
and the world turns invisible |
20:39 |
jojoa1997|AWAY |
How do I add a. Name to my account |
20:40 |
sfan5 |
debug stack trace: http://pastie.org/pastes/7166009/text?key=prs9gr93ikamveaqce17oa |
20:48 |
hmmmm |
this is harder than i thought |
20:48 |
hmmmm |
QueryPerformanceCounter is wildly inaccurate |
20:48 |
hmmmm |
a lot of the time i do get what i expect, other times it's way off |
20:48 |
hmmmm |
and i don't think it's due to context switching |
20:49 |
hmmmm |
ah, nevermind, it's accurate enough, it's Sleep() that's not accurate |
20:50 |
|
Pepsininja joined #minetest-dev |
20:53 |
hmmmm |
https://github.com/minetest/minetest/commit/df49b93877b40551111be6ef5ecfe4629787ab75 |
21:00 |
|
sapier1 joined #minetest-dev |
21:30 |
hmmmm |
vanessae, they still have to be there in case those nodes need to be registered |
21:31 |
VanessaE |
oh. |
21:31 |
VanessaE |
but they show up anyway |
21:31 |
VanessaE |
so the test isn't being done |
21:33 |
|
jojoa1997|Tablet joined #minetest-dev |
21:37 |
proller |
https://github.com/proller/minetest/commit/c0c55e3c8a196eaa1ec412a230a339b771c692b9 - masterserver fixes |
21:38 |
proller |
added gameid, uptime from server |
21:45 |
|
rarkenin joined #minetest-dev |
21:46 |
proller |
comments? |
21:48 |
PilzAdam |
is it backwards compatible? |
21:53 |
PilzAdam |
and wouldnt it be better to use the name that is set in game.conf instead of the id? |
21:53 |
|
jojoa1997|Tablet joined #minetest-dev |
21:55 |
proller |
fully compatible |
21:57 |
hmmmm |
from what i understand, the name in game.conf is a larger string to describe the game better, not a unique identifier |
21:58 |
hmmmm |
yeah, looks good aside from the lines that are like 150 columns long |
21:58 |
hmmmm |
lol, 'human_time()' |
21:58 |
hmmmm |
the time that earthlings use |
21:59 |
proller |
yes, too long |
21:59 |
proller |
human-readable |
22:00 |
proller |
commit with .id ? |
22:00 |
hmmmm |
yeah |
22:00 |
hmmmm |
because an id actually identifies the game, that's why it's called the I.D. |
22:03 |
PilzAdam |
the ID of games is just the name of the directory of it, while the actual name of the game is set in game.conf |
22:03 |
PilzAdam |
like "name = Build" |
22:04 |
hmmmm |
yea |
22:04 |
hmmmm |
oh... wait... that's going to be displayed to the user? |
22:04 |
PilzAdam |
lua-api.txt says is the "human readable" version of the game ID |
22:04 |
PilzAdam |
*its |
22:04 |
PilzAdam |
I guess, yea |
22:05 |
hmmmm |
if that's the case, then yeah, the name should be used |
22:05 |
proller |
"minimal" |
22:05 |
PilzAdam |
we also need to change the select world GUI to show the name instead of the ID behind the worlds in the [] |
22:05 |
proller |
and now its for show in web only, no space in game chooser |
22:06 |
hmmmm |
yeah |
22:06 |
hmmmm |
if the end user is going to see this in a list, it should be .name, if not, .id |
22:06 |
proller |
http://minetest.setun.net:8000/ |
22:06 |
PilzAdam |
proller, also a proper commit message would "Small fixes for masterserver and add uptime and game name to announce" |
22:07 |
PilzAdam |
+be |
22:07 |
proller |
ok |
22:08 |
PilzAdam |
oh, the one you commited is also good |
22:08 |
proller |
^^ in link .name |
22:08 |
proller |
no, i commited .id |
22:08 |
proller |
but can change |
22:08 |
proller |
but look on http://servers.minetest.net/ |
22:09 |
proller |
add long string too bad |
22:13 |
proller |
main difference now in first letter, capital or not |
22:15 |
hmmmm |
wow, gotta wonder, is that really all the minetest servers there are? |
22:16 |
VanessaE |
http://servers.minetest.ru/ |
22:16 |
VanessaE |
those, too |
22:16 |
hmmmm |
minetest isn't popular outside of the people in our channel i guess |
22:16 |
|
serengeor joined #minetest-dev |
22:16 |
hmmmm |
ah that looks a bit better |
22:17 |
proller |
hmmmm, all with server_announce=1 |
22:17 |
VanessaE |
hmmmm: well that's not true, if you were to look at my auth.txt, you'd find maybe 80% or more of the 1491 entries are people we've never seen in these channels |
22:17 |
hmmmm |
isn't server_announce=1 the default? |
22:17 |
proller |
no |
22:17 |
hmmmm |
oh |
22:17 |
proller |
but you can enable in gui |
22:18 |
proller |
"Public" |
22:18 |
PilzAdam |
most people dont know how to use it |
22:18 |
Calinou |
idea: ability to change server name in the server creation menu :P |
22:18 |
Calinou |
name, desc, maybe max players |
22:18 |
VanessaE |
it's just more a problem of "how to run server plz I cant read web halp plzzz" |
22:18 |
VanessaE |
know what I mean? |
22:18 |
Calinou |
(we could have a more full server gui, actually) |
22:19 |
Calinou |
a separate one, but in the MT main menu |
22:20 |
proller |
btw, now possible to embed serverlist in any page, i think must be tab in http://minetest.net/ |
22:21 |
proller |
or directly on main page like http://buildandshoot.com/ |
22:27 |
IceCraft |
Lol |
22:27 |
IceCraft |
Buildandshoot.com :3 |
22:27 |
IceCraft |
Yay |
22:34 |
proller |
PilzAdam, ups, uptime backward comp. was broken 8) small fix.. |
22:34 |
proller |
only in js |
23:33 |
PilzAdam |
hmmmm, whats this? http://www.zimg.eu/i/4153720300 |
23:34 |
PilzAdam |
it appeared in my world after I started MT in a shaft under the tower and went up |
23:34 |
PilzAdam |
the trees are grown from saplings |
23:35 |
VanessaE |
I saw something like that on my server a few days ago too. |
23:35 |
VanessaE |
inexplicable, square black shadows. |
23:39 |
|
jojoa1997|Tablet joined #minetest-dev |
23:39 |
PilzAdam |
oh, I have planted a new sapling, and when the tree grows the shadows are gone |
23:42 |
PilzAdam |
yep, its reproduceable that a growing sapling fixes it |
23:51 |
|
jojoa1997|Tablet joined #minetest-dev |