Minetest logo

IRC log for #minetest-dev, 2022-06-10

| Channels | #minetest-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
02:41 behalebabo joined #minetest-dev
04:00 MTDiscord joined #minetest-dev
05:20 calcul0n joined #minetest-dev
06:03 Zughy[m] can you please ban this guy? My mail has just got spammed with pretty pointless comments, and IIRC they also caused trouble on CDB and the forum in the last months
06:03 Zughy[m] https://github.com/minetest/minetest/issues/6733#issuecomment-1151764482
07:14 MTDiscord <ROllerozxa> "they also caused trouble on CDB and the forum in the last months" can very much confirm this. he's also completely banned from the minetest discord
08:03 sfan5 tip to bystanders: don't derail the github issue further by making comments
08:32 nrz_ i'm sorry he is spamming you, but the proposal in terms of ui is pretty nice
08:33 nrz_ the last ones i mean
09:18 rubenwardy they're temp banned from the forum and CDB  now
10:32 HuguesRoss joined #minetest-dev
10:35 proller joined #minetest-dev
11:02 MTDiscord <luatic> nrz_: Just to be clear: That proposal is by the one being spammed, not by the one spamming.
11:05 proller joined #minetest-dev
12:24 kilbith joined #minetest-dev
12:28 kilbith https://i.imgur.com/B7vWkz7.jpg
12:28 kilbith thoughts?
12:28 Fixer joined #minetest-dev
12:32 MTDiscord <MisterE> What would you guys think of a release party for MT 5.6?
12:32 MTDiscord <MisterE> I could host a server for it for a day
12:35 MTDiscord <MisterE> It would need planning
12:36 MTDiscord <MisterE> People could make mod suggestions and submit schematics
12:41 celeron55 kilbith: there probably needs to be a list of use cases that can be used to review whether a given api suggestion is good
12:42 celeron55 what would static do?
12:44 celeron55 also a camera kind of has two positions, a target position and the position the camera is at, and then if you want to rotate the camera then you need an up vector or a quaternion or something... which leads back to the use cases
12:58 kilbith celeron55> what would static do?
12:58 kilbith it's a locked camera for e.g. cutscenes
12:59 kilbith celeron55> also a camera kind of has two positions, a target position and the position
12:59 MTDiscord <luatic> get rid of registering cameras
12:59 kilbith a target position will be normalized vector, I think
12:59 MTDiscord <luatic> just do a set_camera which takes all your register params
12:59 kilbith s/a/the
12:59 MTDiscord <luatic> kilbith: that'd be a look dir
13:00 MTDiscord <luatic> cameras should also be attachable to objects etc.
13:00 MTDiscord <luatic> in fact cameras should be a type of low-profile object
13:00 kilbith <luatic> get rid of registering cameras
13:01 kilbith there needs to have a centralized place where HUD/GUI/ObjectRef access a global referential
13:01 kilbith you register a camera once, and you access it from anywhere
13:02 MTDiscord <luatic> so you'd have (set|get)_position, (set|get)_rotation, (set|get|lock)_look_dir, (set|get)_fov(fov, interpolation) & (set|get)_attach for your camera object and player:get_camera()
13:02 MTDiscord <luatic> kilbith: Then you also need unregistering
13:02 kilbith of course
13:03 MTDiscord <luatic> You could alternatively also just serialize the camera for HUDs & formspecs
13:04 kilbith `static = false` would be limited by aabb the same way than GUIScene
13:05 kilbith celeron55: had to ask, camera position is not strictly world position, correct?
13:08 appguru joined #minetest-dev
13:10 MTDiscord <luatic> for a clean API it should be
13:10 MTDiscord <luatic> but in Minetest internals it isn't
13:11 kilbith that's what I ask
13:11 kilbith and if yes, where is it exactly adapted
13:12 MTDiscord <luatic> kilbith: Grep for "camera_offset"
13:14 erle well the offset needs to be there, right?
13:15 rubenwardy Feels like this should be based on entities, so that we can benefit from future improvement to entity interpolation/movement
13:15 kilbith so let's say a Camera object accessible from Lua?
13:17 erle i agree with the usefulness of cameras being accessible globally and being registered and unregistered
13:17 erle that way you can do some optimizations that you could not if it was not a global thing
13:17 erle like, 3 people looking at the same security camera
13:20 Taoki joined #minetest-dev
13:45 MTDiscord <luatic> It's not worth it
13:45 MTDiscord <luatic> The entire camera is only a couple bytes
13:46 erle well at some point you need to make sure the area is kept active or not
13:48 MTDiscord <luatic> The clients do that
13:49 MTDiscord <luatic> When a client receives a camera at a certain pos it'll have to request the area
13:50 erle if clients can request arbitrary area that is a prime denial of service opportunity
13:50 erle and remote viewing
13:50 erle i.e. coordinate leaks
13:51 erle luatic have you seen the video from fitmc about the NOCOM exploit?
13:56 MTDiscord <luatic> erle: Yes, obviously, so the server will have to check whether it sent camera X to player Y
13:56 erle which becomes easier if you have a dedicated cam object right
14:01 sfan5 clients currently do not request any areas for viewing
14:02 sfan5 just as a fyi that it works pretty much inverse currently
14:06 nrz joined #minetest-dev
14:11 erle sfan5 yeah so making a cam object and assigning it could just push the stuff to the client, or not?
14:33 proller joined #minetest-dev
15:16 proller joined #minetest-dev
16:20 proller joined #minetest-dev
17:20 Pexin how far away is arbitrary player vertical orientation and localized gravity points?
17:22 rubenwardy what
17:22 rubenwardy oh far away as in roadmap
17:22 appguru joined #minetest-dev
17:22 rubenwardy it's not currently planned anywhere, and I don't remember an issue
17:22 rubenwardy but it's been discussed a few times casuallh
17:23 Pexin yeah I mean how difficult would it be to adapt the current codebase?
17:24 Pexin I know there's a "roll" value, but don't know which objects it applies to, but localized gravity seems tough
17:24 rubenwardy would probably take some work
17:25 rubenwardy for one, wouldn't it require moving away from AABB collisions to support rotating the player
17:25 Pexin also, slightly related, my understanding of the map format/loading is the map is optimized for mostly horizontal movement?
17:27 Pexin as for collisions, a simplistic way might be provide an alternate (configurable) option for collisions to be sphere-based
17:27 Pexin statically calculate the center of the mesh and the radius, you know
17:42 erle Pexin localized gravity points are pretty easy to implement. i did this once.
17:43 erle granted, the localized point was 0,0,0
17:43 erle because i played around with this mapgen from paramat (?) that generated a cube planet
17:43 erle and wanted to be in orbit
17:46 erle Pexin there are basically two things you can do for localized gravity. either you pick a suitable center of gravity for each object and apply forces towards that. super simple to implement, but physically wrong. you can see the downsides of it in kerbal space program, which only ever allows you to have one center of gravity, i.e. it has “spheres of influence”
17:47 erle Pexin the other approach is giving arbitrary objects attraction forces and then doing an n-body simulation like in this thing i made in 2010 http://daten.dieweltistgarnichtso.net/src/schwrkrft/test.html
17:47 Pexin or every center of gravity must be aggregated above some tole
17:48 Pexin ..tolerance
17:48 erle Pexin as you can see from the javascript, the calculations are really easy. you can also click the objects to focus them.
17:50 Pexin I guess it would need to just ignore sources outside a fixed radius, no matter how strong those sources may be
17:50 erle i believe that aggregation is not necessary, rather a mix of those approaches can work
17:51 erle a fixed radius would actually not be a good idea
17:51 Pexin but possibly necessary for something like MT
17:51 Pexin it's not like it doesn't already take shortcuts
17:52 erle no, you misunderstand
17:53 Pexin probably
17:53 Pexin also since this isn't strictly engine related (yet) ..maybe wrong channel, hm
17:53 erle what you want for simplification and a flexible API is *probably* just 1. a way to override the gravity vector for a player 2. a way to override which way is ”up” for the camera for a player.
17:54 erle IMO that's the only two things the engine is lacking here, everything else can be done in lua
17:54 erle such things would also allow you to create stuff like ”walking on walls” spiderman style things
17:55 Pexin not just players
17:55 erle and given the cuboid planet, you could just make sure that “down” is perpendicular to the object
17:55 erle oh right yeah
17:55 erle and that kind of thing does not need any n-body simulations
17:55 erle but you could have them
17:56 Pexin and I'm thinking more of spaceships
17:57 erle if you are thinking of spaceships, then you could have an n-body simulation
17:59 erle well, i have revised my opinion: i'd add: 1. a way to override the gravity vector for an entity/player and reset it to “natural”. 2. a way to override which way is ”up” for a player, regarding the camera or reset it to “natural”. 3. node properties that contain vectors for which way is up/down and where the gravity goes, which affect all objects that are in the “natural” state.
18:00 erle with the “which way is up” vector default being the opposite of the “gravity” vector by default, unless you simplyfy it to “which way is down” (which might be more desirable tbh)
18:00 Pexin for the spiderman thing, gravity isn't really needed, more a "sticky" property
18:01 erle not necessarily. on the cuboid planet you might want to “walk on walls” but still jumping should work like you want it.
18:01 erle otherwise you fall off
18:01 erle spiderman obv would fall off, bad example
18:04 erle Pexin well, what is keeping you from adding a property that overrides the gravity vector?
18:04 Pexin globally?
18:05 erle no, per player or object
18:06 erle oh wait lol
18:06 Pexin you mean like dynamically changing the vector each (client?)step based on direction of my self-defined source?
18:06 erle acceleration
18:06 erle yes
18:06 erle go look in clientenvironment.cpp or how it is called
18:07 erle you can prototype it the way you want
18:07 erle like i did
18:07 erle i can't find the code right now though, sorry
18:09 erle Pexin prototyping this with a fixed point source at 0,0,0 should not take you more than 20 to 30 minutes
18:12 MTDiscord <luatic> erle: Isn't your attraction thingy basically O(n²)
18:13 MTDiscord <luatic> I remember writing similar things in extracurriculars and they all where O(n²)
18:14 fluxionary joined #minetest-dev
18:15 erle luatic i posted my javascript thingy only to show how easy it is to implement. surely you would not take the mass of a spaceship in orbit into account for the trajectory of a planet in a game
18:17 erle luatic as i said, the job of figuring out the gravity vectors can be left to a game
18:18 erle the engine just needs to provide a way to set gravity and camera (independently, if necessary – that's important) explicitly for an obejct and generally for a node/area (though keeping it on nodes is preferable IMO)
18:18 erle everything else can be built on that
18:19 erle by sidestepping the idea of gravity simulation entirely you get a great deal of simplification
19:10 Baytuch Good morning
19:37 Fixer_ joined #minetest-dev
20:58 celeron55 i agree camera objects make sense for cheat prevention, but also for interpolation. also they could probably be useful for having a portion of a world loaded, or making preloading of such less painful. that being said, otherwise i don't like persistent camera objects
20:58 celeron55 but me not liking them doesn't mean they wouldn't be necessary
21:44 kaeza joined #minetest-dev
22:32 panwolfram joined #minetest-dev
22:41 sfan5 merging #12425
22:41 ShadowBot https://github.com/minetest/minetest/issues/12425 -- Fix LBM docs by TurkeyMcMac
23:35 erle wait, what is “activated”?
23:36 erle does the activated vs loaded difference explain why LBMs are unreliable?
23:41 kaeza joined #minetest-dev

| Channels | #minetest-dev index | Today | | Google Search | Plaintext