Time |
Nick |
Message |
00:00 |
Xiong |
hecks Not sure that's a helpful question. If you ask it, I don't see any answer you'd find compelling. |
00:02 |
hecks |
alright, this is a fool's game; I'll just check the source and see how world noise is mixed in |
00:02 |
paramat |
hm weird |
00:02 |
|
ANAND joined #minetest |
00:02 |
Xiong |
rubenwardy You have the most solid info relevant to this rubber question. Can you weigh in on either point? (1) testing tools; (2) always-on fallback. |
00:05 |
hecks |
sooooo |
00:05 |
hecks |
seed += np->seed; |
00:05 |
hecks |
where seed is s32, or a plain old int I assume |
00:06 |
|
nri joined #minetest |
00:07 |
Argyle77 |
I felt like the issue with no rubber trees in moretrees was that they needed to be within 5 blocks of water on green grass, but the beach prevented that. |
00:08 |
paramat |
using 'get_perlin' with 4 params is old and almost never done because only 4 params is so limiting, it should work using a full noiseparams table |
00:09 |
hecks |
But it doesn't! |
00:10 |
paramat |
it does in my mods in use |
00:11 |
paramat |
i mean, it works when a noiseparam table is manually specified like https://github.com/paramat/snowdrift/blob/568964eabf72d169bb3d7d8a2eb4beba863c5504/init.lua#L23 |
00:12 |
paramat |
the issue may be the form returned by minetest.get_mapgen_setting_noiseparams or minetest.get_noiseparams |
00:13 |
Xiong |
Argyle77 There is certainly an issue in that rubber's requirements are highly restrictive. I'd like to sidestep that for the time being. rubenwardy claims technic fallback rubber works. Let's leverage that. |
00:14 |
paramat |
for rubber trees: disable moretrees generating them, enable technic generating them, and apply my advice given in the technic issue (needs a PR, i'mnot doing it) |
00:14 |
Xiong |
paramat Still working on it. |
00:14 |
paramat |
https://github.com/minetest-mods/technic/issues/464 |
00:15 |
Xiong |
What testing tools exist? and Why not just enable fallback always? |
00:15 |
Xiong |
I have read much on the topic. Looking for answers to new questions. |
00:16 |
paramat |
i've even detailed what needs doing, easy PR |
00:16 |
Xiong |
Why has your advice not been taken? |
00:17 |
hecks |
paramat: no, all noise functions return a proper NoiseParams table |
00:18 |
paramat |
how do you know? because docs say? |
00:18 |
Xiong |
Um... dunno if you've seen but I did kick in my dime. |
00:18 |
hecks |
No, because I dumped them to stdout |
00:19 |
hecks |
along with many other things |
00:20 |
hecks |
https://pastebin.com/zLsTfE1A |
00:21 |
hecks |
Despite adding the seed manually, the height still doesn't add up with the world, suggesting that the mapgen adds magical fairy dust to its noise |
00:22 |
hecks |
but before I declare this whole business fubar, it would give me some peace of mind knowing whether or not the officially sanctioned get_perlin() function also messes up |
00:26 |
Xiong |
Seriously paramat. I read your issue before I added my comment. Seems straightforward enough. Rubber is essential to technic. Why have you been ignored? I believe a solution is well within even my limited competence but I need to learn... sth I don't know... sth political? |
00:28 |
hecks |
Xiong, nobody is paid to do this shit :) |
00:29 |
hecks |
that's the politics of it |
00:29 |
Xiong |
True. Nobody's paying me. |
00:29 |
Xiong |
Sorry I don't agree that's all. |
00:30 |
Xiong |
I still try to work with everyone. Work is life; money isn't strongly linked. Perhaps it should be but I'm not going to change that. |
00:31 |
hecks |
Sure, but all the bugs in the world would vanish overnight if someone were to offer a bounty for them |
00:32 |
Xiong |
Well I'm not looking to get rich. Can we take that off the table? |
00:34 |
Xiong |
I'm asking... everyone who should know... two plain questions. Why not merely enable fallback always? and Does a tool exist to reveal the actual result of chunk emergence? |
00:35 |
hecks |
Well, you can just look at an emerged mapblock; or probe it with on_generated |
00:35 |
hecks |
as for probing the contents of a map before it's generated, this is what I'm attempting |
00:35 |
Xiong |
"Look" as in, fly though it ingame? |
00:36 |
hecks |
yep :P Or render its contents as a 2D map, if you prefer |
00:36 |
Xiong |
Nono, I'm not asking for hypothetical projections. |
00:36 |
Xiong |
Well... some chunks are underground. |
00:37 |
hecks |
Hypothetical, without generating? Noise is deterministic; again this is what I'm looking into now |
00:38 |
paramat |
is it just the mgv7 mountains that are mismatching? because your mountain generation method is incorrect |
00:38 |
Xiong |
I'm not trying to be rude when I say... you don't seem to know of such a tool. I may have explained it poorly. |
00:38 |
hecks |
I know it's not right; but even base/alt noise isn't adding up, and there's not much I could've messed up there |
00:39 |
hecks |
I'll try muting various noises in the settings to isolate this |
00:40 |
paramat |
yeah, it looks like your mountain gen is approximate |
00:40 |
paramat |
intentionally |
00:40 |
hecks |
It is intentionally approx, because I can not and need not sample 3D here |
00:41 |
hecks |
but let's turn mountains off |
00:41 |
Xiong |
paramat What will you say? |
00:44 |
paramat |
i added a post to the technic thread in the forum, my issues may not have been seen by many |
00:45 |
Xiong |
paramat I'll search it out but... does it address my questions? |
00:47 |
paramat |
erm, fallback is down to the mod devs. 'Does a tool exist to reveal the actual result of chunk emergence?' what do you mean by 'reveal the actual result' |
00:47 |
paramat |
? |
00:51 |
paramat |
moretrees users probably want all trees, so rubber trees are enabled in moretrees by default, therefore the rubbergen in technic is disabled by default |
00:52 |
|
ssieb joined #minetest |
00:53 |
Xiong |
paramat Well my question is broad. Let me tell by way of example how I'd do it... perhaps not well. I'd run a game and fly around emerging chunks, then quit. Then my script would open the map and scan it with a triple xyz loop... keeping count of the nodes it encountered. It would terminate by reporting a summary: so many nodes scanned, so many !ignores found, so many hoge:piyo, etc. |
00:55 |
Xiong |
Does such a tool exist? Does any tool exist that can say definitely with what abundance any given type of thing has been generated within a volume? |
01:01 |
Xiong |
And yes paramat, moretrees does enable by default and I see no harm in that. But I ask: What objection is there to enabling technic fallback rubber at all times? |
01:03 |
Xiong |
-- I have read your forum post indicated above. |
01:06 |
paramat |
might be a good idea to include the variation of persistence in 'base' and 'alt' noises, that does make quite a difference |
01:09 |
paramat |
also, your lerp between 'base' and 'alt' might be backwards. when height select is 1 it chooses 'base' |
01:10 |
paramat |
it's also not a straightforward lerp due to https://github.com/minetest/minetest/blob/c2dabcff6ddd50520669f3a663b782ec28fc0094/src/mapgen/mapgen_v7.cpp#L418 |
01:12 |
paramat |
Xiong this tool you describe may exist as a mod but i cant remember one, you'll probably have to write it |
01:14 |
Xiong |
paramat Not surprised. But then... how are devs testing any map/ore/tree/deco generation code? |
01:16 |
Xiong |
Um... hecks, you are writing code (IIUC) to simulate mapgen. How will you know if it works as expected? What forms your expectations? |
01:16 |
hecks |
I have a bunch of cube entities that align with the "fake" world following me |
01:17 |
hecks |
When they line up with the ground, that means it's working |
01:17 |
hecks |
I'm doing this to raytrace far terrain onto the skybox; raytracer works but the data I'm feeding it was bullshit and I'm trying to correct that |
01:18 |
hecks |
Ideally, this would let me see mountains from as far as 2k+ distance |
01:19 |
hecks |
I will be testing with mgflat now to simplify things |
01:21 |
Swedneck |
wow, minetest modding is actually really approachable |
01:23 |
Xiong |
Swedneck it's as simple as you wanna. |
01:23 |
rubenwardy |
:D |
01:23 |
Xiong |
rubenwardy if you have time for a grin... help me help you, please. |
01:23 |
Swedneck |
although to be fair i'm only at the point of registering nodes and crafting recipies |
01:24 |
Xiong |
If nobody will talk about the issue then that's the issue... and likely unsolvable without medication. |
01:27 |
Swedneck |
hmm, is the number after a craft output the amount of items produced? |
01:27 |
|
swift110-phone__ joined #minetest |
01:27 |
swift110-phone__ |
https://m.youtube.com/watch?v=xgakdcEzVwg |
01:27 |
swift110-phone__ |
I would love something like this for minetest |
01:28 |
|
swift110 joined #minetest |
01:30 |
swift110 |
I once saw someone interact with minecraft in a 3d world. It was a video on youtube and I would love to do the same for minetest |
01:30 |
swift110 |
Also playing a subgame similar to simant would be cool on minetest as well although I don't know how to go about that |
01:31 |
hecks |
Woo hoo, a breakthrough |
01:32 |
Xiong |
Swedneck usually 1. Please think before choosing a higher number. |
01:32 |
hecks |
I got the noise to line up, all it took was switching to mgflat, setting all noise seeds to 0, and using 0 as the fixed world seed... |
01:34 |
rubenwardy |
Swedneck: ye |
01:35 |
rubenwardy |
eg: default:tree -> default:wood 4 |
01:35 |
rubenwardy |
default:wood 4 is an ItemString |
01:35 |
rubenwardy |
default:wood is an ItemName, but is also a valid ItemStrings |
01:35 |
Swedneck |
just wanted to check since the tutorial didn't mention it :P |
01:35 |
rubenwardy |
an ItemString specifies a stack |
01:35 |
rubenwardy |
probably should |
01:35 |
rubenwardy |
will add a todo |
01:35 |
Swedneck |
? |
01:39 |
|
aheinecke joined #minetest |
01:45 |
hecks |
so I have this cool video showing that it works but I can't send it to anyone because the internet is cancer |
01:48 |
paramat |
mgflat heh |
01:51 |
hecks |
https://a.cockfile.com/ldx6lq_noise.mp4 |
01:52 |
kaeza |
https://xkcd.com/949/ |
01:53 |
hecks |
Technically, torrent solves this |
01:53 |
hecks |
but ISPs made sure that it doesn't actually work |
01:54 |
hecks |
or rather, ISPs made sure torrent can't be used for anything else other than piracy |
01:55 |
paramat |
nice |
01:56 |
paramat |
ok mgflat with lakes, i thought you were joking about making a farmap for a completely flat map |
01:57 |
hecks |
mgflag has lakes and hills |
01:57 |
hecks |
flat I mean |
01:57 |
hecks |
it's all based off one noisemap sampled directly so it's the simplest possible test case |
02:01 |
Swedneck |
what does the number in `groups = {cracky = 3}` do? |
02:02 |
rubenwardy |
that's how cracky it is |
02:02 |
rubenwardy |
one sec |
02:02 |
rubenwardy |
!book node |
02:02 |
MinetestBot |
rubenwardy: Nodes, Items, and Crafting - https://rubenwardy.com/minetest_modding_book//en/items/nodes_items_crafting.html |
02:02 |
rubenwardy |
hmmm |
02:03 |
rubenwardy |
"Groups such as `crumbly`, `cracky` and `snappy` are used for this |
02:03 |
rubenwardy |
purpose. Rating is `1`, `2` or `3`. A higher rating for such a group implies |
02:03 |
rubenwardy |
faster digging time." |
02:03 |
rubenwardy |
https://github.com/minetest/minetest/blob/master/doc/lua_api.txt#L1543 |
02:03 |
Swedneck |
ah |
02:03 |
Swedneck |
i missed the exact part there that told me what i wanted to know |
02:04 |
* Swedneck |
smacks forehead |
02:12 |
Swedneck |
hmm, a texture in my mod doesn't seem to update ingame when i change it |
02:13 |
rubenwardy |
yeah, textures are sent from server to client and cached |
02:13 |
Swedneck |
how can i force reload? |
02:13 |
rubenwardy |
in singleplayer, the server and client still exist |
02:13 |
rubenwardy |
you can't without restarts |
02:13 |
|
argyle77 joined #minetest |
02:13 |
rubenwardy |
there are ways around it, by using texture modifiers |
02:14 |
rubenwardy |
and other such things |
02:14 |
Swedneck |
well i did restart |
02:14 |
rubenwardy |
oh interesting |
02:14 |
Swedneck |
and it's still the old texture, somehow |
02:15 |
rubenwardy |
sure you don't have multiple copies of the texture or the mod? |
02:15 |
Swedneck |
well it's a symlink to another directory, if it matters |
02:15 |
rubenwardy |
did you just logout and log back in again? |
02:15 |
rubenwardy |
like, did you just exit to menu |
02:15 |
Swedneck |
i exited the program fully and relaunched it |
02:15 |
rubenwardy |
huh |
02:15 |
rubenwardy |
also, warning: Minetest 0.4.x doesn't know about symlinks |
02:15 |
rubenwardy |
so recursive deletion on them will carry on through |
02:16 |
rubenwardy |
so don't put symlinks in a world dir |
02:16 |
rubenwardy |
Minetest 5 fixes this |
02:16 |
Swedneck |
well the entire mod folder is a symlink |
02:19 |
Swedneck |
interesting, renaming the glass.png file to something else made the glass red instead of white |
02:19 |
hecks |
https://a.cockfile.com/ZsCd8i_demo.mp4 See that mountain, you can climb it |
02:20 |
hecks |
https://a.cockfile.com/2UrIrq_farmap.mp4 |
02:22 |
hecks |
The skybox is currently rendered using a lookup table of "pillars" with some Z-buffer-like culling |
02:22 |
Swedneck |
maybe i'm just making a mistake with how glass textures work |
02:23 |
hecks |
The heightmap is in polar coordinates; the depth can be linear or exponential, and perspective is achieved naturally with a z-divide |
02:23 |
hecks |
Finally, the whole thing is deformed with a magical function that maps the cylinder to cubemap walls |
02:25 |
hecks |
Lookup tables are used to speed up sampling and rendering; further optimization is possible by spreading the rendering job over many frames |
02:28 |
Swedneck |
oh hold on, does glasslike_framed not care about anything but the outermost pixel? |
02:29 |
Xiong |
Purely cosmetic, Swedneck. |
02:29 |
Swedneck |
uh yeah i know |
02:29 |
Swedneck |
i'm just trying to understand how it uses the textures |
02:29 |
rubenwardy |
What's the opinion on allowing mods which have telemetry to CDB? |
02:30 |
rubenwardy |
specifically when it's no user information, but stuff like what they did with the mod and how far they progressed |
02:31 |
hecks |
A mod which makes a server communicate with external (and usually hardcoded) URLs without asking and making it clear is malware. |
02:31 |
kaeza |
rubenwardy: maybe do like F-Droid anti features? |
02:32 |
rubenwardy |
hecks: currently you have to whitelist HTTP mods |
02:32 |
Xiong |
I have to side with hecks. |
02:32 |
rubenwardy |
in the future, there may be a [yes] [no] dialog |
02:32 |
rubenwardy |
I do agree though |
02:32 |
rubenwardy |
kaeza: that would be good to have if it is allowed |
02:32 |
hecks |
Every permissions elevation dialog that the user has to click through is one more step towards uninstalling. |
02:33 |
Xiong |
True. |
02:33 |
Swedneck |
i think it's fine, and even good, as long as it's configurable |
02:33 |
hecks |
See Windows UAC, see the market share of desktop linux, see every "smart" phone snapped in half by its user |
02:33 |
hecks |
Permissions popups are a bandaid; the real problem is things requesting permissions they shouldn't need. |
02:33 |
Swedneck |
and off by default |
02:34 |
rubenwardy |
here's the messages from the user that is asking: https://i.rubenwardy.com/EwFZU.png |
02:34 |
Xiong |
I dislike granting perms to radio home constantly. I'd rather the nasty gubbins saved up a month's worth of usage data and asked for one-time perm to send that block. |
02:34 |
hecks |
Telemetry is a problem because communication alone is information; you get an IP (correlating to a location) and time |
02:36 |
hecks |
I'm not fond of "clever" developers using elevated features wherever they can, not where they absolutely need to. |
02:36 |
hecks |
The purpose of HTTP mods is internal telemetry and communication; a server communicating with another machine owned by the same admin. |
02:37 |
Xiong |
Anyway I want to fix the rubber issue. I wanted to fix it years ago, I wanted to fix it last week. I've been hoping someone more competent would fix it. Failing that, I'd hoped for some understanding of why the issue is so resistant to solution. |
02:37 |
hecks |
Also, if you base your development decisions (in other words, axe features) off of "usage data" then you are a bad developer and you should feel bad. |
02:38 |
Xiong |
You force me to hack away and fix blind. If I get any backtalk, I'll get mad. |
02:39 |
hecks |
hack away and fix blind, welcome to minetest |
02:39 |
paramat |
nice videos, and effective |
02:39 |
Xiong |
hecks you're driving me nuts. You're like Michael Moore. |
02:40 |
Xiong |
I can't write you a blank check; the gods only know what you'd do with it. |
02:41 |
Xiong |
But yes. Programming is the art of making good decisions. If the user knew how to make good decisions, he'd be a good programmer. |
02:43 |
Xiong |
One guy told me I'd given him a really great program. The printout was just thick enough to wedge into his window and stop the draft. |
02:44 |
paramat |
telemetry? nope |
02:46 |
paramat |
that discussion you linked looks like a dev being too clever and not really knowing what to do with the data, heh |
02:46 |
paramat |
he's probably better off just talking to players in a forum thread |
02:48 |
hecks |
I'll reiterate, telemetry is a trap for a developer; the data is never representative of anything useful and you end up making bad decisions |
02:48 |
hecks |
If you're a corporate rat who doesn't understand his own product, use telemetry. |
02:51 |
|
Wikiwide joined #minetest |
02:53 |
Wikiwide |
Hello! I am trying to use Minetest - have server on one computer and clients on several. Question: How do I enter "Creative" mode to have unlimited supply of all materials to build a world with? |
02:54 |
hecks |
Check "creative mode" when starting the server |
02:54 |
NathanS21 |
Check the Creative tab when creating the game |
02:54 |
NathanS21 |
or /grant playername creative |
02:55 |
Wikiwide |
Thank you :-) Trying right now |
02:58 |
Wikiwide |
"Creative mode" checked when starting the server, how do I see all these materials? |
02:58 |
NathanS21 |
just open inventory |
02:58 |
Wikiwide |
I probably haven't figured out which keyboard shortcut opens inventory? |
02:58 |
NathanS21 |
i |
02:58 |
NathanS21 |
or that's the default anyway. |
02:59 |
Wikiwide |
Thank you :-) :-D Thanks a lot! |
02:59 |
NathanS21 |
:) You're welcome. |
03:00 |
Wikiwide |
Just trying to avoid using Minecraft - it was all the fashion at school. Hopefully, they will have new fashion this year - Minetest ;-) |
03:01 |
hecks |
Educational use? |
03:01 |
Wikiwide |
No idea. Kids these days have finger spinners one year and beyblades next year, games are going in and out of fashion like an epidemic. |
03:02 |
hecks |
Make sure to install some nice mods like mesecons and perhaps technic. You can build machines with those. |
03:02 |
Wikiwide |
hecks : Thank you :-) Motor boats? |
03:03 |
NathanS21 |
Mesecons and Technic let you automate things, such as ore processing. |
03:04 |
hecks |
No motor boats in those; mesecons lets you build simple computers and stuff. Also, you'll be asked "teacher where's the redstone" if you don't install it. |
03:04 |
NathanS21 |
I don't know of any motor boat mods, but there is a boat included in default. |
03:04 |
argyle77 |
I'm trying to teach 4yr old nephew how to play. Interesting to see what he is interested in and when trips him up. |
03:05 |
Wikiwide |
I should put my 7yo brother directly onto this channel, he is the one into mining and crafting and construction ;-) |
03:06 |
Wikiwide |
I am not into computer games in general - with rare exceptions such as chess. |
03:14 |
|
Cornelia joined #minetest |
03:29 |
|
DI3HARD139 joined #minetest |
03:45 |
Xiong |
I'd like to see mt servers with more care taken for a prosocial agenda... failing that, an attempt to exclude minors. |
03:46 |
Xiong |
I don't say it's the job of entertainment to teach good; but I don't feel it's good to teach evil. |
03:49 |
Wikiwide |
Welllll... My brother has taken to giving made-up birthday to whichever program asks about it. So, excluding minors should be done smartly, if done. Such as, want to enter a world where guns are common? Have the newbie pass the test about how to use guns, how to clean guns, when guns can be used, and difference between assault and self-defense. In short, if they behave badly after that, then they are already wired to disregard wha |
03:49 |
Wikiwide |
tever instructions are given, and can be banned by mods? |
03:50 |
Wikiwide |
And currently, my brother is into construction (railway and everything). Creative worlds are likely safer for minors than damage-enabled worlds. |
03:58 |
argyle77 |
My nephew refused to crawl out from under the desk until I disable non-peaceful mobs |
03:59 |
Xiong |
Wikiwide you are exactly correct. |
04:01 |
Xiong |
Forget age verification. I saw The Graduate when I was 12. |
04:02 |
Xiong |
I had to look that up because it makes no sense. Must have been revived. |
04:03 |
Xiong |
Anyway yes forget stupid verification. Look for evidence of matured thinking. |
04:04 |
Xiong |
I have a sketchy idea of a game in which the new user is stuck in a rather limited world. He stays there until he earns his way to the next. |
04:07 |
Xiong |
So on one track the user is scored on actions and that cumulative score must pass a threshold. On another track the user must pass certain challenges. These needn't be difficult to exclude angsty troublemakers. |
04:09 |
Xiong |
I don't like "creative mode" myself. I see no challenge in it. But I also see no value in mt games that revolve around slaughtering other players. Even if you *want* a war game, mt is a poor choice. |
04:12 |
argyle77 |
The challenge is making creative mode a challenge. |
04:12 |
Wikiwide |
Creative mode is not particularly challenging, yes, in the sense that you don't need to mine. But it nurtures ability to craft. |
04:12 |
argyle77 |
Hunger and mobs help |
04:13 |
argyle77 |
Complex structures help |
04:13 |
argyle77 |
stuff that needs an infrastructure to use |
04:14 |
Wikiwide |
I wonder if anybody made a Minetest world based on Discworld, with Ankh-Morpork, turtle, elephants, Sun, Hub and such. |
04:14 |
hecks |
Discworld sounds like a good fit... ha |
04:15 |
Wikiwide |
Because that sounds like a good challenge to walk into, whether you are into crafting or into fights. The challenge would be finding a good company of mods, playing roles of Havelock Vetinari, and such. Sorry for any misspellings. |
04:16 |
hecks |
It's well within minetest's potential. Time to learn lua? |
04:17 |
Wikiwide |
Lolz, Lua sounds fun. And movement of Sun on Discworld is certainly different from that on a standard Earth? |
04:18 |
Wikiwide |
Haven't ever coded in Lua before. Fortran, C, Python a little, bash at occasions, R once... Matlab/Octave a little. |
04:18 |
argyle77 |
lua doesn't look too bad. not too hard to see whats going on |
04:18 |
hecks |
The sun you technically can't fiddle with in minetest... but there are ways. |
04:18 |
hecks |
Lua is close to Python but less retarded. Looks more similar to bash. |
04:19 |
argyle77 |
just gotta lean the object model. theres a reference somewhere, right? |
04:19 |
rubenwardy |
!book entit |
04:19 |
MinetestBot |
rubenwardy: Objects, Players, and Entities - https://rubenwardy.com/minetest_modding_book//en/map/objects.html |
04:19 |
Wikiwide |
Anybody ever launched an artificial satellite? ;-) or any space rocket |
04:20 |
hecks |
Lua Reference Manual, Programming in Lua and rubenwardy's modding book are all the reading you need to make things in MT |
04:20 |
hecks |
Artificial satellite... in real life? |
04:22 |
hecks |
I'm afraid not. And doing space things in minetest is hard if not moot; the world is a 70x70x70km box |
04:23 |
hecks |
Which is why a discworld would actually work, while space mods can only hope for a "you tried" trophy. |
04:24 |
rubenwardy |
!mod other world |
04:24 |
MinetestBot |
rubenwardy: Other Worlds [other_worlds] by Shara - https://forum.minetest.net/viewtopic.php?t=16015 |
04:24 |
rubenwardy |
You can have space, but not realistically |
04:25 |
hecks |
Oh I've seen that, yeah, that's a "you tried" from me. |
04:26 |
hecks |
There's no real point to space with how the voxels work; not unless you generate the whole world as a bunch of perlin asteroids and make a game with spaceships. |
04:28 |
rubenwardy |
Still a pretty mod |
04:31 |
Xiong |
Wikiwide the more code you've written, the more annoying Lua may be. |
04:33 |
Xiong |
If I find myself writing any from scratch, I may just try using semis anyway and see if that settles my stomach. |
04:33 |
hecks |
If you find lua annoying, then I have doubts about your programming skill. |
04:34 |
FreeFull |
Lua does have some weird parts |
04:35 |
hecks |
After spending more than half of my miserable life on other languages, lua became my #1 within a week of using. It's just too damn well designed. |
04:35 |
ShadowBot |
https://github.com/minetest/minetest/issues/1 -- GlowStone code by anonymousAwesome |
04:36 |
hecks |
issue: minetest bot should not respond to #n if n < 10 |
04:36 |
hecks |
#65536 |
04:36 |
ShadowBot |
hecks: Error: Delimiter not found in "HTTP Error 404: Not Found" |
04:36 |
hecks |
#999999999999999999999999999999999999999999999999999999999999999999999999999 |
04:36 |
ShadowBot |
hecks: Error: Delimiter not found in "HTTP Error 404: Not Found" |
04:37 |
hecks |
Lucky for you, bot |
04:37 |
FreeFull |
I very much prefer Python to Lua, but Lua is better for embedding into games |
04:37 |
FreeFull |
So it probably was the best choice for Minetest |
04:37 |
hecks |
Significant white space. |
04:38 |
FreeFull |
I mostly use Rust, but that's not a scripting language |
04:39 |
hecks |
Lua is not a scripting language either, but she can be. Lua can be a file format. Lua can be your system shell. Lua will do anything you want. |
04:42 |
FreeFull |
What do you mean by not a scripting language? |
04:43 |
FreeFull |
Lua is pretty much the definition of a scripting language |
04:43 |
hecks |
I expect scripting languages to be interpreted, slow and in some way limited. |
04:44 |
hecks |
Lua is in fact a compiled language with decent on the fly compile/emit capabilities. |
04:44 |
|
DI3HARD139 joined #minetest |
04:45 |
FreeFull |
There's LuaJIT, sure |
04:45 |
|
kaeza joined #minetest |
04:45 |
FreeFull |
But it's not AoT compiled |
04:46 |
|
RichardTheTurd joined #minetest |
04:46 |
hecks |
Even without luajit, when you "dofile" it gets compiled into bytecode. |
04:46 |
FreeFull |
Python gets compiled into bytecode too |
04:46 |
FreeFull |
Python is actually quite slow though |
04:46 |
FreeFull |
Compilation into bytecode is pretty standard for any sort of interpreter |
04:48 |
hecks |
It's just that, I've worked a lot with C# and I wouldn't call that a scripting language. And lua's semantics remind me of that more than they remind me of something like bash or basic. |
04:48 |
hecks |
In both capabilities and performance Lua is no worse of a choice than Mono. |
04:49 |
hecks |
It makes me look at C#, Java and even Python as things trying to solve a problem that Lua has already solved way better |
04:49 |
FreeFull |
Right, I wouldn't call C# or Java a scripting language |
04:50 |
FreeFull |
"Scripting language" in no way implies "slow" though |
04:50 |
FreeFull |
hecks: I like Python's type system |
04:51 |
hecks |
It does imply that it's for "scripts" though, but you can build a huge system in Lua just fine. I reckon this hasn't always been the case though, Lua evolved over time. |
04:52 |
hecks |
Explain to me python's type system because it's been long since I was forced to use that; for contrast, lua has like 7 built in types and you basically don't need any other ones. |
04:54 |
FreeFull |
Python is strongly typed, lets you define your own data types (Including standard OO stuff) |
04:54 |
FreeFull |
It also has a rather big standard library |
04:54 |
FreeFull |
Optionally, you can extend it with tools to bring in some static type checking |
04:55 |
FreeFull |
By strongly typed I mean there isn't much implicit casting. You don't have the sort of mess you get with Javascript |
04:56 |
FreeFull |
Still, for an actual big system that's not just some scripts I would use an actual statically typed language like Rust |
04:56 |
hecks |
Lua has about as much casting as is needed, but doesn't come with a type system beyond the primitives. Instead, a table is the only collection, structure and class type you'll ever need. |
04:57 |
FreeFull |
Yeah, I don't like "everything is a table" |
04:57 |
hecks |
Using Lua has highlighted to me some problems with strong typing; there's so many constructs in every language that only exist as artifacts of type checking |
04:58 |
hecks |
for instance interfaces and generics; the very concept of those is completely worthless in Lua |
04:59 |
FreeFull |
Generics typically aren't needed in any dynamically typed language |
05:01 |
hecks |
Precisely; but that doesn't mean that I can't have a full featured OOP system if I want to. In fact, it's more powerful and leaner than my ol' lamented C#. |
05:01 |
FreeFull |
The way I write software doesn't really lean towards traditional OOP |
05:01 |
hecks |
The trick is, even the concept of types doesn't really need any language support |
05:02 |
FreeFull |
It does if you want to check them before your software actually runs |
05:03 |
hecks |
And you *can* add type checking and other bookkeeping nonsense to lua if it's that critical. But just like .NET it'll add extra overhead. |
05:04 |
hecks |
I missed the stuff initially, but then realized just how much of it is unnecessary. |
05:06 |
hecks |
Don't even get me started on attempts to add OOP into a bare metal language like C++, it's a disaster |
05:10 |
FreeFull |
hecks: How do you feel about the way things are done in Rust? |
05:15 |
hecks |
I'm skimming the book on it and I don't "get" it yet. |
05:18 |
hecks |
FreeFull: I'll file it under "another bastard child of C" |
05:22 |
hecks |
It's a rearranged C++ I guess, suppose concurrency is the point? This reminds me, threads are the one thing missing in Lua and that sucks. |
05:22 |
FreeFull |
Python's concurrency story isn't great either |
05:23 |
Xiong |
FreeFull you and me. Need a table? Great, here's a table. Need an array? Here's a table. Need a hash? Here's a table. |
05:24 |
Xiong |
I'm waiting for the Lua RDB. |
05:24 |
FreeFull |
Rust has a bunch of things going for it: It's a systems programming language, without garbage collection. Sum types (which Rust calls "enum"s), the match syntax, traits, very easy to bring in and use external libraries, type system makes sure you get memory safety |
05:25 |
hecks |
Xiong: it's a feature ¯\_(ツ)_/¯ |
05:26 |
Xiong |
"type checking and other bookkeeping nonsense" -- I plan to frame that on the wall just to see who laughs and who nods wisely. Great for snap HR calls. |
05:27 |
FreeFull |
hecks: One minor nit, I prefer 0-indexing to 1-indexing |
05:27 |
hecks |
Syntactic sugar for enums and switch doesn't interest me; switches are a code smell. |
05:28 |
hecks |
1-indexing was indeed a mistake; n-dimensional array math doesn't add up because of that |
05:28 |
hecks |
thankfully luajit usually catches those (n-1) expressions and smooths the whole deal out |
05:28 |
Xiong |
"Lua can be your system shell." -- you can have my bash when you pry it from my cold dead fingers. |
05:29 |
FreeFull |
They're not normal enums |
05:29 |
FreeFull |
And not C-style switches |
05:29 |
Xiong |
Well. |
05:30 |
hecks |
Still, the idea is that if you need something like that, there's already rats in your code. |
05:30 |
Xiong |
I have patched technic so fallback rubber loads on top of moretress... without disaster. |
05:30 |
FreeFull |
Unix sh and derivatives really got the "executing programs interactively" part right |
05:31 |
FreeFull |
hecks: How so? |
05:32 |
hecks |
How so; mapping one thing to another like in a switch is a classic matroid problem, and is best solved using a data structure. |
05:32 |
Xiong |
Rubber trees are sparse, quite so... which is fine. The trunks may be tapped, cut ground and extracted... and the latex alloyed into usable rubber fiber. The fallback trees do not spawn in utterly bizarre places... yet. |
05:32 |
hecks |
Ditto for switches masquerading as if/else chains. Else if totally considered harmful. |
05:34 |
Xiong |
I'm going to patch less aggressively, testing for mg, and see how that goes. |
05:36 |
FreeFull |
hecks: Ok, so, one of the enums that comes in Rust's standard library is "enum Result<T, E> { Ok(T), Err(E) }" which means in the Ok case you get something of type T, and in the error case you get something of type E. One or the other, not both |
05:37 |
hecks |
Another artifact of a type system. |
05:37 |
FreeFull |
How are errors handled in Lua? |
05:39 |
hecks |
Exceptions? They're strings propagated until the last pcall |
05:39 |
FreeFull |
Exceptions aren't great |
05:39 |
hecks |
a pcall returns a bool and a string telling you what happened if there was an error |
05:40 |
FreeFull |
With a Result type, you're instantly aware if something can return an error or not, and you can decide how to handle it, which might include just passing it on, or actually doing something |
05:43 |
hecks |
well, okay, that's every error handling mechanism ever made |
05:44 |
hecks |
Why are we comparing those two languages anyway; they're not in the same domain even |
05:44 |
FreeFull |
hecks: It's not obvious if a function returns an exception or not |
05:44 |
FreeFull |
True |
05:44 |
argyle77 |
hey why does the lua make the engine crash? |
05:44 |
hecks |
I'd rather evaluate Rust from a "can I just do this with C" perspective |
05:45 |
hecks |
argyle77: how does it crash? What did you do? |
05:46 |
FreeFull |
https://github.com/PistonDevelopers/dyon I guess this is more of a Lua competitor |
05:46 |
FreeFull |
It has weird syntax though |
05:48 |
hecks |
first time I see a language with a "why" keyword |
05:48 |
hecks |
still waiting for the language with "when" statements |
05:50 |
|
Gundul joined #minetest |
05:51 |
hecks |
clearly this is to Rust what Lua is to C, but it looks overdesigned |
05:52 |
FreeFull |
It has stuff like concurrency |
05:53 |
hecks |
Yeah sure |
05:54 |
hecks |
It just doesn't have the mathematical simplicity that Lua has; only Lisp is a viable competitor to that |
06:06 |
|
Emerald2 joined #minetest |
06:13 |
|
Hirato joined #minetest |
06:38 |
|
GreenDimond joined #minetest |
07:53 |
|
SanskritFritz joined #minetest |
07:54 |
Emerald2 |
What's the 'blocker' tag on github for? (noticed it on some of the issues for minetest) |
08:05 |
|
tuedel_ joined #minetest |
08:10 |
|
tuedel joined #minetest |
08:16 |
|
YuGiOhJCJ joined #minetest |
08:33 |
|
nowhere_man joined #minetest |
08:33 |
|
Tux[Qyou] joined #minetest |
09:00 |
ANAND |
Emerald2: Those are for issues and PRs that "block" the upcoming release of Minetest, so to say |
09:00 |
Emerald2 |
What do you mean? |
09:01 |
ANAND |
i.e. They're even more important than the ones named high priority |
09:01 |
ANAND |
e.g. Game-breaking bugs |
09:02 |
Emerald2 |
Oooooooh. Thanks ANAND. :) |
09:03 |
|
CWz joined #minetest |
09:19 |
ANAND |
Yw :) |
09:27 |
|
hecks joined #minetest |
09:30 |
hecks |
https://a.cockfile.com/AgvsCm_skybox.mp4 one rewrite later |
09:34 |
hecks |
The raymarch now basically costs nothing; it's spread over several seconds. Rasterization is the bottleneck but using non-square textures made it both faster and prettier. |
09:39 |
|
Darcidride_ joined #minetest |
09:39 |
|
DI3HARD139-m joined #minetest |
09:52 |
|
Darcidride_ joined #minetest |
10:40 |
|
fwhcat joined #minetest |
10:54 |
|
cafee__ joined #minetest |
11:44 |
|
riff-IRC joined #minetest |
11:49 |
|
Fixer joined #minetest |
11:50 |
|
LMD joined #minetest |
11:52 |
|
Rafi59 joined #minetest |
12:03 |
|
second joined #minetest |
12:03 |
second |
how do i know my joystick ID? |
12:06 |
|
calcul0n joined #minetest |
12:19 |
|
Sokomine_ joined #minetest |
12:29 |
|
Markow joined #minetest |
12:33 |
|
andrej joined #minetest |
13:06 |
|
Sokomine joined #minetest |
13:11 |
|
FreeFull joined #minetest |
13:29 |
|
second joined #minetest |
13:39 |
|
cautiouspotato joined #minetest |
13:41 |
|
entuland joined #minetest |
14:00 |
|
Krock joined #minetest |
14:28 |
|
fwhcat_ joined #minetest |
14:31 |
|
cautiouspotato joined #minetest |
14:35 |
|
CWz joined #minetest |
15:13 |
|
Markow joined #minetest |
15:43 |
|
SanskritFritz joined #minetest |
16:09 |
|
cddepppp256 joined #minetest |
16:18 |
|
Gael-de-Sailly joined #minetest |
16:37 |
entuland |
hello everybody - is it possible to "refresh" the code of a mod while the world is running? - for development purposes, to avoid reloading the world for every change's test |
16:39 |
rubenwardy |
not without a specially designed mod |
16:39 |
rubenwardy |
you can dofile at anytime, so you could implement reloading like that |
16:39 |
rubenwardy |
but you'll have to be careful not to introduce bugs by adding duplicate callbacks |
16:40 |
|
Andrey01 joined #minetest |
16:40 |
entuland |
good, thanks a lot for the pointers rubenwardy |
16:44 |
Andrey01 |
hi, i have a problem with texture rendering on my model in blender. It renders properly in Solid mode, but incorrectly in Rendered one. |
16:44 |
Andrey01 |
screenshot of how it renders in Rendered: http://www.imageup.ru/img144/3270027/screenshot_20190127_194251.jpg |
16:44 |
entuland |
Andrey01: the problem is in blender or in minetest? |
16:44 |
Andrey01 |
in blender |
16:44 |
rubenwardy |
looks like the normals are facing the wrong way |
16:45 |
rubenwardy |
try flipping facing which look weird |
16:45 |
rubenwardy |
I'm not good with blender though |
16:53 |
Andrey01 |
but why does it look like correctly in Solid? as i see the positions of each face on the unwrapping of the model are correct |
16:57 |
rubenwardy |
because there won't be backface culling |
16:57 |
rubenwardy |
idk though |
17:01 |
|
xSmurf joined #minetest |
17:01 |
entuland |
in any case there should be an option to show the actual direction of the normals, and that will tell you whether the normals are right or not |
17:02 |
entuland |
it shows as a line orthogonal to each face, with the longest end pointing to the actual normal (that is, marking the "front" of the face) IIRC |
17:31 |
|
Darcidride_ joined #minetest |
17:44 |
|
kaeza joined #minetest |
17:49 |
NathanS21 |
Andrey01 my guess would be that you don't have the material set up to use the UV mapping, so it's using box projection. |
17:56 |
second |
how do i know my joystick ID? |
17:57 |
rubenwardy |
on linux, by installing jstest-gtk |
17:57 |
rubenwardy |
and then finding out which one reachs to changes |
17:58 |
rubenwardy |
it's almost certainly 0 |
17:58 |
rubenwardy |
also, the controller support in Minetest isn't great because controllers vary per platform and per controller and per computer |
17:58 |
second |
is there a best working controller? |
18:04 |
second |
xbox i would imagine since it has a specific mention in the options? |
18:06 |
rubenwardy |
I added the support for joystick IDs and for xbox controllers |
18:06 |
rubenwardy |
however, xbox controllers only seem to work on my setup |
18:06 |
rubenwardy |
because they are configured differently on windows |
18:06 |
rubenwardy |
and other platforms |
18:08 |
second |
i am trying it now with an xbox controller, it does a bit of moving around on its own it seems |
18:14 |
|
valvey joined #minetest |
18:15 |
valvey |
Hey guys just started playing, with mineclone 2 |
18:16 |
valvey |
I got pwned by a spider that somehow entered my hole through a wall, is that to be expected? I was thinking that making 2 or 3 blocks thick walls will counter this maybe |
18:17 |
valvey |
And are there other such bugs that will cause me to lose progress in frustrating ways? |
18:19 |
|
paramat joined #minetest |
18:23 |
Andrey01 |
NathanS21, i have material :\ |
18:34 |
NathanS21 |
yes, but is it set to use the objects UV map. |
18:34 |
|
Tuxedo[Qyou] joined #minetest |
18:34 |
NathanS21 |
You can have a the material showing correctly in the 3d view, but not be applied when rendering. |
18:35 |
|
calcul0n joined #minetest |
18:39 |
|
Tux[Qyou] joined #minetest |
18:39 |
|
illwieckz joined #minetest |
18:50 |
Andrey01 |
NathanS21, i don`t know how to apply it when rendering, i only know how to apply in general case |
18:51 |
Andrey01 |
that is, when switching to 'Material' editor and set up needed material |
18:52 |
NathanS21 |
Are you using Blender Internal or Cycles? |
18:53 |
NathanS21 |
nevermind, I just pulled the picture back up |
18:53 |
NathanS21 |
If you go to the texture settings |
18:53 |
NathanS21 |
look for a section that says mapping |
18:54 |
NathanS21 |
you want to select UV from the dropdown menu |
19:25 |
|
Superuser joined #minetest |
19:25 |
Superuser |
hi |
19:25 |
Superuser |
can i please have a wiki account? |
19:26 |
Superuser |
:( |
19:27 |
NathanS21 |
Way to stick around for somebody to try and help you. :S |
19:40 |
|
DoyleChris joined #minetest |
19:42 |
DoyleChris |
trying out the new mapserver and i cant get it running |
19:43 |
DoyleChris |
it says to run ./mapserver but linux gives me this bash: ./mapserver.exe: No such file or directory |
19:45 |
|
cafee__ joined #minetest |
19:46 |
rubenwardy |
remove the .exe |
19:47 |
DoyleChris |
i did still same error with ./mapserver |
19:48 |
DoyleChris |
on the github its just 1 file with no extension |
20:00 |
|
cafee__ joined #minetest |
20:04 |
|
Fixer_ joined #minetest |
20:52 |
|
Lia joined #minetest |
21:06 |
|
Tux[Qyou] joined #minetest |
21:54 |
|
entuland joined #minetest |
22:02 |
|
Hawk777 joined #minetest |
22:31 |
|
Xiong joined #minetest |
22:52 |
|
Wuzzy joined #minetest |
22:53 |
|
riff-IRC joined #minetest |
23:32 |
|
arsdragonfly joined #minetest |