Time |
Nick |
Message |
00:23 |
|
Player_2 joined #minetest-dev |
00:40 |
|
RealBadAngel joined #minetest-dev |
00:58 |
hmmmm |
!seen paramat |
00:58 |
ShadowBot |
hmmmm: I saw paramat in #minetest-dev 1 day, 22 hours, 8 minutes, and 50 seconds ago saying "per node force place confirmed working, no more tree trunks removed by a nearby tree's leaves" |
00:58 |
hmmmm |
hrmm |
00:58 |
* hmmmm |
scratches head |
01:04 |
hmmmm |
heh... the logic in generateBiomes is quite messy, but i'll admit it works very well |
01:13 |
|
paramat joined #minetest-dev |
01:13 |
paramat |
hiya |
01:13 |
RealBadAngel |
hi |
01:13 |
hmmmm |
hi |
01:13 |
hmmmm |
do you continuously monitor the logs or something |
01:13 |
RealBadAngel |
hehe |
01:14 |
paramat |
heh i just happened to look |
01:14 |
* VanessaE |
peeks in also |
01:14 |
RealBadAngel |
rotfl |
01:14 |
RealBadAngel |
who else gonna pop up? :) |
01:15 |
hmmmm |
meh |
01:15 |
hmmmm |
in any case I'm in the process of generalizing generateBiomes() and making it part of the BiomeManager |
01:15 |
paramat |
'messy but works very well' is good code? |
01:15 |
hmmmm |
wondering if it makes sense from an organizational standpoint to place symbolic content_t values in the voxelmanipulator instead of actual stone, water, and air |
01:16 |
paramat |
ah |
01:16 |
hmmmm |
it's good code because it works :) |
01:16 |
paramat |
quite right |
01:16 |
hmmmm |
hard to follow and a some redundancy but it works |
01:16 |
hmmmm |
something that i couldn't do :p |
01:17 |
hmmmm |
anyway |
01:17 |
paramat |
my only concern is different/future mapgen may need generate biomes to work differently |
01:18 |
hmmmm |
they'd either override the biomemanager's version or define a new version inside biome manager |
01:18 |
paramat |
okay cool |
01:18 |
hmmmm |
hmm |
01:18 |
paramat |
i think they're identical for mgv5/v7 currently |
01:18 |
hmmmm |
i want to decouple air from the constant CONTENT_AIR |
01:18 |
hmmmm |
using mapgen_air is a decent start |
01:18 |
hmmmm |
but should biomes have their own air? |
01:19 |
hmmmm |
in particular what I'm thinking of is a space biome that has vaccum instead of air so the player would suffocate |
01:19 |
hmmmm |
or maybe a swamp gas air |
01:25 |
paramat |
yeah vacuum nodes replacing air would be good, very useful |
01:25 |
paramat |
and in line with c55's roadmaps |
01:26 |
hmmmm |
well it's easy to decouple air from the constant |
01:26 |
hmmmm |
but per-biome air? |
01:26 |
paramat |
not sure it needs to be per-biome.. |
01:27 |
hmmmm |
okay, done |
01:27 |
paramat |
air or vacuum seems more of a per-realm thing |
01:27 |
hmmmm |
i'll keep that in mind |
01:28 |
hmmmm |
realms are still an idea that's going to happen |
01:28 |
hmmmm |
it's just very much on the backlog |
01:28 |
paramat |
usually defined by y |
01:28 |
paramat |
good |
01:28 |
paramat |
so per stacked realm |
01:29 |
hmmmm |
https://github.com/minetest/minetest/blob/master/src/mapgen_v7.cpp#L618 |
01:29 |
hmmmm |
about this |
01:29 |
hmmmm |
do you have any reasoning in particular for checking CONTENT_IGNORE and CONTENT_AIR? |
01:30 |
paramat |
'symbolic content_t values in the vm' are these needed when biome API can replace stone and water with anything we want? |
01:30 |
* paramat |
looks |
01:30 |
hmmmm |
not really no |
01:31 |
hmmmm |
the idea is to have generateTerrain place constant values instead of real content_t values from nodedefmanager |
01:31 |
hmmmm |
and then the biomemanager looks for those constants when making node placement decisions |
01:32 |
paramat |
yeah line 618 is for detecting a solid or water node to detect the next upper surface encountered while working downwards |
01:32 |
paramat |
that's the bit that recalculates biomes for each new upper surface |
01:33 |
hmmmm |
right so the condition for that block is actually, in words, "is there a new surface I'd need to recalculate biomes for" |
01:33 |
hmmmm |
? |
01:33 |
paramat |
yeah |
01:33 |
hmmmm |
hmm |
01:33 |
paramat |
has to work for liquids too |
01:34 |
paramat |
oh and the 'y==node_max.y' bit is to make sure to calculate if the top node is already an underground node |
01:35 |
hmmmm |
have_air should really be renamed is_not_surface |
01:36 |
hmmmm |
the extra y==node_max.y logic shouldn't necessarily be there |
01:36 |
hmmmm |
that's just to ensure that values are initialized at least once |
01:36 |
paramat |
erm |
01:36 |
hmmmm |
? |
01:37 |
paramat |
yes it's necessary |
01:38 |
paramat |
if top node and overtop were both underground, have_air would be false, then biomes will not be calculated to set correct stone |
01:39 |
paramat |
also it avoids calculating biome for chunks containing only air |
01:39 |
paramat |
so faster than always calculating at the top of each column |
01:40 |
paramat |
not sure if ignore should be there though |
01:44 |
hmmmm |
I mean if that same block of logic is always executed outside of the Y loop |
01:44 |
hmmmm |
just once |
01:44 |
hmmmm |
and then inside of the Y loop it's only ever recalculated if there's a change in have_air |
01:45 |
hmmmm |
as it stands right now, if all columns are air, it recalculates the biome at that point every time |
01:45 |
hmmmm |
ahh or not, it avoids this extraneous recalculation because of the c == CONTENT_AIR check |
01:47 |
paramat |
yeah |
01:47 |
hmmmm |
it's all very clever |
01:47 |
hmmmm |
but not so intuitive |
01:47 |
hmmmm |
what i'm trying to do right now is find ways that it could be written to make it both work well and intuitive |
01:48 |
hmmmm |
comments :)! |
01:48 |
paramat |
i just saw.. water sets have_air to true, which possibly means recalculation for every water node |
01:48 |
hmmmm |
that's true |
01:48 |
hmmmm |
see what you're actually trying to describe with logic is |
01:48 |
hmmmm |
"was there a change in have_air statuses" |
01:49 |
paramat |
i think water should set have_air to false |
01:49 |
paramat |
(if that works) |
01:50 |
hmmmm |
looking at it, i think it should work because have_air is only ever interpreted in the biome recalculation and when placing stone |
01:50 |
paramat |
since a biome has definitions for water node and the solid nodes in the seabed, the last recalculation should be at water surface |
01:50 |
hmmmm |
you want to avoid recalculating when it hits water, and the latter case doesn't matter since its status would change once it does hit ground |
01:51 |
paramat |
no recalculation is needed when hitting water, because of definable water nodes |
01:54 |
paramat |
.. and is not needed aganin because that one selected biome takes care of the seabed nodes too |
01:55 |
paramat |
yeah there is some repetition of code for stone :) |
01:55 |
paramat |
but it seemed to be needed |
01:56 |
hmmmm |
I cut down on that |
01:56 |
paramat |
fine, as long as it works the same |
01:57 |
paramat |
im fairly sure water should set have_air to false, if it works |
01:58 |
paramat |
otherwise every water node triggers recalculation |
01:58 |
hmmmm |
what i'm doing is separating biome logic from mapgen logic |
01:59 |
hmmmm |
so noise_heat and noise_humidity get separated out into the biome manager |
01:59 |
hmmmm |
except the biome manager is not made for concurrency, so each instance of the heat/humidity noises needs to be bound per-mapgen |
02:00 |
hmmmm |
so there'd be a Biome... Provider object? that is a member of each mapgen |
02:00 |
hmmmm |
looking for a better name than BiomeProvider |
02:01 |
hmmmm |
anyway this BiomeThing would have its own copy of the noises for creating biomes, as well as a link to the biome manager |
02:02 |
paramat |
i see |
02:18 |
paramat |
so yes i do check IRC logs every hour or so, i prefer that to always being connected, IRC still makes me a little nervous and i can concentrate more when i know i won't be interupted |
02:23 |
RealBadAngel |
guys, what about makin minimap not just an engine feature but a craftable item? |
02:25 |
|
est31 joined #minetest-dev |
02:25 |
* est31 |
is a log checker too |
02:25 |
est31 |
RealBadAngel, nice idea |
02:25 |
est31 |
what about making it settable by lua? |
02:25 |
|
Wayward_Tab joined #minetest-dev |
02:25 |
est31 |
(like other hud elements) |
02:26 |
RealBadAngel |
thats what im talkin about, my code could provide just texture for use in mods |
02:26 |
est31 |
also inside formspec? |
02:27 |
RealBadAngel |
i think thats possible |
02:28 |
RealBadAngel |
lemme check something |
02:34 |
RealBadAngel |
yea, i can do that |
02:35 |
paramat |
hmmmm actually i think mapgen base terrain nodes should not be hardcoded to mapgen aliases but be flexible and definable per-realm, because various realms will need different stone nodes and generatebiomes only alters surface chunks and above |
02:36 |
paramat |
on that subject i realise generatebiomes should act on the chunk layer below surface chunks too, because mgv5 oceans reach down a long way |
02:37 |
paramat |
maybe even the 2 chunk layers below surface chunks |
02:37 |
est31 |
what about this vacuum stuff |
02:39 |
paramat |
i will try to add a vacuum node to MTGame |
02:39 |
est31 |
but what is it about |
02:39 |
est31 |
what does it differ from air? |
02:39 |
* paramat |
suffocates |
02:39 |
est31 |
lol |
02:41 |
paramat |
to make use of MT's height we need stacked realms, as the next structure up in size from biomes. each realm will have ymin, ymax and have it's own set of biomes and base terrain nodes, including of course definable air |
02:42 |
paramat |
here's my vacuum node https://github.com/paramat/moonrealm/blob/master/nodes.lua#L88 |
02:43 |
paramat |
then my spacesuit resets player breath to max every second or so via globalstep |
02:46 |
paramat |
concerning the depth generatebiomes acts to, the condition for filler, heat, humidity noises in calculatenoise needs editing too |
02:47 |
paramat |
craftable minimap is good, due to it's magical/cheating radar function it should have an expensive recipe |
02:52 |
RealBadAngel |
i will just have to tweak texture source, to be able to pass texture names from lua without lookin for them on disk in the first place |
02:53 |
RealBadAngel |
lets say if name starts with "!" it could skip searching for it and just accept the name |
02:53 |
paramat |
okay mgv5 genbiomes needs to act down to y=-192 (2 chunks below surface chunk) mgv7 down to y=-112 (1 below surface chunk) ugh so much fixing to do |
02:54 |
RealBadAngel |
this way i can generate "!minimap_image" on the fly and mods could use it, on hud, in formspecs or whatever |
02:55 |
paramat |
to work with mapgens with deep oceans or custom noise params best enable down to y=-192 for everything |
03:08 |
|
OldCoder joined #minetest-dev |
03:12 |
|
paramat left #minetest-dev |
03:17 |
hmmmm |
i can totally identify with paramat. |
03:17 |
hmmmm |
irc is a huge distraction. i blow away so much time talking to people |
03:24 |
VanessaE |
it can be, but sometimes talking helps work out whatever it is you're trying to do - or it just gives your mind a break |
03:26 |
hmmmm |
i take way too many breaks |
03:26 |
hmmmm |
it's a sucky feeling |
03:26 |
VanessaE |
I know what you mean. |
03:41 |
|
Hunterz joined #minetest-dev |
04:02 |
|
Hijiri joined #minetest-dev |
04:21 |
|
VanessaE joined #minetest-dev |
04:26 |
|
Hunterz joined #minetest-dev |
05:35 |
est31 |
I guess 33% of all map data stored can be saved if we abandon per-mapblock id-name mapping |
05:36 |
est31 |
perhaps more, perhaps less |
05:36 |
est31 |
but roughly |
05:38 |
est31 |
we can "spare" a block of 16^3 = 4096 ids |
05:39 |
est31 |
so that when a map-global nameid mapping is full, we can use ids from that block instead |
05:39 |
est31 |
(fall back to normal serialisation) |
05:39 |
|
Calinou joined #minetest-dev |
05:44 |
|
Hunterz joined #minetest-dev |
05:44 |
|
OldCoder joined #minetest-dev |
05:49 |
est31 |
ok perhaps 10-20% |
06:20 |
|
jin_xi joined #minetest-dev |
06:44 |
|
kilbith joined #minetest-dev |
06:53 |
|
chchjesus joined #minetest-dev |
07:03 |
hmmmm |
est31: thanks for at least taking a look at it :p |
07:04 |
hmmmm |
I think a lot of people are scared to touch the current map format which has this extreme philosophy of containing exactly only one kind of data |
07:06 |
est31 |
how do you mean that hmmmm? |
07:07 |
hmmmm |
right now the map db ONLY contains position hashes -> serialized mapblocks |
07:07 |
hmmmm |
and the serialized mapblock is a self-contained entity that can be swapped in or out of other map dbs |
07:07 |
|
leat joined #minetest-dev |
07:08 |
hmmmm |
that's a nice design, but like you said before, it must necessarily lead to redundancies |
07:08 |
hmmmm |
by the very nature of context vs. no context |
07:09 |
RealBadAngel |
VanessaE, those levers are COOL |
07:09 |
est31 |
yea |
07:09 |
VanessaE |
thanks |
07:09 |
hmmmm |
data with no context has no dependencies and are self-explanitory, stateless, but they must somehow carry that same information (either implicitly or explicitly) needed to make sense of it |
07:10 |
est31 |
yea |
07:10 |
hmmmm |
stateful data, like you said, having a global nameid/content map, is more efficient since that context is shared across all |
07:10 |
hmmmm |
statelessness is an ideal to strive toward but it's not realistic in most scenarios |
07:11 |
est31 |
the second thing I wonder about is this old idea of not storing the data themselves, but a diff to mapgen, and mapgen parameters. |
07:11 |
hmmmm |
yeah.. |
07:11 |
hmmmm |
there are big issues with that |
07:11 |
hmmmm |
it's so sensitive to quirks and everything lining up precisely between the server and the client |
07:12 |
hmmmm |
believe me; I wanted to do the same |
07:12 |
est31 |
I'm mostly targeting disk |
07:13 |
RealBadAngel |
that would mean client and server running exactly the same version |
07:13 |
est31 |
yea, we would need a way to simulate older versions for mapgen |
07:14 |
hmmmm |
that'd be a nightmare |
07:14 |
est31 |
yea |
07:14 |
hmmmm |
emulating every single quirk |
07:14 |
hmmmm |
I guess this would be doable if the mapgen were more-or-less an afterthought, as is the case with most other block games |
07:14 |
est31 |
idea perhaps would be to modularize mapgen, and then just copy the old source |
07:21 |
hmmmm |
mapgen changes waaay too often for that to be plausible :p |
07:21 |
est31 |
every stable release we copy off |
07:21 |
est31 |
for git versions, we store the data like the old way |
07:22 |
hmmmm |
that's really complex you know |
07:22 |
|
Darcidride joined #minetest-dev |
07:23 |
est31 |
yea :( |
07:23 |
hmmmm |
i've been sticking to simpler designs for things lately |
07:23 |
hmmmm |
the simpler the better |
07:24 |
celeron55 |
the only way to make that happen would be to store the mapgen as some kind of a bytecode program in the world data... and compile it more efficiently than LuaJIT to be used to generate stuff |
07:24 |
celeron55 |
which is kind of rocket science |
07:25 |
hmmmm |
celeron |
07:25 |
hmmmm |
i caught you |
07:25 |
hmmmm |
now tell me why peer_ids aren't associated with a Player until it's attached to a PlayerSAO |
07:25 |
hmmmm |
:/ |
07:25 |
celeron55 |
i don't know |
07:25 |
hmmmm |
I don't understand the reasoning behind it, and I guarantee that if it gets changed without me completely understanding why, it's going to break things in subtle and horrible ways |
07:26 |
celeron55 |
i can guarantee it has changed quite a lot since i last touched it |
07:26 |
hmmmm |
well okay :) |
07:26 |
est31 |
yea thats an approach too celeron |
07:27 |
hmmmm |
lol |
07:27 |
hmmmm |
if we move all mapgens out to lua that'd be totally plausible |
07:27 |
est31 |
(to the "ship mapgen with map" idea) |
07:27 |
hmmmm |
now hold on |
07:27 |
hmmmm |
just because it's technically doable doesn't mean we should do it |
07:27 |
hmmmm |
how is what we currently bad? |
07:28 |
hmmmm |
currently have bad* |
07:28 |
celeron55 |
i'm not really proposing anyone would do that (except as an interesting experiment) |
07:28 |
hmmmm |
maybe with buildat |
07:28 |
est31 |
to optimize map size on disk |
07:28 |
hmmmm |
and forfeit 2.5x the performance of a core mapgen |
07:29 |
hmmmm |
--; |
07:29 |
est31 |
buildat has a c++ compiler |
07:29 |
hmmmm |
erm |
07:30 |
hmmmm |
I said that because buildat is a true framework-based voxel thing |
07:30 |
celeron55 |
....eeehm, yeah, sure, load a world you downloaded from the internet so that parts of it are compiled to native code? |
07:30 |
hmmmm |
it has scripting on both sides and is what minetest should be |
07:30 |
est31 |
if it also uses git, it could be used to checkout the needed revision of the mapgen and compile it |
07:30 |
hmmmm |
in *theory* |
07:30 |
celeron55 |
that's a complete security disaster |
07:30 |
est31 |
there are sandboxes for that |
07:30 |
hmmmm |
buildat is also for highly experimental type things |
07:31 |
hmmmm |
that would be the perfect playground for this sort of concept |
07:31 |
celeron55 |
i don't think anyone has the resources to develop buildat though, it's a bit weird to push things there |
07:31 |
celeron55 |
just stick with what works i guess |
07:31 |
est31 |
the most efficient compression for a pseudorandom function's output is shipping the program coding the function together with the input params |
07:32 |
hmmmm |
dunno |
07:32 |
hmmmm |
it's the most efficient but also quite problematic |
07:33 |
celeron55 |
people need more freedom than just a few noise functions |
07:33 |
hmmmm |
if you want to pursue the idea, i'd suggest waiting until client side modding is here and mature |
07:33 |
est31 |
lol |
07:33 |
hmmmm |
:p |
07:33 |
hmmmm |
like a year maybe |
07:33 |
hmmmm |
or two |
07:33 |
est31 |
you want that it never gets made :) |
07:33 |
hmmmm |
hey I'm working my butt off |
07:34 |
hmmmm |
I have a full time job as well btw |
07:34 |
est31 |
was a joke dude |
07:37 |
|
srifqi joined #minetest-dev |
07:37 |
|
Player-2 joined #minetest-dev |
07:38 |
Calinou |
client-side modding is literally our “modding API†private joke |
07:38 |
* Calinou |
looks at Mojang |
07:38 |
hmmmm |
come on man |
07:38 |
hmmmm |
I'm starting it right after I do this |
07:46 |
hmmmm |
fwahh |
07:47 |
hmmmm |
transformed this https://github.com/minetest/minetest/blob/master/src/mapgen_v7.cpp#L603 into this http://fpaste.org/223673/32107954/ |
07:47 |
celeron55 |
i actually have a secret project somewhat related to that but i have worked on it only for one day so far and no, i won't tell more because i don't want any pressure on it |
07:48 |
hmmmm |
celeron's got the right idea |
07:48 |
hmmmm |
minetest used to be no pressure a long time ago |
07:49 |
hmmmm |
just some odd finnish guy working on a cool game, people were pleased with whatever new cool thingie he came out with next |
07:49 |
celeron55 |
just do stuff on your own if you feel like it and then publish it however you want; upstream will sort itself out when the time comes |
07:52 |
est31 |
I'm just looking for ways to improve minetest |
07:52 |
hmmmm |
i'll tell you how to improve minetest |
07:52 |
hmmmm |
voxel area entities |
07:53 |
hmmmm |
it's the biggest most coolest feature i'll never get around to |
07:54 |
est31 |
how do you think should their physics be implemented? |
07:54 |
hmmmm |
erm |
07:54 |
hmmmm |
like a regular SAO |
07:54 |
celeron55 |
deciding about physics is part of making them |
07:54 |
est31 |
most likely we'll have to do it ourselves, dont we |
07:54 |
celeron55 |
8) |
07:54 |
hmmmm |
I'm not really sure what you mean by physics |
07:54 |
hmmmm |
do you want them to break apart or something? |
07:55 |
est31 |
no, only basic stuff |
07:55 |
est31 |
like ships |
07:55 |
est31 |
they should swin |
07:55 |
est31 |
m* |
07:55 |
hmmmm |
yeah hrmm |
07:55 |
hmmmm |
there's a prerequisite |
07:55 |
est31 |
and best that they stop when there's land |
07:55 |
hmmmm |
active objects should have a 'buoyancy' attribute |
07:55 |
hmmmm |
that's trivial to add, is it not?? |
07:56 |
est31 |
? |
07:56 |
hmmmm |
it's a boolean, or maybe an integer |
07:56 |
hmmmm |
if it's set, it won't go through liquid nodes |
07:56 |
hmmmm |
fall |
07:56 |
hmmmm |
i mean |
07:56 |
hmmmm |
so it'll hit a shoreline and then just stop |
07:57 |
celeron55 |
i'd actually suggest a kind of different approach to things than the "hype stuff up and never get it done" way some people do: assume you will fail, but try anyway |
07:57 |
hmmmm |
right now, all active objects just fall through liquid nodes |
07:57 |
RealBadAngel |
https://www.youtube.com/watch?feature=player_embedded&v=ZGYaQPIiq84 |
07:57 |
hmmmm |
so anyway buoyancy could be an integer |
07:57 |
|
Robert_Zenz joined #minetest-dev |
07:58 |
hmmmm |
this integer his how many nodes of water deep the active object will sink |
07:58 |
hmmmm |
that's how I would personally handle the physics of ships :) |
07:58 |
hmmmm |
but yeah, the primary idea here is that a group of nodes on the map get selected by some magic VAE wand |
07:59 |
est31 |
I'll have to collect use cases |
07:59 |
est31 |
but not now |
07:59 |
est31 |
gtg |
07:59 |
est31 |
bye |
07:59 |
RealBadAngel |
^^mc mod which allow to make voxel entities |
07:59 |
hmmmm |
select a region, then tap the wand, and the group of nodes in the region will be transferred to another not-map part of memory, and the region it existed on the map will be replaced with air content |
07:59 |
hmmmm |
so that region of nodes becomes its own mesh and its own server active object |
08:00 |
hmmmm |
and it moves around and has the same physics as one, defined by mods that can move it or whatever |
08:00 |
|
Yepoleb_ joined #minetest-dev |
08:00 |
hmmmm |
you can set its velocity/acceleration/direction or whatever |
08:00 |
hmmmm |
yes? no? |
08:01 |
RealBadAngel |
have you watched that video? |
08:01 |
hmmmm |
yeah i'm watching it |
08:02 |
RealBadAngel |
kinda cool imho |
08:02 |
hmmmm |
it seems like it's been hacked in |
08:02 |
hmmmm |
there's also a voxel area entity mod for minetest too |
08:02 |
hmmmm |
that's a big hack too |
08:02 |
hmmmm |
it's like VAEs were never done officially and correctly |
08:08 |
|
rubenwardy joined #minetest-dev |
08:09 |
rubenwardy |
IRL, bounancy is based on mass and volume of the entity. If the body can displace enough water using its volume to counteract its mass, then it will float. |
08:09 |
rubenwardy |
But I imagine you know that |
08:10 |
rubenwardy |
Like, if 1/2 of its volume displacing water displaces water |
08:10 |
rubenwardy |
water to the same mass, then it floats. But then again, Minetest isn't particularly realistic. |
08:10 |
RealBadAngel |
i just found a dungeon flying around, kinda funny place |
08:12 |
rubenwardy |
Also, once a body is fully submerged then it won't get any more upthrust force. So it won't float say 5 nodes under water if it can't float 1 node under water |
08:12 |
rubenwardy |
But that assumes water density stays the same, which it mostly does in depths up to 50 m |
08:12 |
RealBadAngel |
http://i.imgur.com/yO246IE.jpg |
08:13 |
VanessaE |
two maps? |
08:14 |
rubenwardy |
One's an item, I guess |
08:14 |
RealBadAngel |
comparing original sized and scaled by irrlicht |
08:14 |
rubenwardy |
from that screen shot, the white border looks pixelly |
08:15 |
RealBadAngel |
its only 129x129 px |
08:15 |
VanessaE |
ah |
08:16 |
RealBadAngel |
but it works quite good, i mean HillPlaneMesh thing |
08:16 |
RealBadAngel |
it autoscales everything no matter the screen port size |
08:17 |
RealBadAngel |
it could be used to replace hud and could save us all those ratio calculations |
08:17 |
RealBadAngel |
simply, with it you dont need to calculate anythin |
08:17 |
|
leat joined #minetest-dev |
08:21 |
RealBadAngel |
but back to the screenshot, its kinda funny place, top of the jungle, to find a dungeon, dont you think so? :) |
08:23 |
VanessaE |
haha |
08:28 |
|
leat joined #minetest-dev |
08:29 |
rubenwardy |
Some survivial games might want to be able to do some sort of FOW |
08:30 |
rubenwardy |
Like, only render places where you have been in Line of sight with |
08:30 |
rubenwardy |
So you wouldn't see the dungeon unless you've been in it |
08:32 |
|
srifqi joined #minetest-dev |
08:37 |
|
srifqi joined #minetest-dev |
08:38 |
|
leat joined #minetest-dev |
08:42 |
|
FR^2 joined #minetest-dev |
08:55 |
|
rubenwardy joined #minetest-dev |
09:15 |
|
rubenwardy joined #minetest-dev |
09:16 |
rubenwardy |
What capitalisation for local variables? |
09:16 |
rubenwardy |
local |
09:16 |
rubenwardy |
* local_variable |
09:17 |
rubenwardy |
code style says not localVariable, but nothing else |
09:18 |
rubenwardy |
That was incredibly rude, hmmmm |
09:18 |
rubenwardy |
http://dev.minetest.net/index.php?title=Code_style_guidelines&oldid=2693 |
09:19 |
rubenwardy |
"Don't use distracting and unnecessary amounts of object orientated abstraction. See Terasology and a certain enterprisey Java coder's conception of perlin noise as examples of what not to do." |
09:19 |
rubenwardy |
where "certain enterprisey Java coder's conception of perlin noise" links to prestidigitator's PR for noise |
09:22 |
technomancy |
all new abstractions must only be post-stidigitated. |
09:23 |
rubenwardy |
What do you mean? |
09:24 |
technomancy |
just a lame joke |
09:26 |
technomancy |
"Avoid leading and/or trailing underscores. They're ugly and can be hard to see." huh, is there any convention then for unused arguments? |
09:26 |
|
rubenwardy joined #minetest-dev |
09:26 |
technomancy |
in most languages I've used a trailing underscore like "_player" means "this function is passed a player argument, but it's not used" |
09:50 |
|
OldCoder joined #minetest-dev |
10:31 |
|
selat joined #minetest-dev |
10:53 |
|
Zeno` joined #minetest-dev |
11:13 |
|
Amaz joined #minetest-dev |
11:15 |
|
OldCoder joined #minetest-dev |
11:22 |
|
Zeno` joined #minetest-dev |
12:03 |
|
proller joined #minetest-dev |
12:08 |
Zeno` |
ffs |
12:08 |
Zeno` |
fedora DNS is fubar |
12:17 |
|
Wayward_Tab joined #minetest-dev |
12:53 |
Zeno` |
RealBadAngel, I got minetestserver to compile without irrlicht :D |
12:54 |
Zeno` |
Only another 5 weeks and maybe irrlicht can be discarded altogether |
12:54 |
Zeno` |
(dunno if that's good or bad) |
13:38 |
|
leat1 joined #minetest-dev |
13:41 |
Calinou |
it's not like Irrlicht is an exotic library |
13:49 |
|
leat1 joined #minetest-dev |
13:59 |
|
leat1 joined #minetest-dev |
14:09 |
|
Wayward_Tab joined #minetest-dev |
14:11 |
|
Darcidride joined #minetest-dev |
14:34 |
|
hmmmm joined #minetest-dev |
14:41 |
|
ElectronLibre joined #minetest-dev |
14:44 |
|
JZTech101 joined #minetest-dev |
14:59 |
|
twoelk joined #minetest-dev |
15:29 |
|
leat1 joined #minetest-dev |
15:34 |
hmmmm |
lol |
15:34 |
hmmmm |
rubywarden is a fun killer |
15:34 |
hmmmm |
he edited the code style page |
15:34 |
hmmmm |
alright, whatever, i'll leave it as-is this time. it has enough backlash. |
15:38 |
sfan5 |
http://dev.minetest.net/index.php?title=Code_style_guidelines&diff=2990&oldid=2939 |
15:38 |
sfan5 |
how lame |
15:40 |
VanessaE |
imho he's right. |
15:40 |
|
leat1 joined #minetest-dev |
15:40 |
VanessaE |
two are just stupid jokes, and one is an ad hominem attack |
15:40 |
sfan5 |
how are stupid jokes rude? |
15:40 |
VanessaE |
I'm not saying they are. |
15:41 |
VanessaE |
but what he removed has no place in a core dev wiki. |
15:41 |
sfan5 |
rubenwardy did |
15:41 |
sfan5 |
and you said he's right |
15:41 |
VanessaE |
he's right for removal I mean |
15:41 |
VanessaE |
not necessarily for his edit summary :P |
15:41 |
sfan5 |
also |
15:41 |
sfan5 |
what about the link to terasology |
15:41 |
sfan5 |
that text "attacks" them |
15:41 |
sfan5 |
why was that not removed? |
15:42 |
VanessaE |
ask ruben :P |
15:42 |
VanessaE |
perhaps it should be changed to point to some page/site with deliberate examples. |
15:43 |
sfan5 |
imo the code style guidelines are not a business document and doesn't need to be free from (stupid) jokes |
15:43 |
|
est31 joined #minetest-dev |
15:43 |
sfan5 |
also by removing that he removed the only specific example |
15:44 |
sfan5 |
nobody is going to look through the whole terasology repo to find what design patters are probably meant by the author of the style guidelines |
15:44 |
VanessaE |
I agree with you on that. |
15:45 |
hmmmm |
hey now I didn't intend for anything to be a joke |
15:45 |
hmmmm |
just some snarky sarcasm |
15:46 |
hmmmm |
apparently there are some people who think our dev wiki is a business document and needs to be completely clean from anything that might be considered 'rude' |
15:46 |
hmmmm |
not just rubenwardy, there's someone else too |
15:46 |
hmmmm |
if multiple people want it to be business-like, then fine |
15:47 |
VanessaE |
I'd rather it *not* be business-like actually. |
15:47 |
VanessaE |
because then it becomes a dry read that may even be hard to understand or follow. |
15:47 |
hmmmm |
the prestidigitator reference was a nod to the fact that he wrote the code and full of those nonsensical design patterns bloated in exactly the way we don't want |
15:48 |
hmmmm |
and he was so arrogant and bitter about it too! |
15:48 |
hmmmm |
"you don't like my code because /you don't understand it/ |
15:48 |
hmmmm |
many people forget that fact |
15:48 |
VanessaE |
exactly my point - I don't like him, but to single him out in a public document like this is wrong. |
15:49 |
hmmmm |
I also singled out terasology |
15:49 |
hmmmm |
it's not intended to be an ad hominem attack. when I initially wrote that line, I thought it was a perfect example of what not to do here in minetest's code |
15:49 |
hmmmm |
it just so happens that a single person was responsible for it |
15:50 |
hmmmm |
I also single out Xorg and others if you read the entire page |
15:50 |
|
leat1 joined #minetest-dev |
15:50 |
VanessaE |
well, Xorg deserves it ;) |
15:51 |
hmmmm |
the detrimental effect these individual coding styles and practices have on a project aren't immediately apparent |
15:51 |
hmmmm |
showing a real world example of what happens when they're taken to the extreme, I reasoned, was good |
15:52 |
sfan5 |
http://irc.minetest.ru/minetest-dev/2012-07-20#i_2381165 |
15:52 |
hmmmm |
someone will look at these rules and say "oh please, pshh..." but if they were to actually look at terasology and experience the crap themselves, "holy crap, where IS the code that actually does X in this mess? How many subdirectories and BlahProviderFactories are there??? When am I going to get to the point?" |
15:52 |
VanessaE |
I think the point is the "certain enterprisey java coder's..." part. |
15:52 |
VanessaE |
not necessarily the code that was linked to |
15:52 |
hmmmm |
well |
15:53 |
hmmmm |
he is actually more of a C# fan as I recall |
15:53 |
hmmmm |
but the point is all of these negative things stem from the Java/C#/enterprise business application realm |
15:54 |
VanessaE |
I think if it had just said something like "See [terasology link] and [presti's link] as examples..." it would have been fine |
15:54 |
hmmmm |
where code as well as so-called "best practices" that have a detrimental impact in reality are sholved into the code in a cargo cult-like manner |
15:55 |
hmmmm |
shoveled* |
15:56 |
hmmmm |
so you don't like the wording |
15:56 |
VanessaE |
well ruben didn't, anyway :) |
15:56 |
VanessaE |
I can't speak for him though |
15:56 |
hmmmm |
but he also didn't like the wording of other things |
15:56 |
hmmmm |
different people have different ideas of how a document like that should be |
15:56 |
hmmmm |
but everybody has the same amount of write access to the same document |
15:57 |
hmmmm |
so it's going to end up being the version of whoever feels the most strongly about the topic |
15:57 |
VanessaE |
I might have left the "you should feel horrible" joke in, but the other two just don't work |
15:57 |
sfan5 |
you mean whoever has the most time to edit it |
15:57 |
VanessaE |
(and I say that as someone who's used camelCase in her code before, years ago :P ) |
15:57 |
hmmmm |
sfan5, if they felt that strong about the topic, they would *make* time to edit it |
15:58 |
RealBadAngel |
https://github.com/RealBadAngel/minetest/tree/minimap3 anybody wanna try it? |
15:59 |
hmmmm |
but fundamentally, do people agree with me on the backlash against those super-object-oriented design patterns and bloaty code? |
15:59 |
hmmmm |
or is that style page an echo chamber of my own opinion?? |
15:59 |
hmmmm |
I don't want it to be the latter |
15:59 |
RealBadAngel |
i also dont like such style, youre not alone |
15:59 |
est31 |
RealBadAngel, forgot to add minimap to the android build |
16:00 |
twoelk |
can anyone really avoid the latter when writing? |
16:00 |
RealBadAngel |
est31 i havent tried it on android yet |
16:00 |
RealBadAngel |
somebody should do that |
16:00 |
est31 |
just as a note |
16:00 |
hmmmm |
I tried to gather consensus on the style before writing a page for it |
16:01 |
hmmmm |
not to mention that the fact it IS a wiki page means that other people are able to shape it as well |
16:01 |
VanessaE |
hmmmm: I agree, abstractly -- anything that makes code harder to read, follow, or maintain and doesn't provide an obvious benefit (that can't be done more simply) should be shunned outright |
16:01 |
hmmmm |
that's all grossly subjective though |
16:02 |
hmmmm |
i think most of us can agree that 50 layers of abstraction isn't helping though |
16:02 |
hmmmm |
*cough* terasology |
16:02 |
est31 |
yea too much abstraction hurts |
16:03 |
VanessaE |
hmmmm: exactly my point |
16:04 |
VanessaE |
you can abstract the shit out of some feature but if the top-most layer isn't any easier to work with than the bottom-most, and/or the result is slower, the abstraction is useless. |
16:04 |
|
cheapie joined #minetest-dev |
16:09 |
|
TeTpaAka joined #minetest-dev |
16:10 |
ElectronLibre |
RealBadAngel, I got a crash with your minimap (when switching to radar with minimum zoom) : http://pastebin.ubuntu.com/11247107/ |
16:10 |
|
proller joined #minetest-dev |
16:11 |
RealBadAngel |
ah, those unknown nodes |
16:11 |
RealBadAngel |
forgot bout them |
16:13 |
VanessaE |
ElectronLibre: I just gdb'd it: http://pastebin.com/ZEmX0LWB |
16:13 |
VanessaE |
oh hell, you beat me to it. |
16:13 |
TeTpaAka |
RealBadAngel, the placement of the minimap behaves weird. When minetest starts, the map is displayed at a fixed position and round. But when you change the dimensions of the window, it gets stretched. |
16:14 |
TeTpaAka |
So the appearence of the minimap depends on the dimensions when minetest got started. |
16:14 |
VanessaE |
I can confirm TeTpaAka's comment |
16:16 |
|
realbadangel__ joined #minetest-dev |
16:17 |
VanessaE |
wb |
16:17 |
VanessaE |
wb, check the log. |
16:18 |
VanessaE |
s/wb,/rba/ |
16:25 |
|
Krock joined #minetest-dev |
16:25 |
est31 |
RBA, perhaps when you switch modes, it should instantaneously render the map |
16:26 |
est31 |
bad to have a delay in there |
16:26 |
|
RealBadAngel joined #minetest-dev |
16:26 |
est31 |
check log RealBadAngel |
16:27 |
RealBadAngel |
ok |
16:27 |
kilbith |
i confirm (from 800*600 to fullscreen) : https://lut.im/5ZUulez4/JL6zbUyd |
16:28 |
est31 |
getting a segfault when I part |
16:28 |
RealBadAngel |
atm size of minimap depend on actual resolution, not just when game starts |
16:29 |
est31 |
MinimapUpdateThread::getColorFromId at src/minimap.cpp:301 |
16:29 |
est31 |
inimapUpdateThread::getMap at src/minimap.cpp:142 |
16:29 |
est31 |
MinimapUpdateThread::Thread at minimap.cpp:69 |
16:29 |
est31 |
etc |
16:31 |
RealBadAngel |
thats because of unknown nodes |
16:31 |
RealBadAngel |
will fix that shortly |
16:39 |
Krock |
I'm uncertain if I should include the minimap commit into my next dev build; woult it be the branch "minimap3"? |
16:47 |
Krock |
hmmmm, are you serious? https://github.com/minetest/minetest/commit/43702ec#diff-372c9891c96fb39f64e8ed61e63d2cc3R20 it should be <string> |
16:48 |
|
TeTpaAka joined #minetest-dev |
16:49 |
Krock |
however, MSVC doesn't know <strings.h> |
16:50 |
TeTpaAka |
There is another issue with the placement. When you start in a bigger resolution, the minimap isn't in the upper right corner, but slightly to the left. |
16:50 |
sfan5 |
Krock: <string.h> would be <cstring>, this is strings.h however which is a non-standard extension |
16:50 |
sfan5 |
s/extension/addition/ |
16:51 |
|
Hunterz joined #minetest-dev |
16:52 |
TeTpaAka |
http://i.imgur.com/MSWWv6b.png |
17:02 |
|
proller joined #minetest-dev |
17:02 |
|
proller joined #minetest-dev |
17:04 |
|
rubenwardy joined #minetest-dev |
17:07 |
rubenwardy |
"a certain enterprisey Java coder's conception of perlin noise" is rude and offensive, which is what I was talking about |
17:08 |
rubenwardy |
terasology is an entire project, and the attack isn't so personal, which is why I didn't remove it. |
17:10 |
sfan5 |
rubenwardy: what about the rest? |
17:11 |
rubenwardy |
It's just snobbish and unnecessary |
17:12 |
rubenwardy |
I agree that the over abstraction and OOPness is bad |
17:13 |
RealBadAngel |
ok, ive fixed crashes with unknown nodes |
17:13 |
rubenwardy |
It's this sort of thing that puts developers off this project. It wasn't enough for hmmmm to just say no, this uses too many factories to fit into Minetest, he instead makes a sour comment in the code style shaming him. |
17:18 |
|
RealBadAngel joined #minetest-dev |
17:20 |
sfan5 |
rubenwardy: people are put off by two phrases that could sounds slightly rude? |
17:22 |
rubenwardy |
Those were just unnecessary insults, not really rude. If one of your languages was Java, and you read that, you get the impression that the dev community is snobbish and would be no fun to work with. |
17:24 |
|
MinetestForFun joined #minetest-dev |
17:27 |
celeron55 |
it's quite a balancing act between people that are too rude and people who are too liberal and i don't even pretend to be getting it right |
17:28 |
celeron55 |
i think i mostly approve of rubenwardy's changes altough the BlahFactory/BlahProvider/BlahSource -> factories change kind of loses information |
17:29 |
rubenwardy |
the "you should feel" isn't so bad, and can be readded if you feel it emphasises it enough. |
17:30 |
rubenwardy |
What should be used for local variables? one_two ? |
17:30 |
celeron55 |
yes, lowercase and underscores |
17:44 |
|
nore joined #minetest-dev |
17:53 |
hmmmm |
whoops |
17:53 |
hmmmm |
sorry that should be string.h |
17:53 |
hmmmm |
my BSD is showing |
17:54 |
hmmmm |
rubenwardy, I don't see how that text can be "rude and offensive" |
17:54 |
rubenwardy |
You're publically shaming him |
17:54 |
hmmmm |
this self censorship is a slippery slope |
17:54 |
hmmmm |
no I'm not |
17:54 |
hmmmm |
is somebody who works primarily with Java something to be shameful about? |
17:56 |
rubenwardy |
It seems that it is, according to your wording |
17:56 |
hmmmm |
you're interpreting it wrong then |
17:57 |
hmmmm |
I would highly prefer for minetest to not become infected with political correctness |
17:57 |
hmmmm |
I don't want to need to worry about how everything I say comes off to people |
17:58 |
Calinou |
Java is a fine language that has its place in the modern world |
17:58 |
Calinou |
languages don't die like you want to, it's the real life |
17:58 |
Calinou |
same goes for SQL, C# and such |
17:59 |
hmmmm |
sorry YOU are offended by that, but most people are not. if you begin catering to fringe groups through censorship, where does it end? |
18:00 |
rubenwardy |
Slippery slopes is the first logical fallacy |
18:00 |
hmmmm |
it's not a logical fallacy |
18:00 |
hmmmm |
induction is a logical tool that everybody uses |
18:01 |
hmmmm |
what the logical fallacy is in slippery slope is when somebody claims a slippery slope with insufficient evidence |
18:04 |
rubenwardy |
It is just sour shaming, and bad people skills |
18:05 |
hmmmm |
you make it sound like I'm shaming and criticizing this person |
18:05 |
hmmmm |
their code is fantastic, done in their way that has many disadvantages |
18:05 |
|
nore joined #minetest-dev |
18:06 |
hmmmm |
i want to present that code as an example of what not to do because examples are much more illustrative than words. somebody can click on the link, see the actual source, and gain an intuitive understanding of why that methodology is bad |
18:06 |
kilbith |
RealBadAngel, does the radar mode can be auto-activated in caves ? |
18:07 |
rubenwardy |
It would be less bad if it was anonymous |
18:10 |
hmmmm |
and for what it's worth, 'shaming' a project can easily be just as bad as 'shaming' a certain person in particular |
18:10 |
hmmmm |
pre-2012 or whenever, celeron worked on minetest himself |
18:11 |
hmmmm |
so insulting minetest means insulting celeron |
18:11 |
hmmmm |
same thing with terasology. the vast majority of it came from a single person |
18:11 |
sfan5 |
<rubenwardy> terasology is an entire project, and the attack isn't so personal, which is why I didn't remove it. |
18:23 |
hmmmm |
rubenwardy is our new HR person |
18:26 |
celeron55 |
i actually like reading all kinds of criticism about minetest though, especially if someone has found something worth insulting :P |
18:28 |
rubenwardy |
Criticism is good. |
18:30 |
RealBadAngel |
kilbith, propably could be, but i have no idea on how to trigger it |
18:48 |
hmmmm |
rubenwardy, you should add a trigger warning to that page |
18:49 |
rubenwardy |
Such as "don't name names or use someone's PR as an example of 'what not to do', as it may offend them"? |
18:50 |
hmmmm |
your face offends me. can you please put a paper bag over it |
18:50 |
hmmmm |
:) |
18:50 |
hmmmm |
anything can possibly offend anybody |
18:50 |
hmmmm |
stop making assumptions |
19:21 |
sofar |
hmmmm: that offends me ;^) |
19:21 |
sofar |
it's hard to have a deep discussion. Just look at the issue I posted :/ |
19:22 |
sofar |
frankly I didn't help, but some people have a hard time not screaming "but listen to me too" even if they don't add to the discussion |
19:24 |
sofar |
I best give up... I'm not improving the discussion and the damn thing is changeable through a server setting anyway |
19:39 |
hmmmm |
what do you mean? which discussion? |
19:42 |
|
Miner_48er joined #minetest-dev |
19:46 |
|
est31 joined #minetest-dev |
19:46 |
est31 |
sofar: server setting? I can't follow from here, is this still about rubenwardy editing the wiki? |
19:47 |
est31 |
ah I guess the "disable physics in mid air" thing |
19:48 |
|
selat joined #minetest-dev |
19:49 |
est31 |
RealBadAngel, thanks for that youtube clip |
19:49 |
RealBadAngel |
bout voxel area entities? |
19:49 |
sofar |
voxel area entities? |
19:50 |
sofar |
that sounds ... like a lot of potential |
19:50 |
est31 |
yea |
19:51 |
RealBadAngel |
i liked trains made with it |
19:51 |
RealBadAngel |
quite cool |
19:55 |
est31 |
yea |
19:57 |
|
ElectronLibre_ joined #minetest-dev |
19:59 |
|
Amaz joined #minetest-dev |
20:10 |
|
leat1 joined #minetest-dev |
20:19 |
|
jin_xi joined #minetest-dev |
20:20 |
|
leat1 joined #minetest-dev |
20:28 |
|
OldCoder joined #minetest-dev |
20:37 |
|
ElectronLibre_ left #minetest-dev |
20:59 |
|
Etzos joined #minetest-dev |
21:20 |
|
proller joined #minetest-dev |
21:25 |
|
Taoki joined #minetest-dev |
21:36 |
|
MinetestForFun joined #minetest-dev |
22:00 |
|
jin_xi joined #minetest-dev |
22:02 |
|
leat1 joined #minetest-dev |
22:40 |
|
RealBadAngel joined #minetest-dev |
22:56 |
|
est31 joined #minetest-dev |
22:58 |
|
Hijiri joined #minetest-dev |
23:22 |
|
paramat joined #minetest-dev |