Time |
Nick |
Message |
00:11 |
|
huesal___ joined #minetest |
00:20 |
|
huesal__ joined #minetest |
00:24 |
|
Miner_48er joined #minetest |
00:55 |
|
Markow joined #minetest |
01:01 |
|
DoyleChris joined #minetest |
01:01 |
DoyleChris |
happy new year |
01:02 |
DoyleChris |
minetest server help. |
01:02 |
DoyleChris |
i have 4.15 installed on Raspberry PI |
01:02 |
DoyleChris |
and i have 4.17.1 running on my laptop |
01:03 |
DoyleChris |
I moved my mods folder and world folder over and ran the command minetest --server --worldname Server and i get a error for mods installed. |
01:04 |
sofar |
upgrade your server to at least 0.4.16 |
01:04 |
DoyleChris |
how |
01:04 |
GreenDimond |
if you are running a debian-based linux distro you need to add the minetest repository |
01:04 |
DoyleChris |
i have done sudo update and upgrade but it still lists 4.15 |
01:04 |
GreenDimond |
and install from there |
01:04 |
GreenDimond |
sudo add-apt-repository ppa:minetestdevs/stable |
01:04 |
sofar |
if you ask that question, you should re-evaluate your choice to run a Raspberry PI |
01:05 |
DoyleChris |
well i dont have a pc |
01:05 |
DoyleChris |
for the server but i have a pi3 |
01:05 |
DoyleChris |
sudo add-apt-repository ppa:minetestdevs/stable command not found |
01:06 |
DoyleChris |
i am running the latest raspbian |
01:07 |
GreenDimond |
Google how to add a repo on Raspbian then |
01:11 |
DoyleChris |
i have etc/apt/source.list open but what do i add |
01:19 |
|
timcu joined #minetest |
01:22 |
DoyleChris |
im guessing it cant find the mods |
01:35 |
DoyleChris |
how do i install mods on a new server |
01:37 |
|
LazyJ joined #minetest |
01:39 |
NathanS21 |
DoyleChris grab them with wget or git |
01:40 |
NathanS21 |
cd to the mod directory and pull them from github. |
01:42 |
DoyleChris |
when i installed minetest it didnt put a mod folder in home/pi/.minetest |
01:43 |
NathanS21 |
I don't think it ever does, you have to create that directory yourself. |
01:44 |
DoyleChris |
ok. i copied the mod folder from my pc to raspberry pi. |
01:46 |
DoyleChris |
i get this |
01:46 |
DoyleChris |
2019-01-01 19:47:28: [Main]: Using world specified by --worldname on the command line 2019-01-01 19:47:28: WARNING[Main]: NodeDefManager: Ignoring CONTENT_IGNORE redefinition 2019-01-01 19:47:28: ERROR[Main]: ModError: Failed to load and run script from /home/pi/.minetest/mods/unified_inventory/init.lua: 2019-01-01 19:47:28: ERROR[Main]: /home/pi/.minetest/mods/unified_inventory/init.lua:40: attempt to index field 'settings' (a n |
01:47 |
NathanS21 |
You did upgrade the Minetest version correct? |
01:47 |
NathanS21 |
It looks to me like it is seeing the code from the mods you just copied over. |
01:47 |
DoyleChris |
i cant get it to upgrade |
01:48 |
NathanS21 |
that might be the problem. Settings might be a newer feature that 4.15 doesn't have. |
01:48 |
NathanS21 |
Could you possibly build a newer version on the PI? |
01:49 |
NathanS21 |
I know the build time would probably be fairly long, but that would be an option to get the newer version. |
01:49 |
NathanS21 |
I build the dev version every week with a script on my desktop, and it only takes a few minutes. |
01:50 |
NathanS21 |
Obviously a desktop has a lot more processing power than a Pi3. |
01:52 |
NathanS21 |
Not sure if you've seen this post on the forums. https://forum.minetest.net/viewtopic.php?f=10&t=15732 but somebody has full instructions on setting up a server on a pi |
02:02 |
DoyleChris |
i got through the first part |
02:18 |
DoyleChris |
can i build it from linux and run it on the pi |
02:18 |
DoyleChris |
because i have linux on a usb stick that i can run |
02:20 |
MinetestBot |
[git] paramat -> minetest/minetest_game: Add large cactus seedling 6688ddf https://git.io/fhqJW (2019-01-02T02:18:50Z) |
02:23 |
NathanS21 |
You might be able to. |
02:23 |
NathanS21 |
I've never tried that. |
02:23 |
NathanS21 |
As long as they are both debian based I'd think there is a good chance it should work. |
02:24 |
NathanS21 |
just make sure you use the build_in_place true option when building so you get all the binaries and stuff in the same folder. |
02:26 |
Quiark |
it won't because it's a different CPU |
02:26 |
Quiark |
you'd have to crosscompile which is hard to set up |
02:27 |
Quiark |
just compile it on RPi, who cares if it takes half day |
02:37 |
DoyleChris |
im trying it |
02:37 |
DoyleChris |
fatal: unable to connect to anonscm.debian.org: anonscm.debian.org[0: 194.177.211.202]: errno=Connection refused anonscm.debian.org[1: 2001:648:2ffc:deb::211:202]: errno=Connection timed out |
02:39 |
NathanS21 |
can you connect to that link with a different computer? |
02:39 |
NathanS21 |
maybe the address has changed? |
02:42 |
NathanS21 |
when I visit that link it says, The alioth.debian.org service is discontinued. Its replacement is a GitLab instance at salsa.debian.org. |
02:42 |
NathanS21 |
Migration documentation is available on the wiki, and an archive of VCS repositories can be found on alioth-archive.debian.org. |
02:42 |
NathanS21 |
2018-05-31. |
03:05 |
DoyleChris |
so i found a tar of minetest-debian-0.4.17.1+repack-1_bpo9+1 |
03:07 |
DoyleChris |
do i need to compile it from that |
03:11 |
DoyleChris |
im so confused |
03:19 |
NathanS21 |
Not sure. |
03:20 |
NathanS21 |
pull the source code from github and build from that. |
03:20 |
DoyleChris |
im so confused with building it |
03:21 |
DoyleChris |
every step i get errors |
03:22 |
NathanS21 |
the first time I built from source I had to get a bunch of dependencies and extra programs to build it. |
03:22 |
NathanS21 |
https://dev.minetest.net/Compiling_Minetest |
03:23 |
NathanS21 |
Once I had the dependencies it was just as simple as running cmake and make with some args to build it. |
03:23 |
NathanS21 |
not sure how different it is on a pi though. |
03:24 |
DoyleChris |
well bed time ill try again tommorow |
03:24 |
NathanS21 |
Good luck |
03:25 |
DoyleChris |
ill be back tommorow same time |
03:25 |
DoyleChris |
quit |
03:34 |
|
Ruslan1 joined #minetest |
03:38 |
|
swift110 joined #minetest |
03:44 |
|
swift110 joined #minetest |
03:57 |
oiaohm |
I was having a horrible idea. What if there was a mapgen that instead of building a nice world. Just randomally put blocks all over the place so you had to 3 block jump at least off the start line. |
03:58 |
swift110 |
sup folks |
04:06 |
GreenDimond |
oiaohm: I think that exists |
04:07 |
GreenDimond |
https://forum.minetest.net/viewtopic.php?f=9&t=20655 |
04:09 |
Quiark |
was playing MineClone 2 with GF yesterday ... start location is on gravel so mobs everywhere |
04:09 |
Quiark |
huddle together in house with a big wall and moat the whole night |
04:10 |
Quiark |
then thunderstorm at daytime, mobs remain ... so we spend 20 mins not playing, just waiting for it to pass |
04:10 |
Quiark |
in short, I need a rocket launcher |
05:14 |
|
ANAND joined #minetest |
05:22 |
|
jas_ joined #minetest |
05:41 |
|
james joined #minetest |
06:18 |
|
MineCityBot_ joined #minetest |
06:40 |
Ruslan1 |
Hello |
06:40 |
jas_ |
hi |
06:40 |
Ruslan1 |
Hi |
06:40 |
jas_ |
Hello! |
06:40 |
jas_ |
how are you? |
06:41 |
Ruslan1 |
Good |
06:41 |
jas_ |
Great! |
06:41 |
jas_ |
how's minetest? |
06:41 |
Ruslan1 |
Good |
06:41 |
jas_ |
me too, good to hear |
06:41 |
jas_ |
just cookin' some cobble up myself, you? |
06:42 |
Ruslan1 |
What cobble |
06:42 |
jas_ |
i'm thinking this time instead of compressing cobble with a craft recipe, to make a machine that compresses it and maybe give goodies at some cost of cobble. i did make gravel drop some stuff, which i think is neat. |
06:42 |
jas_ |
mm, regular cobble to stone |
06:42 |
jas_ |
tho i added recipes for making dirt_with_grass, etc, so i might for mossycobble as well. mmmm mossy cobble |
06:43 |
Ruslan1 |
Like I craft it |
06:43 |
Ruslan1 |
Give me link |
06:43 |
jas_ |
yeah for example. i guess it'd be grass+cobble=mossycobble, but i haven't made that recipe yet. dirt+grass=dirt_with_grass, tho |
06:44 |
Ruslan1 |
Nice |
06:44 |
jas_ |
https://forum.minetest.net/viewtopic.php?f=10&t=20006 |
06:44 |
jas_ |
!server glitchtest |
06:44 |
MinetestBot |
jas_: Glitchtest | dcbl.duckdns.org | Clients: 1/15, 0/1 | Version: 5.0.0-dev / Glitchtest | Ping: 124ms |
06:44 |
jas_ |
and dirt+dry_grass = dirt_with_dry_grass, and i think i did snow, too, but also need the rainforest stuff, new dirt with stone pebbles, etc. |
06:46 |
jas_ |
now, as i step away from the laptop, i think it'd be nice to have an /away chat command to somehow indicate i'm afk |
06:46 |
Ruslan1 |
Nice server |
06:47 |
Ruslan1 |
Is there spawn in your server |
06:48 |
Ruslan1 |
jas_: is there spawn in your server |
07:02 |
jas_ |
oh yes, brb coffee |
07:03 |
jas_ |
back |
07:03 |
jas_ |
(haha, i love irc. yes, there's spawn, and a /spawn command that is always available. there is no /killme.) |
07:04 |
* jas_ |
puts on the choons |
07:05 |
jas_ |
now, the /spawn command uses spawn.on_spawn, which comes from paramat's `spawn' mod |
07:05 |
jas_ |
same for the [Spawn] button on inventory (depending), and respawn if you haven't used a bed to set it otherwise |
07:05 |
jas_ |
of course, new players also use spawn.on_spawn. this has resulted in the same spawn location and i've built it up into something of a maze |
07:06 |
jas_ |
there is no `static_spawnpoint' set for the server |
07:09 |
jas_ |
(the [Spawn] button on the inventory can either go to spawn.on_spawn, or beds' respawn, and can be toggled in the terminal with `set spawn_switch') |
07:30 |
Ruslan1 |
jas_: I won’t able to join your server |
07:31 |
jas_ |
no, i don't think so, without a new client. there's a development version, you can find it on the forum if you're interested. |
07:31 |
jas_ |
who knows, maybe it will be out "soon" :) |
07:34 |
jas_ |
(you can't play mt4 servers with the new version, and you can't play mt5 servers with the current version.) |
07:38 |
Ruslan1 |
I know |
07:38 |
jas_ |
on the other hand, my inv is full and i don't have a backpack, so i think i will add compressed cobble via craft afterall |
07:39 |
jas_ |
and then do goodies like exploding the stones when you dig it, and making a machine to get goodies out of compressed cobble and gravel automatically. i still have to do enchantment machine and worktable for bigger craftgrid (lol) and tool repair. |
07:39 |
jas_ |
do u have mt5? |
07:39 |
jas_ |
i'm on the server now, maybe there's something the matter |
07:42 |
Ruslan1 |
I will get minetest 5.0.0 |
07:43 |
jas_ |
you can get sfan5's builds, which are fancy i think, or maybe the automatic builds from gitlab.com/minetest/minetest/pipelines |
07:43 |
jas_ |
it's for windows. on linux i build from source. i tried it on android, new version, on my server it's lol |
07:43 |
jas_ |
mm, i might try again. i dunno how well if at al it'll work. |
07:44 |
Ruslan1 |
how it work |
07:45 |
jas_ |
android version? the walkie compass is covered by buttons that didn't really work for me anyway. then again mobile minetest has always been kinda a pain |
07:46 |
Ruslan1 |
i don't have android |
07:46 |
jas_ |
oh ok, well then are you on windows? i been using the build from gitlab.com/minetest/minetest/pipelines ... there's a cloud all the way to the right, click it and select architecture |
07:47 |
jas_ |
or use sfan5's build: https://forum.minetest.net/viewtopic.php?f=42&t=1523 |
08:16 |
|
Weedy joined #minetest |
08:20 |
|
Akberid joined #minetest |
08:32 |
oiaohm |
jas_: I normally don't have major problems getting mossycobble. Cobble near water produces mossy cobble. |
08:32 |
jas_ |
yep, that's how i generally farm it. but i'm thinking of convienence. dirt_with_grass was an obvious as it's impossible otherwise. |
08:33 |
jas_ |
i mean, you can try to trigger dirt -> dirt_with_grass, but sometimes there's not light, etc. |
08:33 |
jas_ |
just a thought anyway, not sure if i will or not. |
08:33 |
oiaohm |
jas_: warped recipe would be furnuse taking bucket of water + cobble then producing mossy cobble. |
08:33 |
jas_ |
but i have other obsurdities like colored glass, and now i feel like i have to make colored glass doors because of it! haha |
08:33 |
jas_ |
oooh |
08:33 |
jas_ |
i will write that down, thanks oiaohm |
08:35 |
jas_ |
i guess i'll have to modify furnace? |
08:35 |
jas_ |
i'm going to work on a book reader first, where i can store books in a chest-like node and flip through the books it contains. |
08:36 |
jas_ |
(and i keep meaning to redo the placeable books mod. bbiab) |
08:36 |
oiaohm |
jas_: it would require modify furnace or making something like furnace that consumes water. |
08:37 |
oiaohm |
jas_: or needs to be in water. |
08:37 |
jas_ |
hm, furnace around water? it's a thought, i'll add it to the book where i wrote this down ;D |
08:37 |
jas_ |
i was thinking of a "state" for the furnace |
08:37 |
jas_ |
but i guess that's similar/related |
08:38 |
oiaohm |
jas_: like a mossy cobble generator that has to be in water but like lets you put like 99 blocks in you wish to convert. Making mossy cobble production more compact and less pick consuming. Does not have to make it any faster. |
08:38 |
jas_ |
ohhh |
08:39 |
jas_ |
ok got it i think, i'll write it all down and give it a try at some point |
08:39 |
* jas_ |
gets up to stretch |
08:41 |
oiaohm |
jas_: another varation would be if the mossycobble generator did not need to be in water but require 2 buckets of water inserted to convert that you could take back out. (yes unlimited water stunt inside the box) |
08:42 |
oiaohm |
Craft methods do need to line up to world production methods a bit. |
08:43 |
oiaohm |
that would make mossycobble generator quite pricely because you are not willing to do the cheaper method. |
08:48 |
jas_ |
i see, good point. the ironing out of the details always seem to come later, however. |
08:49 |
jas_ |
anyway this is a good machine for me to make, reminds me of Dragonop's clay crafter. i will make a furnace-like machine that requires buckets of water/river_water to make mossycobble automatically. |
08:50 |
jas_ |
i do plan on doing some stuff in terminal related to machines and automation, eventually. somehow i lost my saved warps on my mechanisms, and it occurs to me i may not be checking protection on them hehe |
08:52 |
jas_ |
i made it so when you place an intercomm on default:mese, it swaps to default:mese_ which has a light source of default.LIGHT_MAX. i'd like to look at connected nodeboxes, i haven't tried them yet, for something like mesecons power lines. |
08:54 |
jas_ |
and i'll have to get back to trying to convert protector redo to AreaStore afterwards. i'm still ironing out my version of mobs, which doesn't use abms to spawn entities. |
08:54 |
* jas_ |
launches vim and starts on mossy cobble generator machine |
09:17 |
|
cafee__ joined #minetest |
09:25 |
|
ensonic joined #minetest |
09:32 |
|
jluc joined #minetest |
09:41 |
|
SanskritFritz joined #minetest |
10:13 |
|
sonicpp joined #minetest |
10:38 |
|
riff-IRC joined #minetest |
10:40 |
jas_ |
phew, got it working i guess. now to rob dragonop's claycrafter textures |
10:44 |
jas_ |
here's the diff: https://gist.github.com/jastevenson303/7ecfc5d3b391005bfc578465083bcf53 <-- i'm not proud |
10:48 |
jas_ |
https://www.youtube.com/watch?v=DHEOF_rcND8 |
10:48 |
MineCityBot_ |
[You0,4Tube] Title:4 Edward Sharpe & The Magnetic Zeros - Home (Official Video) | Uploaded by:4 Rough Trade Records | Date:4 17/05/2010 | Views:4 65,493,723 | Likes:4 97.54% | DisLIKEs:4 2.46% |
10:48 |
jas_ |
!title |
10:48 |
MinetestBot |
jas_: Edward Sharpe & The Magnetic Zeros - Home (Official Video) - YouTube |
10:51 |
|
proller joined #minetest |
10:55 |
|
Krock joined #minetest |
10:57 |
|
Tux[Qyou] joined #minetest |
10:59 |
jas_ |
i miss him. https://imgur.com/a/hOg3Viu |
11:02 |
|
ensonic joined #minetest |
11:02 |
|
MineCityBot_ was kicked by rubenwardy: kick |
11:02 |
|
MineCityBot_ joined #minetest |
11:03 |
|
MineCityBot_ was kicked by rubenwardy: kick |
11:08 |
|
sonicpp joined #minetest |
11:09 |
jas_ |
https://github.com/jastevenson303/Glitchtest/commit/3e9e4a5e059d13c626024849d7273fcea937e84d |
11:09 |
jas_ |
all done for now, i guess. the craft recipe is very funny, considering the texture! |
11:10 |
jas_ |
oiaohm: thx |
11:18 |
|
DI3HARD139 joined #minetest |
11:33 |
|
majochup joined #minetest |
11:40 |
MinetestBot |
[git] pauloue -> minetest/minetest_game: Remove extra empty strings in craft recipes (#2281) ccf03ea https://git.io/fhq8r (2019-01-02T11:40:32Z) |
11:47 |
|
Telesight joined #minetest |
11:47 |
|
Telesight left #minetest |
11:50 |
|
majochup joined #minetest |
11:55 |
|
sonicpp joined #minetest |
12:01 |
|
Wuzzy joined #minetest |
12:12 |
|
nowhere_man joined #minetest |
12:16 |
|
ensonic joined #minetest |
12:21 |
|
Markow joined #minetest |
12:35 |
|
Fixer joined #minetest |
12:38 |
|
Wuzzy2 joined #minetest |
13:00 |
Xiong |
jas_ Help me out. Don't understand why you are making heavy weather of mossy. Dead simple to dig it after its turnef mossy through being wet. I've never wanted so much I felt I needed to automate that but a simple nodebreaker setup on a slow timer should work fine. |
13:21 |
|
sonicpp joined #minetest |
13:38 |
|
cafee__ joined #minetest |
13:52 |
|
sonicpp joined #minetest |
14:09 |
|
cyberarm joined #minetest |
14:09 |
|
Taoki joined #minetest |
14:18 |
|
CWz joined #minetest |
14:42 |
|
hecks joined #minetest |
14:43 |
hecks |
any ideas on how I could simulate a laggy server locally? |
14:43 |
majochup |
no |
14:44 |
Krock |
hecks: enable pipeworks, technic and the entire techpack |
14:44 |
hecks |
ha ha |
14:44 |
hecks |
technic is still less intensive than mibi |
14:44 |
Krock |
or add for-loops with a million iterations each server step |
14:44 |
hecks |
but uh, I meant network lag |
14:44 |
Krock |
mibi? |
14:44 |
Krock |
ah |
14:44 |
hecks |
whatever I'm making |
14:44 |
hecks |
but I wanted to test lag in mt in general |
14:45 |
hecks |
I've played some servers and every single one of them had hit detection and feedback issues |
14:45 |
Krock |
I'd suggest to generate a random number from 1 million to 10 millions and: for i = 1, rnd_number do end |
14:45 |
hecks |
regardless of where the server was located; I've heard that the netcode is just bad |
14:45 |
Krock |
that inside register_on_globalstep |
14:45 |
hecks |
but maybe there's some lua bandaids that can be applied, this is what I mean to research |
14:48 |
sfan5 |
hecks: linux can put artificial latency on your localhost |
14:48 |
sfan5 |
if that is what you mean by "laggy" |
14:48 |
hecks |
I think I found something for windows that does this |
14:51 |
hecks |
oh yeah, it works |
14:56 |
hecks |
and it's nigh unplayable on 150ms, geez |
14:57 |
hecks |
I'll wait until CSM to complain about that, though |
15:00 |
hecks |
and then I found out that minetest does not have any api to check a player's network quality |
15:05 |
|
sonicpp joined #minetest |
15:05 |
Calinou |
you can decrease the dedicated_server_step in minetest.conf if you run a server on good hardware |
15:05 |
Calinou |
https://github.com/minetest/minetest/blob/master/minetest.conf.example#L1409-L1412 |
15:06 |
Calinou |
hecks: try playing with other server settings too, see https://gist.github.com/Calinou/683cb0748efe867be6e18f86f206a6b7 |
15:06 |
Krock |
Xiong: käpenblaubär would like to have an area of yours in creatively survival |
15:06 |
Calinou |
some of them may not be ideal for fast machines |
15:07 |
hecks |
I already managed to generate the lag I'm looking for |
15:07 |
hecks |
I'll reiterate to make it perfectly clear; I'm simulating a server that runs fine but with network lag |
15:07 |
hecks |
sadly 50ms ping is barely playable and anything above is bonkers |
15:07 |
Calinou |
I mean, perceived lag could probably be reduced if servers ran better settings |
15:08 |
Calinou |
also, how is 50 ms barely playable considering Minetest has client-side physics? |
15:08 |
hecks |
anything that isn't movement or digging related is lag dependent |
15:08 |
hecks |
my server settings are already optimized to all hell so no need to worry about that |
15:10 |
hecks |
client side physics don't help with this: https://a.uguu.se/HpvQPieDqkZE_hit.gif |
15:12 |
hecks |
I know some ways to make it better but some of it requires CSM, and some of it at the very least a small PR |
15:15 |
hecks |
this is pretty important, it's the #1 reason why every MT server ever has terrible mobs and pvp |
15:15 |
ShadowBot |
https://github.com/minetest/minetest/issues/1 -- GlowStone code by anonymousAwesome |
15:15 |
hecks |
lol |
15:16 |
Calinou |
yeah, but most people don't play Minetest for the combat :P |
15:16 |
Calinou |
(nor Minecraft for that matter, by the looks of it) |
15:16 |
hecks |
tell that to the CTF server |
15:16 |
sfan5 |
minetest pvp is even worse than minecraft though |
15:17 |
hecks |
if combat wasn't garbage then maybe there would be something else to do other than farm and build sparkling ghost towns |
15:17 |
Calinou |
the CTF server is very much casual PvP still |
15:19 |
hecks |
I don't mean to give minetest Quake's netcode, though it's very much possible |
15:19 |
hecks |
but it would be nice if mobs didn't damage me by hitting the spot where I was standing two seconds ago |
15:19 |
hecks |
or players, for that matter |
15:29 |
oiaohm |
hecks: there is a issue that you can dig though protected blocks that is kind of the same problem as the combat fault. |
15:30 |
hecks |
How in particular? |
15:30 |
|
Markow joined #minetest |
15:30 |
|
Wuzzy joined #minetest |
15:30 |
hecks |
Do you mean that you can predict-dig the block, go past it and it reappears but too late? |
15:30 |
hecks |
Not exactly the same problem as the combat fault if that's the case, but netcode related all the same |
15:31 |
hecks |
the issue is that digging does have prediction, and physics simulation can depend on it |
15:32 |
hecks |
Protection is such a common feature that I wouldn't be against it being built into the binary in a more robust way |
15:32 |
oiaohm |
hecks: https://forum.minetest.net/viewtopic.php?f=53&t=17815&sid=2fb461cf705f29d0406ff9ce5e08fc00 its what this mod set protect against. That with client you can dig a block/blocks that are protected then walk though before the blocks are respawned. |
15:32 |
hecks |
Yeah, I guessed as much |
15:32 |
hecks |
This could be fixed with a server side sanity check, even from pure lua |
15:33 |
oiaohm |
this here is a client and server side fix. |
15:33 |
oiaohm |
Fix the client to make sure it in fact targeted a correct item. |
15:34 |
oiaohm |
Server side fix handle when client is not. |
15:34 |
hecks |
What I'd do is: Make the client aware of protection information, make the server check if a player just walked through a block they shouldn't have |
15:34 |
hecks |
Without a PR, the server side check can be done in pure lua |
15:34 |
oiaohm |
hecks: yep that is that mod. |
15:35 |
oiaohm |
It is fairly much the same thing with pvp check that when applying damage that target was still at that location. |
15:35 |
hecks |
I'll admit that I'm out of the loop on CSM capabilities so far |
15:35 |
oiaohm |
Or at least was at that location inside a reasonable time. |
15:36 |
hecks |
but something like this should actually be implemented on the C side, imo |
15:36 |
oiaohm |
Its roughly the same problem. |
15:36 |
oiaohm |
I remember in halflife fps with lag how you could be shot and killed in two totally different locations at the same insant by 2 different players. |
15:39 |
oiaohm |
hecks: depending on the first person shooter location engine depends if you can be shot a few seconds before and killed. But I think minetest mods are not applying damage to map locations instaed applying it straight to player. |
15:39 |
|
piesquared joined #minetest |
15:43 |
hecks |
No, but because there isn't any prediction of the physical position, and because monster and player hitting isn't done using hitboxes or raycasts |
15:43 |
hecks |
you end up being able to "punch" players that are actually out of your range |
15:44 |
hecks |
and similarly, I see monsters looking at where I was a second earlier and I'm suddenly taking damage |
15:44 |
sfan5 |
player hitting is done using hitboxes *and* raycasts on the client side |
15:45 |
sfan5 |
none of that needs to apply to mobs though, mod authors can choose to implement that however they want |
15:45 |
Krock |
although it's easier now due to the Raycast API |
15:46 |
hecks |
yes, but it's the lamented "punching" system you're describing here, it's less than ideal |
15:46 |
hecks |
I suspect that mobs are just raycasting, but the server doesn't quite realize in time that I've moved |
15:46 |
hecks |
knowing my ping and velocity would let the server make a better guess |
15:46 |
Krock |
would it be ideal to implement an AI to counter-fight the latency and lag? |
15:46 |
oiaohm |
sfan5: and that is kind of open to halflife abuse. I remember where players use to introduce lag with half life so they could drop multi hits resulting in fatal. |
15:47 |
sfan5 |
hecks: raycasting is more work and wasn't possible until recently, so I doubt that |
15:47 |
hecks |
I'm not sure about lag abuse but I've seen some badly inconsistent behavior in CTF |
15:47 |
sfan5 |
it might be that your old position gets used to determine whether you can take damage, but most likely without raycasting |
15:47 |
Krock |
there was some kind of raycast but it was also very slow |
15:47 |
hecks |
it's like everyone's DPS and range depends on ping, and that's bad |
15:48 |
Krock |
-> PR pls |
15:48 |
hecks |
so it's old mob mods that are making things even worse, then? |
15:48 |
Krock |
yes |
15:49 |
hecks |
I wouldn't be talking about this if I wasn't in a fixing mood, as much as I hate compiling MT |
15:49 |
sfan5 |
oiaohm: not sure if the old source engine also uses the tick based system, but I don't think Minetest is suspectible to that kind of exploit |
15:49 |
hecks |
spent a few days playing various servers and every single one of them was ruined by this |
15:49 |
Krock |
but well, there's a line_of_sight API |
15:49 |
sfan5 |
punch cooldown is measured when the packets actually arrive, no matter the amount of lag |
15:49 |
hecks |
I'd like to at least allow mods to implement rollback and dead reckoning |
15:49 |
hecks |
that requires the server to know the player's ping |
15:50 |
hecks |
then I could, for instance, make a projectile spawn a little in front of the player to compensate for the delay |
15:50 |
hecks |
or make the animation start a few frames later |
15:50 |
hecks |
similarly, hit detection could take into account where the player *should* be, not the player's current server side raw position |
15:51 |
oiaohm |
sfan5: the gap between firing the cooldowns in halflife were nto altered. It was the fact you could have walked behind a solid wall computely out of their line of sight yet they were still shooting you and kill you because they lagged you position to their client with halflife. |
15:51 |
hecks |
this will require generic physics query api, but it's easy, just expose whatever irrlicht provides |
15:51 |
sfan5 |
oh that's a different problem |
15:51 |
hecks |
line of sight bullshots are kinda a consequence of the fixes I'm proposing |
15:51 |
hecks |
I consider them a lesser evil |
15:51 |
hecks |
some engines have real bad bullshots, like Source, and that's bad |
15:52 |
hecks |
but Quake tier bullshots are acceptable if it comes with better prediction in general |
15:52 |
hecks |
in any case, you can just choose to not implement hitscan weapons, or nerf them |
15:53 |
oiaohm |
sfan5: basically there need to be server validation of shots so that a person cannot client side cheat. |
15:53 |
hecks |
yes, any reasonable game would do that |
15:53 |
hecks |
I think halflife/CS is a pretty pathological example of lag compensation gone wrong |
15:54 |
oiaohm |
hecks: and early halflife is example of why not to have 100 percent client side processing of shot logic. |
15:54 |
hecks |
I don't think an example is necessary for that, it's just a stupid thing to do in general |
15:55 |
hecks |
and I don't think any game does that, besides a certain obscure online shooter with P2P networking I've played |
15:55 |
hecks |
if there's a server, it's its job to validate |
15:56 |
hecks |
but we're getting ahead of ourselves here; let's fix melee bullshit first, railguns can come later |
15:59 |
Calinou |
lag compensation will always advantage the attacker, it's a compromise developers did for good reasons (i.e. not frustrating people who initiate combats, rather than camping :P) |
15:59 |
Calinou |
>and I don't think any game does that, besides a certain obscure online shooter with P2P networking I've played |
15:59 |
Calinou |
do you mean Cube/Cube 2? ;) |
16:00 |
hecks |
No, but if that's serverless, then it probably suffers from the same problems |
16:00 |
hecks |
in any case, netcode is a solved problem, I don't see a reason why it should suck in MT |
16:00 |
Calinou |
it has a server but it follows a "thin server, fat client" model |
16:00 |
Calinou |
well, Minecraft has similar issues |
16:00 |
Calinou |
I have yet to see a Minecraft-style game with really good networking |
16:01 |
hecks |
fast paced shooters should be playable up to 120 ping, slower games up to 200 |
16:01 |
hecks |
on this scale, MT ranks as slow as hell |
16:01 |
hecks |
there's just no reason it should feel this broken |
16:01 |
oiaohm |
hecks: serverless maybe. If all clients are validating all other clients actions serverless can be just as good as server. |
16:02 |
hecks |
serverless games have horrible lag abuse issues |
16:02 |
hecks |
UNLESS they're lockstep, but that's limited to RTS pretty much |
16:03 |
oiaohm |
hecks: or they auto cutt of those with too high of latancy is another that some serverless does. |
16:03 |
oiaohm |
hecks: limtis the lag exploit level a lot. |
16:03 |
hecks |
it's not possible because in a serverless/star topology, everyone has a different ping to everyone else |
16:04 |
oiaohm |
Some have a tollerence level. |
16:04 |
hecks |
and what happens is that the BR with 200 ping calls you a lagger and starts a votekick against you, when everyone else is green to you |
16:04 |
oiaohm |
I did not say it was friendly. |
16:04 |
hecks |
but I digress, thankfully MT has plain ol' servers |
16:05 |
oiaohm |
Once you make serverless not exploitable to lag attacks you can have the everyone dos from game due to failure to latency agree. |
16:05 |
oiaohm |
Plain servers makes problem a lot simpler. |
16:06 |
hecks |
yes, that's what happens in Starcraft for example |
16:06 |
hecks |
but what happens then is that the lagging guy gets autokicked |
16:06 |
oiaohm |
Starcraft with anti cheat protections you can see the all way kick happen at times. |
16:07 |
oiaohm |
Basically it beleves everyone is lagging and boots the lot. |
16:07 |
hecks |
well with a game like that, it's impossible to cheat the game state because fiddling with it is just a plain old desync |
16:08 |
oiaohm |
This is basically learn from what others have stuffed up. |
16:08 |
hecks |
Dude, are you using a translator? |
16:09 |
oiaohm |
No my english is just horrible. |
16:09 |
hecks |
back on topic, server netcode solutions can be applied to minetest |
16:09 |
hecks |
client-server netcode problem was solved in 1995 pretty much |
16:09 |
hecks |
some helpful hacks were invented later, but the basic implementation has not changed |
16:10 |
hecks |
There's one thing I need to know though |
16:10 |
hecks |
does minetest do whole tcp round trips or is it using udp like every sane game ever |
16:12 |
oiaohm |
hecks: minetest is udp https://dev.minetest.net/Network_Protocol |
16:15 |
oiaohm |
hecks: do note the RELIABLE implementation in that protocol. |
16:15 |
hecks |
most games using udp have some guaranteed delivery layer for certain info |
16:16 |
hecks |
overall, it doesn't seem like there's anything wrong with the protocol |
16:16 |
hecks |
I guess the problem is that everything is implemented in a naive way from the gameplay's side of things |
16:17 |
hecks |
except *maybe* player movement |
16:19 |
oiaohm |
Player movement is even someways naive like the ablity to dig though protected blocks problem. |
16:19 |
oiaohm |
and then walk there. |
16:19 |
hecks |
That actually means that prediction is a thing and it's working, though |
16:19 |
hecks |
The problem is that everything else is done naively and doesn't account for prediction |
16:20 |
jas_ |
Xiong: so make a "nodebreaker" machine? OK |
16:20 |
jas_ |
i did it mostly for sentimental reasons. |
16:20 |
hecks |
though I won't know for sure until I set up two instances of MT side by side, actually simulating how two players on a server see one another |
16:20 |
jas_ |
i didnt need a lot of mossy cobble, actually HAHA but right now i'm making it fill an empty bucket if there's water_source at pos.y -1 |
16:20 |
jas_ |
lol |
16:31 |
|
Ruslan1 joined #minetest |
16:33 |
|
huesal__ joined #minetest |
16:44 |
|
huesal__ joined #minetest |
16:47 |
|
majochup_ joined #minetest |
16:51 |
|
scr267 joined #minetest |
17:17 |
|
SanskritFritz joined #minetest |
17:32 |
hecks |
One more question and I'll be out of your hair for now; does minetest treat localhost any different from a remote server? |
17:33 |
hecks |
such as turning off certain reliability measures |
17:41 |
Xiong |
jas_ Sorry I'm confused. Are you familiar with various small machines built with pipeworks and mesecons? Cobble generators, ice generators, and the like? My remarks don't seem to meet yours. |
17:45 |
|
KrutonH joined #minetest |
17:54 |
|
sonicpp joined #minetest |
17:58 |
|
IhrFussel joined #minetest |
17:59 |
IhrFussel |
I think it is actually not fair to set the server step too low because people who are far away and therefore have a ping of 100+ ms will have a HUGE disadvantage if the game refreshes too quick...that is my opinion |
18:00 |
Krock |
why? the delay is there but they will receive it anyway |
18:00 |
jas_ |
Xiong: no, not really. just from hearing other people talk about them |
18:01 |
IhrFussel |
Krock, cause players with low ping then receive the actions quicker and can react to them better...sounds logical to me |
18:01 |
Calinou |
yeah but that's how it is in literally every online game to date :) |
18:01 |
Krock |
IhrFussel: a high server step doesn't change that |
18:02 |
Krock |
you cannot "buffer" the latency |
18:02 |
Calinou |
also, there's no such thing as client-side movement prediction in Minetest, as all movement is handled client-side in Minetest |
18:02 |
Calinou |
only dig/placement are actually predicted, since the server has authority on whether the player can do that |
18:02 |
IhrFussel |
Imagine someone having a ping of 20ms and server step at 50ms ... the player with a ping of 20ms is able to receive the 50ms steps quicker than a player with 100 ms no? |
18:02 |
Calinou |
it also prevents building/digging too far away by default, but many (most?) servers end up disabling that because the anticheat has lots of false positives due to lag |
18:03 |
Calinou |
(disable_anticheat = true) |
18:03 |
Calinou |
IhrFussel: no matter the server step, they'll receive information quicker |
18:03 |
IhrFussel |
But what if the server made TWO steps before the client with slow connection receives 1 ... you see what I mean? |
18:04 |
Krock |
IhrFussel: that may even happen when you have a 10ms ping but lose packets |
18:04 |
Calinou |
the client will receive them in-order if the server sent them as ordered |
18:04 |
Krock |
slow does not mean packet loss |
18:04 |
Calinou |
if it's just marked as reliable, they may receive them out of order |
18:05 |
IhrFussel |
I have a player who plays from NZ so their ping is ~ 400 |
18:05 |
Calinou |
if it's not marked as reliable, they may not receive them at all, and you should handle that as gracefully as possible |
18:05 |
Calinou |
and yeah, there's no correlation between packet loss and latency |
18:05 |
Krock |
Calinou: FYI: all but the player position sending packets are reliable |
18:05 |
Calinou |
you may have a decent ping, but players in competitive games will hate you if you play on a 4G connection :P |
18:06 |
Calinou |
Krock: yeah, I heard that |
18:06 |
Calinou |
it makes sense in a Minecraft-style game, no? |
18:06 |
Calinou |
what else could be made unreliable? |
18:06 |
IhrFussel |
I think you still don't get what I mean... imagine someone having a ping of 500 and server step at 100 ... now before the client receives the 5 steps at least 500 ms passed while other clients received their info every 100ms |
18:06 |
Calinou |
higher ping will always be worse, no matter what you do |
18:07 |
IhrFussel |
The slow client gets X steps at ONCE |
18:07 |
Calinou |
all you can do is hide it the best you can |
18:07 |
IhrFussel |
Good luck trying to react to several motions at once |
18:08 |
Krock |
Calinou: HP updates, if these were a separate packet |
18:08 |
Krock |
ofc talking about the other players. the damaged player needs to have a erliable packet |
18:08 |
Calinou |
yeah, maybe |
18:08 |
Calinou |
IhrFussel: they don't get those steps at once, they'll get those steps every 100 ms or so |
18:09 |
IhrFussel |
How? If every packet takes 500ms to travel |
18:09 |
hecks |
You can always implement nudge if you're concerned about fairness |
18:10 |
hecks |
but from what I've seen, the most fair option is to just let people play at the best ping they can |
18:10 |
Calinou |
yeah, few games implement "fair ping" systems |
18:10 |
hecks |
it's usually perceived as a bullshit delay |
18:10 |
Calinou |
fighting games are probably the ones that do the most |
18:10 |
hecks |
not all of them |
18:10 |
hecks |
fighting games can use nudge/rollback instead |
18:11 |
Calinou |
or that, yeah |
18:11 |
IhrFussel |
I mean...the server list doesn't help with choosing a 'good' server...good in terms of connection from you to the server ... and until people realize that the ping bar in the list is actually JUST the ping to the server list, they probably put much effort into the server and just stay on it |
18:12 |
hecks |
oh yeah, it sure would help to actually see your damn ping |
18:12 |
jas_ |
lol |
18:12 |
hecks |
if the ping bar is actually a ping from the server to the master, not to you, then holy shit minetest what are you doing |
18:12 |
IhrFussel |
I wonder what takes the devs so long to just REMOVE that bar... they talked about it several times |
18:12 |
Calinou |
it's shown as "rtt" or something in the debug bar (press F5) |
18:12 |
Calinou |
but it's not updated often, and probably not very accurate |
18:12 |
hecks |
why remove it... just make it work like it's supposed to? |
18:13 |
IhrFussel |
hecks, they can't...privacy concerns |
18:13 |
jas_ |
the argument was that "the serverlist would have to ping my machine" |
18:13 |
Calinou |
and yeah, the ping bar in the list isn't really meaningful since it's relative to the master server |
18:13 |
hecks |
no, the serverlist wouldn't |
18:13 |
jas_ |
or something. which i still don't understand. |
18:13 |
hecks |
my machine would have to ping the server |
18:13 |
Calinou |
you only communicate with the master server using HTTP, not any other protocol |
18:13 |
Calinou |
(same for the servers) |
18:13 |
Calinou |
so direct pinging isn't possible |
18:13 |
Calinou |
it sounds easy, but it's not easy :) |
18:13 |
hecks |
there are servers displaying your IP and country for everyone to see as soon as you log in, and you're worried about ping time checks? |
18:14 |
jas_ |
anytime a client got the server list they'd need to ping all the servers on it? |
18:14 |
jas_ |
not me, i think it was one or two people |
18:14 |
hecks |
yes |
18:14 |
hecks |
wasn't a problem 20 years ago, why would it be a problem now |
18:14 |
Calinou |
well, the ability to ping a server without being connected to it is just not implemented in Minetest |
18:14 |
Calinou |
it might be difficult to implement given the current networking model, that's all |
18:14 |
Calinou |
or nontrivial, at least |
18:14 |
jas_ |
aha |
18:14 |
jas_ |
the real reason! :D |
18:14 |
hecks |
can't you just... ping? |
18:14 |
hecks |
the client already has the address |
18:15 |
Calinou |
ICMP ping isn't universal, many servers can block it, or the client's ISP can mess with it |
18:15 |
Calinou |
plus, it's not a reliable measurement if the server is overloaded |
18:15 |
hecks |
if the ISP messes with it, there are far worse problems at hand here |
18:15 |
sfan5 |
icmp is also hard to do from an userspace application without special privileges |
18:15 |
hecks |
ISPs usually mess with pings the other way |
18:15 |
sfan5 |
on linux at least |
18:16 |
hecks |
I hate to bring up the "works in quake" argument, but it works in quake :) |
18:16 |
IhrFussel |
'ping' doesn't use ICMP? |
18:16 |
Calinou |
Quake and derivatives have a whole protocol dedicated to getting server information without being connected to it |
18:16 |
Calinou |
we don't, and given the current amount of contributors, I doubt it will be added soon |
18:16 |
hecks |
I mean, goodness, the client already can connect to the server anyway |
18:17 |
IhrFussel |
You can obviously run 'ping' without being a superuser or admin ... so couldn't we simply use whatever 'ping' uses? |
18:17 |
hecks |
what would be so hard about implementing this |
18:17 |
hecks |
bonus points; the master server can somehow do it |
18:17 |
Calinou |
the `ping` command behaves differently depending on the OS |
18:17 |
hecks |
if the client can't ping the servers then OH WELL just don't display the bars! |
18:17 |
Calinou |
oh, and that makes master server implementation harder too |
18:17 |
hecks |
99% of the time it will be able to |
18:18 |
Calinou |
it needs to ping servers, so it can't just be a small HTTP server receiving announce requests |
18:18 |
Calinou |
it's currently a small Python + Flask application |
18:18 |
hecks |
well then moving that to the client is a win win |
18:18 |
Calinou |
but we'd still like to have a Web interface for viewing current servers :) |
18:18 |
hecks |
and the server already has code to support ping checking, just hack it to let clients do it...? |
18:18 |
Calinou |
(which is entirely doable, but it's more work) |
18:19 |
sfan5 |
Calinou: the master server already pings servers |
18:19 |
IhrFussel |
If server owners are that concerned about being ping'd then we could either send them a "info" that our client just pinged them or we could let servers opt-out of it... |
18:19 |
Calinou |
yeah |
18:19 |
hecks |
case closed then |
18:21 |
hecks |
now I'd like to hear more about that "movement is client side" thing, just how deep does that rabbit hole go? |
18:21 |
Calinou |
IhrFussel: there shouldn't be a performance concern, it'd represent a tiny part of the entire server's bandwidth |
18:21 |
IhrFussel |
The MT community is VERY VERY extreme when it comes to privacy... one example is that some insist on being able to DECIDE what server sent mods run on their client |
18:21 |
|
scr267a joined #minetest |
18:21 |
Calinou |
well, when your server is announced on the list, it's public |
18:21 |
Calinou |
if you don't want that, don't announce it :) |
18:22 |
hecks |
The concern is about the client autopinging every server in existence when you open the "online" tab |
18:22 |
hecks |
Just turn it off by default and I'll be happy |
18:22 |
IhrFussel |
So...we need to add a button to each server "Check Ping" |
18:22 |
hecks |
Not to each, but "Refresh All" |
18:23 |
hecks |
however a small "Refresh" icon in a server's line would be nice too |
18:23 |
hecks |
There are worse privacy issues in this game than that I'm afraid |
18:23 |
IhrFussel |
Right now servers only send their info (connected users, uptime, age etc) every 5 minutes to the list |
18:24 |
IhrFussel |
I think it was 5 minutes |
18:24 |
hecks |
which is alright for a master announce |
18:24 |
|
ensonic joined #minetest |
18:24 |
hecks |
just provide said info to clients on request and everyone's happy |
18:24 |
hecks |
the server will have to deal with, whoa, a couple extra packets every now and then |
18:25 |
hecks |
this almost reminds me of the matrix multiply debate :^) |
18:25 |
IhrFussel |
I wonder if clients could even cause a 'micro' performance issue with sending too many ping requests |
18:25 |
hecks |
Limit it to one every two seconds and it'll be fine |
18:25 |
hecks |
I can DDoS your server just fine without using the server browser |
18:26 |
IhrFussel |
We could simply add a button timeout |
18:26 |
hecks |
for instance, by initiating fake connections |
18:26 |
hecks |
far more damaging than someone spamming refresh |
18:26 |
IhrFussel |
Nope, that was fixed |
18:26 |
hecks |
Then initiating "real" connections :) |
18:27 |
hecks |
In any case, you gain nothing by not providing those 16 bytes of data on request |
18:27 |
Calinou |
usually, the number of pings a client sends per second is capped |
18:27 |
IhrFussel |
Yeah clients only count now towards the limit when they receive the CS_HELLO packet I think which is the moment before joining |
18:27 |
hecks |
Even telling the client to bugger off is more data than that |
18:27 |
Calinou |
(50-100/second is a reasonable limit when there's a lot of servers) |
18:27 |
Calinou |
however, you may want to ping a server several times to get a more accurate estimation |
18:27 |
Calinou |
Xonotic defaults to 3 pings per server because of that |
18:28 |
hecks |
See, I told you it works in quake |
18:29 |
IhrFussel |
I think an argument was that closed-source games don't have the same 'privacy responsibility' as open source games |
18:29 |
hecks |
quake is free software |
18:29 |
hecks |
and its hundreds of derivatives |
18:29 |
hecks |
my privacy is already more violated by the initial ping to the master server |
18:30 |
hecks |
which I believe occurs as soon as I launch MT |
18:30 |
jas_ |
hecks did you see the server side movement pr? |
18:30 |
IhrFussel |
As soon as you open the Play Online tab AFAIK |
18:30 |
jas_ |
i like quake |
18:31 |
hecks |
I didn't |
18:31 |
IhrFussel |
Or as soon as you announce your server |
18:31 |
hecks |
I was too busy arguing with paramat about matrix multiplies |
18:31 |
jas_ |
oh i like the movement and physics, strafe jumping |
18:31 |
Calinou |
skill-based movement is where it's at :D |
18:31 |
Calinou |
unfortunately, it's not very popular in modern games :( |
18:31 |
hecks |
thing is, uneffing minetest's netcode, movement, adding CSM and all that jazz is kinda intertwined and I'd like to see it done as a single effort |
18:31 |
jas_ |
ah well |
18:32 |
hecks |
if you people like quake so much, play cpma with me |
18:32 |
jas_ |
what do you think of sneak jumping? |
18:32 |
hecks |
which version? :) |
18:33 |
jas_ |
i have a version that uses old_move+sneak_glitch when sprinting. |
18:33 |
hecks |
I think shift ladders were bullshit but I like using sneak to grab onto ledges. |
18:33 |
jas_ |
normally it's new_move/sneak_glitch off and if sprinting then old_move/sneak_glitch on. there's a scout class that always has sneak_glitch on tho |
18:34 |
|
FreeFull joined #minetest |
18:34 |
jas_ |
i think there's something there if you adjust the gravity, or something. it's awkward now, but i suspect it could easily change. |
18:34 |
jas_ |
i feel it at times |
18:34 |
hecks |
I'd love nothing more than to delete all of it and move it to lua |
18:35 |
hecks |
so that I can code whatever movement I want, even strafejumping if I want to |
18:35 |
jas_ |
my server is Glitchtest if you want to try it. you have to hold sprint to sneak jump, tho. |
18:35 |
hecks |
I'll check it out |
18:35 |
jas_ |
or github.com/jastevenson303 |
18:35 |
jas_ |
yeah i think it can be done hecks |
18:36 |
jas_ |
there's a lot of hurdles, though. one thing that comes to mind, have you ever noticed when jumping along a particular diagonal, the player's position gets quantized? |
18:36 |
hecks |
it can't be done *right* until SCSM is up and running |
18:36 |
jas_ |
true |
18:36 |
jas_ |
i been waiting a long time, for that reason especially |
18:36 |
hecks |
I want all the things that are coded into the exe moved into minetest_game |
18:36 |
hecks |
I'm sure there's many contributors that disagree with me here though |
18:36 |
jas_ |
but only to make the sneak_jump mod faster, i guess. i'm using minetest.after lol |
18:37 |
hecks |
tried getting on glitchtest but it requires some ancient version |
18:37 |
jas_ |
because the server is always asking if the player is holding down sprint, whereas that'd be better in the client |
18:37 |
jas_ |
ok i'll rebuild it. i built it one or two days ago |
18:37 |
jas_ |
yesterday i think, they kinda blur into one another |
18:38 |
jas_ |
hm, it says it's already up to date |
18:38 |
jas_ |
Minetest 5.0.0-dev-c6f784f4 (Linux) |
18:39 |
hecks |
I'm already making minetest do things it's not meant to https://a.uguu.se/aposLhKvdsWW_moesouls.gif |
18:39 |
hecks |
but add networking to this and it falls apart, I need better netcode and SCSM |
18:39 |
jas_ |
cool gif! |
18:40 |
hecks |
sadly minetest is screaming and begging for mercy running this |
18:40 |
jas_ |
i'm gonna try a hitscan weapon soon, i already have a projectile. but the hitscan, i am predicting it would be better client side also |
18:40 |
hecks |
not performance wise but bugs wise |
18:41 |
jas_ |
oh |
18:41 |
jas_ |
well at least it's not struggling performance wise |
18:41 |
jas_ |
what are the bugs? |
18:41 |
hecks |
you can't do good hitscan if there isn't even a goddamn get_player_ping() api function to do nudge properly |
18:41 |
hecks |
bugs... i've basically ran into obscure minetest bugs from day one of making this |
18:41 |
jas_ |
did you try CTF? i did once or twice for a minute |
18:41 |
hecks |
bugs related to entity attachment |
18:41 |
jas_ |
i see |
18:41 |
hecks |
yes I did, CTF is what made me spend all day today ranting about netcode on the IRC |
18:42 |
hecks |
let me continue; attachment bugs, asset handling bugs, weird performance issues, mesher limits |
18:42 |
jas_ |
oh ok. well client side stuff would have to help there, i'd imagine. i wonder if there's not a newer feature in 5.0.0-dev that allows for better hitscan.. if that makes sense |
18:42 |
hecks |
lighting issues which I made a PR for and it's probably still in limbo because of bureaucracy |
18:43 |
hecks |
add to that hundreds of lua side workarounds for missing engine features |
18:43 |
jas_ |
wow |
18:43 |
jas_ |
well keep up the good work, i'm sure it's appreciated |
18:43 |
hecks |
by whom I wonder |
18:44 |
jas_ |
:) |
18:44 |
hecks |
https://a.uguu.se/oNjgQXxcmePR_anim.gif |
18:44 |
hecks |
you have no idea how hard it was to make minetest do this |
18:44 |
jas_ |
there's a bindable mouse pr. i really wish since day one to use right mouse button to jump. sometimes, minetest just sucks. |
18:44 |
hecks |
have a character's SAO step forward with the animation |
18:45 |
hecks |
I parse the friggin' .x file with lua, extract curves, write it back, load it |
18:45 |
jas_ |
geeze, yeah i'd think there should be a better way |
18:45 |
hecks |
then wrap it in an animation flowchart not unlike shiny new modern engines |
18:46 |
hecks |
now, this is not a gripe I have with minetest, I'm fine with having to code that |
18:46 |
hecks |
but then imagine, I keep adding animations to this character, only for the server to crash one fine day |
18:46 |
jas_ |
oh right, the multiplayer thing |
18:46 |
hecks |
Reason? File too huge to send in one chunk |
18:47 |
hecks |
minetest cannot send assets bigger than 16ish MB I believe |
18:47 |
hecks |
and doesn't do any compression when sending |
18:47 |
jas_ |
if they have downloaded the (sub)game prior, this is one possible workaround |
18:47 |
hecks |
Attachable hair and clothes? Nope, attachment is broke |
18:47 |
jas_ |
haha |
18:47 |
hecks |
gotta model it all onto her |
18:48 |
hecks |
and use texstrings, which thankfully are pretty powerful |
18:48 |
hecks |
oh right, and the root movement thing |
18:48 |
hecks |
you'd think a game engine would have a set_velocity() function |
18:48 |
hecks |
minetest does... it doesn't work for players, though! |
18:48 |
jas_ |
this is a funny issue i made a while ago i want to show you |
18:48 |
hecks |
Or, what do you do to root a player in place and not let them move, for instance, when stunned? |
18:49 |
hecks |
Do you set movement speed to 0? Try doing that, see what happens... |
18:49 |
hecks |
actually with your skill based movement thing going on, you might want to set movespeed to 0 and play with it |
18:49 |
hecks |
hint: it turns off friction |
18:49 |
jas_ |
https://github.com/minetest/minetest/issues/6448 <- not that long ago |
18:49 |
jas_ |
wait what |
18:50 |
jas_ |
i do know, you cannot make player's physical!! |
18:50 |
jas_ |
this drives me batty |
18:50 |
hecks |
try it, it's bizarre |
18:50 |
jas_ |
i dunno about this setting movespeed to 0, i will try it. can u elaborate? |
18:50 |
hecks |
so I attach the girl to a dummy transform... |
18:50 |
IhrFussel |
hecks, if you set the movement speed to 0 they will 'flicker' around...the only reliable way to make them stop is attaching players to entities |
18:50 |
hecks |
well it turns off friction and control |
18:50 |
hecks |
whatever velocity you had, you'll keep it |
18:50 |
hecks |
and you'll slide in that direction until you hit something |
18:51 |
hecks |
maybe it can be used to make Tribes like sliding |
18:51 |
hecks |
yes I know that, wisehead |
18:51 |
hecks |
and I do that, and guess what, every now and then the player model just vanishes for the duration of the attachment |
18:51 |
hecks |
100% random, just a one in 65536 chance of it happening |
18:51 |
jas_ |
that's a good tip thanks hecks, i'll try it out |
18:52 |
jas_ |
it's really fun, btw, to make player's physical |
18:52 |
hecks |
even better, every now and then the server will tele me back to a position I was in 30 seconds to 10 minutes ago |
18:52 |
jas_ |
but if you try to sneak jump, or even regular jump i think, the player just keeps jumping, climbing into the air, depending on lag |
18:52 |
hecks |
said position is always a position where I was attached to the dummy transform at some point |
18:53 |
hecks |
I tried using server side code to detect abrupt changes in position like that... it doesn't pick it up |
18:53 |
IhrFussel |
It is bad in general because as soon as you leave the 'active_block_range' the entity unloads...and since the player is attached to it they unload too |
18:53 |
hecks |
cue the effing x files theme at this point because I don't know, man |
18:53 |
hecks |
I don't move around too much attached to an entity |
18:53 |
hecks |
re-read my rant before you chime in again, man |
18:54 |
jas_ |
yeah attachment really seems to suck |
18:54 |
jas_ |
it reminds me of the helicopter mod. great mod, i really liked it, so i added it to the server i had at the time |
18:54 |
hecks |
oh, falling out of a heli randomly |
18:54 |
jas_ |
and was surprised to see how much it broke in multiplayer, yeah |
18:54 |
IhrFussel |
NO, I'm talking about when you walk AWAY from an attached player they will disappear together with the entity as soon as you are X mapblocks away (depending on your settings) |
18:54 |
hecks |
okay, that's even worse |
18:55 |
jas_ |
it would warp to strange places. and i dunno, i've tried attachments a few times and was left pretty confused |
18:55 |
hecks |
but I'm the only one on my server... |
18:55 |
hecks |
https://www.youtube.com/watch?v=HQoRXhS7vlU |
18:55 |
IhrFussel |
MT cannot have all entities loaded at all times...the server would die instantly |
18:55 |
hecks |
thank you for this wonderful insight my friend |
18:56 |
jas_ |
sometimes i think minetest doesn't really remove objects. it just says it does. |
18:56 |
hecks |
it does it very very inconsistently |
18:56 |
jas_ |
that's what that theme song reminded me of |
18:56 |
hecks |
whenever it feels like it, basically |
18:56 |
jas_ |
haha |
18:56 |
IhrFussel |
Set active_block_range to something high..like 50 and then spawn a bunch of mobs on the map in different areas...I bet the lag will make it unplayable |
18:57 |
jas_ |
oh and attaching sounds to objects is interesting too, and try stopping a fading sound, or ramping it back up. heh, nevermind that. |
18:57 |
hecks |
Ihr, are you doing this on purpose |
18:57 |
hecks |
I'm about to get an aneurysm |
18:57 |
jas_ |
can you set it to 50? |
18:57 |
jas_ |
tempted to try |
18:57 |
hecks |
anyway, I raise you a better one |
18:57 |
hecks |
make an entity |
18:57 |
hecks |
make sure that entity can be moved, it can be a cart that you pull, for example |
18:57 |
hecks |
now attach another to it |
18:58 |
hecks |
take the cart and ride away somewhere... |
18:58 |
hecks |
...x files theme plays |
18:58 |
hecks |
pretty much every time i try to do something with entities in minetest |
18:58 |
hecks |
we're in Area fruggin' 51, anything can happen! |
18:59 |
jas_ |
yes that sounds about right |
18:59 |
hecks |
so I got this mob system... |
18:59 |
jas_ |
yea? |
18:59 |
hecks |
I do all the loading and unloading manually just to avoid being at minetest's active block system's mercy |
19:00 |
jas_ |
i removed the abms from mobs_redo personally |
19:00 |
jas_ |
o |
19:00 |
hecks |
Still, I loiter around in the same area for enough time and the amount of mobs seems to grow... |
19:00 |
jas_ |
you mean something else, sorry |
19:00 |
hecks |
DA DA DA DAAAAA |
19:00 |
hecks |
i t i s a m y s t e r y |
19:01 |
jas_ |
oh in mobs_redo? |
19:01 |
hecks |
well I don't use ABMs and when I heard that that mob system is using ABMs, I was like, wow what are you doing |
19:01 |
hecks |
no in my system |
19:01 |
jas_ |
oh ok |
19:01 |
IhrFussel |
Another problem is that active_block_range controls the ABM range too ... if at least ABM and entity range would be separate maybe servers could make more entities visible on the map |
19:01 |
hecks |
You see, active_block_range does not actually control active block range. |
19:02 |
hecks |
It doesn't process entities per mablock, but multiplies this distance by 16 and uses it as an euclidean radius |
19:02 |
IhrFussel |
I set mine to 1 and it indeed only loads entities that are ~16 nodes away |
19:02 |
hecks |
in any case, I actually have a "virtual mapblock" system and load and unload entities using it, just to avoid dealing with this bullshit |
19:03 |
jas_ |
the default is already low at 3 |
19:03 |
hecks |
also I don't use ABMs, but instead find floors |
19:03 |
jas_ |
i have an insivible spawning node, it's super cheesy |
19:03 |
hecks |
it's still fast because it only runs when the player's "active" mapblock changes |
19:03 |
hecks |
your spawning node can and will be destroyed by players |
19:03 |
hecks |
use my approach, it's foolproof |
19:03 |
hecks |
not as expensive as it sounds |
19:03 |
jas_ |
https://github.com/jastevenson303/Glitchtest/blob/master/mods/mobs/nodes.lua |
19:04 |
jas_ |
haha |
19:04 |
jas_ |
(i'm not proud) |
19:04 |
hecks |
Ouch |
19:04 |
hecks |
Hell is other people's code! |
19:04 |
jas_ |
no, no, i wrote that lmao! |
19:04 |
jas_ |
anyway |
19:04 |
jas_ |
it's a lot of fun, minetest. but it's got a lot of... issues |
19:05 |
hecks |
https://pastebin.com/8WGEDUva |
19:05 |
Cornelia |
Well, until recently, it was only version 0.4.* !! :P |
19:05 |
hecks |
Yeah, and we're on 5.0 now! |
19:05 |
jas_ |
my dream is to learn c++ and possibly see about libpd + minetest. and procedural sounds/music. haha |
19:06 |
hecks |
What a pace! Good job, developers! They must be coding 24/7 running on ramen and black coffee ;-; |
19:06 |
hecks |
All you'd have to do is make luajit's ffi work in minetest |
19:06 |
hecks |
I wonder if it already does |
19:07 |
hecks |
and my dream is not having to use c++ to make things work in minetest lol |
19:07 |
jas_ |
i dunno what that is, hecks, but it's very pretty code |
19:08 |
hecks |
It's virtual mapblocks |
19:08 |
jas_ |
neat |
19:08 |
hecks |
if I didn't apply super clean OOP I would've tripped over the volume of my code long ago |
19:08 |
jas_ |
i will show one last thing before i go |
19:09 |
jas_ |
in this mod, the sneak jumping, the physics... it's tied to the HUD! hahahaha https://github.com/jastevenson303/Glitchtest/blob/master/mods/sneak_jump/init.lua |
19:09 |
jas_ |
bbfn |
19:09 |
hecks |
wait what |
19:09 |
hecks |
don't go just yet because I need you to explain |
19:09 |
hecks |
point me to the "wtf" line of code if you can |
19:14 |
|
huesal__ joined #minetest |
19:27 |
|
riff-IRC joined #minetest |
19:27 |
|
hecks joined #minetest |
19:46 |
|
ensonic joined #minetest |
20:18 |
|
cafee__ joined #minetest |
20:19 |
|
Giorge joined #minetest |
20:21 |
hecks |
I did some more exhaustive testing |
20:21 |
hecks |
the netcode situation is not as dramatic as I thought; a dodgy 135ms connection is still quite playable |
20:21 |
hecks |
the issue lies entirely in net-naive gameplay code |
20:22 |
|
cafee__ joined #minetest |
20:27 |
|
cafee__ joined #minetest |
21:13 |
|
cafee_ joined #minetest |
21:34 |
|
GreenDimond joined #minetest |
22:32 |
MinetestBot |
[git] maxis27 -> minetest/minetest: autojump setting: Remove repeated doc line (#8041) c26eab6 https://git.io/fhmtC (2019-01-02T22:32:19Z) |
22:52 |
|
ensonic joined #minetest |
22:55 |
|
cafee__ joined #minetest |
23:40 |
|
huesal joined #minetest |
23:45 |
|
Gael-de-Sailly joined #minetest |
23:53 |
|
IhrFussel left #minetest |